Interpreted · functional · strongly typed
Flow
A programming language for making music. Write note streams, chords, and musical-context blocks as code — and hear them the instant you press play.
A pure tone
The hello-world — a one-second A4 sine. Press play to hear it.
use "@audio" (play (createSineTone 440Hz 1.0 0.5))
A note-stream melody
A C-major run, written inline as a note stream at 120 BPM.
use "@audio" use "@composition" tempo 120 { (play | C4q D4q E4q F4q G4q |) }
A chord progression
A ii–V–I in C, played from chord brackets inside a key context.
use "@composition" key Cmajor { (play | [D4 F4 A4]h [G3 B3 D4]h [C4 E4 G4]w |) }
Why Flow
Ergonomics first
Composer ergonomics override runtime efficiency and type strictness. Easy cases stay fast; flexible cases stay flexible.
Genre-agnostic
Classical, EDM, jazz, pop, metal — all in one language. Designed for every kind of music, never tuned for one.
Notation roots
Notes, chords, note streams and musical-context blocks are first-class. Write musical ideas as code and hear them at once.
How it sounds
Every example below is rendered straight from Flow source. Nothing plays automatically — press play to listen.