Midi


Subjects "bookmarked " from other pages are highlighted.

Navigation: Go to End of Page



wikipedia:Midi is used throughout jOrgan to communicate with other music devices.



MPL

jOrgan comes with its own Midi Processing Language (MPL) which allows you to dynamically construct and evaluate

wikipedia:Midi messages.



MPL expressions consist of the following commands:

Name

Description



Modifying commands



add n x



Add the value of variable n to the current value, using x as default if the variable is not defined.



sub n x



Subtract the value of variable n to the current value, using x as default if the variable is not defined.



mult n x



Multiply with the value of variable n to the current value, using x as default if the variable is not defined.



div n x



Divide the current value by the value of variable n, using x as default if the variable is not defined.



mod n x



Find the remainder of division of the current value by n, using x as default if the variable is not defined.



set n x



Set the current value to the value of variable n, using x as default if the variable is not defined.



round



Round the current value to the nearest integer.



Comparing commands



equal x



Test if the current value is equal to value x.



greater x



Test if the current value is greater than value x.



greaterEqual x



Test if the current value is greater or equal to value x.



less x



Test if the current value is less than value x.



lessEqual x



Test if the current value is less or equal to value x.



notEqual x



Test if the current value is not equal to value x.



Querying commands



get n



Get the value for variable n from the current value.



Note that upper and lower case in a command name is significant. Some elements come with built-in variables (e.g. value for

continuous elements), but you can use as many additional variables as you like.

Commands can be chained with a pipe symbol (|), in which case they are evaluated from left to right.

To send a value of 127:

 set 127

To filter values greater 0 and storing the actual value in the variable velocity:

 greater 0 | get velocity

To send values between 0 and 127 dependent on the variable value (which is in range 0.0 - 1.0):

 set value | mult 127

One MPL expression is used for each byte of a wikipedia:Midi message, separated by comma (,).

To test a message for a key press on pitch 60 with velocity 100 (three bytes):

 equal 144, equal 60, equal 100

To create a message for a key press (three bytes):

 set 144, set 60, set 100
 

To create a wikipedia:Sysex message (ten bytes):

 set 240, set 0, set 32, set 51, set 0, set 0, set 0, set 0, set 0, set 247

Windows may require: Midi Yoke http://www.midiox.com/myoke.htm


Navigation