Polyrhythmic sequences and polymetric expressions

Do not skip this section! It introduces one of the most useful features of BP2, and examples are easy to perform. (Lazy readers will find them in file "-da.PeriodNotation".)

Display the "Data" window and type cmd-j or select "Type from MIDI" in the "Misc" menu (see §1.4). Now, play a few notes on the MIDI keyboard. These are immediately transcribed to the "Data" window, for instance:

C5 D5 G5 F5 G5 C5 D5 D#5 D5 C5 A#4 C5

Now select this sentence and type cmd-p. A dull performance, isn't it? Keep in mind that BP2 allows all kinds of manipulations of note durations (see §1.8) and time patterns (see §9). For the moment we will use a plain metronome to demonstrate rhythmic possibilities at the level of the score. We call this dealing with symbolic durations.

The period notation

Insert periods (indicating beats), for instance:

C5.D5.G5.F5 G5.C5 D5.D#5.D5.C5 A#4.C5

Play this example. Symbolic durations have been resized automatically so that the sum of durations remains constant over each 'beat'. In western terminology, the item would be said to contain crotchets and quavers. In Indian terminology, the same would be described as tempo changes from hargun (speed 1) to dogun (speed 2).

This period notation is a recent feature of BP2. Previously, the simple (although less flexible) way of notating speed changes was:

/1 C5 D5 G5/2 F5 G5 C5 D5/1 D#5 D5/2 C5 A#4/1 C5

A slash followed by an integer number specifies the tempo, more precisely the density of sound-objects (in units per beat). We call it an explicit tempo marker. Tempo markers are still used in the present version, and may be combined with the period notation. Read on...

You may try all kinds of arrangements of periods on a sequence. You will find that changes of tempo may introduce fractional ratios. Try for instance:

C5 D5.G5 F5.G5 C5 D5.D#5 D5 C5.A#4 C5

Here, the duration of each note in "G5 C5 D5" and "D#5 D5 C5" is 2/3d that of the first note "C5". Is it possible to represent this example with explicit tempo markers? The answer is given by BP2: select the item and click "Expand selection" on the Control panel (accessed with cmd-=). The explicit notation is the following:

/3 C5_ _.D5_ _.G5_ _.F5_ _.G5_ C5._ D5_.D#5_ D5._ C5_.A#4_ _.C5_ _

in which '_' indicates a prolongation of the preceding note. The initial part "/3 C5_ _" means that the tempo is "speed 3" ( tigun in Indian notation), but since "C5" is followed by two prolongation symbols its resulting duration (3/3 = 1) is the same as in the preceding examples.

There is an important rule regarding tempo: in a sequence, the tempo of sound-objects or notes in the first beat sets the initial tempo, whatever the beat division. The initial tempo may be the default one "/1" unless otherwise specified. Examples will make it clear. First we introduce an explicit initial tempo:

/2 C5 D5.G5 F5.G5 C5 D5.D#5 D5 C5.A#4 C5

Now, something more tricky: although the third beat "G5 C5 D5" contains three notes we want it to be performed at "speed 2". This will force BP2 to resize other beats accordingly. The notation is:

C5 D5.G5 F5./2 G5 C5 D5.D#5 D5 C5.A#4 C5

What is the duration of the initial "C5" in this case? It is 3/2 that of each note in the third (and fourth) beats. Since the latter are forced to speed 2, the resulting duration for "C5" is 3/2 x 1/2 = 3/4. This is shown by the expanded notation of the same example:

/4 C5_ _ D5._ _ G5_._ F5_ _.G5_ C5_.D5_ D#5_.D5_ C5_.A#4_ _ C5._ _--

Note that for the sake of consistency BP2 completed the last beat with two silences '-'.

At this stage you might start figuring out that BP2 is smart in dealing with rhythmic problems. Imagine doing the previous examples on a MIDI sequencer using event lists or common musical notation... But there is more to come!

What happens if several explicit tempo markers are inserted? For instance,

C5 D5.G5 F5./2 G5 C5 D5./2 D#5 D5 C5.A#4 C5

is equivalent to the preceding example. One of the two markers is redundant. Putting several markers in the same sequence is useless and may even lead to inconsistency. For instance,

C5 D5.G5 F5./2 G5 C5 D5.D#5 D5 C5./3 A#4 C5

results in conflicting durations and will be rejected by the interpreter. A good strategy is to use no more than one explicit tempo marker in an entire musical item, and let the interpreter adjust durations accordingly. This explicit tempo marker is often in the beginning of the item, but it may be inserted elsewhere, notably in case the beginning tempo cannot be specified by an integer number.

Silences (notated '-') may of course be inserted in sequences and will be resized like simple notes or sound-objects, for instance:

C5.D5.- - F5 G5.C5

A sequence of several silences '-' may be replaced with an integer number. Thus, the preceding notation is equivalent to:

C5.D5.2 F5 G5.C5

More generally, silences may be defined as integer ratios. For instance, the item

C5.D5.3/2 F5 G5.C5

is interpreted as:

/7 C5_ _ _ _ _ _ D5_ _ _ _ _ _ - _ _ F5_ G5_ C5_ _ _ _ _ _

Sometimes it is difficult to calculate the duration of a silence, or it is more convenient to leave it unspecified so that the interpreter determines its value it in the current context. Silences with unspecified durations are called undetermined rests, notated '_rest' or '...'. Try the following

C5.D5.G5..../5 F5 G5 C5.D5 D#5.D5 C5.A#4.C5

or equivalently:

C5.D5.G5. _rest/5 F5 G5 C5.D5 D#5.D5 C5.A#4.C5

Given the context, the interpreter estimates that the simplest value for the undetermined rest will be 2/5 of a beat. The resulting interpretation is:

/1 C5 D5 G5/5 - - F5 G5 C5/2 D5 D#5 D5 C5/1 A#4 C5

Data file "-da.ShowPeriods" contains a few examples demonstrating the period notation.

Let's finish with a quizz: can you write a piece of music which keeps accelerating, using a unique symbol for the duration? The answer is 'yes', and the solution is given §4.11 of the Reference Manual.

Polymetric expressions

All features presented in §1.12.1 apply to polymetric expressions, which contain simultaneous musical fragments. The notation{A, B,...} means that expressions A, B,..., are performed simultaneously with identical (symbolic) durations. Expressions separated by commas are called fields of the polymetric expression.

The condition on equal durations is similar to the one in sequence operations. In fact, the same polymetric expansion algorithm is used. For example, the sequence

/1 C4 D4 E4 F4 G4.C5 D5 E5

is interpreted:

/3 C4_ _ D4_ _ E4_ _ F4_ _ G4_ _ C5_ _ _ _ D5_ _ _ _ E5_ _ _ _

Similarly, the polymetric expression

{C4 D4 E4 F4 G4, C5 D5 E5}

leads to a two-line score represented in a table, the phase diagram:

Note that a polymetric expression may contain several levels of curled brackets {} and any its fields may in turn be notated in period notation. Other features such as explicit tempo markers and undetermined rests apply in the same way shown with period notation.

Typical examples of rhythmic items combining period notation with polymetric expressions are given in the data file "-da.checkPoly". Simple examples will also be introduced further in the present document.