Arpeggio notes are used to play multiple notes fast and repeatedly after each other. As they are only played for a short time, this gives the impression of multiple notes playing at the same time. This makes it a good way to play chords for example, as the notes are played relatively to the track note. They can be used independently of pitch envelopes.

BKInt arpeggio [4] = {3, 0, -5 * BK_FINT20_UNIT, 3 * BK_FINT20_UNIT};

BKTrackSetPtr (& track, BK_ARPGGIO, arpeggio);

This defines an array with 3 arpeggio notes in which the first element defines the number of notes. The first note is the base note itself (0 halftones away from the track note), the second is 5 halftones below and the third is 3 haltones above the base note. The note values are fixed-point numbers which makes it possible to define fractional notes.

Arpeggio notes are disabled with a NULL pointer or by setting the number of notes to 0.

Note Length

Each note is played for 4 ticks by default. This can be changed with the attribute BK_ARPEGGIO_DIVIDER.

BKTrackSetAttr (& track, BK_ARPEGGIO_DIVIDER, 12);

This plays each note for 12 ticks.