Skip to content

Generators ​

A pattern says what a part is; a generator says how it is played. This page explains what generators are, how they are put to work, and the settings every kind shares. Each kind has a page of its own, listed under The Kinds below, and Chains covers the chains that run them.

What a Generator Does ​

A generator takes the notes a clip makes and changes them: it arpeggiates a chord, moves a figure through a progression, strums, thins out, swells, slides or hands notes to another track. A generator works on the finished clip, never on the pattern, so nothing you wrote changes. Other clips that play the same pattern are untouched unless they run the generator too, and the generator follows whatever scale, chords and tempo the clip is in when it plays: change the scene's scale and the arpeggio follows.

Generators are heard everywhere a song is: in real time as it plays, and in every export.

Chains ​

Generators are kept in chains, lists of generators that run one after another, and a clip, a scene or a track names the chains it runs; Chains says how.

Generators as Paint ​

The way to think of a generator is as paint. A chain applies it to exactly the clips that should have it, and editing the generator afterwards changes everything painted with it at once, across every song of the set. Write one strum, paint it on every guitar part, and change how every guitar strums by editing one generator.

Some generators have a quick version as a setting of a clip, a scene or a track, like a clip's strum or a scene's density. The setting is quickest for one place; the generator is worth having for the many places that should share one shape and change together.

Chance ​

Every generator that chooses anything at random, a random arpeggio order or a drift's random degree, draws from the song's seed. A song with no seed plays a new take each time; a song with a seed plays the same take every time. While a song plays in real time, one take is kept for the whole play, so an edit changes only what you edited.

Generator Kinds ​

The generators fall into six categories by what they change, as the sidebar groups them.

CategoryGeneratorWhat it doesDemo
ArrangementHocketDeals one track's notes out among other tracksexamples/learning/19_hocket_shanty.yml
ArticulationGlideRuns notes on chosen steps into the next noteexamples/learning/14_acid_glide.yml
ArticulationShortenPlays notes on chosen steps shortexamples/learning/14_acid_glide.yml
ChordsArpeggiatorPlays a chord one note at a time, with offsetsexamples/learning/12_sailor_arpeggiator.yml
ChordsGuitarifyHolds chords as a hand does and plays a bar of strokes on themexamples/learning/23_guitarify.yml
ChordsProgressionMoves a figure through a progression of chordsexamples/learning/06_chord_progression_generator.yml
ChordsStrumSpreads a chord's notes in time like a pickexamples/learning/13_classic_strum.yml
ChordsVoice LeadingVoices each chord nearest the chord beforeexamples/learning/05_voice_leading.yml
RhythmAutoRatchetChops notes into quick repeatsexamples/learning/11_ode_to_joy_ratchet.yml
RhythmEuclidKeeps only the notes on a Euclidean rhythmexamples/other/euclidean.yml
TimingDragPlays notes on chosen steps lateexamples/learning/14_acid_glide.yml
TimingRushPlays notes on chosen steps earlyexamples/learning/14_acid_glide.yml
TransitionsArticulateRamps how long notes sound over a sectionexamples/learning/15_acid_articulate.yml
TransitionsDensityRamps how many notes play over a sectionexamples/by_genre/electronic/edm_density.yml
TransitionsDriftChanges the song slowly from version A to version Bexamples/by_genre/electronic/mainstreet_hoedown.yml
TransitionsSwellRamps how loud notes play over a sectionexamples/learning/16_bolero_swell.yml

About Demos describes every demo, and its table shows which features each one uses.

Generators Page ​

The Generators page

Press G on the main screen for the Generators page, which lists every generator of the set on one list, whatever its kind, with its kind in parentheses beside its name, such as sparse (Density). The kinds are the arpeggiator, AutoRatchet, Drift, Progression, Voice leading, Strum, Euclid, Density, Swell, Articulate, Glide, Shorten, Rush, Drag and Hocket. A generator changes a clip's notes when the song plays or exports; to use one, add it to a chain, then choose the chain on a clip, a scene or a track.

KeyWhat it does
AAdd one: choose its kind, and it is named after the kind and opened
ENTEREdit its settings
N or F2Rename it, which updates every chain
CCopy it, the copy coming straight after it
MPick it up: ↑↓ carry it, and ENTER drops it; the list keeps its order when the set is saved
BkspDelete it, once no chain uses it

Time Settings ​

Every setting of a generator that is a time, an arpeggiator's Step, a drift's or a progression's Every and a shape's Over, chooses from one list, in this order: its own first choice, such as (pattern) or (whole), then 1/64, 1/32, 1/16, 1/16 triplet, dotted 1/16, 1/8, 1/8 triplet, dotted 1/8, 1/4, 1/4 triplet, 1/2, and then 1, 2, 4, 8 and 16 bars, a bar being as long as the song's time signature says. A time a set file holds that isn't on the list, such as an older file's 2, stays as it is and is offered at the end of the list.

Restart ​

Every generator ends its settings with Restart, which says when it starts over:

  • "every clip", the default: with every clip, as if made anew for it;
  • "on new scene": the first time each scene plays, carrying on through the scene's repeats;
  • "whole song": never, running along the song from its top, the scenes laid end to end, so that a scene launched by hand plays as it would at its place in the song.

A generator that carries on keeps what it was doing: a progression runs on across scenes, a Euclidean rhythm keeps drifting against the bar, a shape's ramp can last the whole song, an AutoRatchet goes on through its counts, a voice leading voices a scene's first chord near the last chord before, and an arpeggiator goes on with its random choices. A generator painted on several tracks gives each track a copy of its own, so that tracks line up when their patterns do.

Rows of Steps ​

Glide, Shorten, Rush and Drag are each a row of 1 to 16 steps, each on (●) or off, running from each clip's start at its own Step, the clip's pattern's step size unless set; a note starting on a step that is on is changed. A row shorter than the pattern, 5 or 7 steps over 16, lands somewhere new each time round, so that slides, short notes and pushes move through a line that never changes. ENTER on Steps opens the row: Left and Right move along it, Space or ENTER turns the step under the cursor on or off, the line above the row saying what a step that is on does, and I and D insert and remove steps.

Shapes ​

Density, Swell and Articulate shape a clip's notes over time, each a percentage that ramps from a start to an end. Each is set in three places: a section of the Scene page and of the clip page, + Density, + Swell and + Articulate, and a generator of each kind, which a chain names as density: name, swell: name or articulate: name. A generator in a clip's chains wins over the clip's own setting, which wins over its scene's, so that a generator can be painted on many clips and changed in one place. Every setting left blank plays as 100%, changing nothing.

SettingWhat it does
Start, EndThe percentage at the start and at the end, ramping from one to the other. Bksp leaves it blank, which plays as 100%.
OverHow long one ramp lasts: "(whole)", the default, the whole scene for a scene's and the whole clip for a clip's or a generator's, or a time from the list every time setting shares, such as "1/4" or "2 bars".
ThenWhat happens after a ramp when the clip goes on: "hold" stays at the end, "repeat" starts the ramp again, and "bounce" ramps back.

Released under the GNU General Public License, version 3 or later.