A node-based environment for composing music

Microtonal and polyrhythmic from the ground up.

Pitch is a ratio. Time is a ratio. Every note, phrase and section is the same kind of thing, a span of exact time with attributes. You compose by wiring nodes that make and rework those spans, so the same tools work at every level, from the hit to the form.

The first builds go to a small group of testers, by invitation. macOS 15 or later, Apple silicon.

We first email you a link to confirm your address. After that: an invite when there is a build for you, and now and then news about Gridbend. Each email has an unsubscribe link. Privacy

Nested composition

Pieces inside pieces.

A section divides into bars, bars into beats, beats into hits: one divide per level, each fed by a list of weights.

Every value is a parameter. A count, a ratio, a length or a pitch can be typed, or wired from a list, a lattice, an expression or another node's result. Change one value and everything built on it follows.

Three nested sections, bars, beats and hits, each a divide fed by a list, with the resulting hits on a timeline below

Rhythm design

Time is a ratio.

A bar divides into weights, not into sixteenths. A polyrhythm is a list of numbers. A pattern tiles across any span, and what happens to the tail is yours to decide.

Bytebeat sits in the same graph as a four-on-the-floor grid: one formula, its bits laid out as lanes.

A three-lane pattern tiled at 3/4 against a grid, the result running over four bars
A pattern one bar long, tiled every 3/4.
A bytebeat node with its formula beside a grid of quarter-note hits; the bit lanes stacked under the kick
t * (t >> 5 | t >> 3) & 255 beside a kick on every quarter.

A playground for new music

Pitch is a ratio. Twelve notes only if you ask.

Not a tuning mode: there are no note names, no fixed grid and no twelve steps anywhere in the model unless you ask for them. A just chord is a list of ratios, and the same numbers can be a rhythm. Your own VST3 and AU instruments, retuned exactly.

The coprime lattice with ratios picked into chords, an expression stepping through them, and the notes laid out by ratio
Chords picked on the lattice of ratios.
A hexagonal isomorphic keyboard in 31 equal steps with a chord lit, driving a sequence of steps
31 equal steps on a hexagonal keyboard.
A piano roll whose rows are ratios, 1, 5/4, 3/2, 5/3, 15/8, from a tuning node
A piano roll whose rows are ratios.

Sound design

Curves on every note.

An envelope, an LFO and a random walk, each written onto the notes as a named attribute, here cutoff, pan and width, and edited over the notes they shape.

An envelope, an LFO and a random curve wired into three attr_curve nodes; the cutoff curve drawn over each note in the Sequence pane

The whole environment

History inside the document.

Versions and branches live in the file, next to an undo list with named steps. Groups with exposed parameters, a catalog to keep them in, performance sets, render to WAV, Python scripting.

The History pane with versions and a fork beside the undo list, next to the graph of an arrangement

Want to try it early?

Leave your email and you may be asked to test the first builds.