- Add a MATLAB Function block to your Simulink model.
- Inside the MATLAB Function block, use the “coder.extrinsic()” function to declare the “midireceive()” function as an extrinsic function.
- To receive MIDI data from the MIDI controller, use the “midireceive()” function.
- Use the “cell()” function to transform the “mxarray” into a cell array.
- Loop over the elements of the cell array and extract the MIDI message using the “midimsg()” function.
- To detect whether a MIDI message is a "NoteOn" or "NoteOff" message, look at the message's status byte.
- Similarly you can extract other details like “channel”, “note”,” velocity” etc.
How to extract MIDI data from mxarray in simulink ?
1 次查看(过去 30 天)
显示 更早的评论
Hello,
For a project, I need to use a MIDI controller that sends MIDI files for the keys pressed (so the MIDI message is a 'NoteOn' or 'NoteOff'). To do so, I chose to use a matlab function block and inside it, i wrote a code using midireceive('MidiInput') function (In order to do that, i used coder.extrinsic('midireceive'). Unfortunately, the results from that is that I got the data from my MIDI controller in a mxarray and I don't know how to extract the data correctly (I juste have to know when a key is pressed and which one it is).
0 个评论
采纳的回答
Swaraj
2023-3-9
To extract the MIDI data correctly from the “mxarray” received by the “midireceive()” function in Simulink, you can use the following steps:
For more details you can go through the following Documentations.
Documentation for “midireceive”.
Documentation for “mxArrays”.
Documentation for Cell Arrays.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulation, Tuning, and Visualization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!