Skip to content

The chart

Ryan Gavin edited this page Aug 23, 2026 · 15 revisions

The chart

A page for everyone else in the band. It shows the song you are playing, what key it is in, the tempo with a button either side to nudge it, and how far round every playing loop is.

It is meant for a phone on a music stand. Nobody needs open[flow] open, or Live, or anything installed: they type an address once and add it to their home screen.

The problem it solves is the one that shows up when you drop a new song into a jam. You know it is in Bm and that the second half is a build; the rest of the band is hearing it for the first time and has nothing to read.

Getting it on their phones

Start it on the machine running Live:

npm run dev:chart

It prints every address a phone can reach it on:

chart: bridge ws://127.0.0.1:17800/ws
chart: http://192.168.1.118:18000

Read one out. Everyone types it into a browser on the same wifi, and that is the whole setup. npm run dev starts it alongside everything else if you are already running that.

The first time, tell people to add it to their home screen — it opens without browser chrome and keeps the screen awake while it is on, which is the difference between a chart and a phone that has gone dark by the second chorus.

What is on it

the song its name, as your scene names spell it
the key large, right under the name
artist and tag smaller, underneath. What the song is filed under
the tempo the big number in the middle, with a button either side
the loops a wheel per playing track along the bottom
the bass the bass part as a piano roll, with the playhead running through it

The tempo, and the two buttons

The big number is what Live is actually running at — not what the song's name says. The − and + either side move it by one BPM.

They are big because they are meant to be hit mid-song without looking at them. Nothing is optimistic: the number changes when Live says it changed, so if you press and it does not move, it really did not move.

If the song's name claims a different bpm from what you are playing, that claim shows up in amber underneath as named 100. Most of the time it will not be there, and that is the useful part — it appearing means you have drifted off the label, or you are deliberately playing the song somewhere else tonight.

Anyone with the chart open can nudge the tempo. That is the point, but it is worth saying out loud to the band once.

The loop wheels

One wheel per track that has a clip playing, in the same order as your tracks in Live, in that track's colour. The ring fills as the loop plays and the number in the middle is which bar of how many — 3 / 8 is bar three of an eight-bar loop, so five to go.

That is the thing to glance at before a drop. A track on a one-bar loop comes round constantly; the one on sixteen is the one carrying the section, and its number tells you how long you have.

Wheels only move while Live is playing. Stop the transport and they hold where they are.

The row of wheels is always the same height, however many tracks are playing. They shrink to fit rather than pushing everything below them down, and go to two rows when there are enough of them that two rows is actually bigger. So the tempo and the roll stay where you last looked for them, even if the scene you just fired has three more tracks in it.

A clip that is not looping fills once and counts down in seconds instead. A clip being recorded into shows how long it is so far. Group tracks are left out, since they play whatever is inside them.

The key

If every scene of a song says Bm, that is the key printed under the song name.

If the song changes key partway through, there is no single key to print — so the chart shows the key of the section you are actually in. Fire the bridge that goes to D and it says D.

That means a modulation you wrote into one scene name shows up on the bass player's phone without you telling anyone. It also means a typo in one scene's key does the same, which is usually how you find out about it. If a song shows no key at all, none of its scene names say one — see Naming.

What a phone can and cannot do

The tempo buttons are the only thing on the chart that changes your set, and they can only move it one BPM at a time. There is no way for the page to fire a clip, rename anything, recolour anything or reorder your songs — those never leave the machine running Live, so handing the address out is not handing any of that out.

Worth knowing: it has no password and answers anyone who can reach it, so it belongs on a rehearsal room or venue wifi rather than an open one. The worst someone could do is nudge your tempo, and you would see it happening on every other phone in the room.

If you would rather nobody could reach it at all, start it with OPENFLOW_CHART_HOST=127.0.0.1 npm run dev:chart and it stays on your own machine.

If it says something other than the song

it says what to do
no chart the chart server is not running, or the phone is on different wifi
no bridge the chart is running but the Session Bridge device is not loaded in Live
waiting for Live the device is loading. It clears on its own
stopped Live is not playing
Nothing playing Live is rolling, but no clips are

The bass roll

The piano roll along the bottom is your bass track's clip, copied. Time runs left to right with the bar numbers underneath, pitch runs up a keyboard down the side, and a white line sweeps through as the loop goes round — so what is coming is always to the right of the line.

Every note is where you played it, for as long as you played it. Nothing is rounded, merged or worked out, so what the bass player reads is what is in the clip. If it looks wrong, open the clip in Live and the two will agree.

It finds the track by name. Any track with bass in its name counts — Bass, Sub Bass 808, bass gtr, capitalised however you like. If two tracks match, it reads the one further left. If none do, there is no roll, and the fix is a rename.

It draws the loop bracket, not the whole clip. Live plays the bracket and nothing else, so notes outside it never sound and are not drawn. A note that starts inside the loop and runs past the end is cut off there, the same as Live cuts it.

The keyboard is one octave, sitting on the part. Twelve rows, and the bottom one is the lowest note in the loop — so a part that fits inside an octave is drawn exactly where you played it. A wider part has its top notes wrapped round to the bottom, which is what keeps the roll short enough to read at a glance.

Every white key is labelled, so you can read a note off its row without counting up from the nearest C. The black keys are left blank — the pattern says which is which. There are no octave numbers, since the roll is one octave. Notes wide enough to hold their own name carry it too; short ones are still the right colour in the right row.

A note with a small dot on it is below the open E of a four-string. It needs a five-string to play as written, and what the roll draws is the octave up — how you get away with it on a four. That is the only thing the dot means, and nothing else on the roll is marked. A note that merely wrapped round the top carries nothing, because anybody can play it where it is drawn.

That dot is the one thing here that depends on how your bass is set up, because nothing in a clip says what instrument plays it. If your rig moves an octave, the dots will be wrong while everything else stays right — say so and it is one number to change.

Nothing is drawn dimmer or brighter than anything else, so if a note looks different it is not velocity. The roll does not show velocity at all.

The colours

A note's colour says what it is doing in the key. The letter on it says what to play; the colour says whether that is the root, the fifth, the flat seventh. Learn the twelve and you can read a song's shape off the roll without knowing what key it is in.

The rule behind them is one sentence, so you can rebuild the table rather than memorise it: the seven notes of the scale are the rainbow, and anything in between is a blend of the two either side of it.

1 red 2 orange 3 yellow 4 green
5 blue 6 indigo 7 violet

So b3 is the amber between an orange 2 and a yellow 3, b5 is the teal between green and blue, b7 is the purple between indigo and violet. Seven colours and five blends is all twelve notes — there is nothing between 3 and 4, or between 7 and 1, because those are already next-door notes.

Two things worth knowing about it:

  • The root has a ring round it. Red and orange are close enough to confuse in a hurry, and the root is what you look for first, so it does not rely on its colour alone.
  • A flat sits right beside its natural — a minor third is the amber next to the yellow major third. That is on purpose: a song is in one or the other, and the key is printed at the top of the chart. What the colours are for is telling a b3 from a 5 across a stage, not telling a b3 from a 3.

The colours are the same in every key. The root of a song in Gm is the same red as the root of a song in D, which is the point: the pattern of colours is the song, and it looks the same whatever you transpose it to.

A song whose scenes do not say a key gets no colours — the roll falls back to the track's colour in Live. That is on purpose: colouring against a guessed root would look just as deliberate as colouring against the right one. If a song is showing flat grey-blue blocks, the fix is to put the key in a scene name — see Naming.

The colour is the track's own colour in Live.

One staleness worth knowing: the notes are read when clips are launched. Edit the MIDI of a clip that is already playing and the roll catches up the next time you fire it.

Two things will leave it blank, both correctly: no track with bass in its name playing anything, and a bass part that is an audio clip, since audio has no notes to read.

What it does not do yet

The section list. The chart used to show every section of the song down the side. It was too small to read and it was taking room the tempo and the wheels needed, so it is off for now — the key and the tempo still follow whatever section you are in.

A progression your set actually states. The chart above is inferred, and inference is a fallback — if there were somewhere in a set to write the changes down, they could never be read wrong. There is not, yet.

And the wheels tell you where each loop is, but nothing yet tells you when the long one comes round, which is really the question you are asking before a drop.

Clone this wiki locally