MIDI Syntax Editor

The 'MIDI Syntax Editor' allows experienced users to quickly add, edit, copy and paste MIDI commands in simple text format.

To access the 'MIDI Syntax Editor' open the MIDI event list of the song in the side panel. If the side panel is not visible tap/click on the vertical mark at the left side of the screen:

Tap/Click on the icon in the upper right corner of the side panel and select 'MIDI' from the drop-down menu to access the MIDI event list.

Tap/Click on the plus sign above the MIDI event list and select 'MIDI Syntax Editor' from the drop-down menu.

The 'MIDI Syntax Editor' will open and display all commands of the MIDI event list in simple text format:

Edit the midi commands inside the editor and tap/click on 'Save'.

Syntax Format

Song One's MIDI syntax is similar to the syntax used in OnSong, Stage Traxx 3 and SongBook.

Import the MIDI syntax you have added to a song in OnSong, Stage Traxx 3 or SongBook by:

  • ...selecting and copying the entire MIDI syntax block to your computer clipboard,

  • ...pasting the unaltered content into Song One's 'MIDI Syntax Editor',

  • ...and tapping/clicking on the 'Save' button of Song One's 'MIDI Syntax Editor'.

The pasted content is automatically reformatted and timed MIDI events are placed on Song One's timeline.

A MIDI command consists of a header portion and a command portion.

Header Portion

The syntax of a MIDI event starts with the 'header'. The 'header' specifies the execution time of the MIDI command.

When the header consists solely of the word 'midi' followed by a colon the MIDI command attached to the header is executed when the song is opened.

  • midi: ...MIDI command

The header can be expanded with a hashtag followed by a label to describe the MIDI event.

You may add spaces but no numbers to the labels.

(Note: The colon moves to the end of the header.)

  • midi#Stage lighting: ...MIDI command

Add an '@' sign followed by a timestamp ('mm:ss.mmm') to create a 'Timed' MIDI command. 'Timed' MIDI commands are automatically placed on Song One's timeline and executed during the playback of the song.

(Note: The colon moves to the end of the header.)

  • midi#Stage lighting@01:23.631: ...MIDI command

A timestamp with milliseconds creates a high precision MIDI event. You have the option to omit the last two digits when entering the milliseconds to create a standard MIDI event. Standard MIDI events are preferable since they can be executed with less processing power (which improves the battery life of your iPad):

  • midi@01:23.6: ...MIDI command

To create a MIDI command that is executed via Song One's MIDI queue enter the '@' sign followed by the desired queue position (1...50). MIDI commands added to the MIDI queue can be triggered via a foot controller or screen taps during a live performance.

  • midi@2: ...MIDI command

To create a MIDI command that is executed when you press the 'Play' button enter the '@' sign followed by the word play:

  • midi@play: ...MIDI command

To create a MIDI command that is executed when you press the 'Pause' button enter the '@' sign followed by the word stop:

midi@stop: ...MIDI command

Command Portion

The header is followed by one or more comma-separated MIDI commands as described below.

MIDI commands that are to be executed at different times require different headers. Start a new line for each additional header entered into the 'MIDI Syntax Editor'.

Note Events (Syntax)

To add a note event type in...

  • the prefix 'N' to identify the note event,

  • the note number with a value of 0...127 (e.g. 50),

  • a colon followed by the note's velocity value between 0...127 (e.g. 82),

  • [optional: a '+' sign to include a 'Note Off' command when the note event is sent],

  • an '@' sign followed by the channel number between 1...16 (e.g. 2):

Example:

midi: N50:82@2

Example of multiple MIDI events including a note event:

midi: PC27@3, N50:82+@2, PC6.11:33@4, CC117:45@8

Note: You may omit the '@' sign and the channel number to send a MIDI event on 'ALL' channels.

Program Changes (Syntax)

To add a basic program change type in...

  • the prefix 'PC' to identify the program change,

  • the program number with a value of 0...127 (e.g. 27),

  • an '@' sign followed by the channel number between 1...16 (e.g. 3):

Example:

midi: PC27@3

Example of multiple MIDI events including a program change:

midi: PC27@3, N50:82@2, PC6.11:33@4, CC117:45@8

Note: You may omit the '@' sign and the channel number to send a MIDI event on 'ALL' channels.

To add a program change with MSB/LSB values type in...

  • the prefix 'PC' to identify a program change,

  • the MSB value between 0...127 (e.g. 6),

  • [optional: a period followed by the LSB value between 0...127 (e.g. 11)],

  • a colon followed by the program number with a value of 0...127 (e.g. 33),

  • an '@' sign followed by the channel number between 1...16 (e.g. 4):

Example:

midi: PC6.11:33@4

Example of multiple MIDI events including a program change with MSB/LSB values:

midi: PC27@3, N50:82@2, PC6.11:33@4, CC117:45@8

Note: You may omit the '@' sign and the channel number to send a MIDI event on 'ALL' channels.

Control Changes (Syntax)

To add a control change type in...

  • the prefix 'CC' to identify the control change event,

  • the CC number between 0...127 (e.g. 117),

  • a colon followed by the CC value between 0...127 (e.g. 45),

  • [optional: a '+' sign to include an 'Off Value' of 0 or a '~' sign to toggle between 0 and the CC value each time the command is sent],

  • an '@' sign followed by the channel number between 1...16 (e.g. 8):

Example:

midi: CC117:45@8

Example of multiple MIDI events including a control change:

midi: PC27@3, N50:82@2, PC6.11:33@4, CC117:45+@8

Note: You may omit the '@' sign and the channel number to send a MIDI event on 'ALL' channels.

System Events (Syntax)

To add a 'Song Select' system event type in 'SS' followed by an number between 0...127.

To add a 'SysEx' system event type in 'F0' followed by the SysEx message in the hexadecimal format.

To add a 'Start' system event type in 'START'.

To add a 'Stop' system event type in 'STOP'.

To add a 'Continue' system event type in 'CONTINUE'.

Last updated