Home > SimpleMIDIPlayer Archive

SimpleMIDIPlayer Archive

作り始めようとすると

やはりこう、いろいろ直したい部分はあるわけで、Interface Builderをいじるだけで終わった一日。
#といっても、実際触っていたのは2時間もないですが。


いろいろ考えてると、一番最初のInterface Builderでどうやってクラスを配置していくかで一番時間がとられますな。

SimpleMIDI0.5.jpg

MacPeopleに

SimpleMIDIPlayerが掲載されました。
といっても、CD-ROM Specialへの掲載ってことで、僕の名前とURL、一行コメントというこじんまりとした感じな訳ですが。

掲載されるってことで、MacPeopleが自宅に一冊送られてきました。見ると13日発売らしいので、店頭に並ぶのは明日でしょうか。
MacPeople初めて読みました^^;
縦書きってのがびっくりですが、ファミリーユース向けなのにも関わらず、smb.confをpicoでいじったりしててさらに驚きました(笑

MacPeopleに掲載されたのはVer. 0.4ですが、SC-8850などのファミリーユースで使われる音源が表示されないと言う問題がある(まぁ、ポートから音源に線をつないじゃえばいいんでしょうが)ので、そこらへんも対応させたバージョンを早くリリースせねば…。

SimpleMIDIPlayerその後

亀のようにゆっくりとした更新速度を保っている当サイトのコンテンツの中でも、SimpleMIDIPlayerのバージョンアップは輪をかけてゆっくりだったりします。
#まぁ、その他にも企画倒れなページとか散見されますが…(汗

次のSimpleMIDIPlayerでは、以下の事を念頭に開発しようと思います。
・速度向上(安定した演奏)
・QuickTime音源での演奏機能の復活
・ランダム再生
・チャンネルミュート
・Cocoa Bindingを使う(自身のお勉強のため。どれだけコードがすっきりするか見てみたい)

このうちどれだけ実装出来るか分かりませんが、頑張ります。

続:なんてこったい

下のCoreAudio.pdfを斜め読みしたんですがね。

なーんか、AudioToolboxあたりが強力になっている予感。
MusicSequenceでイベントに対してCallback関数が使えますか?
…まじ?

暇を見つけて試してみよう…。

なんてこったい

Developer Toolsをインストールしている人は
file:///Developer/Documentation/MusicAudio/Reference/CoreAudio/CoreAudio.pdf
ここにあるCoreAudio.pdfですが。
以前配布されているものよりも版が新しくなっていました。
SimpleMIDIPlayerこれ読まずにリリースしちゃいましたが^^;

読み直さないと…。
しっかし、英語で100ページ以上あると萎え気味ですなぁ。
未だにPreliminaryって書いてあるしなぁ。CoreMIDIはOS Xのバージョンがあがるごとに変わるし。現在はCoreMIDI 1.4かしら。
#1.4はHeaderにしか情報が載ってないような。
#まぁ、1.3とかもそうだったのだけど、このCoreAudio.pdfに載ってる事を期待。

SimpleMIDIPlayer Ver. 0.4公開

というわけで、今日やっと公開です。
といっても、かねてより実装しようと思っていたランダム再生機能などは今回も見送ってしまいました。
別に実装自体は難しくないのですが、ボタンのアイコンを作るのが面倒で…(汗
solo/mute機能なども、どっちかというと「面倒」系でした。ほんと申し訳ないです。

ただ、ずっと先延ばしにしてしまうのもどうかと思ったので、最低限の機能だけ付加してとりあえずリリースしました。
0.3の時よりもだいぶ重くなってしまい、もたつくことが多くなってしまいました。

原因は明白で、MIDIノートオン表示部分を16ch別々の領域に書いているからです。
1chごとにGUIコンポーネントを制御するクラスを作ったので、こんな形になってしまいました。
まぁ、16ch一括の領域にしても良いのですが、なんとなくこっちのほうがNibデータの素晴らしさ&オブジェクト指向っぷりが発揮出来てていいかなぁと(自己満足

まぁ、とにもかくにも、次バージョンは出来るだけ早くリリースしたいです。
QuickTime音源への対応を端折ってしまったので、そのへんもなんとかしないといけません。

次期バージョンのお話

SimpleMIDIPlayerの0.3を出してからかなりの日にちが経ちました。

今日はあまり楽しくない講義が3時間続いたので、その間に次期バージョンをちょいと組んでみました。
0.3で使ったMIDI関連のクラスをそのまま使ってますが、外見をいわゆる"MIDIプレイヤ"にしたい感じ。
現在のところこんな感じ(PDF)です。

ベロシティに反応するインジケータと、ボリュームその他のつまみは既に動いてます。
あとは、BPMとかLocate表示ですかね。はう。

なにか要望とかあったらコメントとして書いて下されば。
って、こんなところユーザーさん見てませんよねぇ^^;

QT音源接続

現在のSimpleMIDIPlayerは、AudioToolboxに入ってるMusicPlayerっつーのを使ってSMFを解釈、再生してるわけなんですが。

このMusicPlayerってば、destinationを外部MIDI機器につなぐと外部音源から音が鳴って、どこにもつながないとデフォルトのQuickTime音源でなるようになってます。
そんなわけで、現在はQT音源を再生ポートとして設定した場合にのみdestination接続をしない形にしてます。

がしかし。
例えば、各チャンネルのインジケータなどを実装したい場合、これが仇となります。
僕が一度実装したのは、
MusicPlayer -> インジケータ -> 外部音源
という感じにMIDI信号が流れるようにしたわけですが、これ、もしもQuickTime音源で流したい場合は、どうしたって
MusicPlayer -> インジケータ -> QuickTime音源
としたくなります。しかし、MusicPlayerからインジケータにdestinationを接続してしまうと音が鳴らないので、なんとかせにゃならんわけです。

というわけで、現在CoreAudioの方のソースを見てます。SimpleSynthっていうソフトがそれをやってるっぽいので参考にしようっと。

mini app作成開始

ノートオンなどのMIDIイベントをトリガとしていろいろなMIDIイベントを吐き出す単純なソフトを作成開始。
CoreMIDIには「こういうイベントが来たら〜」みたいなコールバック関数が用意されてるので、それを使えば簡単っぽい。

まぁ、マルチエフェクタ(として使うMU100R)のエフェクトをフットスイッチや時系列に沿っていろいろ変えてやろうってことなんですが。10月にライブがあるので、その時にトランペットの音を拾ってハーモナイザーとかをかけてやろうってわけです。
ギタリストが使うやつでもいいような気もするけど、新しいの買うのもアレだし、久しぶりのプログラミングだしってことで^^;

夏休みには。

春休みの突貫企画で作り出したSimpleMIDIPlayerでしたが、案の定というかなんというか、新しい学期が始まってからはほとんど手を加える事が出来ませんでした。
夏休みになったらまたいろいろいじくろうとおもいます。今日の試験が終われば実質夏休み。来年は卒論とかで忙しい可能性があるので、今年は休みを満喫せねば。

SimpleMIDIPlayerを使っている方は、あまり期待せずにお待ち下さい^^;

Index of all entries

Home > SimpleMIDIPlayer Archive

Search
Feeds

Return to page top