本日、自作されたプログラムで生ピアノを制御するお客様がいらっしゃいました。
ピアノ側の受信MIDIチャンネルを1に設定し、お客様にそうお伝えしました。
お客様は自作プログラムの中で送信MIDIチャンネルを1に設定しましたが、なぜかこの状態ではMIDIで演奏させようとしてもピアノが動きませんでした。
お客様のプログラムの出力をMIDI パッチベイに入力すると信号が出力されることが確認でき、別のMIDIキーボードでチャンネル1を出力させるとピアノは動きます。いろいろ試行をしているうちに、お客様が、プログラムでチャンネルを0にすることで無事動くことに気づかれました。
それをきっかけに古い記憶が蘇りました。MIDIチャンネルは内部データとしては0オリジンで0-15の範囲、けれども楽器やDAWの上からは、1オリジンで1-16と呼びならわしている…と。つまり、コンピュータのプログラムの中でMIDIチャンネル1として出力したデータは、ピアノから見るとMIDIチャンネル2だったわけです。
現在ほとんどの場合MIDIチャンネルは1-16であるという前提で会話してますが、もし、内部データを扱うことがあったら、「表現形式とは違い0オリジンだ」と、思い出す必要があると感じた経験でした。
DAWの上にチャンネル1として表現されているデータも、内部データはチャンネル0だ