Control Mechanisms
ArtSong’s algorithmic composition process is managed by a composition engine using a stream of ‘composition-time’ stamped messages to the various components. Every component receives a message at each ‘composition-time’ step and uses it to coordinate and/or synchronize its activities with the other components and the composition engine.
Controlling Note Generation in a Single Track
Tracks compare the ‘coordination’ message’s time-stamp with a special ‘attack-time’ property to determine when to generate a note.
Attack Times
The attack-time is not a note but indicates the next time(s) at which a note(s) can be generated. Nothing actually happens until the composition time reaches the Track’s ‘attack-time’; then the ‘attack’ gets used and another new ‘attack-time’ is generated. Please note that attack-times are always quantised to the underlying time-grid established by the ‘Base Duration’ unit.
The ‘attack-time’ gets used by being converted to either a note or a rest. The first step in using the attack is to generate a ‘duration’ (Please refer to Advance Topic 1 - Rhythm for a discussion of all the factors contributing to duration). This duration becomes either the duration of the generated note or rest and is also used to establish the next ‘attack-time’.
There are several factors which determine whether the ‘attack’ becomes a note or a rest. Some of these factors, such as the note-generation ‘probability’ composition variable and ‘voice-count’ composition variable, are properties of the Track component itself. Several algorithms can also influence whether or not a note gets generated: some algorithms can turn on/off a track’s ability to generate attacks (texture algorithms) or constrain when attacks can occur (pattern algorithms).
|

|
By default, Tracks have a starting 100% probability of generating a note at each attack time.
If ‘Probability’ is not assigned to an algorithm, the value will remain constant at 100% and each attack-time becomes a note. |
 |
Start with a new default project and remove all the default composition variable assignments from the Random Algorithm.
Without any algorithm assignments all composition variables (including Probability) will remain at their set starting values. |

|
When the compose button is clicked each track will generate a stream of constant pitched eighth notes.
The pitches and durations of these notes are controlled by their respective composition-variable starting values. |
TRY THIS: Edit the starting Duration, Multiplier, and Pitch for a few of the Tracks and re-Compose. |
|

|
We can change the probability that an attack generates a note (versus a rest) by either setting the starting value of the ‘Probability’ composition Variable to something other that 100% |

|
or by assigning the variable to an algorithm which also results in varying the probability value between the 0 and 100% prescribed range.
|

|
When the project is composed you will notice that some of the attack times have become ‘rests’ instead of notes.
Change the range for the Probability variable or the Random Distribution type to control the ratio of rests to notes. |
TRY THIS: Change the low-high range for the Probability value and re-Compose. |
»
|