迷笛巴士:Processing向Ableton發送MIDI
來自專欄奇譚CHItalk7 人贊了文章
為了實現Processing發送數據給Ableton LIVE,一直糾結於OSC sender/Receiver。之後發現Ableton OSC接收插件並不是很多,又不想氪金買插件,所以想試試發送MIDI信號。
就這樣找到了midibus這個Processing 包。
這個包的定位官網介紹很清楚,midibus可以讓processing實時收發midi信號。
既然叫做巴士,就只管信號接送,不管存儲。
所以音序器,MIDI文件讀寫,倒放這些功能都不支持。
下面來介紹一下processing發送MIDI給Ableton的具體操作步驟:
1.在processing中打開the midibus的范常式序「Basic」
import themidibus.*; //Import the libraryMidiBus myBus; // The MidiBusvoid setup() { size(400, 400); background(0); MidiBus.list(); // 顯示MIDI設備列表 // 設備埠序號 輸入 輸出 // | | myBus = new MidiBus(this, -1, 3);}void draw() { int channel = 1; int pitch = 64; int pitchA=60; int velocity = 127; myBus.sendNoteOn(channel, pitch, velocity); // Send a Midi noteOn delay(200);//Duration myBus.sendNoteOff(channel, pitch, velocity); // Send a Midi nodeOff myBus.sendNoteOn(channel, pitchA, velocity); // Send a Midi noteOn delay(200);//Duration myBus.sendNoteOff(channel, pitchA, velocity); //int number = 0; //int value = 90; //myBus.sendControllerChange(channel, number, value); // Send a controllerChange //delay(2000);}
在成功連接DAW之前,可以先運行一下程序,看一下MIDI設備列表。
Available MIDI Devices:
----------Input----------[0] "Real Time Sequencer"----------Output----------[0] "Gervill"[1] "Microsoft MIDI Mapper"[2] "Microsoft GS Wavetable Synth"
[3] "Real Time Sequencer"
在沒有連接任何真實MIDI設備時,從來沒想到過有那麼多的虛擬設備在後台運行。
如果你沒有任何ableton之類的DAW軟體,可以先將輸出設備序號設成[2]
myBus = new MidiBus(this, -1, 2);
運行程序後就能聽到鋼琴的聲音,這是在調用WINDOWS內置的合成器。
輸入設備序號其實並不重要,設成-1,0都可以。
如果你有DAW,可以繼續到下一步
2.下載loopMIDI並安裝
下載鏈接
https://pan.baidu.com/s/130kR10mnQ_pQ0m2CofiDKwloopMIDI 可以創建虛擬MIDI埠。
這樣在不同的軟體上,你都可以找到共同的埠名稱,將它們連接起來。
安裝完畢後運行軟體,按左側「+」添加新埠
之後再運行processing Basic程序,MIDI設備列表將更新為
Available MIDI Devices:
----------Input----------[0] "loopMIDI Port"[1] "Real Time Sequencer"----------Output----------[0] "Gervill"[1] "Microsoft MIDI Mapper"[2] "Microsoft GS Wavetable Synth"
[3] "loopMIDI Port"[4] "Real Time Sequencer"
3. DAW與Processing連接到共同埠
在processing內修改埠序號,輸出到 [3]「loopMIDI Port」
myBus = new MidiBus(this, -1, 3);
在Ableton 軌道內修改輸入設備"loopMIDI Port"
之後在軌道內添加midi樂器,運行processing程序,就可以聽到程序發送過來的MIDI信號。
據說會有幾十毫秒的延時,不過對於沒什麼路徑可供選擇的我來說,還是不用在意這些細節。
推薦閱讀:
TAG:Processing編程語言 | AbletonLive10 | MIDI |