- 积分
- 24
注册时间2016-5-28
最后登录1970-1-1
|
我有一块Dream SAM5000 midi开发板,如果接上USB,电脑上认成一个声卡,用Cakewalk把Midi Out设置为这个声卡时,可以发出声音来.用Bus hound工具把发送到USB的数据捕获来和开发板收到Midi事件数据比较,值是一模一样,这说明我如果直接向开发板发送midi event事件,开发板是可以发出声音的。
我直接通过Uart串口向开发板发送midi event事件,但发送的数据要么被滤了,要么变换成别的值了。
于是我在开发板上接了MIDI键盘,按下MIDI键盘可以发出一个声音来,把MIDI键盘发出这个声音的数据截获下来通过UART口传送到开发板上,开发板上就可以发出声音来了。
奇怪在于MIDI键盘发出的数据不是标准的midi event事件(比如: D084B5),开发板接收到这个数据后转化为midi event事件(09900475)了。
想知道通过UART串口向MIDI芯片到底发送什么样的数据,转换规则是什么?
另外如果我要向串口发送Midi文件,不至于还要我来把Midi文件解析成事件吧,是不是应该有什么现成的库或源代码之类东西? |
|