Component: MIDI (Comms: System): Difference between revisions
m Text replacement - "width="10%" align="center" style="background-color:#D8C9D8;"" to "width="10%" align="center" class="mtx-class-macrohead"" |
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead"" |
||
| Line 112: | Line 112: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | Initialises the MIDI component and sets up the UART. | | colspan="2" | Initialises the MIDI component and sets up the UART. | ||
| Line 126: | Line 126: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReadData''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 145: | Line 145: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ReceiveMIDI''' | ||
|- | |- | ||
| colspan="2" | Waits for the time specified in the timeout parameter for an incoming MIDI message. Returns 0 to indicate a timeout, otherwise returns the first value from the MIDI message. | | colspan="2" | Waits for the time specified in the timeout parameter for an incoming MIDI message. Returns 0 to indicate a timeout, otherwise returns the first value from the MIDI message. | ||
| Line 164: | Line 164: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendChannelPressure''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 188: | Line 188: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendControl''' | ||
|- | |- | ||
| colspan="2" | Sends a control command using the channel, controller and value specified. | | colspan="2" | Sends a control command using the channel, controller and value specified. | ||
| Line 217: | Line 217: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendMIDI''' | ||
|- | |- | ||
| colspan="2" | Sends a MIDI packet consisting of up to three bytes of information, | | colspan="2" | Sends a MIDI packet consisting of up to three bytes of information, | ||
| Line 246: | Line 246: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendNoteOff''' | ||
|- | |- | ||
| colspan="2" | Sends a note off command using the channel, note and velocity specified. | | colspan="2" | Sends a note off command using the channel, note and velocity specified. | ||
| Line 275: | Line 275: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendNoteOn''' | ||
|- | |- | ||
| colspan="2" | Sends a note on command using the channel, note and velocity specified. | | colspan="2" | Sends a note on command using the channel, note and velocity specified. | ||
| Line 304: | Line 304: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendPatch''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 328: | Line 328: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendPitchChange''' | ||
|- | |- | ||
| colspan="2" | Sends out a pitch change command on the specified channel. | | colspan="2" | Sends out a pitch change command on the specified channel. | ||
| Line 352: | Line 352: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendPolyPressure''' | ||
|- | |- | ||
| colspan="2" | Sends a note press with an associated polyphonic pressure value. | | colspan="2" | Sends a note press with an associated polyphonic pressure value. | ||
| Line 382: | Line 382: | ||
|- | |- | ||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
Revision as of 14:23, 13 July 2026
| Author | Matrix Ltd. |
| Version | 2.0 |
| Category | Comms: System |
MIDI component
Low level routines for controlling or interacting with a standard MIDI interface.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_MIDI.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_MIDI.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Basic example to play a series of notes getting higher in pitch and then going down in pitch. This repeats in a loop and each time the loop repeats the instrument is changed. The current note and instrument are displayed on the LCD.
MIDI Test File
The MIDI component during simulation has functionality to allow it to work with MIDI synthesizers installed on your PC.
To select your software or hardware synthesizer select from the property selector.
If you don't have a MIDI interface installed then IP MIDI seems to be a good option that works well.
Once installed the MIDI output should play through your computer speakers.
The console window can be used to view the MIDI data as it is sent out and received.
The MIDI component during embedded operation will communicate using a UART serial channel. An EB021 MIDI E-block is available to allow standard MIDI cables to be connected up to a system.
Macro reference
Initialise
| Initialise | |
| Initialises the MIDI component and sets up the UART. | |
| Return | |
ReadData
| ReadData | |
| Idx | |
| Return | |
ReceiveMIDI
SendChannelPressure
| SendChannelPressure | |
| Channel | |
| Pressure | |
| Return | |
SendControl
| SendControl | |
| Sends a control command using the channel, controller and value specified. | |
| Channel | |
| Controller | |
| Value | |
| Return | |
SendMIDI
SendNoteOff
| SendNoteOff | |
| Sends a note off command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
SendNoteOn
| SendNoteOn | |
| Sends a note on command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
SendPatch
| SendPatch | |
| Channel | |
| Instrument | |
| Return | |
SendPitchChange
| SendPitchChange | |
| Sends out a pitch change command on the specified channel. | |
| Channel | |
| Channel to send the pitch change to | |
| Pitch_Change | |
| New pitch value to use, Default 0x2000 | |
| Return | |
SendPolyPressure
| SendPolyPressure | |
| Sends a note press with an associated polyphonic pressure value. | |
| Channel | |
| Note | |
| Pressure | |
| Return | |

