30
Songs
MelekTaus edited this page 2026-10-19 18:45:07 +02:00

A song (+ → Song, #334) lays patterns and sounds out on tracks along one time axis. It is the third piece of the music tools of #330, after the instrument (#331) and the pattern (#333). Several songs and tracks can use the same pattern: an edit to it is heard everywhere it lies.

Songs are listed under Songs in the asset panel. A new song has one empty track, 120 BPM in 4/4, and items snap to 1/16.

What a song says

The tracks, the items, the loop and the markers are the song's own data; everything else is a row in the inspector.

Row What it does
Tempo (BPM) 20 to 400, quarter notes a minute. The song plays every pattern at this tempo; the tempo set on a pattern is only for its own tab.
Sign The time signature of the ruler (#363): 1/2, 2/2, 3/2, 1/4 to 6/4, or 5/8 to 9/8, 4/4 by default. Items are kept in ticks, so a change only moves the bar lines.
Grid What items snap to: Bar, or one of the grids of a pattern, 1/1 to 1/32 and the triplets. A new song snaps to 1/16 (#365). The tab's header has the same choice.
Sound FX A sound FX the whole song goes through, after its tracks and the routing, before its links in the Master routing (#352). Play song and the tab play through it.

Where a Play song and the tab are heard is said by the links of the song's node in the Master routing (#351). The Output of the song's own routing goes there.

One tempo and one meter hold for the whole song. Automation (#337) moves the volume, the pan and parameters of a track, not the tempo.

Tracks

A track has a name, a volume from -60 to +12 dB, a pan from -1 (left) to 1 (right), mute and solo. While any track is soloed, only the soloed ones are heard, with what goes into them and through the tracks they go through (see Routing). Each track is heard on a bus of its own: a change of volume, pan, mute or solo reaches what is sounding on it at once, not only the next note. A song keeps at least one track. A track can have a Sound FX that everything on it goes through, before its volume and pan (see below). Where a track goes from there is the song's routing: into the output, as every track does at first, or through other tracks. Its volume, pan and the parameters of what lies on it can change over the song along automation lanes.

Items

An item lies on a track, from a start for a length, both in ticks (480 to the quarter note). A track takes both kinds, mixed.

Kind
Pattern Plays the pattern's notes. Longer than the pattern, it repeats it; it plays the whole pattern, the loop set on its ruler is for editing. Transpose moves every note by semitones (-48 to 48). Instrument plays it with another instrument; From the asset (empty), the pattern's own. A Sound FX sends all its notes together through one effect, before the one of the track: From the asset (the default) is the pattern's own, None none, and one picked takes its place (#352).
Sound Plays the sound as a clip, at its own speed whatever the tempo. Longer than the sound, it repeats it. A Sound FX sends it through an effect: From the asset (the default) is the sound's own, None none, and one picked takes its place (#352).

Every item has a volume on top of its track's: a sound item from -60 to +12 dB, a pattern item from -60 to 0 dB, since a note is never louder than its velocity makes it. An item whose pattern or sound has been deleted stays, drawn red as missing, and plays nothing.

An item cut back from its left end keeps what it plays where it was: it starts that far into its pattern (in ticks) or its sound (in seconds). A split does the same with the right-hand part. Pulled out by its left end past the start of what it plays, an item repeats that to the left as it does to the right: it starts that far before the end of a round.

The Song tab

Down the left are the heads of the tracks: the name, FX (the track's sound FX, blue when it has one; its menu can also make one of its own), M (mute, orange when on) and S (solo, yellow when on), below them the volume (the line marks 0 dB) and the pan (the line marks the middle), and up the right edge the track's level meter. A track is added from the right-click menu of a head, above or below it. Along the top is the ruler, as in the Pattern tab, and under it the strip of the markers. Left of them, above the heads, is Out, the meter of the whole song. Between them are the lanes with the items: a pattern blue with its notes drawn small, every round it plays; a sound green with its waveform, from where it starts in it, every round drawn alike (each column shows the loudest part of what it covers). An item longer than what it plays has a white line with a small notch where it starts over, one for every round. An end of an item under the pointer lights up and the pointer turns into a resize arrow: that end can be dragged. A picked item has a white edge; a picked track a lit head and lane. Zoomed down to less than 46 px, a head shows only its name, M and S.

The header has Timeline and Routing (what the tab shows, see Routing), Play (it turns into Stop), Record with the input to record from and its level, the Grid, Fit and on the right the number of tracks and items. Fit shows the whole song across and all its tracks down, or frames the routing graph.

What is picked goes to the inspector: an item shows its pattern or sound, its volume and the rows of its kind, a track its name, volume, pan, mute, solo and sound FX. A click on nothing in the lanes picks the song itself, with its tempo, meter and grid. Items and tracks are deleted with Delete or from their right-click menu, not from the inspector.

Laying out and editing

Do this And this happens
Drag a pattern, a sound or a clip of one (#425) from the Assets panel onto a lane A frame shows where it lands; let go and it lies there, on the grid line before the pointer, as long as the pattern or as the sound or clip at the song's tempo, picked. Left of bar 1 nothing lands.
Drag an item by its body It moves along the grid and to the track under the pointer, the other picked items with it.
Drag an item by its right end It takes the length to the grid line or the end of a round nearest the pointer, the other picked items lengthen by as much. An end of a round between two ticks is cut to the tick before, so nothing of the next round sounds.
Drag an item by its left end It is cut back or pulled out at the front, to the grid line or the start of a round nearest the pointer; what it plays stays where it was. Pulled out past the start of what it plays, it repeats it. A sound not loaded yet stops at its start.
Hold Alt or Shift while moving or sizing Off the grid and off the rounds, on the tick.
Drag on empty lanes A band; the items it touches are picked. With Shift they are added.
Click on nothing in the lanes Picks the song itself.
Click a head Picks its track.
Shift-click an item Adds it to the pick or takes it out. Dragged on with Shift, it is added and moved or sized off the grid instead.
Right-click an item Opens its menu: Open opens what it plays (as a double-click does), Make project asset or Embed a copy (see Embedded assets), and Delete deletes it, or every picked item where it is one of them.
Right-click an empty spot of a track Create pattern: a new pattern the song keeps to itself (see A pattern made in the song).
Double-click a pattern item Opens the pattern in the Pattern tab, with what the song plays around the round clicked into as ghost notes.
Double-click a sound item Opens the sound in the Sound tab (#352). An item playing a clip opens it with that clip picked (#357).
Click M or S in a head Mutes or solos the track.
Click FX in a head A menu of the project's sound FX: one of them for the track, or No sound FX.
Drag along a head's volume or pan Sets it; while the song plays it is heard as it moves.
Double-click a head's volume or pan Sets it back to 0: the volume to 0 dB, the pan to the middle.
Right-click a head Add track above, Add track below, Move up, Move down, Delete track.

Every drag is one undo step, and so is every key below that changes the song.

Key (the lanes focused)
Space Play or stop; while recording, stop and keep the take.
Delete, Backspace Delete the picked items; with none picked, the picked track and what lies on it. Never the song itself.
Ctrl+C, Ctrl+V Copy the picked items; paste them under the pointer: the earliest on the grid line before it, the topmost on the track under it, the others as far below as there are tracks. With the pointer off the lanes (or left of bar 1) they land where playing starts, on the tracks they came from. The copy works for every song of the project.
Ctrl+D A copy of the picked items right behind them, moved by whole grid steps, picked in their place.
Ctrl+E Split the picked items where playing starts; the right-hand parts are picked.
Ctrl+A Pick every item.
↑ / ↓ The picked items a track up or down.
← / → The picked items a grid step earlier or later, with Shift a bar.
Esc Pick nothing; while recording, throw the take away.

The ruler works as in the Pattern tab: a click or drag on the bars moves where playing starts, a drag on the loop strip along its top sets the loop, a right-click offers Loop bar N and Loop the whole song. With no loop set the whole song is the loop: up to the bar after its last item, and at least one bar. An empty song is a single bar long, so Fit shows that one bar across; the wheel takes the view out to lay items further on.

Markers

A marker (#338) is a named spot on the song's time, on a whole tick. Markers lie on a strip of their own under the ruler: a green flag with the name beside it, as much of the name as there is room for before the next marker, and a faint green line down the tracks. Resting the pointer on a marker shows its whole name. Two markers may share a tick and a name; a marker is known by its id. They change nothing that is heard and are not in a bake's print.

Do this on the strip And this happens
Double-click an empty spot A marker there, on the grid line nearest the pointer (with Alt or Shift on the tick), named Marker 1, Marker 2 and so on by the first number not taken.
Right-click an empty spot Add marker, the same.
Drag a marker It moves along the grid, with Alt or Shift on the tick. One undo step.
Click a marker Playing starts there, as a click on the ruler would set it.
Double-click a marker A dialog names it.
Right-click a marker Play from here, Rename…, Delete marker.

In a game, markers are what On song marker and a switch to a song at a marker will aim at (#338, still to come). The agent sets them with add_song_marker, change_song_marker and remove_song_marker; get_asset lists them under markers.

The wheel zooms and does nothing else: over the lanes, the ruler or the markers the time about the pointer, over the heads the height of the tracks (28 to 320 px), about the track under the pointer. The time zooms in eight times as far as in the Pattern tab, to 3840 px a quarter, so a take can be laid down to the millisecond. A middle-drag pans both ways, and as in the Pattern tab it can take bar 1 up to half the lanes in, the time before it drawn dark and only to look at. Down the lanes it can take the first track up to half the height down and the last up to half the height up; nothing lies above or below them.

Fit shows the whole song across and all its tracks down, each as tall as they share out (28 to 320 px), with 9 % of the lanes free on every side. A song with no view kept yet opens fitted the same way.

Automation

A track can change its volume, its pan and the parameters of what lies on it over the song, along points on an automation lane (#337). From each point the value runs to the next along that point's easing, as from one animation key to the next: Linear, Step, every curve going in, out or both, or a Curve asset of the project. Before the first point the lane holds the first value, after the last one the last. Two points on one tick are a jump there.

  • The volume is in dB, -60 to +12, the pan -1 (left) to 1 (right). While their lane has a point, it rules the value in place of the track's own: the fader in the head shows the lane's value in pink and cannot be dragged, and the inspector says which lanes rule the track. Cleared, the lane goes and the track's own value rules again, from where the lane left it.
  • A parameter (param:<name>) moves every parameter of that name on the track: of the track's sound FX, of the sound FX of its items, of the instruments its patterns play and of their own sound FX, as Set sound FX parameters reaches them. A parameter says nothing of its own range, so its lane keeps one (From and To). Such a lane stays, for its range, until it is removed, also without a point. Removed, the parameter goes back to its default.
  • A note or clip starts at the value its lane has there. While it sounds it follows the lane. What a voice only reads when it starts (the times of an envelope, the pick of a Sample) changes from the next note on.
  • A lane is played on the clock of the sound, ramped where it can be and read every 10 ms where it runs along a curve. At the end of the loop it jumps back with the playhead. It is heard in the tab, in Play song, in a bake, and in a composition that plays the song, round the song's loop there too.
  • An edit while the song plays is heard from the next window on. While a lane rules a value, the track's own value does not set it back.

Lanes in the Song tab

The triangle at the left of a head folds the lanes of its track out and in: one for the volume and one for the pan, and one for each parameter it has a lane for. The right-click menu of the head shows or hides each lane by itself (Volume lane, Pan lane, …) and has Add parameter lane…, a dialog for the parameter and its range, which starts round the parameter's default (0 to 2000 for 800). The triangle is pink while the track has automation. A lane with points opens by itself; which lanes are open belongs to the view of the tab, not to the song, and takes no undo step.

A lane is a row of its own, as high as a track, under its track. Its head shows its name and the value at the playhead, or where playing starts.

Do this And this happens
Click on a lane A point on the grid line nearest the pointer, at the height clicked. With Alt or Shift, on the tick.
Press and drag on a lane A point is set and dragged along, in one undo step.
Drag a point It moves in time and value. It stops at the point next to it; on the same tick the two make a jump. The value shows beside it.
Rest the pointer on a point A tooltip with its value.
Double-click a point, or Delete with one picked Deletes it.
Right-click a point Ease to next point, with the same choice as animation keys, and Delete point.
Right-click a lane's head Clear lane (every point), Hide lane; on a parameter's lane also Range… and Remove lane.

Measured (2026-10-19, e2e 65 on the CI's Windows machine): a volume lane playing in the tab set the level of its track's bus 0.09 dB off the lane at the playhead, with the fader at -60 dB. A sound item whose sound FX turns its parameter cut into a gain started at the lane's value there (-27.5 dB at tick 9600), and at two readings 1.5 s apart its gain lay within 0.04 dB of the lane.

Routing

Routing in the header shows the song as a graph instead of the timeline (#350): a node for every track, named after it, and one node Output. The output is what the song sounds like; from there it goes on along the links of the song in the Master routing. It is the same graph editor as for a sound FX, with zoom, undo, groups and comments. The magnet next to Routing snaps the nodes to the grid while it is lit. It is off at first and greyed out on the timeline, just as Grid is greyed out in the routing. Timeline goes back.

  • A link is a send. A track takes in any number of links and sends to any number of tracks and the output. It mixes its own items and everything that comes in, sends that through its sound FX, volume and pan, and then out along every link.
  • A new track is linked to the output, and so is every track of a song made before #350, which had no routing yet. A track linked nowhere is not heard: its node says Goes nowhere.
  • The nodes come and go with the tracks. They cannot be added in the graph, and Delete does not take them; a track is deleted in the timeline. Its name comes from the track, its volume, pan and sound FX stay in its head. The output is there once.
  • No loops. A link that would lead back to the track it comes from is refused while dragging.

A picked link shows two rows in the inspector:

Row
Volume -60 to +12 dB, 0 dB at first: how loud it sends.
Mode Where on its track it takes the sound. Post volume (Post pan), the default: after the sound FX, the volume and the pan. Pre volume (Post FX): after the sound FX, before volume and pan. Pre volume (Pre FX): right where it comes in, before the sound FX.

Mute and solo along the routing. A muted track passes nothing on: neither its items nor what comes into it, on no link, whatever its mode. Solo wins over mute: a track that is muted and soloed at once is heard as soloed. A muted track it goes through or that goes into it stays silent. While some tracks are soloed, a soloed track is heard with every track that goes into it. The tracks it goes through on its way out pass it on, but their own items are silent. Every other track is silent. So with A into B and B into the output, solo on A lets A be heard through B, without what lies on B. Only the ways through a soloed track are open: if A and B go into C and also straight into the output, solo on C lets A and B be heard through C only, their links into the output closed.

In step. A track's links can be late by different amounts: one past a Pitch that is a frame late, one before it (Pre FX) that is not. Every way of a track is held back as far as its latest one, so all of it reaches the output together and nothing is heard twice a frame apart. A note is started as much earlier as that latest way is late.

Measured (2026-10-07, e2e 65 on the CI's Windows machine): in a song of five tracks, every track was linked to the output when Routing opened. A drag from the first track into the second linked them, the drag back was refused, Delete took two links to the output and no track, and the third track, now linked nowhere, said Goes nowhere. Volume -6 dB and Pre volume (Pre FX) on the link from the first into the second track: playing, the first track's only send went into the second track's bus at 0.501 from before its sound FX, the third track had no send at all.

Playing

Space or Play plays the song round its loop from where playing starts, through the scheduler (#332), every note and clip planned ahead on the clock of the sound. Started inside a sound item, the clip starts that far into its sound; so it does again after every jump back to the start of the loop. At the end of the loop a clip is faded out in 10 ms, a note gets its release (see Envelopes), echoes ring on. An edit while it plays is heard from the next window on, without starting over; a track's volume, pan, mute and solo at once.

The editor plays one piece at a time: playing a pattern stops the song, and playing the song stops a pattern. Playing goes on while another tab is open; it stops when another song is shown in the tab, when its tab is closed, when the song is gone, when Play starts the game and when a project is opened.

Measured (2026-10-06, e2e 65 on the CI's Windows machine): a sound clip on the first track and a pattern at bar 3 on the third, at 120 BPM, were planned 4 s apart, the pattern's notes 1 s apart, each on the bus of its track; a track turned down to -6 dB was set to 0.501 on its bus, and muting a track while the song played closed its send to 0 (since #350; its own level stayed at 1).

Levels and clipping

While the song plays, every track has a level meter up the right edge of its head, and Out above the heads shows the whole song (#359).

  • What they show: the loudest sample on the left and on the right side, as a bar each, from -48 to +6 dBFS. Green, yellow from -6 dB, red past 0 dB. A line marks the loudest peak, it holds for 1.5 s and then falls.
  • Where they measure: a track after its sound FX, volume and pan, before its links. Out after the song's own sound FX, before the links of the song and the master. Both measure before the limiter at the output, so they show what the mix would be without it.
  • Clip lamp: once a sample was past 0 dBFS, the far end of the meter stays red, through Stop as well. Out also writes the loudest peak since Play in dB, red past 0. The next Play or a click on the meter puts the lamp out. A red lamp means the limiter is at work there: turn something down.
  • Grey is the meter of a track that mute or solo keeps from being heard. It runs on with what the track would give, as long as its own items are heard. A track that solo silences shows nothing, because solo shuts off its items before the track.
  • The meters only run while the song plays and its tab is shown. They sit beside the sound, not in its way, and add no delay.

Measured (2026-10-08, e2e 65 on the CI's Windows machine): with every track and the sound item at +12 dB, Out wrote +16.6 dB and both meters lit their clip lamps. Behind the limiter the loudest sample over 6 s was 0.8913, which is -1.0 dBFS. After Stop no bus was tapped any more, the lamps stayed lit, and a click on each meter put its lamp out.

Recording

Record records from a microphone or another input while the song plays (#342). The first time the browser asks whether the page may use it; a refusal can be taken back with the lock in the address bar. The input is picked in the dropdown next to it (Default input is the system's); the names of the inputs show once recording has been allowed, and the browser keeps the choice.

  • The song plays from where playing starts, once through and on past its end: the loop is not used while recording. Nothing of the input is played back, so use headphones, or the song ends up in the take.
  • Meanwhile the take grows red, with its waveform, on a new track Recording right under the track clicked last (else under the last one); the lanes take no edits, only a middle-drag pans. The meter next to the input shows its level, red near full scale.
  • Stop, Play or Space keep it: it goes up as a WAV file (one channel, 16 bits, at the rate of the sound device), becomes the sound Take 1, 2 … that the song keeps to itself (see Embedded assets, numbered per song) and lies on its track from where playing started. The item plays the whole take; to play a part of it, make a clip in its tab and pick it in the item's Sound row (#357). Sound, track and item are one undo step. Esc throws it away, nothing goes up. Should the song be deleted while the take goes up, the take becomes a project sound instead.
  • It is cut so that what was played along to the song lies where it was heard: the delay of the output and of the input, as far as the browser tells them, are taken off. What is left over can be moved with Alt-drag. The browser's echo cancelling, noise filter and automatic gain are off; they bend music.
  • A take may be as long as a sound may be (256 MB, about 46 minutes at 48 kHz); there it stops by itself. If the upload fails, a box offers Retry, Download WAV and Discard.
  • Opening another project throws a take away; showing another song or playing a pattern keeps it.

Embedded assets

A sound, a pattern or a sound FX can belong to one song instead of the project (#355). A take is one. It is edited like any other: a double-click on its item opens it in its tab, where its clips are made and cut as always, and the tab's title has the song's name in front of its own. But it has no row in the Assets panel, no picker outside its song offers it (not a node, not another song), and its name only has to be free within the song. Within the song the picks offer it under a line after the project's assets: the Sound row of an item the song's sounds and their clips, the Pattern row its patterns, every sound FX pick its sound FX.

  • Shared within the song (#357). The places of a song share what it keeps: the song itself, its tracks and its items. A split and Ctrl+D leave both items on the same take, so the four clips of one take serve four items, and a cut made in the Sound tab is heard on every item playing that clip. To bend one item alone, Make project asset and Embed a copy still make a copy.
  • A paste into another song gives that song a copy, one for all the items naming it. A copy gets copies of the clips, and an item on a clip plays the same clip of its copy. The audio file is not copied: files are stored by their content.
  • It goes with its last user. Once no item, track or the song names it any more, the embedded asset is deleted in the same undo step. A copied item keeps it in the clipboard, so a paste after the delete brings it back. Duplicate on the song copies everything it keeps to itself.
  • A click on its name in the inspector lights up its song in the Assets panel.
  • In the Sound tab of an embedded sound the row Loop is left out: in a song an item repeats its sound as long as it is. Where it goes the track decides, so it has no node in the Master routing.
  • Make project asset (the item's menu) turns an embedded asset into an ordinary one; a name the project has already gets a number. Embed a copy goes the other way: the item plays a copy of its project asset that only the song has, to bend without touching the rest.
  • A project file whose song is gone keeps such an asset as a project asset.

A pattern made in the song

Create pattern on an empty spot of a track makes the pattern Pattern 1, 2 … (numbered per song) and an item for it, one undo step, and opens it in the Pattern tab.

  • The item starts on the grid line before the spot and is a bar long, and so is the pattern.
  • It plays the instrument of the pattern item on that track that starts last before the spot, else of the first one after it; on a track without one it has none yet.
  • It starts with the tempo and the sign of the song. From then on they are its own, as with a project pattern (#363): a change of the song's sign leaves its length alone, so its item is not cut or stretched. Its inspector leaves out nothing. Where it goes the song decides, so it has no node in the Master routing.
  • A project pattern embedded as a copy, or one pasted from another song, keeps its tempo and sign.

A sound FX of its own

Every pick of a sound FX in a song ends with the sound FX the song keeps, with the mark in front, and a few entries to make one: the Sound FX row of the song, of a track and of an item, and the menu of a track's FX button. Picking one the song keeps lets this place share it.

  • Create sound FX makes Sound FX 1, 2 … (numbered per song) with its Input wired to its Output, so it lets the sound through until something is put in between. The place picks it and the Sound FX tab opens it, all in one undo step.
  • Embed a copy, while the place names a sound FX of the project: the place gets a copy of it, under the same name, to bend without touching the original.
  • While the place names its own, the menu shows it with the mark in front and offers Edit sound FX (opens it, as a double-click on its name in the inspector does) and Make project asset.
  • Picking anything else, None or another sound FX, lets it go. If this place was the last one naming it, it goes in the same undo step. That holds for the song's own row too.

Playing one in a game

Play song plays a song at its tempo, its tracks with the volume, pan, mute and solo they have and along its routing, on the same scheduler as the tab.

Input
song The song asset.
volume 0 to 1, the level of the whole song.
fade in Seconds it rises from silence to volume, from its first note on. 0 starts it at once.
loop On (the default): it plays from its start, and once it gets to the end of the loop on its ruler it goes round that loop until it is stopped. So an intro before the loop is heard once. With no loop set the whole song is the loop. Off: once to its end, and it is over by itself.
detached As for a sound: off (the default), the song belongs to the object of the behavior and stops when that object is destroyed, which a Load scene does unless the object is kept; on, it outlives it.
fx A sound FX the whole song goes through, after its tracks and before volume and the fades (#346). From the asset (the default) is the song's own Sound FX, None none (#352).
fx params Values for that FX's parameters, from a Sound FX parameters node. Set sound FX parameters with the playback moves them while it plays.

It gives out playback, the number of this playing, and 0 where the song has nothing on its tracks. Firing it twice plays the song twice, side by side: to swap one song for another, stop the first. Its files are loaded first, so the first note may come a moment later, but always in time with the ones after it. The loop of the ruler is the one the game plays: one set for editing a few bars is heard in the game too.

Stop song stops every playing of the song it names, and every song where it names none (patterns and sounds play on). With playback connected it stops only that one, and nothing where it is 0. fade out is the seconds it falls silent over first; it plays on meanwhile. Stop sound naming no sound stops songs too, and the end of the run stops every song.

Each playing is heard through a level of its own, which the fades move, with a bus inside it for each track; the output of the routing is that level. Pause game leaves the music playing, and Set time scale does not slow it; the pause in the toolbar holds it where it is, as it holds every sound.

Measured (2026-10-06, e2e 65): a sound clip on the first bar and a pattern on the second, looped there, played by Play song at 120 BPM: the clip once, the pattern's notes 2 s after it and every 2 s from then on. The playing's level stood at its volume of 0.8, a track at -6 dB and panned half left sat inside it at 0.501 and -0.5. The toolbar's pause held the clock, and Stop song with a fade of 1 s ended it, its buses with it.

Baking

Bake (#340), the icon with a wave in a frame in the header of the Song and the Pattern tab, works out once what the song or pattern plays and keeps it on the asset as a file. Play song and Play pattern in a game then play that file instead of every note: one voice in place of many, and nothing for the scheduler to plan. The tab itself always plays live, so an edit is heard at once.

  • What is in it: everything up to the output of the song or pattern. For a pattern, its notes through the instrument and the instrument's sound FX. For a song, its tracks, items and clips, the FX of tracks and items, the routing, mute and solo.
  • What stays live: everything after that: the sound FX of the node (or of the asset), fx params and Set sound FX parameters, volume, fade in, the bus, the Master routing and a stop with a fade. A node behaves the same with a bake and without.
  • When it holds: a bake keeps a print of what it was made from: the notes and clips, tempo, length and loop, the tracks with their level, pan, FX and automation lanes, how each instrument plays each of its notes with its sound FX, and the files, cuts and levels of the sounds. A change to any of them outdates it, also one to an instrument or a sound the pattern only names. Then the icon is no longer lit, the info of the tab says bake outdated, and a game plays the notes again. Renaming changes nothing. An undo back to what was baked makes it hold again without baking anew. Baking and removing a bake are no undo steps.
  • Looped: the file holds the playing straight from the start, then the loop once more as it sounds the second time round, with what rings on from the first round in it. Played looped it runs to the loop end and then round that second round, to the sample. Played once it runs to the end and fades out over its last 10 ms. What would ring on past the end is not in it: to keep a tail, make the song or pattern longer, by an empty bar for instance.
  • Stopping: Stop song and Stop pattern with Let ring fade a bake out over 0.3 s, as its notes cannot ring on one by one.
  • The click: not baked, it bakes. While it bakes, the toolbar says how far it has got and a click cancels it. Baked, it offers Bake again and Remove bake. A change made while it bakes throws the result away.
  • The file: Opus in Ogg, 160 kbit/s in stereo, 96 kbit/s where everything reaching the output is mono, encoded in the browser with WebCodecs. Baking therefore needs Chrome. Where a browser cannot decode the file, a game plays the notes. It is raised to full scale and played at the level it had. It goes up into the sounds of your account under [bake] name, and the sound picker leaves it out. The old file of a bake made again or removed is deleted once the project is saved without it, unless a snapshot or a release still names it.
  • Memory: a bake is streamed (#349): only its compressed bytes and its first two seconds are held, never the whole of it decoded. An outdated one is not loaded. Where a browser cannot stream it, it is decoded at 48 kHz as before: about 23 MB a minute in stereo.

Measured (2026-10-09, e2e 64 on the CI's Windows machine): a bar of quarters at 150 BPM with one more note just before its end, baked: 76800 frames for the bar and 76800 for the second round, 38 KB. Played offline from its notes and from its bake for 4 s, looped, the level of every 20 ms in which it was heard differed by at most 0.06 dB (114 windows, two loop ends among them). The game played it as one voice with no note planned; a note drawn outdated it, Ctrl+Z made it hold again, and Remove bake deleted its file once the project was saved. With the pre-skip of the Opus file left out on purpose, the same comparison was 4.8 dB off. In a probe, Chrome worked out 60 s of sound in 0.3 s, or in 2.1 s with many pitched voices, and encoded it in 0.6 s.

Sound FX on tracks, items and whole songs

A sound FX can sit on a track, on a pattern item, and on a whole Play pattern or Play song (#346). There it is one chain, as an insert in a DAW: everything played there goes through it together. A Phaser's LFO runs on across the notes, a Delay echoes the sum, a Bitcrusher crushes the chord, and it costs one chain however many notes sound.

  • The order: the notes of a pattern item, each through the Sound FX of its instrument → the item's FX → the track's FX → the track's volume and pan → the links of the routing, through other tracks or straight on → the FX of the song → its volume and fades → the bus of the song and the master. A sound item has its Sound FX per clip, then goes on through its track's.
  • Which FX: an item's FX and the song's are those of the assets (the pattern, the sound, the song) unless the item or the Play song picks another one or None (#352). In the tab the song's FX sits on a bus of the tab between the output and the master. The tab leaves the song's links in the Master routing out (#368).
  • A sound FX that is gone or does not compile passes everything on as it is.
  • Track and item FX play at the defaults of their parameters, unless a lane of the track moves them (see Automation). Those of a Play pattern / Play song take fx params, and Set sound FX parameters moves them by the playback.
  • A Pitch there is a shifter of the sound going by, one frame late, and every note is started that much earlier, so nothing is heard out of step (see A Pitch on a bus). On a Play note, whose FX is its own, the Pitch moves the note's sound itself, with no latency.
  • When a playing ends, its chains go once its echoes have rung out; in the tab, a moment after Stop.

Measured (2026-10-07, e2e 65): a sound FX with a Pitch of +12 on the second track, played in the tab at 120 BPM in headless Chrome at 44.1 kHz on the CI's Windows machine: its bus said it was 0.046440 s late (2048 samples), the first note on it was planned for 19.017982 s and started at 18.971542 s, exactly that much earlier, the clip of the first track 2 s before it right on time. Offline, the shifter moved a 1 kHz tone to 2000 Hz, and at 0 semitones handed a click out 2048 samples later at a height of 1.0000001. Stop let the buses of the tab go.

Measured (2026-10-07, e2e 65, #352): the song's own Sound FX with that Pitch, played in the tab, sat on a bus of its own into the master, 0.046440 s late; the track linked to the output sent to that bus. Stop let it go. An item's Sound FX offered From the asset, None and the sound FX, and None was stored as #none.

Not yet

A link sends at one volume; it cannot be moved over time. Nothing tells a graph that a song played once has ended (#373), and there is no node that changes the volume of a playing song or the value of a lane while it plays. Markers do nothing in a game yet: the events, a switch at a marker and the other links between a game and its music are on their way with #338. No automation of the tempo and none in a pattern (#337 left both out), no swing (#372), no song inside a song, no held note (drone) as an item. A variation of a pattern for one item is Embed a copy in the item's menu (see Embedded assets). A song cannot keep an instrument to itself.