From jOrgan Wiki v1.25.1
Revision as of 15:48, 29 July 2013 by Svenmeier (Talk | contribs) (Rank#channel optional now)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A wikipedia:rank is a set of sounds which produces a given timbre. Ranks are engaged when at least one of its referring stops is engaged.


Which wikipedia:Midi channel can be used for this rank (wikipedia:Zero-based), configured via MPL expression.

To use any available channel:

 greaterEqual 0

To skip the wikipedia:General MIDI percussion channel 9:

 notEqual 9

To use a fixed channel, e.g. 5:

 equal 5

Leave empty to keep the channel of messages unchanged.

Milliseconds to delay all messages before they are sent.


Switch filter, continuous filter
The filters which may alter the messages of this rank.
The generator of sounds, a generic sound or other specialized sound generators.

Referenced from

The stops which engage this rank and play/mute notes.


The messages are sent to the referenced sounds, their channel is overridden by the channel property:

The message to send to when this element was engaged.
The message to send when this element was disengaged.
Note played
The message to send when a note was played. Variables: pitch [0 - 127], velocity [0 - 127]
Note muted
The message to send when a note was muted. Variables: pitch [0 - 127]

In a typical setup of a rank it might send the following messages (using bank 0, program 1 and volume 100 for the instrument):

Name Commands
Engaged set 176, set 121,
Engaged set 176, set 0, set 0
Engaged set 192, set 1,
Engaged set 176, set 7, set 100
Note played set 144, set pitch, set 100
Note muted set 128, set pitch,
Disengaged set 176, set 123,


You might want to use a touch sensitive rank in your disposition, e.g. a piano. For this you have to use the velocity variable when a note is played.

The following messages shows how to use the velocity variable:

Name Commands
Note played set 144, set pitch, set velocity

Transposed Ranks

Ranks do not have a transpose property as stops do. But you can easily transpose all notes by utilizing the add or sub MPL commands in the Note played and Note muted message.

To transpose a rank by one octave (12) you could use the following two messages:

Name Commands
Note played set 144, set pitch | add 12, set 100
Note muted set 128, set pitch | add 12,

Real Pipes

A rank can be used to represent real pipes that you want to control from jOrgan. Usually you don't need Engaged and Disengaged messages, just let it send messages for Note played and Note muted. The channel property will probably be set to a fixed channel, e.g. equal 0.

Pipes substitute

If you want to substitute missing real pipes you should use two rank elements, one for the real pipes (see above) and one for the sounds that serve as a substitute. Let the corresponding stop reference both of them.

To substitute those sounds only which are missing from your the real pipes you have to change the messages accordingly, e.g. to substitute C1 (36) to F1 (41) only:

Name Commands
Note played set 144, set pitch | greaterEqual 36 | lessEqual 41, set velocity
Note muted set 128, set pitch | greaterEqual 36 | lessEqual 41,

Celeste Ranks

You can create a detuned rank by sending an appropriate wikipedia:Midi message when the rank is engaged.

To detune a rank by 4 cents you could send a pitch bend message with value 68 (=64 + 4):

Name Commands
Engaged set 224, set 0, set 68

Note that the number of cents detuned will be the same across the entire scope, so you won't be able to reduce the detuning for higher frequency notes.