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.

hello.flow
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.

scale.flow
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.

cadence.flow
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.