jOrgan stores informations about an organ in so called Dispositions. These files contain all of the necessary information to define the inner workings of an organ.
A Disposition is made up of Elements, References and Messages.
The Elements in jOrgan are the building blocks for a Disposition. Most Elements will be placed on a Console, but there might be some that are not visible to the organist.
Each type of element has its own set of properties. One common property of all Elements is their name:
See the description of each element type for on overview of its specialized properties.
Each element can be described. Some of the lines in the description serve special purposes:
=) defines a binding of a text which is available for the Style of the element.
out of tune This rank definitely needs some more work. name = Principal pitch = 16' division = ⊙
References in jOrgan are the connections between various elements. Each reference lets one element (the referrer) influence the referenced element.
See the description of each element type for on overview of its specialized references.
Messages are jOrgan's connection to the outer world. A Message is used to receive or send Midi messages:
See the description of each element type for on overview of its specialized messages.
Each Message has a name that describes the event is belongs to. Furthermore it consists out of three expressions for status, data1 and data2 of a Midi message.
Message expressions are build from Commands:
| Name | Description |
|---|---|
| Modifying commands | |
add n x | Add the value of variable n to the current value. |
sub n x | Subtract the value of variable n to the current value. |
mult n x | Multiplicate with the value of variable n to the current value. |
div n x | Divide the current value by the value of variable n. |
mod n x | Modulo the current value by the value of variable n. |
set n x | Set the current value to the value of variable n. |
| 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.
All modifying commands offer a second operand x, which serves as default, if the specified variable doesn't have a value.
Commands can be chained with a pipe symbol (|), in which case they are evaluated from left to right.
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
Included in jOrgan is only a small example disposition. One of the best ways to learn how to use jOrgan to make your own creation is to modify existing dispositions. Once you've gained a basic understanding of how the various elements of a jOrgan disposition work together, the only limitation to building your own creation is your imagination.
Many jOrgan users have created their own custom dispositions to meet their personal needs. Their work show the many possiblities that jOrgan offers you in the creation of your own virtual organ: