User Guides

SysEx Macros

When entering MIDI SysEx data Cantabile supports the following macros.

Note: Unlike version 2, version 3 doesn't support custom user-defined macros. This may be supported in a future version. If this is something you require, please get in touch

hibyte(x)		- gives the high byte of a word eg: hibyte(0x1234) gives 0x12
lobyte(x)		- gives the low byte of a word eg: lobyte(0x1234) gives 0x34
ascii(x)		- generate ascii data for string x eg: ascii("apple") gives 0x61 0x70 0x70 0x6c 0x65
strlen(x)		- return the length of string x eg: strlen("apple") gives 5
strcat(x,y)		- join strings x and y
add(x,y)		- add x and y
sub(x,y)		- subtract x and y
mul(x,y)		- multiply x by y
div(x,y)		- divide x by y
mod(x,y)		- remainder of x divided by y
and(x,y)		- x and y (bitwise)
or(x,y)			- x or y (bitwise)
xor(x,y)		- x xor y (bitwise)
shl(x,y)		- shift x left by y bits
shr(x,y)		- shift x right by y bits
hex(x)			- convert number x to hex (and add 0x prefix)
dec(x)			- convert number x to decimal
bytelen(bytes)	- calculate the length of a byte stream
byteswap(bytes)	- byte swap the byte stream
midivarlen(x)	- midi encode variable length number x
byte(x)			- Format x as a hex byte
word(x)			- Format x as a hex word
dword(x)		- Format x as a hex dword
qword(x)		- Format x as a hex qword
repeat(x,y,d)	- Repeat x, y times with optional delimiter d