/ Examples / NoteStream / AbcSequencer

Projects .. AudioIO .. Control
NoteStreams .. Instruments
Filters .. Effects .. LiCK Effects
Plot .. Utility .. Pure ChucK


Wherein we present intimate details of the AbcSequencer node.

You can cut to the chase and copy the example to your workspace by right-clicking.

AbcSequencer

AbcSequencer is a NoteStream whose notes are described in abc notation. First, you create one or more sequences. Next, you arrange them into an interesting pattern. As usual, NoteStreams are connected to Players and routed to Instruments.

A common use for AbcSequencer is to produce rhythm tracks. In that usage, the notes you specify are mapped to different percussion sounds - either through A Soundfont or a Bank of Soundfiles.

From the outside looking in, AbcSequencer is a simple node. Its interface comprises a small handful of parameters.

Arrangement

The Arrangement is an abc pattern string that is built-up of references to individual sequences. At right you can see this arrangement:

((A4BC3)3)50

The syntax for the arrangement is actually quite simple and powerful.

These simple rules applied to the expression above yield:

AAAABCCCAAAABCCCAAAABCCC repeated 50 times.

Sequences

Sequences are abc snippets that are automatically assembled into a multipart abc tune. Each sequence is one or more measures made up of notes, rests, decorators and bars. Measures don't have to adhere to a standard rule for measure length but often do. When measure lengths don't match the TimeKeeper's Signature you may see runtime warnings like:

warning: abc track 0 bar 3 has 3/2 units instead of 4 warning: abc track 0 bar 3 has 3/2 units instead of 4

These messages can be helpful if you want all measures to be equal length or can be ignored if you are going for a phasing effect.

In our example:

Pattern Value Meaning
A ^D,,,z^G 3 time units: a low D#, a rest, a middle G#
B C/2z/2D/2z/2E/2z/2 6 half-time units: middle C, rest, D, rest, E, rest
C AxBx 4 time-units: A, rest, B, rest
NoteLength

Above we were careful in the use of the term time units because the NoteLength parameter governs the conversion of time units to beats. Here the use of the value 8 (indicating 1/8th note), means that an abc note with no explicit duration as in sequence C represents an eighth-note. Now if the TimeKeeper signature is 4/4, the length of sequence C will be 2 beats. When using abc to produce interesting rhythms remember a few shortcuts:

home .. topics .. interface .. reference .. examples .. tipjar