songcode

File formats in Songcode

Code with .ode, work with .songcode, and export to all your favorites.

technologyunder the hood3 min read

A track leaves Songcode in one of three ways:

  1. An .ode code file
  2. A .songcode project file
  3. A common musical output like audio or MIDI

Your browser does all the heavy lifting with managing and writing these files.

.ode is the code

An .ode file is the song’s code as plain text (and nothing else).

ode 1
title "night bus"
tempo 124
key a minor
form loop 4
chords [Am7 | Fmaj7 | Dm7 | E7]

stem kick: club {
  kick [x... x... x... x...]
}

stem bass: subbass {
  rhythm [x..x ..x. x..x ..x.]
  tones  [root]
  octave 1
}

mix {
  kick 0db
  bass -5db
  duck bass under kick, depth: 60%, recover: 120ms
}

That’s the whole song. It’s 305 bytes.

.ode code contains much more than just instrument instructions, with global settings and a mix table fully customizable as well. No more asking Joe for the mix and managing files. Just edit the song’s code.

This file is the heart of Songcode. Read it, edit it, email it, keep in git, we don’t care. Our songs are just text files. Ode is the language.

.songcode is the project

A .songcode file holds the code and what Songcode builds around it: the title, the prompt you wrote, Songcode’s Odist instructions, the style, whether it’s a loop or a full track, the seed that fixes its random choices, and which view you had open. Open it again and the track comes back into whatever view you left it in.

It’s JSON so any text editor can read it (the only private bit is Odist, no peeking).

Take .ode when the code is all you want. Take .songcode when you plan to come back to the track in Songcode.

Opening a file

The folder button in the top bar opens either file, or you can drop it anywhere on the page. The file opens as a new draft of your own. Opening a file needs an account.

Outputs

WAV and MP3

A song is code until you ask for audio. Then your browser records the track into an audiofile: a 16-bit stereo WAV or an MP3 at 192 kbps (more to come).

A Songcode loop has no end (that’s the point), so you’ll need to pick a duration. It’s rounded to whole passes of the loop, which means the file ends on a bar line and repeats cleanly in other software. An 8 bar loop at 130 bpm is about 15 seconds. Full tracks export in one pass, from its first bar to its last.

The audio has your mix baked in: each stem’s level, pan and mute.

Stems

The stems view can render each stem to its own WAV, named with the track’s title and the stem’s name. Every file starts at bar 1 and has the same length so they line up when you drop them into Logic Pro, Ableton, or elsewhere.

MIDI

The industry’s tried and true. A .mid file is written from the track’s notes, with no audio rendered. Each stem is its own MIDI track, named after the stem, and the file carries the track’s tempo and meter.

Stems that play notes get a channel each, with every note’s pitch, start, length and velocity. Drums go on channel 10 as General MIDI drums.

MIDI carries the notes for your own instruments. The filters, the effects and the sound itself stay in Songcode, and the mix won’t apply: a muted stem is still in the file. That’s MIDI baby.


you want totake
come back to the track in Songcode.songcode
read, edit or version the code.ode
play the track somewhere else.wav or .mp3
mix it in other softwarestems
play its notes on your own instruments.mid

The docs page on files and export has every option in the download menu.

Describe a song.
Get it in code.

open songcode