Functions
Cantabile's expression engine supports the following functions. See also the Variable Reference and Sys-ex Expressions.
Supported Functions
- .NET Math functions
- All the static functions of the .NET Math class
ASCII(str)
- ASCII-7 encodes a string, returning a byte array
clamp(value,min,max)
- Clamps a value between a specified range
formatGain(value [, muteString])
- Formats a scalar gain value to decibels string. If less than approx -60b returns
-∞
or the muteString if supplied. formatDb(value [, muteString])
- Formats a decibel value to a string. If less than approx -60b returns
-∞
or the muteString if supplied. fromDb(value [, limit])
- Converts a decibel value to scalar. If limit specified and value < limit returns zero.
formatMidiNote(value)
- Formats a MIDI note number using Cantabile current settings for display note names.
formatNumber(value, formatString)
- Formats a number using a C# double format specifier. eg: formatNumber(123.123456, "N2") to format to 2 decimal places.
formatProgramNumber(value)
- Formats a program number according to current Cantabile settings for displaying program numbers.
hi7(x)
- returns the high-7 bits of a 14-bit number
hibyte(x)
- returns the high-8 bits of a 16-bit number
length(x)
- returns the number of elements in an array, the number of characters in a string or
1
for other types. lo7(x)
- returns the low-7 bits of a 14-bit number
lobyte(x)
- returns the low-8 bits of a 16-bit number
int(x)
,uint(x)
,long(x)
,ulong(x)
,short(x)
,ushort(x)
,byte(x)
,sbyte(x)
- converts a value to a specified integer type (typically used for forcing a floating point value to integer)
midivarlen(x)
- encodes a multi-byte integer using 7-bit MIDI variable length encoding.
strcat(a,b)
- joins two strings together, although the
+
operator can also be used to join strings. strpart(str, i)
-
splits a string on semicolon
;
characters and returns thei
th part, or an empty string if not enough parts are available.eg:
strpart("Apples;Pears;Bananas", 1)
returns "Pears". substr(str,pos)
- returns a sub-string of
str
starting at characterpos
. If pos is negative, returns the end of the string substr(str,pos,length)
- returns a
length
characters fromstr
starting at characterpos
. If pos is negative, returns the end of the string toDb(value [, limit])
- Converts a scalar gain value to decibels. If limit specified and value < limit returns negative infinity.
RolandCheckSum(array)
- calculates the Roland sys-ex checksum of an array. (The array is flattened to a byte array using the same rules as for sys-ex expressions)
RolandPack16(value)
- packs a 16-bit value into 4 bytes with 4-bits in each byte (MSB first), as used in Roland sys-ex. (aaaabbbbccccdddd => 0000aaaa 0000bbbb 0000cccc 0000dddd)
RolandPack8(value)
- packs an 8-bit value into 2 bytes with 4-bits in each byte (MSB first), as used in Roland sys-ex. (aaaabbbb => 0000aaaa 0000bbbb)
UTF7(str)
- UTF-7 encodes a string, returning a byte array
UTF8(str)
- UTF-8 encodes a string, returning a byte array
UTF16(str)
- UTF-16 (little endian) encodes a string, returning a byte array
UTF16_be(str)
- UTF-16 (big endian) encodes a string, returning a byte array