2020年2月4日火曜日

Arduino-MIDI-mocoのサンプルソースコード

このサンプルは、ハードウェアシリアルが、4つある
Arudino MEGA用です
ハードウェアシリアルが、1つしかないArduinoでは
ソフトウェアシリアルというやりかたになるので・・・そちらは知りません。
たぶん SoftwareSerial




#include <MIDI.h>
    MIDI_CREATE_INSTANCE(HardwareSerial, Serial,    midiUSBPC);   //TX0/RX0 (TO PC-USB serial)
    MIDI_CREATE_INSTANCE(HardwareSerial, Serial1,    midiPORT);   //TX1/RX1(外部MIDI)
    MIDI_CREATE_INSTANCE(HardwareSerial, Serial2,    midiPORT_B); //TX2/RX2(外部MIDI)



//=================================================
//MIDIポート A   からPCへのへの処理(MIDIポートAに入力があると、ここに飛んでくる)
//=================================================
void handlePORTprocess(byte channel, byte number, byte value)
{
      midiUSBPC.sendControlChange(number, value, Channel); //send to TX0
}



//=================================================
//MIDIポート B   から PCへの処理(MIDIポートBに入力があると、ここに飛んでくる)
//=================================================
void handlePORT_Bprocess(byte channel, byte number, byte value)
{
      midiUSBPC.sendControlChange(number, value, Channel); //send to TX0
}



//=================================================
//PCからMIDIポートへの処理(PCからMIDIデータがくると、ここに飛んでくる)
//=================================================
void handleUSBPCprocess(byte channel, byte number, byte value)
{
        midiPORT.sendControlChange(number, value, Channel);// To TX1
        midiPORT_B.sendControlChange(number, value, Channel);// to TX2
}






//=================================================
void setup()
{
    midiUSBPC.setHandleControlChange(handleUSBPCprocess);
    midiUSBPC.begin(MIDI_CHANNEL_OMNI);
    midiUSBPC.turnThruOff();//これがないと、入力をスルーして出力してしまう



    midiPORT.setHandleControlChange(handlePORTprocess);
    midiPORT.begin(MIDI_CHANNEL_OMNI);
    midiPORT.turnThruOff();//これがないと、入力をスルーして出力してしまう



    midiPORT_B.setHandleControlChange(handlePORT_Bprocess);
    midiPORT_B.begin(MIDI_CHANNEL_OMNI);
    midiPORT_B.turnThruOff();//これがないと、入力をスルーして出力してしまう

}
void loop()
{
    midiPORT.read(); //read RX1
    midiPORT_B.read(); //read RX2
    midiUSBPC.read(); //reat RX0
  }
//この例では、MIDIコントロールチェンジにしか対応していません

x

0 件のコメント:

コメントを投稿

カメラ3台

 DOCKのUSBに2台 3台目は、本体のUSB。 3台とも20メートル延長OK