2006年10月21日

CoreMIDI.framework @ Mac

色々とサンプルを改造したり、PDFやウェブ上のドキュメントを参考にCoreMIDIの勉強をしているのですが、用語の問題で少々悩んで停滞してました。まだ、完璧に理解しているわけではないのですが、MIDIノートの出力は出来るようになりました。

当初デバイスで出力先を一覧表示して、それを元に出力していたのですが、これだと仮想ポートが表示されず、この点でも悩んでしまったのですが、他のMIDIGetNumberOf・・・を試して、MIDIGetNumberOfDestinationsで得られるモノが実際に出力できるポートの数だと判明。それが判れば出力は簡単。

ですが、今やっている事と本来の目的は逆なんですよね。MIDIの情報を受け取って、自前のUSB機器で出力したいのです。まだMIDI関連フレームワークの全てを使ってみたわけではないのですが、思っていた関数が存在しない雰囲気。ちょっと面倒なことになるかも。

取り敢えず、USB(HID)の勉強した部分とCoreMIDIフレームワークを組み合わせれば、ゲームパッドをMIDI入力デバイスに出来るので、勉強のために作ってみます。この様な感じで沢山ツールを試作していれば、CoreMIDIの使い方が判ってくるかなと思ってます。

それにしてもMIDIのプログラミングって簡単になったモノですね。遙か昔にPC-9801で動くMIDIを使ったソフトを作った事があるのですが、その時はMIDIの出力をするだけでも随分と時間が掛かった気がします。その頃はスタジオで働きながらC言語を勉強して作ったので、スタートラインが違うのですが、その辺を考慮しても今のMac OS Xの環境は恵まれていると思います。CoreMIDIはシーケンサーを作れる関数も存在する様なので、この辺の機能を使ってリアルタイムレコーディングして、SMF保存や、XML保存できるモノも作ってみたいです。XML保存できれば、他の用途でも扱いやすくなるので、面白いかも。


・・・数時間後

エレコムのゲームパッドでMIDI出力するアプリケーションを作ってみました。MIDIノートの出力自体は問題なくできるのですが、随分と遅れている感じがします。100ms以下だとは思いますが、これでは演奏するという用途には使えないです。何処がボトルネックになっているのか、まだ分からないので、結構厄介かも。現状はGUI無しなので、XcodeでGUIありバージョンを作ってみて、それから原因追求ですかね。Terminal.appで動かしている事でロスになっているだけならばよいのですが・・・。

閲覧数: 3054 / はてなブックマークusers

関連商品

amazon.co.jp・詳細ページへ

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト