我如何发送midi命令从内部模型?金宝app
5视图(30天)
显示旧的评论
接受的答案
查理·迪瓦恩
2020年1月7日
嗨,乔,
您可以使用解释MATLAB函数块或MATLAB函数块调用MATLAB MIDI功能。我附上了一个简单的示例模型使用两块发送BCF2000计数器值移动滑块。解释的MATLAB函数需要一个MATLAB文件独立于模型,而MATLAB功能块的优势将这段代码直接纳入模型。
解释的MATLAB函数块调用下面的函数(将它放在同一个文件夹与模型)。
函数sendMidiMsg (cval)
持续的医学博士
如果isempty (md)
md = mididevice (“BCF2000”);
结束
频道= 1;
控制= 82;
midisend(医学博士,“ControlChange”、通道控制、cval);
结束
MATLAB函数内的代码块是相似的,但需要
coder.extrinsic
(因为MIDI功能不支持codegen),使用一个不同的控制(控制不金宝app同的滑块BCF2000)。
函数sendMidiMsg (cval)
coder.extrinsic (“mididevice”,“midisend”);
持续的医学博士
如果isempty (md)
md = mididevice (“BCF2000”);
结束
频道= 1;
控制= 81;
midisend(医学博士,“ControlChange”、通道控制、cval);
结束
hth,
查理
3评论
查理·迪瓦恩
2020年8月24日
MIDI乐器使用钢琴补丁收到你的消息。发送“ProgramChange”消息使用不同的补丁数据得到不同的声音。
声音从一个给定的补丁数量取决于特定的MIDI乐器。如果它符合“一般MIDI v1规范”,你会得到在描述的声音
https://www.midi.org/specifications-old/item/gm-level-1-sound-set
。
答案(1)
标志着联邦调查局
2020年1月4日
音频工具箱提供了仿真软件块midi发送/接收。金宝app
否则你将不得不创建自定义块通过:
- 自定义功能
- MATLAB与coder.extrinsic功能块(midi)功能
- MATLAB功能块与coder.ceval外部midi () api