proMidi2.0関数解説
前回に引き続きpromidi講座です。
processingとproMidiの導入については
processingでmidi入力を受け取る for windows
を参照してください。
前回のソースコードは
import promidi.*;
MidiIO midiIO;
boolean[] isNoteOn = new boolean[254];
void setup()
{
size(500, 500);
smooth();
background(0);midiIO = MidiIO.getInstance(this);
//println("printPorts of midiIO");
//midiIO.printDevices();
midiIO.openInput(0,0);for(int i=0; i
でした。上から順に見てみましょう。
import promidi.*;
MidiIO midiIO;
import promidi.*;はproMidiを使いますよって宣言です。
MidiIO midiIO;はmidi信号をやり取りするための箱を用意しています。
void setup()
{
------------省略-----------------
midiIO = MidiIO.getInstance(this);
//println("printPorts of midiIO");
//midiIO.printDevices();
midiIO.openInput(0,0);
------------省略-----------------}
midiIO = MidiIO.getInstance(this);はmidi信号をやり取る箱とパソコンとをつなぎます。
コメントアウトしていますが、midiIO.printDevices();は現在パソコンで認識されているMidi機器の一覧が出ます。
midiIO.openInput(0,0);で認識されているMidi機器からどの機器からの入力を受け取るかを指定します。
1つ目の引数がMidi機器の番号、2つ目がチャンネルの番号になります。Midi機器の番号はprintDevices();で表示した際にinputの横に表示された番号を使用します。ここでは
の機器を使用するため1つ目の引数が0になっています。
2つめの引数は基本的に0で問題ありません。
void noteOn(Note note, int deviceNumber, int midiChannel)
{
------------省略-----------------
}
openInputで入力設定された機器から入力があった時この関数が呼ばれます。
noteには入力された鍵盤,パッドの番号が
deviceNumberには入力されたmidi機器の認識番号が
midiChannelには入力されたmidiChannelの番号が
格納されています。
ですのでnoteの値を参照することで、どのキーから入力されたかがわかります。
void noteOff(Note note, int deviceNumber, int midiChannel)
{
------------省略-----------------
}
noteOnでは鍵盤などを押したときに呼ばれましたが、
鍵盤を離したときにこちらが呼ばれます。
引数はnoteOnと同じなので割愛します。
以上、前回導入にしようした関数の解説でした。
他にも関数は多数用意されており、英語のリファレンスがあるので必要な方は参照してください。
proMidiリファレンス