Documentation Wiki rss-feed

Strummer

Name

Strummer:

image:strummer_expanded.png

8866
strummer

Description

Strummer is an Agent that enables the player to control the envelope of playing keys through breath or other keys. This is similar to hitting a string to play a note that's fingered on a fret or to blowing into a wind instrument to provide the necessary airflow pressure.

Courses are the central concept in Strummer, these are based on the musical courses to which playing keys belong. The musical mapping in the Keygroup agent can be used to group the appropriate keys together into the same course, you can think of this as all the fret positions that belong to the same string on a stringed instrument.

Each course can be configured to be activated and modulated by strum keys and/or by breath, this is done by editing the 'courses' port in Workbench or by using the appropriate Belcanto verbs, as detailed below. Once keys on a course are activated by a strum, the pressure, yaw and roll output signals can be fine-tuned to contain a mixture of the playing key, strum key and breath input signals that started the note. This makes it possible to fine-tune what influences the signals that belong to strummed keys. For instance, the roll of the strum keys can be used to change the roll for all the keys in a course, allowing for smooth multi-note pitch bends. Similarly, the pressure of the strum keys can be used as the pressure of course keys, making the velocity at which the strum keys are pressed, the velocity of the keys that are playing.

While events are always started by the strum breath or strum key input signals, and are always ended when the course keys are released, they can optionally be ended when the strum signals end. When this is enabled, the strum signal is the mandatory energy stream, similar to airflow on a wind instrument. When 'strum note end' is disabled, the strum signals behave similarly to strings that continue vibrating after the initial attack.

When no keys are active on a course that is activated by a strum, the strummer can be configured to play an open course. This creates a new key press that has musical key number 0 by default. If needed, this can be changed, as well as the physical key position, by editing the 'courses' port in Workbench or by using the appropriate Belcanto verbs.

When 'polyphonic course enable' is disabled, only the key with the highest musical key number will be active on a given course, this is similar to a fret that is located the furthest down on a string (but sounding the highest). This also turns on legato 'hammer on' playing style when activating a key further down on a course while still pressing down one that's higher up. In this case, no new event will be created and the key position of the existing event will simply be changed through the 'key output' port. In practice this could for instance result into an instant pitch bend jump from a lower note to a higher one. By turning on the 'pulloff enable' option, the legato 'pull off' playing style also becomes active. This requires a signal from the 'course yaw input' to exceed the 'pulloff threshold' value within the time period that's indicated by 'pulloff interval'. If this happens, for a key that further down a course while it's being released when a key higher up a course is pressed down simultaneously, the key position will again be changed through the 'key output' port without starting a new event. In practice again possibly resulting into an instant pitch bend from a higher note to a lower one.

Events on open courses can be muted by turning 'course mute enable' on. When the pressure of a playing key doesn't exceed the 'course mute threshold' within the time period that's indicated by 'course mute interval', the open course event that corresponds to the key that's triggering the mute will be stopped. This is similar to gently laying down your hand on the neck of a stringed instrument to stop open strings from vibrating. Similarly, it's possible to mute all the events by turning 'strum mute enable' on. When the pressure of a strum key or the strength of the strum breath signal doesn't exceed 'strum mute threshold' with the time period that's indicated by 'strum mute interval', all the events for the corresponding courses will be stopped. This is similar to laying your hand on the strings in front of the bridge of a stringed instrument, effectively preventing them from vibrating.

Control Ports

Enable

  • Name:

5584
enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables the strummer, when disabled the course input signals will be sent directly to the outputs.

Course mute enable

  • Name:

1471 244 5584
course mute enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables muting through the playing keys on the courses.

Course mute interval

  • Name:

1471 244 1241
course mute interval

  • Input, Set
  • Type: Number
  • Range: 0 to 1000 (milliseconds)
  • Default: 20

Sets the interval during which the course mute threshold shouldn't be exceeded to activate the mute behaviour.

Course mute threshold

  • Name:

1471 244 1148
course mute threshold

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0.1

Sets the threshold that the course pressure input signal shouldn't exceed to activate the mute behaviour.

Course pressure scale

  • Name:

1471 128 135
course pressure scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 0

Used to calculate how much of the course pressure input signal will be mixed into the pressure output signal by multiplying it with the scale value.

Course roll scale

  • Name:

1471 131 135
course roll scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 1

Used to calculate how much of the course roll input signal will be mixed into the roll output signal by multiplying it with the scale value.

Course yaw scale

  • Name:

1471 132 135
course yaw scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 1

Used to calculate how much of the course yaw input signal will be mixed into the yaw output signal by multiplying it with the scale value.

Strum mute enable

  • Name:

8647 244 5584
strum mute enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables muting through the strum keys or breath.

Strum mute interval

  • Name:

8647 244 1241
strum mute interval

  • Input, Set
  • Type: Number
  • Range: 0 to 1000 (milliseconds)
  • Default: 20

Sets the interval during which the _ mute threshold_ shouldn't be exceeded to activate the mute behaviour.

Strum mute threshold

  • Name:

8647 244 1148
strum mute threshold

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0.1

Sets the threshold that the strum pressure input or strum breath input signal shouldn't exceed to activate the mute behaviour.

Strum breath scale

  • Name:

8647 134 135
strum breath scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 1

Used to calculate how much of the strum breath input signal will be mixed into the pressure output signal by multiplying it with the scale value.

Strum pressure scale

  • Name:

8647 128 135
strum pressure scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 1

Used to calculate how much of the strum pressure input signal will be mixed into the pressure output signal by multiplying it with the scale value.

Strum roll scale

  • Name:

8647 131 135
strum roll scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 0

Used to calculate how much of the strum roll input signal will be mixed into the roll output signal by multiplying it with the scale value.

Strum yaw scale

  • Name:

8647 132 135
strum yaw scale

  • Input, Set
  • Type: Number
  • Range: 0 to 10
  • Default: 0

Used to calculate how much of the strum yaw input signal will be mixed into the yaw output signal by multiplying it with the scale value.

Strum roll pressure mix

  • Name:

8647 131 128 457
strum roll pressure mix

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0

Used to calculate how much of the strum roll input signal will be mixed into the pressure output signal by multiplying it with the mix value. This also takes the strum roll scale value into account.

Strum yaw pressure mix

  • Name:

8647 132 128 457
strum yaw pressure mix

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0

Used to calculate how much of the strum yaw input signal will be mixed into the pressure output signal by multiplying it with the mix value. This also takes the strum yaw scale value into account.

Open course enable

  • Name:

8825 1471 5584
open course enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables open courses.

Open course pressure default

  • Name:

8825 1471 128 332
open course pressure default

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0

Sets the pressure value that will be used instead of course pressure input when an open course key is played, this is needed since there are no actual course keys pressed from which pressure can be obtained.

Open course roll default

  • Name:

8825 1471 131 332
open course roll default

  • Input, Set
  • Type: Number
  • Range: -1 to 1
  • Default: 0

Sets the roll value that will be used instead of course roll input when an open course key is played, this is needed since there are no actual course keys pressed from which roll can be obtained.

Open course yaw default

  • Name:

8825 1471 132 332
open course yaw default

  • Input, Set
  • Type: Number
  • Range: -1 to 1
  • Default: 0

Sets the pressure value that will be used instead of course yaw input when an open course key is played, this is needed since there are no actual course keys pressed from which yaw can be obtained.

Polyphonic courses enable

  • Name:

8855 8651 5584
polyphonic courses enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables polyphony on courses. When enabled, hammer on and pull off behaves as described at the top of this document.

Pulloff enable

  • Name:

8653 5584
pulloff enable

  • Input, Set
  • Type: On/Off
  • Default: On

Enables or disables pull off behaviour on the course keys. Pull off can only be active when polyphonic courses enable is set to off.

Pulloff interval

  • Name:

8653 1241
pulloff interval

  • Input, Set
  • Type: Number
  • Range: 0 to 1000 (milliseconds)
  • Default: 10

Sets the interval during which the pulloff threshold has to be exceed to activate the pull off behaviour.

Pulloff threshold

  • Name:

8653 1148
pulloff threshold

  • Input, Set
  • Type: Number
  • Range: 0 to 1
  • Default: 0.6

Sets the threshold that the course yaw input signal has exceed to activate the pull off behaviour.

Trigger window

  • Name:

1143 8833
trigger window

  • Input, Set
  • Type: Number
  • Range: 0 to 2000 (milliseconds)
  • Default: 0

Sets the interval during which no new events will be sent by strummer. This can be used to prevent accidental re-triggering of notes within the specified interval.

Input and Output Ports

Course key input

  • Name:

1471 114 116
course key input

  • Input
  • Type: Key

The course key input receives key signals from upstream agents to play keys in courses.

Course pressure input

  • Name:

1471 128 116
course pressure input

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

The course pressure input receives key pressure signals from upstream agents.

Course roll input

  • Name:

1471 131 116
course roll input

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

The course roll input receives key roll signals from upstream agents.

Course yaw input

  • Name:

1471 132 116
course yaw input

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

The course yaw input receives key yaw signals from upstream agents.

Strum breath input

  • Name:

8647 134 116
strum breath input

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

The strum breath input receives breath signals from upstream agents to strum the keys in the courses that are configured to be modulated by breath.

Strum key input

  • Name:

8647 114 116
strum key input

  • Input
  • Type: Key

The strum key input receives key signals from upstream agents to strum the keys in the courses.

Strum pressure input

  • Name:

8647 128 116
strum pressure input

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

The strum pressure input receives key pressure signals from upstream agents.

Strum roll input

  • Name:

8647 131 116
strum roll input

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

The strum roll input receives key roll signals from upstream agents.

Strum yaw input

  • Name:

8647 132 116
strum yaw input

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

The strum yaw input receives key yaw signals from upstream agents.

Key output

  • Name:

114 125
key output

  • Output
  • Type: Key

The key output is used to send key position information to downstream Agents.

Pressure output

  • Name:

128 125
pressure output

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

The pressure output is used to send key pressure information to downstream Agents.

Roll output

  • Name:

131 125
roll output

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

The roll output is used to send key roll information to downstream Agents.

Yaw output

  • Name:

132 125
yaw output

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

The yaw output is used to send key yaw information to downstream Agents.

Verbs

Set

67
set

The set verb can be used to configure the courses for the strummer, this includes breath modulation and open course key coordinates.

Un set

6 67
un set

The un set verb can be used to configure the courses for the strummer, in particular the breath modulation.

Add

62
add

The add verb can be used to add a strum key for a course.

Clear

228
clear

The clear verb can be used to remove all strum keys for a course.

Examples

Before using the Belcanto commands below, make sure you have the desired Strummer Agent in the conversation using

8866 ? 1131
strummer X listen

where X is the number of the desired Strummer Agent.

Enable breath modulation for a course

To enable breath modulation for a particular course, use

134 8652 233 1471 ? 67
breath modulation for course X set

where X is the number of the course.

Disable breath modulation for a course

To disable breath modulation for a particular course, use

134 8652 233 1471 ? 6 67
breath modulation for course X un set

where X is the number of the course.

Add a strum key for a course

To add a strum key for a particular course, use

8647 114 24 1156 ? 8612 ? 233 1471 ? 62
strum key with column X row Y for course Z add

where X is the column of the strum key, Y is the row of the strum key and Z is the number of the course.

Remove all strum keys for a course

To remove all the strum keys for a particular course, use

63 8647 114 233 1471 ? 228
all strum key for course X clear

where X is the number of the course.

Set the musical key position for an open course

To set the musical key position for a particular open course, use

8688 8825 65 114 ? 233 1471 ? 67
quote open as key X for course Y set

where X is the musical key number and Y is the number of the course.

Set the physical position for an open course

To set the physical position for a particular open course, use

8688 8825 65 1156 ? 8612 ? 233 1471 ? 67
quote open as column X row Y for course Z set

where X is the column of the open course key, Y is the row of the open course key and Z is the number of the course.