Contents Up << >>

Random rhythm generator

Figure 2.24: Random rhythm generator toolbar

This dialog generates rhythms from some kind of statistical specification. You define probabilities for timing, velocity and note-length and from these the rhythm is generated.

With the three sliders you specify the meter and (with # Bars) how many probabilities you want to define. Next, you can add or remove instruments to the listbox. Then you specify the probabilities for rhythm, velocity and length for each instrument.

Probabilities are set with the mouse where

In the rhythm field you specify the probabilities for every time position. A high value means a high probability that the instrument is played definitely at that time. A low value means, that the instrument may be played at that time. By adjusting high values only, you can specify a definite rhythm without any randomization.

The velocity (and length) values are looked up by the generator, whenever it decides to play a beat. It chooses one value from 1..127 (x-axis, 1..8 for length) where positions with high probabilities are chosen more often.

If the chosen length is greater than 1 step, there are no more events generated until the note quits, even if there are high probabilities in the rhythm field. You can abuse this, to make sure that there are not too many events generated (example: you have rhythm probabilities at step 4 and 5, but you want exactly one beat to be played at either of these. Specifying a length of 2 will do this, if step 4 is chosen, there cannot be an event on step 5). The length may also be used for rhythms where you want to have random intervals between the beats but you are not interested in the absolute timing positions of the beats. Look at the cowbell definition in the rrg1.rhy example for this.

We had the best results with the following: define every instrument twice. In the first definition, select high probabilities on a few timing positions together with high velocities, this makes the base groove - it is loud and does not change very much. In the second definition, have little probabilities on many timing positions with a low velocity, this makes randomized background fills, which make the whole thing more interesting and that do not override the base groove because of the low velocity.

Aside from drums there are some special 'Instruments' you can select:

The events selected in pianowin are copied to an internal rhythm buffer, so you may define multiple rhythms with different pianowin selections.

To generate, you select some bars on one track in the trackwin and press the gen button.

Instruments without randomizing

If the checkbox 'randomize' is not selected, the velocity and length fields are disabled. The rhythm is generated from the rhythm field only. Every position with a bar height greater 0 gives a beat, the height of the bar is the velocity.

Instrument Groups

Up to now every instrument has its own probability definition and plays on its own without listening to the other instruments. By defining groups, instruments can play a little more 'together'. Some instruments contribute their rhythm to a group and others listen to the group and play accordingly.

The contributors contribute their actual rhythm to the group, so the group maintains its own rhythm that is something like the sum of the rhythms of all contributing instruments.

The listening instruments modify their probabilities according to the rhythm of the group. If the listen value is greater 0, then the instrument will play at the same timing positions as the group rhythm. If the value is negative, the instrument will play at the timing positions where the contributors do not play.

The algorithm evaluates the instruments in the order they appear in the list. So contributors should be defined before listeners so its actual rhythm will be known to the listener. If a contributor is defined after a listener, the listener will listen to what the contributor played in the previous bar. An instrument may be listener and contributor at once.

Example 1: There are three different conga instruments: muted, high and low and you want them to play exclusively (only one instrument at a time). The first in the instrument list (eg the muted conga) will play its rhythm and contribute it to a group. The next instrument (e.g. high conga) will listen to the group with a value of -100, so it will play on those positions only where the muted conga does not play. It will also contribute its rhythm to the group. The third instrument (e.g. low conga) will also listen with a value of -100 so it will play only on positions, where none of the others play. See rrg2.rhy for an example of this.

Example 2: The open hi-hat shall go on some of the positions where the bass drum plays, it shall not play alone (without bass drum). In this situation the bass drum will contribute its rhythm to a group and the open hi-hat will listen to the group with a value of +100.