- 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 ?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Guillaume
el 2 de Mzo. de 2023
Respondida: Swaraj
el 9 de Mzo. de 2023
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 comentarios
Respuesta aceptada
Swaraj
el 9 de Mzo. de 2023
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Simulation, Tuning, and Visualization en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!