本帖最后由 novakon 于 2014-2-19 19:30 编辑 1. 什么是midi
(通常来说)midi是一种能够让电子乐器与计算机音乐软件,或者让计算机音乐软件与电子音色合成器通信的协议,协议包含软硬件规范。
2. midi控制器是什么
通过midi通信,能够控制计算机音乐软件的电子装置。
3. 硬件怎么连接
硬件上使用5针圆口(有点像老式键盘口)。两个用线缆连接起来的接口,两端针脚一一对应,其一端为发送,另一端为接收;这是因为大部分情况下,midi通信都是单向的。
我买了这一条USB转MIDI线缆,有IN和OUT两个接口,因为这里只需要发送信息到电脑,故只需要使用IN接口
midi通信,底层协议是TTL串口通信,波特率固定为31250,通过发送不同的字节表示不同的命令和参数。故,可以用单片机的串口实现midi通信。
这里有一个5针插座,用它和万用板搭一个接口电路,把脚都引出来。led不是必需的,只是为了指示工作状态。
为了实现不同对地电平器件间的通信,硬件上midi通信双方是不共地、光耦隔离的。可以把发送方理解为用信号驱动发光二极管,接收方则是用光敏三极管还原信号。
具体电路接法,以及midi命令、规范等等,请看:
XXXXXXXXXXXXXXXXXXXXXXXXXX/~gary/306/week2/XXXXXXXXXXXXml简单的说就是单片机串口发送脚TX接到第5脚,单片机电源5V接到第4脚,发送字节时TX脚拉低(平时为高),与电源产生电压差,驱动接收端的发光二极管。其他不再赘述,请参考上面所述网址。
我相信这条USB-MIDI线不会坑爹,所以该串的电阻我都没有串。为了防止短路损坏单片机IO,应串联电阻。
4. 软件发送什么
请参考链接网页中的表格,此处不赘述。在这个例子里面,按下按键发送的是note-on(音符开始),释放按键发送的是note-off(音符结束)。
第一个字节是命令,第二个字节是音高,第三个字节是按键力度。
参考我的STM8代码:
5. 看视频吧。软件是FL Studio
点击此处查看视频