我如何发送midi命令从内部模型?金宝app

5视图(30天)
嗨,我怎么能 发送 MIDI命令从仿真软件模拟MIDI设备金宝app吗?
我没有问题在matlab目标设备,但我似乎无法找出如何正确调用命令midisend, midimsg等仿真软件。金宝app
我基本上想要的功能,逆转模型块的被称为“Midi控制”(这从外部Midi设备现有块读取信号仿真软件。金宝app我想发送midi消息基于仿真软件模拟中发生了什么)。金宝app
谢谢,
乔尔

接受的答案

查理·迪瓦恩
查理·迪瓦恩 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
这个问题是关于MIDI,不是关于MATLAB仿真软件。金宝app我推荐教程和其他信息有关 https://www.midi.org/specifications 对权威的答案。

登录置评。

答案(1)

标志着联邦调查局
标志着联邦调查局 2020年1月4日
音频工具箱提供了仿真软件块midi发送/接收。金宝app
否则你将不得不创建自定义块通过:
  1. 自定义功能
  2. MATLAB与coder.extrinsic功能块(midi)功能
  3. MATLAB功能块与coder.ceval外部midi () api
3评论
乔尔Gouker
乔尔Gouker 2020年1月6日
嗨,马克。是的。我经常需要发送MIDI命令。MIDI值/控制命令生成仿真软件模型在模拟-这些MIDI命令需要大约每隔60秒发送到外部的MIDI设备。金宝app

登录置评。

类别

找到更多的在仿真、优化和可视化帮助中心文件交换

下载188bet金宝搏


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!