A song is melody, harmony, and rhythm working together. This tool gives you three grids — one for each — and a scheduler that plays them all in sync. Here's how to use them to make something that sounds like a real song.
The melody and bass rows aren't chromatic (every half-step). They're locked to the selected scale. In pentatonic, any combination of notes sounds good — it's the Chinese/Japanese/Irish folk scale where there are no "wrong" notes. In major, you get the Western pop/classical vocabulary. In minor, everything turns pensive or sad. In blues, the flat-5 gives you the growl. In chromatic, every semitone is available — you can write anything, including outright dissonance.
Good melodies move in small steps most of the time, with occasional leaps. Start by clicking cells in a roughly connected contour — up a few notes, down a few — rather than jumping wildly. Leave gaps (rests) so the melody breathes. A catchy hook is usually 4-8 notes that repeat with small variations. The Random Song button uses this principle: it walks mostly by step, jumps occasionally, uses a scale, and leaves rests. Hit it a few times and you'll hear how a simple algorithm produces convincingly musical results.
Bass doesn't need to be complex — most pop and rock bass lines hit the root note on the downbeat of each chord change. Land on step 1, 9 (and maybe 17, 25 if using 32 steps) with the root note, and fill in with the 5th or 3rd on off-beats. The bass is what makes a song feel "grounded" — a melody without bass sounds suspended, a melody with bass sounds like a song.
Even a simple kick-snare pattern (kick on 1 & 3, snare on 2 & 4) transforms a melody into a song. Add hi-hat on every 8th for energy, or every 16th for more intensity. Clap doubles up on the snare for a denser backbeat. Don't over-program — sparse percussion often grooves harder than busy percussion.
Every song you make is encoded into the URL. Copy the URL and send it to anyone — when they open it, the grids load exactly as you saved them. No account, no upload, no server. This is possible because the song data is small (a few bitmasks) and fits into the URL's hash fragment. You can also export as JSON for backup or round-trip through other tools.