Example ====== MIDI Show Control ====== ^ by: | Sebastian Beutel, February 2020 | ^ published: | here | ^ description: | macros to send some MIDI commands which control MSC-enabled devices/software | ^ remarks: | In order to run this over other ways than real 5pin MIDI Titan v13 is required\\ See https://www.facebook.com/groups/Avolites/permalink/1791621797636713/ | {{tag>MIDI MSC}} ==== functions ==== * [[:macros:function:Panel.Midi.Send]] The complete file with all commands/macros: {{ :macros:example:midishowcontrolmacros.xml |}} ===== Code ===== Panel.Midi.Send("F0 7F 7F 02 01 0A F7") Panel.Midi.Send("F0 7F 7F 02 01 01 F7") Panel.Midi.Send("F0 7F 7F 02 01 02 F7") ===== Explanation ===== This explains the functional steps within the sequence. For all the other XML details please refer to [[:macros:formats_and_syntax#xml_format|Formats and syntax]] Upon starting such a macro a predefined MIDI command is being sent. For the available commands see [[http://www.richmondsounddesign.com/docs/midi-show-control-specification.pdf]] however it depends from the device/software which commands are supported. The Go macro is an example: * the message ''F0 7F 7F 02 01 01 F7'' comprises of * ''F0 F7'' => Universal Real Time SysEx * ''7F'' => device ID. 7F is all devices * ''02'' => MIDI machine control command * ''01'' => command format; 01 = General Lighting * ''01'' => command (e.g. 01 = Go) * ''F7'' => end of Universal Real Time SysEx message * When editing know that all data is hexadecimal. * Additional data (e.g. cue numbers) need to be hex-encoded ascii chars. * cue 1 = 31 * cue 1.5 = 31 2E 35 ===== How to use it ===== - [[:macros:deploying|make this macro available]] - for general information about using MIDI to control other devices see [[external:mmc]] - depending from your setup you might need to use virtual MIDI patchcords like LoopMIDI or rtpMidi, see [[external:software_list|]] - sending out MIDI e.g. over USB or network is supported from Titan v13 on ~~DISCUSSION~~