Documentation Wiki rss-feed

Keygroup


Name

Keygroup: known in Belcanto as

error
Error

Description

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:

  1. It allows for the division of the Eigenharp keyboard to provide easy access to functionality within EigenD.

  2. 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.

Ports

Strip Position inputs 1 and 2

  • Name:

133 1464 116 ?
strip position input X

  • (X is the strip position input number - it can be 1 or 2)
  • Input
  • Type: Number
  • Range: -1 to 1

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

  • Name:

134 116
breath input

  • Input
  • Type: Number
  • Range: 0 to 1

The breath input is normally used to receive breath controller information from an upstream Agent (either another Keygroup or from the Keyboard Agent)

Octave

  • Name:

324
octave

  • Input, Set
  • Type: Number
  • Range: -1 to 9

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

  • Name:

145
tonic

  • Input, Set
  • Type: Number
  • Range: -1 to 9

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 inputs 1 and 2

  • Name:

8735 133 116 ?
absolute strip input X

  • (X is the strip position input number - it can be 1 or 2)
  • Input
  • Type: Number
  • Range: -1 to 1

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 1, 2, 3 and 4

  • Name:

161 116 ?
pedal input X

  • (X is the pedal input number - it can be 1, 2, 3 or 4)
  • Input
  • Type: Generic
  • Range: None

The pedal inputs are normally used to receive pedal data from an upstream Agent (either another Keygroup or from the Keyboard Agent.)

Activation input

  • Name:

1435 116
activation input

  • Input
  • Type: Number
  • Range: 0 to 1

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

  • Name:

128 116
pressure input

  • Input
  • Type: Number
  • Range: 0 to 1

The pressure input is normally used to receive key pressure signals from upstream and processes them accordingly.

Roll input

  • Name:

131 116
roll input

  • Input
  • Type: Number
  • Range: -1 to 1

The roll input is normally used to receive key roll signals from upstream and processes them accordingly.

Yaw input

  • Name:

132 116
yaw input

  • Input
  • Type: Number
  • Range: -1 to 1

The yaw input is normally used to receive key yaw signals from upstream and processes them accordingly.

Base note

  • Name:

1812 124
base note

  • Input, Set
  • Type: Number
  • Range: -20 to 20

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

  • Name:

1775 116
controller input

  • Input
  • Type: Generic

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

  • Name:

2318 116
mode input

  • Input
  • Type: On/Off

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

  • Name:

8836
blink

  • Input, Set
  • Type: Number
  • Range: 0 to 20; default = 0.5

Nouns

Course:

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.

Course Offset:

The offset between Courses can be defined in both semitones and scale increments.

Keygroup Output and Mode Key:

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.

Keygroup Scale, Tonic and Octave:

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.

Verbs

Create:

111
create

The 'create' verbs is used to create Keygroup Outputs for a Keygroup.

Choose:

122
choose

The 'choose' verb is used to choose keys within a Keygroup or within a Course.

Move:

1177
move

The 'move' verb is used to move Keygroup Outputs within a Keygroup.

Clear:

228
clear

The 'clear' verb is to clear all previously chosen keys from a Keygroup.

Add:

62
add

The 'add' verb is used to add specific keys or ranges of keys to a Keygroup or Course.

Examples:

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

error ? 1131
Error X listen

where X is the number of your desired Keygroup.

Choosing keys for a keygroup:

To choose the keys for a Keygroup use:

error 122
Error 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.

Chosing keys for courses

To choose the keys for Course 1, use

error 65 11 122
Error 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.

Setting the offset between Courses:

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:

1471 ? 1436 23 14 4177 67
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:

1471 ? 1436 23 26 14 1241 67
course X offset to - 4 interval set

There is an upper and lower limit of 500 semitones and 9500 scale steps.

Adding keys to a Keygroup/Course

As well as choosing keys using 'choose mode', you can also add keys to a Keygroup in Belcanto.

error ? 62
Error 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:

error ? 23 error ? 62
Error X to Error 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:

error ? 23 error ? 65 1471 ? 62
Error X to Error 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.

Clearing keys from a Keygroup:

The Belcanto phrase below clears all keys within the specified Keygroup.

228
clear

Creating a Keygroup Output

You can create an output using

125 ? 111
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).

Moving Keygroup Outputs

The keys which represent Keygroup Outputs when in 'switching' mode can be moved around using the following Belcanto phrase:

125 ? 23 ? 1177
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.

Setting the Base Note

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:

1812 124 23 ? 67
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:

1812 124 23 11 67
base note to 1 set

it would set the first playing note of your Keygroup to be the D above the current tonic C.

Removing Keygroup Scale, Tonic and Octave information

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:

6 67
un set

See also