AVAudioUnitSamplerにはチャンネル上でMIDIの音をならすためのstartNoteと、停止させるためのstopNoteメソッドがある。でも、例えば自動で演奏させていて、停止ボタンを押した時に全ての音を消したい、と思った時、全ての音を止めるためのメソッドがどうもないっぽい。
ではどうするのか。
AVAudioUnitSamplerにはsendMIDIEventという、MIDIイベントを直接送るできることのできる機能がある。それを利用することでチャンネルの音を全て停止することができた。
具体的には下記のやり方でできた。
コメント