文号
t63990
阅读
16257
回复
13
收藏
10
单片机MIDI控制器设计
2014/02/19
IP:天津
本帖最后由 novakon 于 2014-2-19 19:30 编辑

1. 什么是midi

(通常来说)midi是一种能够让电子乐器与计算机音乐软件,或者让计算机音乐软件与电子音色合成器通信的协议,协议包含软硬件规范。

2. midi控制器是什么

通过midi通信,能够控制计算机音乐软件的电子装置。

3. 硬件怎么连接

硬件上使用5针圆口(有点像老式键盘口)。两个用线缆连接起来的接口,两端针脚一一对应,其一端为发送,另一端为接收;这是因为大部分情况下,midi通信都是单向的。

QQ截图20140219184253.png
我买了这一条USB转MIDI线缆,有IN和OUT两个接口,因为这里只需要发送信息到电脑,故只需要使用IN接口

midi通信,底层协议是TTL串口通信,波特率固定为31250,通过发送不同的字节表示不同的命令和参数。故,可以用单片机的串口实现midi通信。

这里有一个5针插座,用它和万用板搭一个接口电路,把脚都引出来。led不是必需的,只是为了指示工作状态。
DSC_9888.jpg
DSC_9889.jpg
DSC_9892.jpg

为了实现不同对地电平器件间的通信,硬件上midi通信双方是不共地、光耦隔离的。可以把发送方理解为用信号驱动发光二极管,接收方则是用光敏三极管还原信号。
具体电路接法,以及midi命令、规范等等,请看: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

简单的说就是单片机串口发送脚TX接到第5脚,单片机电源5V接到第4脚,发送字节时TX脚拉低(平时为高),与电源产生电压差,驱动接收端的发光二极管。其他不再赘述,请参考上面所述网址。
我相信这条USB-MIDI线不会坑爹,所以该串的电阻我都没有串。为了防止短路损坏单片机IO,应串联电阻。

DSC_9886.jpg

4. 软件发送什么

请参考链接网页中的表格,此处不赘述。在这个例子里面,按下按键发送的是note-on(音符开始),释放按键发送的是note-off(音符结束)。
第一个字节是命令,第二个字节是音高,第三个字节是按键力度。

参考我的STM8代码:



5. 看视频吧。软件是FL Studio

点击此处查看视频
[ 修改于10年5个月前 - 2016/07/21 22:55:42 ]
13
12年10个月前IP:未同步
671263
1楼
可以用在灭弧上的话  就可以DR演奏音乐了
引用
评论
12年10个月前IP:未同步
671266
2楼
最近要刮MIDI风啊?
那种十来块钱的线实际上是牛屎的CH345T,不太稳定,而且CH345T在Win下的驱动有bug,系统指令(F0~F7)会被截断,只能出前四个字节,略坑。。。
引用
评论
12年10个月前IP:未同步
671267
3楼
ry7740kptv 发表于 2014-2-19 20:24
最近要刮MIDI风啊?
那种十来块钱的线实际上是牛屎的CH345T,不太稳定,而且CH345T在Win下的驱动有bug,系 ...


用PL2303可以么。。虽然这芯片有些臭名昭著,可是我用着感觉还不错。。而且便宜
引用
评论
12年10个月前IP:未同步
671271
4楼
baiwenglong 发表于 2014-2-19 20:28
用PL2303可以么。。虽然这芯片有些臭名昭著,可是我用着感觉还不错。。而且便宜


PL2303是USB转串口,非USB转MIDI,设备类型就不一样,虽然MIDI也是串口协议的。。。
引用
评论
12年10个月前IP:未同步
671315
5楼
baiwenglong 发表于 2014-2-19 20:28
用PL2303可以么。。虽然这芯片有些臭名昭著,可是我用着感觉还不错。。而且便宜


我也是。。。手头不知什么时候起攒出来一把2303。。。结果现在玩GPS模块,单片机什么的全是用这个。。。
引用
评论
12年10个月前IP:未同步
671321
6楼
分析纯_金 发表于 2014-2-19 23:46
我也是。。。手头不知什么时候起攒出来一把2303。。。结果现在玩GPS模块,单片机什么的全是用这个。。。


关键时刻这芯片坑到死,速率还不能太高,不如FTDI的 Ft232 虽然价格贵点,但是 功能多,而且速度快,还稳定 2303这个东西 假货太多了 ,我都怕了
引用
评论
12年10个月前IP:未同步
671396
7楼
微软已经放弃PL2303了,win8系列已经不支持了
膜拜一下lz的kcstm8.h……
引用
评论
12年10个月前IP:未同步
671414
8楼
一起来膜拜下KCSTM8.。。。看了看这库太牛了。。。
已经计划玩玩STM8了。。。功能强大啊
另外FT232的价格足足是PL2303的十倍还多。。。我还是用PL2303吧
引用
评论
8年11个月前IP:四川
841599
11楼
您好,请问代码是撤下了是吗?
引用
评论
8年11个月前IP:四川
841600
12楼
您好,请问代码是撤下了是吗?
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的