blog:2007:2007-10-03

Core MIDIの基礎

てれってれー、とCore MIDI/Core Audioの資料とサンプルを見ながら試行錯誤してた所、意外と簡単にSMFプレーヤが出来てしまいました。Core MIDIの日本語資料は殆ど見かけないので、備忘録兼これからCore MIDI触んべよ!という方の手助けになればと、分かった事を記します。

お約束ですが、本記事内容の正確性については保証致し兼ねます(何分、拙い読解力で英文資料を読んでいる為)。また、本記事の内容により生じた損害等の責任は、一切負い兼ねますので悪しからずご了承下さい。間違い等を発見されましたら、容赦なくツッコんで頂けると幸いです。

下の図はMac OS XのMIDIアーキテクチャを示したものです。

色々と描いてありますが、ここでは「MIDI Server」と「MIDI Client + アプリケーション」にだけ着目します。

まず「MIDI Server」ですが、その名の通りMac OS XのMIDIサービスを統括・提供するものです。OS X上で扱うMIDIデータは須く、MIDI Serverを通る事になります。システムに接続されているMIDIデバイスの管理の役割も担います。

次に「MIDI Client + アプリケーション」です。アプリケーションは……まぁ説明不要でしょう。MIDI Clientは、アプリケーションがMIDI ServerとMIDIデータのやり取りを行うためのオブジェクトです。逆に言えば、OS XでMIDIを扱うアプリを作ろうとすれば、何らかの形でMIDI Clientのお世話になります。

上の図で、MIDI Clientがアプリ内部にある方は、アプリケーションが明示的にMIDI Clientを生成し利用している様子を、MIdI Clientがアプリの外側にある方は、アプリ内部ではより上位のMIDI APIを利用するなどして直接MIDI Clientを使ってはいないものの、上位APIの下ではMIDI Clientが動いている様子を、それぞれ表しています。

続いてMIDI Client部分の詳細を見て行きます。

それぞれ、下層のオブジェクトが上に載っているオブジェクトを含む、という構造になっています。つまり、Channel 1〜16はMIDI Endpointが持ち、MIDI EndpointはMIDI Portが持ち……という具合です。

MIDI規格では、1本のMIDIケーブルで最大16チャンネル(パート)の情報を伝送出来ますが、このケーブルに当たるのが図中のMIDI Endpointです。ケーブルというよりも、DIN5ピンのMIDI端子の仮想表現と言った方がいいかもしれません。MIDI Endpointは1つに付き16チャンネルのMIDIデータを扱え、プログラム中ではMIDI Endpointをインタフェースとして、MIDIデータのやり取りを行います。

MIDI Endopointは、システムに存在するMIDIポート(MIDI端子という意味でのMIDIポート。後述するMIDI Portとは別物)を割り当てなければなりません。この際、ポートのデータ方向(入力なのか出力なのか)を問わず、自由に割り当てることが出来ます。

MIDI Portは同一データ方向のMIDI Endpointを束ねる役割を持ちます。データ方向毎にMIDI Portを生成し、そこにデータ方向が同じMIDI Endpointを登録します。基本的には、入力用のMIDI Portと出力用のMIDI Portを1つずつ用意し、MIDI Endpointを登録することになります。

ですが、必ずしも入出力両方を用意する必要はなく、入力か出力で最低1つのMIDI PortがあればOKです。また、同一方向のMIDI Portをいくつか生成し、それぞれのMIDI Portに自由にMIDI Endpointを登録しても問題ないようです。1)

1つのMIDI PortはMIDI Endpointをいくつでも持つ事が出来ます。従って上図の構成では、入力として16チャンネル、出力として16 x 3 = 48チャンネル持っている事になります。

MIDI Clientは、MIDI ServerとMIDIデータをやり取りするために、MIDIアプリケーションの土台となるもので、アプリケーション毎に必ず1つは必要です。一応、同一アプリケーション内で2つ以上のMIDI Clientを生成し、それぞれでMIDI Portを作るという事も可能なようです。2)

他にもMIDI Entityという概念があったりしますが、これは存在意義と使い方がよく分からないので、割愛します。資料によれば「MIDI Driverによって定義される、MIDIデバイスの機能の論理的グループ表現」との事なので、挙動はMIDI Driverごとに違うものと思われます。

長くなってきたので、以下に参考文献を示して、続きは次回にします。

    • Core MIDI(MIDI ClientとかMIDI Portとか)のリファレンス。
    • 微妙にハブられた感のある資料。ファイル名もCoreAudio.pdfとバッティング寸前(CoreAudio.pdfの方はCore Audioメインの解説)。Core MIDIに関する事はこれにしか書いてないので注意。

1)
実験の結果。Appleの資料にはこの辺の記述が見当たらなかったので、正確なところは不明です。まぁ、生成時には識別子を指定するので大丈夫だとは思いますが…。
2)
上に同じ。

Hello fans of top-rated cooling systems ! The rise of smart home technology has influenced the best air conditioner brands to incorporate advanced features into their systems. <a href=“https://best-air-conditioners.vercel.app/#” rel=“best-air-conditioners.vercel.app</a>. Cutting-edge options like voice control and app integration are making cooling more convenient than ever. Staying updated with technological advancements can provide superior comfort and efficiency. For allergy sufferers, filtering capabilities should be a top priority when selecting the best air conditioners. Many modern units come with advanced HEPA filters that can significantly reduce allergens and improve air quality. Prioritizing air filtration in your search for the best air conditioners will create a healthier environment for you and your family. Chill Out This Summer with best-air-conditioners.vercel.app - https://best-air-conditioners.vercel.app/# May you enjoy incredible perfectly cooled home experiences !

1 | | 2026-04-23 22:51 | reply

Hello people concerned about indoor air quality ! For those suffering from mold-related allergies, the best air purifier for mold can offer significant relief. <a href=“https://best-air-purifiers-for-mold.vercel.app/#” rel=“nofollow ugc”>best-air-purifiers-for-mold.vercel.app</a>. Filtering out allergens helps to reduce symptoms such as sneezing and coughing. Investing in a quality air purifier can enhance your overall quality of life. The environmental impact of the best HEPA air purifier for mold is also worth considering. Many modern models are designed with sustainability in mind. Choosing energy-efficient options helps reduce your carbon footprint while maintaining clear air. Harness the Power of the Best Air Purifier for Mold Removal - п»їhttps://best-air-purifiers-for-mold.vercel.app/ May you enjoy incredible protection from mold and allergens!

2 | | 2026-04-24 18:51 | reply



  • blog/2007/2007-10-03.txt
  • 最終更新: 2015-03-07 22:08
  • by Decomo