Keygroup: known in Belcanto as
kgroup |
Keygroups contain a group of keys in a user defined orientation, thus providing a way of dividing and remapping the Eigenharp keyboard and allowing the user complete control over the orientation and direction of notes.
The Keygroup Agent (known within Belcanto as a 'kgroup') has two primary functions:
It allows for the division of the Eigenharp keyboard to provide easy access to functionality within EigenD.
It allows keyboard divisions to be set into different modes, which can then be arranged hierarchically.
The keys will be numbered according to the order in which you choose the keys - the first key you choose will be one, second will be two etc. This numbering is important, and is used in a number of cases by other Agents - e.g. the Scaler uses the first key as the tonic of the scale, and the scale will ascend in conjunction with the ordering of the keys within you Keygroup.
strip | position | input | X |
Strip position inputs are normally used to receive a relative strip controller position from an upstream Agent (either another Keygroup or from the Keyboard Agent).
breath | input |
The breath input is normally used to receive breath controller information from an upstream Agent (either another Keygroup or from the Keyboard Agent)
octave |
Octave sets the keygroup's octave. When playing a keygroup that has an octave set, downstream Scalers automatically adjust their octave to match that of the keygroup (unless the Scaler's 'override' parameter is set).
tonic |
Tonic sets the tonic of the keygroup's scale. When playing a keygroup that has a tonic set, downstream Scalers automatically adjust their tonic to match that of the keygroup (unless the Scaler's 'override' parameter is set).
absolute | strip | input | X |
Absolute strip inputs are normally used to receive an absolute strip controller position from an upstream Agent (either another Keygroup or from the Keyboard Agent).
pedal | input | X |
The pedal inputs are normally used to receive pedal data from an upstream Agent (either another Keygroup or from the Keyboard Agent.)
activation | input |
The activation input is used in the main to receive activation signals from an upstream Agent (normally anyother Keygroup or from the Keyboard Agent in this case).
pressure | input |
The pressure input is normally used to receive key pressure signals from upstream and processes them accordingly.
roll | input |
The roll input is normally used to receive key roll signals from upstream and processes them accordingly.
yaw | input |
The yaw input is normally used to receive key yaw signals from upstream and processes them accordingly.
base | note |
The base note is a value (in semitones) between -20 and 20 - the base note determines which note of the scale corresponds to key 1 of the keygroup.
controller | input |
The controller input is used in most cases to pass information from an upstream Agent such as a Keygroup's courses, octave, scale and tonic.
mode | input |
A connection is made to the Mode Input from the activation output of the key that is used as a 'mode key'. A mode key is used to switch between keygroup outputs. The mode key is normally a located within an upstream keygroup or keyboard.
blink |
When the mode key is activated, all the keys of the keygroup blink, this sets the duration for which the lights stay lit in seconds. The default duration is 0.5 seconds.
Courses are a subdivision of Keygroups which allow the user to define an offset between groups of keys within a Keygroup. This allows Keygroups to exhibit behaviour similar to that of a stringed instrument, such as a guitar - i.e. each string is a certain distance apart in pitch from the previous string.
The offset between Courses can be defined in both semitones and scale increments.
Keys within a Keygroup can have two types of behaviour - they can either be 'active' or 'switching'. The behaviour of the Keygroup as a whole can be controlled by a further key called a Mode Key.
When a Mode Key is pressed, the keys within the Keygroup exhibit switching behaviour. A number of LEDs will light up adjacent to keys within the Keygroup - each illuminated LED represents a mode available for selection. The currently selected mode is represented by a green LED, whilst the other modes available for selection are represented by red LEDs.
A mode is selected by holding down the mode key, pressing the key adjacent to the LED representing the desired mode and then releasing the Mode Key.
When a Mode Key is not pressed, or when there is only one mode and therefore no requirement for a mode key, the Keygroup exhibits active behaviour. The selection of a mode routes the EigenD key performance data (such as pressure, roll and yaw) from the active Keygroups to specific Keygroup Output(s). The data from other EigenD controllers (such as strip controller, breath controller and pedal data) is combined with the key data and also sent to the active Keygroup Output(s). Keygroup Outputs are connected to Agents downstream, which then use the active performance information in a certain way. This could be playing an instrument, triggering an action e.g. starting the Metronome (also see Talker) or indeed controlling another Keygroup. Keygroup hierarchy is achieved when one Keygroup is used to control another Keygroup.
The outputs of a Keygroup are created by the user on demand. The number of outputs created depends on the required number of destinations.
As you may have read in the Scaler article, each Keygroup can have its own independent scale, tonic and octave. This allow for example independent tuning of the same instrument across different parts of the Eigenharp keyboard. The Belcanto used to set the scale, tonic and octave for the Keygroup is exactly the same as the Scaler - please see the Scaler article for more information.
create |
The 'create' verbs is used to create Keygroup Outputs for a Keygroup.
choose |
The 'choose' verb is used to choose keys within a Keygroup or within a Course.
move |
The 'move' verb is used to move Keygroup Outputs within a Keygroup.
clear |
The 'clear' verb is to clear all previously chosen keys from a Keygroup.
add |
The 'add' verb is used to add specific keys or ranges of keys to a Keygroup or Course.
Assuming you already have Keygroups contained within your setup, before using the Belcanto commands below, make sure you have the desired Keygroup within your conversation using
kgroup | X | listen |
where X is the number of your desired Keygroup.
To choose the keys for a Keygroup use:
k | choose |
EigenD will now enter 'choose mode'. You will see a number of LEDs light up - the LEDs adjacent to keys already contained within the Keygroup will light green, and the LEDs adjacent to keys not currently within the Keygroup but available for selection will light red.
Press a key to choose it for your Keygroup. The LEDs will now change - newly selected keys will now be accompanied by a green LED, whereas keys that were previously within the Keygroup will now light amber. The LEDs adjacent to keys that are available for selection but neither not currently selected nor previously part of the Keygroup will remain red.
Once you have selected all the desired keys for your Keygroup, press the last key twice. All the LEDs will go out, confirming that you have now exited 'choose mode'.
Courses are created at the point of the key choosing process by using a variation on the normal Belcanto phrase for key choosing.
You need to decide on the number of courses and the keys that you wish to include within the courses before you start the choosing process.
To choose the keys for Course 1, use
k | as | 1 | choose |
EigenD will now enter 'choose mode' - you will have already encountered this in the above example.
You will see a number of LEDs light up - the LEDs adjacent to keys already contained within the Course will light green, and the LEDs adjacent to keys not currently within the Course but available for selection will light red.
Press a key to choose it for your Course. The LEDs will now change - newly selected keys will now be accompanied by a green LED, whereas keys that were previously within the Course will now light amber. The LEDs adjacent to keys that are available for selection but neither not currently selected nor previously part of the Course will remain red.
As explained above, the keys will be numbered according to the order in which you choose the keys.
Once you have selected all the desired keys for your Course, press the last key twice. All the LEDs will go out, confirming that you have now exited 'choose mode'.
You now need to repeat the process for each Course, replacing '1' in the Belcanto phrase above with the number of the desired Course.
The key numbering pattern is the same regardless of whether the Keygroup has Courses defined or not, i.e. if you define a Course with keys 1 to 8, the numbering of the next Course will start from 9 onwards.
The Belcanto phrase below sets the starting note of the specified Course as a note with a distance of four semitones higher than the starting note of the previous course:
course | X | offset | to | 4 | semitone | set |
The Belcanto phrase below sets the starting note of the specified Course as a note with a distance of four scale steps lower than the starting note of the previous course:
course | X | offset | to | - | 4 | interval | set |
There is an upper and lower limit of 500 semitones and 9500 scale steps.
As well as choosing keys using 'choose mode', you can also add keys to a Keygroup in Belcanto.
k | X | add |
where X is the desired key number. This number depends on the order that the keys were added to the upstream Keygroup - i.e. the upstream key chosen first will be 1, second will be 2 etc.
If the Keygroup is directly connected to the Keyboard, the keys will take the default Keyboard key numbering.
You can also add a range to keys to your Keygroup:
k | X | to | k | Y | add |
All keys between X and Y above will be added to your Keygroup.
To add keys to a Course using the same concept, use:
k | X | to | k | Y | as | course | Z | add |
where X and Y define your range of keys and Z is the number of the Course you wish to add the keys to.
The Belcanto phrase below clears all keys within the specified Keygroup.
clear |
You can create an output using
output | X | create |
where X is a number which corresponds to the number of the key within your Keygroup you wish to represent that output when the Mode Key is depressed. This number depends on the order in which you choose the keys for your Keygroup (please see section above on Choosing Keys for more details).
The keys which represent Keygroup Outputs when in 'switching' mode can be moved around using the following Belcanto phrase:
output | X | to | Y | move |
where X is the number of the key that currently represents the specified output, and Y is the number of the key that you would like to represent the specified output.
The base note parameter allows you to start the scale of your playing Keygroup from a note other than the scale tonic. It is defined as a offset in scale increments from the tonic in Belcanto with the following phrase:
base | note | to | X | set |
where X is the number (positive or negative depending on whether you need the offset to be higher or lower than the current tonic) in scale increments from the current tonic. For example, in C major if you used the following Belcanto phrase:
base | note | to | 1 | set |
it would set the first playing note of your Keygroup to be the D above the current tonic C.
As explained above, the Keygroup can have its own Scale, Tonic and Octave set independently from the Scaler. If you have set this within the Keygroup, you can remove Keygroup tuning information using the Belcanto command below - the instrument will revert to using the Scale, Tonic and Octave from the Scaler:
un | set |