火曜日, 7月 04, 2006

「サクラ」のトラックとチャンネル指定

昨日は「サクラ」のTrack番号を使って複数のパートを作る方法を試してみたのだが、MIDIには複数パートを演奏させる方法として、もう一つチャンネルという重要な仕組みがある。

MIDIチャンネル
http://www.b-sharp.com/midi/spec1/midi004.html

今日は「サクラ」のチャンネルの使い方を試してみる。まず、今までsfzなどのソフトシンセを使っていた場合は、「サクラ」のメニューにある設定→マルチメディアの設定で、MIDIの既定のデバイスを、Windowsの内蔵MIDI音源であるMicrosoft GS Wavetable SW Synthに設定を戻して欲しい。

そして、昨日までやったRandomに音を作るプログラムをTrack10に書いてみる。

//---------- ここから ----------

Track(10)
[100 @(1) n(Random(021,108))(RandomSelect(4,8))]

//---------- ここまで ----------



ピアノの音ではなく、パーカッションの音が鳴ったと思う。実はMIDIのGM規格では、MIDIチャンネル10はリズム演奏用と決められているのだ。

では、何でTrack(10)がMIDIチャンネルの10になるのかというと、「サクラ」ではチャンネルの指定を省略した場合は、トラック番号と同じチャンネル番号を指定したことになるのだ。

「サクラ」でチャンネル指定を明示的に行う場合は、Channel(n)のように指定(n=1~16)する。ChannelはCHという省略型も使える。

トラックにチャンネルを設定
http://oto.chu.jp/doc/command/24.htm

要するに、チャンネルはトラックと1対1の関係だ。トラックをどのチャンネルに出力するかを指定するわけだ。

Track(1) CH(10) と書けば、トラック1の音をチャンネル10で鳴らす指定になる。

シーケンサートラックとMIDIチャンネルの関係
http://music.web-sun.com/dtm/dtm4.html

ということで、今まで「サクラ」でトラック指定もチャンネル指定も省略した場合はTrack(1) CH(1)を指定したことになっていたのだ。

ところで、sfzでSoundeFontを使ってGM/GS音源を鳴らす場合、チャンネル10は自動的にリズム楽器にならなかった。sfzでGM規格のMIDIを鳴らす場合は、もしチャンネル10が使われている場合は、手動でチャンネル10の音色をBANK128のドラムセット(Standaard)に切り替えておく必要があるようだ。