chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶Ableton的Arduino MIDI控制器

帶Ableton的Arduino MIDI控制器

2023-02-08 | zip | 0.17 MB | 次下載 | 2積分

資料介紹

描述

概括

大多數(shù) Midi 控制器教程和項(xiàng)目僅基于對(duì) Arduino 工作的解釋,而不是在 DAW 本身中使用它。我想在一個(gè)地方創(chuàng)建一個(gè)包含所有必要內(nèi)容的教程。通過這個(gè)項(xiàng)目,我想幫助初學(xué)者更好地理解創(chuàng)建和使用控制器的過程,我希望它對(duì)某人有用。

我想做一個(gè) midi 控制器很久了,我終于做到了,現(xiàn)在我將與你分享這個(gè)項(xiàng)目。我使用的 Arduino Uno 無法通過 USB 發(fā)送 MIDI 消息,因此必須為此使用特殊程序(稍后將在文本中解釋)。

以下部分將描述電路、Arduino 代碼以及如何連接到計(jì)算機(jī)和 DAW,在本例中為 Ableton。

電路

這是一個(gè)非常簡單的電路。我使用了 9 個(gè)按鈕,但不是在矩陣中,因?yàn)槲蚁胍聪露鄠€(gè)按鈕的能力(這更容易,而且我有未使用的數(shù)字引腳 - 我使用 9,在矩陣中是 6)。

Button 3 ==> D2     
Button 2 ==> D3 
Button 1 ==> D4 
Button 6 ==> D5   
Button 5 ==> D6 
Button 4 ==> D7
Button 9 ==> D8  
Button 8 ==> D9 
Button 7 ==> D10 

MIDI 映射

我定義了 9 個(gè) MIDI 音符,從 36 到 45,以及 NOTE_ON 和 NOTE_OFF。

本 MIDI 教程將幫助您了解如何使用 MIDI 語言來控制任何使用 MIDI 協(xié)議的設(shè)備。

#define NOTE_ONE 36
#define NOTE_TWO 37
// Define all notes here.
#define NOTE_ON_CMD 0x90
#define NOTE_OFF_CMD 0x80
#define MAX_MIDI_VELOCITY 127 

通過 USB 的 MIDI

因?yàn)?Arduino Uno 不能自己發(fā)送 MIDI 音符到 DAW,我們必須使用兩個(gè)額外的程序 - LoopMidi和Hairless MIDI<->Serial Bridge 。

使用 LoopMidi,我們創(chuàng)建了一個(gè)虛擬 MIDI 端口,我們可以在 Hairless Midi 中使用它來連接 Arduino 端口。

代碼解釋

我創(chuàng)建了 Button 類并像這樣使用它:

int NUMBER_BUTTONS = 9;
Button Button1(4, NOTE_ONE);
Button Button2(3, NOTE_TWO);
Button Button3(2, NOTE_THREE);
Button Button4(7, NOTE_FOUR);
Button Button5(6, NOTE_FIVE);
Button Button6(5, NOTE_SIX);
Button Button7(10, NOTE_SEVEN);
Button Button8(9, NOTE_EIGHT);
Button Button9(8, NOTE_NINE);
Button *Buttons[] {&Button1,&Button2,&Button3,&Button4,&Button5,&Button6,&Button7,&Button8,&Button9}; 

要了解有關(guān)按鈕實(shí)現(xiàn)的更多信息,請(qǐng)參閱 Buttons.cpp。

因?yàn)槲覀儾皇褂萌魏?a target='_blank' class='arckwlink_none'>電阻器而只將按鈕連接到數(shù)字引腳和地,所以我們使用 INPUT_PULLUP 而不是 INPUT。

//Buttons.cpp
pinMode(_pin, INPUT_PULLUP); 

唯一棘手的部分是您沒有像您想象的那樣尋找HIGH信號(hào)——您的按鈕在按下時(shí)會(huì)發(fā)出信號(hào)。LOW (0)

     //  Button is pressed     
     if (state == 0) 
     {
        midiNoteOn(Buttons[i]->Note,127);
     }
     //  Button is not pressed
     if (state == 1) 
     {
     }

這也意味著初始按鈕狀態(tài)為 1,而不是 0。

//Buttons.cpp
 _state = 1;

每個(gè) NOTE ON 消息都需要其相應(yīng)的 NOTE OFF 消息。按下按鈕時(shí),它會(huì)發(fā)送 NOTE_ON 消息。當(dāng)按鈕被釋放時(shí),它會(huì)發(fā)送 NOTE_OFF 消息,所以除了初始狀態(tài)之外,我將最后記住的狀態(tài)添加到代碼中。

//Buttons.cpp
 _lastState = 1;

如果當(dāng)前狀態(tài)與上一個(gè)狀態(tài)不同,我們只發(fā)送 MIDI 消息。

//Buttons.cpp
if(state!= _lastState)
{
//....
}

使用這兩個(gè)函數(shù)發(fā)送 MIDI 信息。函數(shù)參數(shù)是音符midiVelocity (我使用最大速度)。

void midiNoteOn(byte note, byte midiVelocity)
{
     Serial.write(NOTE_ON_CMD);
     Serial.write(note);
     Serial.write(midiVelocity);
}
void midiNoteOff(byte note, byte midiVelocity)
{
     Serial.write(NOTE_OFF_CMD);
     Serial.write(note);
     Serial.write(midiVelocity);
}

我把程序邏輯放在了functionupdateButtons函數(shù)中。

void updateButtons() {
 for (int i = 0; i < NUMBER_BUTTONS; i++) {
     int state = Buttons[i]->getButtonState();
     //  Button is pressed     
     if (state == 0) 
     {
        midiNoteOn(Buttons[i]->Note,127);
     }
     //  Button is not pressed
     if (state == 1) 
 	midiNoteOff(Buttons[i]->Note,0); 
     }
 }

在循環(huán)方法內(nèi)部調(diào)用函數(shù)。

void loop() {
 if (NUMBER_BUTTONS != 0) updateButtons();
}

將控制器與 DAW (Ableton Live) 結(jié)合使用

作為使用 DAW 的初學(xué)者,我不知道如何在那里連接任何東西。當(dāng)我連接我的 Korg Nanokey 時(shí),Ableton 自己識(shí)別了它,我可以立即使用控制器。這(當(dāng)然)不是 Arduino 控制器的情況,因?yàn)樗皇?HID 設(shè)備并且 PC 仍然將其識(shí)別為 Arduino。

我將在這里向您展示如何在 Ableton Live 10 中連接和使用您的 Arduino MIDI 控制器。

  • 與 Ableton 聯(lián)系

打開loopMIDI并像下一張圖片一樣創(chuàng)建新的虛擬 MIDI 端口。

?
?
?
poYBAGPjG2iARpRdAABBgc8lUsE449.png
?
1 / 2 ?使用 loopMIDI 創(chuàng)建虛擬 MIDI 端口
?

打開hairless-midiserial并分配串行端口、MIDI 輸出和 MIDI 輸入,如下圖所示。對(duì)于串行端口,我們選擇 Arduino Uno 端口,對(duì)于 MIDI 輸入和輸出,我們使用我們?cè)谏弦徊街袆?chuàng)建的虛擬 MIDI 端口。

在 Arduino 草圖中將波特率設(shè)置為相同的速率。轉(zhuǎn)到File>Preferences ,在那里你應(yīng)該設(shè)置波特率。

如果一切正常,您可以調(diào)試控制器發(fā)送的 MIDI 消息。按下控制器上的按鈕并檢查無毛 MIDI 中的傳入 MIDI 消息。

?
?
?
pYYBAGPjG26AJA8IAABbW_iZmxw682.png
?
1 / 2 ?無毛 MIDI
?

不要關(guān)閉無毛MIDI!

打開 Ableton Live,轉(zhuǎn)到“選項(xiàng)”選項(xiàng)卡,然后轉(zhuǎn)到“首選項(xiàng)”。鏈接 MIDI 選項(xiàng)卡在本例中應(yīng)該看起來像這樣。

pYYBAGPjG3GAGHsYAABoNt5XBMU587.png
Ableton Live 10 首選項(xiàng)窗口
?

要檢查一切是否連接良好以及 Ableton 是否正在讀取 MIDI 消息,我們將查看 Ableton 的右上角。當(dāng)按下控制器上的按鈕時(shí),頂部的框應(yīng)該閃爍,如下一個(gè)示例所示。

檢查 Ableton Live 是否從控制器讀取 MIDI 消息
?

控制器可以使用了!

  • 將控制器用作鼓架鍵盤

選擇 MIDI 音軌。Monitor部分選擇In ,而不是Auto ,然后在MIDI 中選擇您的揚(yáng)聲器輸出。您現(xiàn)在應(yīng)該能聽到鍵盤的聲音。鼓架也應(yīng)該這樣做。

設(shè)置“Monitor”和“MIDI to”部分以在 DAW 中聽到您的控制器
?

我完成的項(xiàng)目

我在這個(gè)項(xiàng)目中使用了舊揚(yáng)聲器箱和我在家里找到的一些塑料。我將兩個(gè)塑料板切割成外殼的尺寸,并為按鈕和一個(gè)稍后添加的 LED 鉆孔。

我還有另一個(gè)帶有相同外殼的舊揚(yáng)聲器,我將用于另一個(gè) MIDI 控制器,這次帶有旋鈕和操縱桿

?
?
?
pYYBAGPjG9yAPkvxABJ5tTJ_0cA497.jpg
?
1 / 8 ?木箱和帶按鈕的塑料板(我在切割塑料時(shí)弄碎了它 -.-)
?

?

?
?
?
pYYBAGPjHAWAdwncAAh47BnbgfI49.jpeg
?
1 / 3 ?第一版 MIDI 控制器
?

去做

- 長按按鈕可更改為 CC 模式。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊(cè)
  2. 0.40 MB   |  4次下載  |  2 積分
  3. 2光伏并網(wǎng)逆變器原理
  4. 7.31 MB   |  3次下載  |  2 積分
  5. 3T20電烙鐵原理圖資料
  6. 0.27 MB   |  2次下載  |  免費(fèi)
  7. 4PL83081 雙路恒流同步降壓轉(zhuǎn)換器技術(shù)手冊(cè)
  8. 3.34 MB   |  1次下載  |  免費(fèi)
  9. 5PL88052 4.8V至60V輸入,5A,同步降壓轉(zhuǎn)換器技術(shù)手冊(cè)
  10. 3.36 MB   |  1次下載  |  免費(fèi)
  11. 6LX8201微孔霧化驅(qū)動(dòng)芯片電路圖資料
  12. 0.15 MB   |  1次下載  |  免費(fèi)
  13. 7PC6200_7V直流電機(jī)驅(qū)動(dòng)器技術(shù)手冊(cè)
  14. 0.47 MB   |  次下載  |  免費(fèi)
  15. 8恒溫晶體振蕩器(OCXO)FOC-2D:20.6×20.6mm在通信基站和測(cè)試設(shè)備中的應(yīng)用參數(shù)規(guī)格
  16. 485.75 KB  |  次下載  |  免費(fèi)

本月

  1. 1如何看懂電子電路圖
  2. 12.88 MB   |  329次下載  |  免費(fèi)
  3. 2RK3588數(shù)據(jù)手冊(cè)
  4. 2.24 MB   |  14次下載  |  免費(fèi)
  5. 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
  6. 1.63 MB   |  12次下載  |  免費(fèi)
  7. 4STM32F10x參考手冊(cè)資料
  8. 13.64 MB   |  12次下載  |  1 積分
  9. 5OAH0428 V1.0英文規(guī)格書
  10. 5.86 MB   |  8次下載  |  免費(fèi)
  11. 6NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊(cè)
  12. 0.40 MB   |  4次下載  |  2 積分
  13. 7PID控制算法學(xué)習(xí)筆記資料
  14. 3.43 MB   |  3次下載  |  2 積分
  15. 8光伏并網(wǎng)逆變器原理
  16. 7.31 MB   |  3次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935132次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191415次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183349次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81599次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65990次下載  |  10 積分