Compositions

The whole piece: movements in order, crossfading into one another, looping for as long as anyone is listening.

A composition's timeline is a row of movement blocks. Every seam between two blocks is a true crossfade: both movements play at once in the engine while one fades into the other, with the fade region authored inside the movements' own intro and outro. Each block can override how many times its movement loops, scale its tempo (a structural stretch, so a delay time or an LFO rate that is set in beats keeps its musical relationship rather than its seconds), and nudge its phase so two movements line up the way a DJ beatmatches.

The composition editor: movement blocks on a timeline with crossfade seamsThe composition editor: movement blocks on a timeline with crossfade seams
The composition timeline. Each block is a movement; the shaded shoulders are the crossfades.

Blocks can be split and a region looped in place, so a held loop of one movement's best eight bars is ordinary timeline material. Contiguous pieces of the same movement continue one performance, so the generative material keeps walking rather than restarting at the cut.

A piece that is always happening

The end of the timeline wraps back to the start as one more crossfade, so a composition is a cycle rather than a track with a stop. A composition can also be anchored to a time of day. The web player then maps the listener's wall clock onto a position in the cycle and lands there exactly, with a silent pre-roll, so two people opening the page in different cities hear the same moment of the piece. The generative draws are seeded by the cycle count and the block, so each lap is different, and the same lap is the same for everyone.

The composition mixer

Each movement is a channel on the composition mixer, with send buses shared across the piece and a master that carries a safety EQ and limiter as the last stage before delivery. Automation at this level is written in seconds along the cycle rather than in beats, because a composition has a tempo per block but a clock for a ruler.

The composition mixer: one channel per movement, send buses and the masterThe composition mixer: one channel per movement, send buses and the master
The composition mixer, one channel per movement.

Export

A composition exports as one self-contained web page: the player, the engine, and the piece. There is no transport on the page. It plays.

DemoThree Movements joined as a Composition. Generated for you.