
PdでMIDI(その1:Pdでドラムセットを演奏する), originally uploaded by design informatics, myu.
オープンソースのデータフロープログラミング環境であるPure Data(Pd)を使ってMIDI信号を送受信するための方法を解説します。
MIDIについて少々:MIDI(Musical Instruments Digital Interface)とはコンピュータや電子楽器などの間で主に演奏情報をやりとりするための通信上の取り決め(プロトコル、と言います)のことです。狭い意味での演奏にとどまらずたとえば通信カラオケなど非常に広い範囲で使われています。
チャンネル・ノートナンバー・ベロシティ:PdはこのMIDIプロトコルの送受信が簡単にできるのですが、ここではとりあえず手始めにPdからパソコンに内蔵されているドラム音源をならしてみます。そのための準備としてMIDIについて3つだけ理解しておいてください。
まずは「チャンネル」です。チャンネルはMIDI信号を送受信する際の「宛先」のようなものです。送信側と受信側のチャンネル番号をあわせることで信号のやりとりができるようになります。チャンネルは基本的に16まで使えます。音楽的な観点でいうとチャンネルは「パート」や「トラック」の区別に相当するものだと考えてよいでしょう。ここではチャンネル「10」を使います。10番は特別なチャンネルで、このチャンネルを使ってならす音源としてデフォルトでドラムセットが割り当てられています(他のチャンネルはデフォルトではすべてピアノになっていると思います)。
もう一つは「ノートナンバー」で、これは音の高さ(音程)のことです。ただし、ドレミファソ・・ではなく、ピアノの鍵盤の低い方から順番に割り当てられた番号(21〜108)で音程を識別します。たとえば中央のドレミファソラシドは「60 62 64 65 67 69 71 72」となります(黒鍵の部分が一つ飛びになることに注意!)。ドラムセットをならす場合もノートナンバーを使いますが、その場合は音程ではなく打楽器の種類が識別されます。通常「36」がバスドラム(ドン)、「38」がスネアドラム(タン)、「42」がハイハット(チッ)に割り当てられているので、これらをならしてみましょう。
3番目が「ベロシティ」で、これは音の大きさ、つまりノートナンバーで指定した音程(あるいは打楽器)をどのくらいの音量で鳴らすかを指定します。0〜127の値で指定し、127が最大音量です。
準備:Pdを立ち上げて「Media」メニューから「MIDI settings…」を選択してダイアログを開いてください。このダイアログの「output device 1」の右側のポップアップメニューをクリックすると「Microsoft GS Wavetable Synth」(多少名称が異なるかもしれません)という選択しが見えると思うので、これを選択して「OK」してください。「Microsoft GS Wavetable Synth」というのはwindowsに内蔵されているソフトウェア音源のことで、この設定でPdと音源が接続されPdから送りだしたMIDI信号がwindowsの内蔵音源に届くようになります(Macの人はMIDI settingsから内蔵音源が直接見えないので別途解説します)。
Pdパッチの制作:上図の通りパッチをくんでください。[noteout]は音をならすためのMIDI信号を送信するためのオブジェクトで、アーギュメントがMIDIチャンネル番号となります。ここではドラムを鳴らしたいので「10」です(第3インレットからの入力で指定することもできます)。この[noteout]の第1インレットにノートナンバーをメッセージとして渡してやると、そのノートナンバーに相当する音程(ここでは打楽器)の音がなります。ここではバスドラム、スネアドラム、ハイハットをならすための各ノートナンバーメッセージが、[key]と[select]オブジェクトを使って検知されるパソコンのキー入力をトリガーとして[noteout]に送られるようにしました。「b(キー番号=98)」がバスドラム、「s(同115)」がスネアドラム、「h(同104)」がハイハットです。[key]のアウトレットに接続したナンバーボックスでキー番号を調べることができるので、好きなキーにカスタマイズしてください。また、どのキーが押されたときもベロシティ「100」が[noteout]の第2インレットに入力されるようになっています。パソコンのキーを使った簡単なドラムパッドで遊んでみてください。
- 新しい: 紫山デザインセンター
- 古い: 卒展会場風景5