Component: USB MIDI (Comms: USB): Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 17: | Line 17: | ||
==Component Source Code== | ==Component Source Code== | ||
Please click here to download the component source project: [https://www.flowcode.co.uk/ | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_USBMIDI.fcfx FC_Comp_Source_USBMIDI.fcfx] | ||
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_USBMIDI.fcfx FC_Comp_Source_USBMIDI.fcfx] | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_USBMIDI.fcfx FC_Comp_Source_USBMIDI.fcfx] | ||
==Detailed description== | ==Detailed description== | ||
| Line 46: | Line 48: | ||
==Examples== | ==Examples== | ||
| Line 72: | Line 76: | ||
==Macro reference== | ==Macro reference== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendMIDI''' | |||
|- | |||
| colspan="2" | Sends a MIDI packet consisting of up to three bytes of information, | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Status | |||
|- | |||
| colspan="2" | MIDI Status Byte - Used for commands such as NoteOn, NoteOff etc. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Data1 | |||
|- | |||
| colspan="2" | MIDI Data Byte - Used as a parameter specific to the specified command | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Data2 | |||
|- | |||
| colspan="2" | MIDI Data Byte - Used as a parameter specific to the specified command | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendPitchChange''' | |||
|- | |||
| colspan="2" | Sends out a pitch change command on the specified channel. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | Channel to send the pitch change to | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Pitch_Change | |||
|- | |||
| colspan="2" | New pitch value to use, Default 0x2000 | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendNoteOff''' | |||
|- | |||
| colspan="2" | Sends a note off command using the channel, note and velocity specified. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Note | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Velocity | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendControl''' | |||
|- | |||
| colspan="2" | Sends a control command using the channel, controller and value specified. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Controller | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Value | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendNoteOn''' | |||
|- | |||
| colspan="2" | Sends a note on command using the channel, note and velocity specified. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Note | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Velocity | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Timeout | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendPolyPressure''' | |||
|- | |||
| colspan="2" | Sends a note press with an associated polyphonic pressure value. | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Note | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Pressure | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadData''' | |||
|- | |||
| colspan="2" | Reads a byte from the last received MIDI message | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Idx | |||
|- | |||
| colspan="2" | Byte to read 0-3 | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendPatch''' | |||
|- | |||
| colspan="2" | | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Instrument | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendChannelPressure''' | |||
|- | |||
| colspan="2" | | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Channel | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Pressure | |||
|- | |||
| colspan="2" | | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | |||
|- | |||
| colspan="2" | Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |||
|- | |||
|- | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | |||
|} | |||
==Property reference== | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |||
|- | |||
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | |||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' | |||
|- | |||
|- | |||
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |||
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | USB Properties | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
| width="90%" | Vendor ID | |||
|- | |||
| colspan="2" | USB VID | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
| width="90%" | Product ID | |||
|- | |||
| colspan="2" | USB PID | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | |||
| width="90%" | Device Name | |||
|- | |||
| colspan="2" | USB Device Name | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | |||
| width="90%" | Manufacturer | |||
|- | |||
| colspan="2" | USB Manufacturer | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
| width="90%" | Major Version | |||
|- | |||
| colspan="2" | USB Major Version Number | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]] | |||
| width="90%" | Minor Version | |||
|- | |||
| colspan="2" | USB Minor Version Number | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |||
| width="90%" | Enumeration Timeout | |||
|- | |||
| colspan="2" | Specifies if the enumeration (Initialise function) can timeout if taking too long. | |||
|- | |||
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |||
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | |||
|- | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | |||
| width="90%" | Label | |||
|- | |||
| colspan="2" | Text displayed on the I/O flasher comms component. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | Data Source | |||
|- | |||
| colspan="2" | Simulation data source used to allow the component to connect to specific MIDI hardware or the the data injector components. | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |||
| width="90%" | MIDI Port | |||
|- | |||
| colspan="2" | | |||
|}==Macro reference== | |||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
Revision as of 10:00, 27 January 2023
| Author | Matrix Ltd. |
| Version | 1.3 |
| Category | Comms: USB |
USB MIDI component
Component to create and communicate using a standard MIDI connection. Compatible with simulation and USB enabled microcontroller devices. Currently only compatible with the 16-bit PIC range of devices.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_USBMIDI.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_USBMIDI.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
| 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 | |
| SendNoteOff | |
| Sends a note off command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendControl | |
| Sends a control command using the channel, controller and value specified. | |
| Channel | |
| Controller | |
| Value | |
| Return | |
| SendNoteOn | |
| Sends a note on command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendPolyPressure | |
| Sends a note press with an associated polyphonic pressure value. | |
| Channel | |
| Note | |
| Pressure | |
| Return | |
| ReadData | |
| Reads a byte from the last received MIDI message | |
| Idx | |
| Byte to read 0-3 | |
| Return | |
| SendPatch | |
| Channel | |
| Instrument | |
| Return | |
| SendChannelPressure | |
| Channel | |
| Pressure | |
| Return | |
| Initialise | |
| Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |
| Return | |
Property reference
==Macro reference==
| 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 | |
| SendNoteOff | |
| Sends a note off command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendControl | |
| Sends a control command using the channel, controller and value specified. | |
| Channel | |
| Controller | |
| Value | |
| Return | |
| SendNoteOn | |
| Sends a note on command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendPolyPressure | |
| Sends a note press with an associated polyphonic pressure value. | |
| Channel | |
| Note | |
| Pressure | |
| Return | |
| ReadData | |
| Reads a byte from the last received MIDI message | |
| Idx | |
| Byte to read 0-3 | |
| Return | |
| SendPatch | |
| Channel | |
| Instrument | |
| Return | |
| SendChannelPressure | |
| Channel | |
| Pressure | |
| Return | |
| Initialise | |
| Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |
| Return | |
Property reference
==Macro reference==
| 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 | |
| SendNoteOff | |
| Sends a note off command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendControl | |
| Sends a control command using the channel, controller and value specified. | |
| Channel | |
| Controller | |
| Value | |
| Return | |
| SendNoteOn | |
| Sends a note on command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendPolyPressure | |
| Sends a note press with an associated polyphonic pressure value. | |
| Channel | |
| Note | |
| Pressure | |
| Return | |
| ReadData | |
| Reads a byte from the last received MIDI message | |
| Idx | |
| Byte to read 0-3 | |
| Return | |
| SendPatch | |
| Channel | |
| Instrument | |
| Return | |
| SendChannelPressure | |
| Channel | |
| Pressure | |
| Return | |
| Initialise | |
| Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |
| Return | |
Property reference
==Macro reference==
| 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 | |
| SendNoteOff | |
| Sends a note off command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendControl | |
| Sends a control command using the channel, controller and value specified. | |
| Channel | |
| Controller | |
| Value | |
| Return | |
| SendNoteOn | |
| Sends a note on command using the channel, note and velocity specified. | |
| Channel | |
| Note | |
| Velocity | |
| Return | |
| SendPolyPressure | |
| Sends a note press with an associated polyphonic pressure value. | |
| Channel | |
| Note | |
| Pressure | |
| Return | |
| ReadData | |
| Reads a byte from the last received MIDI message | |
| Idx | |
| Byte to read 0-3 | |
| Return | |
| SendPatch | |
| Channel | |
| Instrument | |
| Return | |
| SendChannelPressure | |
| Channel | |
| Pressure | |
| Return | |
| Initialise | |
| Starts up the USB communications and attempts to enumerate. Returns 0 for a successful startup or 255 for a enumeration timeout. | |
| Return | |