Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic クラスの概要」を参照すること。
音色は、基本的なミュージック ティンバーまたはその他のサウンドを表すオブジェクトである。旧来のハードウェア MIDI ポートを除くすべてのポートで、各音色はダウンローダブル サウンド (DLS) の独自のセットに関連付けられる。DLS は、音色を使用する前にポートにダウンロードしなければならない。
ダウンローダブル サウンドは、3 つの抽象化レベルで処理できる。最も高いレベルでは、ファイルからバンドをロードし、バンド オブジェクトを使って音色の DLS をダウンロードする。次のレベルでは、コレクションの各音色に直接アクセスして、ポートにダウンロードする。最も低いレベルでは、DLS データそのものを操作する。
音色の管理には、次のオブジェクトとインターフェイスを使用する。
音色は DirectMusicCollection オブジェクトに格納される。このオブジェクトは、DLS ファイルのインスタンスを表す。DirectMusicCollection オブジェクトがロードされると、IDirectMusicCollection インターフェイスを使って、コレクションの音色を列挙し、指定した MIDI パッチ番号を持つ音色へのポインタを取得できる。
コレクションの音色は、IDirectMusicInstrument インターフェイスへのポインタによって表される。このポインタを IDirectMusicPerformance::DownloadInstrument または IDirectMusicPort::DownloadInstrument メソッドに渡して、ポートに DLS データをダウンロードすることができる。
ダウンロードされた音色は、IDirectMusicDownloadedInstrument インターフェイス ポインタによって表される。このポインタは、IDirectMusicPort::UnloadInstrument を呼び出して音色をアンロードする場合にのみ使われる。
音色用の独自の DLS データをダウンロードする必要があるアプリケーション (コレクション編集ツールなど)は、ポート オブジェクトによって実装された IDirectMusicPortDownload インターフェイスのメソッドを使って、シンセサイザ用のデータを取得できる。このインターフェイスを使って音色データのバッファを割り当てると、IDirectMusicDownload インターフェイス ポインタが返される。このインターフェイスの唯一のメソッドを使って、バッファそのものへのポインタを取得することができる。
DirectMusicBand オブジェクトは、一連の音色を表しており、これによって MIDI プログラムはミュージック セグメントに変更を加える。バンドは、オーサリング ツールで作成され、ファイルから別個にロードすることができる。また、オーサリングされたセグメントまたはスタイルの一部とすることもできる。
IDirectMusicBand インターフェイスを使って、バンドをダウンロードおよびアンロードすることができる。このインターフェイスには、バンドからセカンダリ セグメントを作成するメソッドも含まれる。このセグメントはパフォーマンスによって演奏され、プログラム チェンジを実行する。
コレクションとバンドの重要な違いは次のとおりである。