Bandalong

Tape codes

Every song Bandalong writes has a short code. Give someone the code and their Bandalong writes the same song. That's all a tape code is: a song's name, short enough to read out loud.

LL-ST-E10B-60B2

What it is, in plain words

Bandalong doesn't keep a library of recordings. Its band composes each song when you ask for one, following the rules of the style, starting from a number. Start from the same number and it composes the same song again, note for note.

A tape code is that number, with the station it belongs to. It isn't a recording and it holds no music. It's closer to a recipe card that only says "recipe number 3,775,619,250, from the Lofi kitchen": useless without the cook, and exact with one.

That has some pleasant consequences:

How to use one

Someone sent you a link
Open it and press Play. A link is just the code after bandalong.app/play/#, like bandalong.app/play/#LL-ST-E10B-60B2. It plays in your browser; nothing is installed.
Someone gave you only the code
Type it after bandalong.app/play/# in your browser's address bar. Or, in Bandalong, open Your tapes and paste it into the tape code box. Capitals and dashes don't matter: ll st e10b 60b2 works too.
You want to share what you're hearing
The code is printed on the cassette's label while a tape plays. Press Share to send it as a link, or just copy it down.
You want to keep a tape
Press the heart to save it in Your tapes. Or write the code anywhere you like: it will bring the tape back on any device.

What's in a code

PartExampleWhat it means
BandalongLLMarks it as a Bandalong tape. (The app was first called LofiLoom.)
StationSTWhich of the six tape stations wrote it. ST is Lofi.
NumberE10B-60B2The number the composer started from: eight characters, each 0 to 9 or A to F.
Band (optional)-SW-0A1B2C3DThe tape played by another style's band (SW is Swing), and which of that band's takes.
Version (optional)-v48Which version of the composer wrote it down. See "Will it always sound the same?" below.

So LL-NI-9F3A-21C4-SW-0A1B2C3D-v48 reads: a Bandalong tape, from Smoky jazz, number 9F3A21C4, played by the Swing band, take 0A1B2C3D, written down by composer version 48.

Will it always sound the same?

The same code always opens, and always gives the same song on the same version of Bandalong. Two people on the same version hear the same notes.

When we improve the composer or the instruments, an older code plays its tape the improved way, and Bandalong marks it "remastered". The tune you kept is still recognisably that tape, but it is not frozen like a recording. If you need a performance to stay exactly as it is, save it as a recording from the full app.

Rain, vinyl crackle and other room sounds are added live, so they differ a little each time.

For people who build things

You're welcome to use this. You don't need our permission, an account or a key to make, read, publish or link to tape codes: on a web page, in an app, in a lesson, on a poster. The format below is what we promise to keep working. The Bandalong name, the app and its recordings remain ours.

The link. A tape's link is the web app's address, a #, and the code:

https://bandalong.app/play/#LL-ST-E10B-60B2

The code rides after the #, which browsers never send to a server, and the page takes it out of the address bar before anything else runs.

The format.

LL-<station>-<XXXX>-<XXXX>[-<style>-<XXXXXXXX>][-v<version>]

Reading is forgiving. Bandalong accepts any mix of capitals, spaces, dots or underscores in place of dashes, no separators at all, a missing LL, and a code sitting inside a longer message. A style tag it doesn't know is ignored and the tape plays with its station's own band.

Stations

Styles

Making a link in code. Pick a station and any number:

function tapeLink(station, number) {
  const hex = (number >>> 0).toString(16).toUpperCase().padStart(8, "0");
  return "https://bandalong.app/play/#LL-" + station + "-" + hex.slice(0, 4) + "-" + hex.slice(4);
}

tapeLink("ST", 0xE10B60B2);
// "https://bandalong.app/play/#LL-ST-E10B-60B2"

// A tape nobody has heard: a random number on Smoky jazz
tapeLink("NI", 1 + Math.floor(Math.random() * 0xFFFFFFFE));

What we promise. A code in this format will keep opening in Bandalong. New stations and styles may add tags; the ones listed here will keep their meaning.

What this page doesn't cover. Links to a song from the Songbook (they begin LLSB1., LLSET1. or LLHW1.) carry a chord chart and how the band plays it. They work the same way for sharing, but their inner format is still settling, so we haven't published it yet.

Questions, or something you've built with tape codes: [email protected].