1

アプリで複数のトラックを同時に再生する必要があります。トラックは、通常のオーディオファイルまたはMIDIノートのセットである可能性があります。そこで、オーディオグラフを設定し、さまざまなオーディオユニット(ファイルプレーヤーAUとサンプラーAU)をマルチチャンネルミキサーに接続しました。マルチチャンネルミキサーの出力は、オーディオファイルとMIDIノートを再生するためにリモートIOユニットに接続されています。サンプラーユニットには、さまざまな楽器のsf2ファイルがロードされています。これはすべて正常に機能しますが、2つ以上のMIDIサンプラーオーディオユニットがあり、MusicDeviceMIDIEvent関数を使用してそれらのユニットで同時にMIDIノートを再生しようとすると、数回のループ後に出力サウンドが歪んだり壊れたりします。同時に約10の楽器トラックを演奏する必要があり、3つ目のmidiユニットを追加した直後に問題が発生します。このアプローチに問題がある場合、誰かが私を指摘できますか?もしそうなら、

4

1 に答える 1

1

異なるトラックで複数の MIDI ノートを再生しても問題ありません。うまくいきました。新しいノートを再生する前に、再生中の MIDI ノートを必ず停止してください。以下のように、MIDIノートを停止するために同じ機能を使用できます

UInt32 noteCommand =     kMIDIMessage_NoteOff << 4 | 0;
UInt32 velocity = 0;

MusicDeviceMIDIEvent (samplerUnit,                //audiounit
                                 noteCommand,    
                                 note,            //note being played
                                 velocity,
                                 0);
于 2013-02-10T09:20:12.763 に答える