我读了几本有关从Arduino创建MIDI控制器的教程,但找不到适合我的确切设置的教程。 因此,这是我自己的有关在Windows上使用Arduino创建自制USB MIDI控制器的教程。
这个法语教程尤其对我有很大帮助:https://2froblog.wordpress.com/2012/07/19/controleur-midi-via-lusb-avec-arduino-49/
- 麦克基特里克本周的诺拉自然保护区爵士乐队秋千
- 第一资本竞技场伊利诺伊州
- 法国灵魂歌手Ben L'Oncle Soul演唱《美好生活》
- 你的耳朵充满了语言。
- 成员聚焦#13:Dana Al Fardan作曲家,词曲作者,交响艺术家和DNA Records创始人
我使用Windows 10,Ableton Live 10和Arduino Uno。
我用的是Elegoo EL-KIT-001。 到目前为止,我可以推荐它。
10K旋转线性电位器中的至少2个。 他们超级便宜。
无毛MIDI 串行桥接器,将解码Arduino通过USB端口发送的内容。
例如,LoopBe1会将MIDI信号转发到Ableton或FL Studio。
Arduino IDE,它将使程序能够发送到Arduino。
如下图所示,通过面包板进行接线更容易:按照图上的说明放置电位器并进行连接。
我们希望两个电位计的左引脚都连接到Arduino的GRD,右引脚连接到Arduino的5V。 中间引脚将连接到Arduino的A0和A1引脚。

然后,您可以在Arduino IDE中创建一个新程序。
int v0 = 0;
int v0_ = 0; int v1 = 0;
int v1_ = 0; int threshold = 2;
int int_to_midi_ratio = 1024/128; void SendMidiToSerial(无符号字符word0,无符号字符word1,无符号字符word2){
Serial.write(word0);
Serial.write(word1);
Serial.write(word2);
}无效设置(){
Serial.begin(57600);
} void循环(){
v0 = AnalogRead(0)/ int_to_midi_ratio;
v1 = AnalogRead(1)/ int_to_midi_ratio;
如果(v0-v0_> =阈值|| v0_-v0> =阈值){
v0_ = v0;
SendMidiToSerial(176,42,v0);
}
如果(v1-v1_> =阈值|| v1_-v1> =阈值){
v1_ = v1;
SendMidiToSerial(176,43,v1);
}
}
Arduino程序主要使用将被调用一次的setup()
函数和将被连续调用的loop()
函数。 在其中,您可以声明全局变量和函数。
全局变量和函数
变量很简单: v0
和v1
将在循环的每一步读取引脚A0和A1。 v0_
和v1_
将是这些变量的缓冲区。
为确保我们不会一直由于信号噪声而发送数据,我们选择将检测threshold
为2,这意味着v0
或v1
仅在它们与先前值相差2个或更多时才被更新。
SendMidiToSerial函数将帮助我们使用MIDI消息格式将整个MIDI指令发送到USB端口。
setup()
函数
该程序将以57600的BAUD速率发送数据,因此您最好确保网桥中的BAUD速率也使用相同的数字:

循环功能
非常简单:我们将A0和A1引脚上的整数转换为MIDI值。 如果我们将值检测为“较新”,则将其存储并发送。
用其USB电缆连接Arduino。
将程序发送到Arduino(请确保已首先通过编译器验证了该程序)。
启动LoopBe1(确保未将其静音)。
启动Bridge并将Arduino Uno连接到LoopBe1,然后将其设置为“ On”。
启用Ableton(或FL Studio,Cubase,无论使用什么)从LoopBe1读取。
您的音乐软件现在应该可以使用电位计来接受MIDI自动化🙂
效果很好,对吧? (我知道,我的电脑上满是灰尘)。