Understanding the Song Maker

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.

Scales — why every note sounds right

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.

Writing the melody

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 — the foundation

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.

Percussion — the groove

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.

Sharing your song

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.