PolytempoComposer
PolytempoComposer is a tool to calculate the precise timing of a succession of events in relation to a certain static or variable tempo. Typically these events are 'beats' which become the clicks of a click track or the gestures of the 'virtual conductor' in the application PolytempoNetwork.
PolytempoComposer allows for several concurrent tempo streams. It is, therefore, also a tool to devise temporal polyphonies.
The output of PolytempoComposer can be exported as a Polytempo score file to be read by PolytempoNetwork It can also be exported in several other formats for further use in other computer-assisted composition environments.
Basic Concepts
Tempo and Time Maps
To understand how different tempos are represented and handled in PolytempoComposer it is necessary to know two visualisation concepts: the tempo map and the time map. A tempo map depicts tempo as a function of time the time map depicts score position as a function of time. Either representation expresses two parameters explicitly while the third remains implicit. The tempo map shows how the tempo evolves over time. The score position has to be calculated as the integral of the tempo function (i. e. the area under the curve). The time map correlates score position and time. It shows at what time a location in the score (a certain beat in a particular bar) is reached. Here, the tempo remains implicit and has to be calculated as the derivative of the function (i. e. the steepness of the curve).
Compare the following three tempo maps and their equivalent representation as time maps; (a) depicts a constant tempo, (b) a sudden tempo change, and (c) an accelerando.
PolytempoComposer provides both visualisations. It is, however, the time map in which all editing is done. The tempo map is a 'read-only' view.
Beat Patterns
The succession of beat patterns defines the metrical structure of the music. A single beat pattern represents the metre of one bar. Select 'Add Beat Pattern' from the 'Edit' menu to add a new pattern.
The Beat Pattern List displays the succession of beat patterns. (Push the button Beat Patterns or select 'Show/Hide Pattern List' from the menu 'View' if this list is not visible.)
The Pattern indicates the time signature, for instance: 4/4 or 3/4. Repeat specifies the number of successive bars with this time signature. Counter sets the bar number that will be shown in the Marker field of PolytempoNetwork. A '+' indicates that the counting is continued. (The counter is always an integer. Floats are used to repeat a bar number, e.g. 10.1, 10.2, after which the automated counting continues with 11, 12, 13, etc.) A Marker is optionally set for any other tags associated with a certain bar, e.g. for rehearsal letters.
The input format of the beat pattern allows for many different time signatures. The number in the denominator designates the note value of the beat. You may use a '+' in the pattern to describe groupings of note values. For example, '6/8' produces a bar with six beats, each of which has a length of a quaver. '3+3/8' or '3/8+3/8' results in a bar with two beats with a length of a dotted crotchet each.
As you add more beat patterns, the length of the piece increases and the time map grows along the x-axis.
Control Points
To define the exact time for a specific position (a specific beat) of a composition, one can set a control point. A control point is added by command-clicking on the time map or by selecting 'Insert Control Point' from the 'Edit' menu or from the context menu that is brought up by a right-click.
You can assign a tempo to each control point. By adding several control points and assigning them individual tempos, you can define a tempo stream with a variable speed. If the tempo differs between two consecutive control points, it is interpolated appropriately.
The Control Point List displays all control points and its parameters. (Push the button Control Points or select 'Show/Hide Point List' from the menu 'View' if this list is not visible.)
The following parameters define a control point. Time is given in seconds. Position is given in units (usually note values). Tempo indicates the momentary tempo (graphically: the steepness of the curve on the time map). If Tempo In and Tempo Out are not equal, there is a sudden tempo change (or a tempo modulation) at this point. Start indicates that the tempo track is interrupted between this point and its predecessor. This feature can be used to stop the music at any given point and resume it later. Of course, this option is always set for the first point. With Cue In you can add pickup beats. The number of pickup beats is given as a beat pattern. (Note: if the tempo track is interrupted before this control point, the pickup anticipates the Tempo Out, i.e. there is no interpolation of tempo whatsoever.)
Sequences
A sequence represents an individual tempo stream in a polytemporal composition. Each sequence has its own succession of beat patterns and its own set of control points. There can be an arbitrary number of sequences at the same time. To add a sequence, choose 'Add Sequence' from the 'Edit' menu or from the context menu that is brought up by a right-click.
You may change the colour or the name of the sequence. The button Playback Settings brings up a window where you can select how the beats of this sequence are played back (as audio, midi, OSC).
Workflow
PolytempoComposer can be used as a sketching tool for outlining short combinations of different tempos or as a production tool to construct the tempo track for a whole piece of polytemporal music. In either case, the workflow is similar.
The window of PolytempoComposer contains several areas. On the left side: the time or the tempo map. On the right side: several list views.
A typical workflow looks like this: First, you input the metrical structure of the music by adding beat patterns. Second, you build the tempo structure by adding control points.
On the time map, you may select and drag the control points. PolytempoComposer automatically draws lines between them. These lines are straight if the tempo remains constant between two control points; they are curved if the tempo varies.
PolytempoComposer always tries to find a solution. If necessary, it appropriately interpolates the tempo between two points. This interpolation can lead to the following artefacts, which may or may not be desirable: If the music does not fit into a given amount of time, the tempo will be distorted. This effect is particularly visible on the time map, as shown in the following example.
The tempo of these three control points is set to 60. However, only the duration between the first and the second control point allows for this tempo. Between the following points, there is either too little or too much time to play the music in a constant tempo of 60. As a result, the tempo is temporarily slowed down or sped up to guarantee that the music reaches the next control point in due time.
If PolytempoComposer can not find a reasonable solution, the tempo curve appears rectangular on the time map and interrupted on the tempo map. In such a case, the beats between the two control points will not be calculated.
Helper Functions
There are several useful functions to build the time structure of a piece of music.
Shift Control Points
Highlight one or more control points and select 'Shift Selected Control Points…' from the 'Edit' menu or from the context menu that is brought up by a right-click.
This function lets you move all selected points to a new time or a new position (on a time map in the direction of the x-axis or the y-axis respectively).
Adjust Control Points
Highlight one or more control points and select 'Adjust Selected Control Points…' from the 'Edit' menu or from the context menu that is brought up by a right-click.
This function adjusts the time or the position of the selected points in such a way that the tempo between two points remains constant or is linearly interpolated.
Adjust Tempo
Highlight at least two adjacent control points and select 'Adjust Tempo' from the 'Edit' menu or from the context menu that is brought up by a right-click.
This function finds the appropriate constant tempo between the selected points and sets their tempo in and tempo out accordingly.