File formats in Songcode
Code with .ode, work with .songcode, and export to all your favorites.
A track leaves Songcode in one of three ways:
- An
.odecode file - A
.songcodeproject file - 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 to | take |
|---|---|
| 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 software | stems |
| play its notes on your own instruments | .mid |
The docs page on files and export has every option in the download menu.