Interface_MIDI_NOTE を与えるストラクチャがあります。 そこには周波数、ベロシティ(音量)、鍵盤が押されているかどうかのパラメータがあります。 ストラクチャは楽譜通り、指定の音量通り、 押されたかどうかのパラメータ(1=鍵盤を押している、0=鍵盤から手を離した)に対応し、 正確にシンセサイズします。
ストラクチャを作成し、利用するには、次のことが必要です。
押されたかどうかのパラメータを処理するには、 Synth_ENVELOPE_ADSR を使うのが便利です。 また、wav のドラムを演奏する場合には、とりあえず演奏してしまって、 パラメータは無視することもできます。
ストラクチャは必要なくなった時には自動的に消滅しなければなりません。 波形とエンベロープは両方とも終了時に終了のパラメータを与えるので、消すのは簡単です。
ストラクチャは名前を付けて公開しなければなりません。
Synth_MIDI_ROUTER オブジェクトに対しては、 例えばチャンネル1に midi イベントが到着するたびに ストラクチャを作成するように指示することができます。
おっと、それからストラクチャはおそらくバスに作成するオーディオデータを演奏します。 データはエフェクトの後に処理して、直接スピーカに送ると便利です。