Show HN: CLAVIER-36 (programming environment for generative music)

36 river_dillon 9 9/13/2025, 2:22:59 PM clavier36.com ↗
CLAVIER-36 is a programming environment for generative music. Programs are laid out in a two-dimensional grid, and evolve over time according to a fixed set of rules. The system is much like a cellular automaton, in that most of the rules governing the evolution of the system are local.

C36 programs describe sequences of discrete events in time. The environment includes a primitive sampler, as a self-contained means of interpreting these events as sound. For full expressivity, though, the system is best used as a generator of data for interpretation by an external musical instrument, such as a synthesizer.

The project was very directly inspired by Orca (https://100r.co/site/orca.html). It began as my own from-scratch implementation of Orca and diverged over time.

It's written in C, and compiled to WASM for the browser.

See the following pages for more info:

about page: https://clavier36.com/about

user manual: https://clavier36.com/manual

tutorial video: https://youtu.be/rIpQmJVMjCA

Comments (9)

gregsadetsky · 2h ago
River (the software author) worked on this during his time at the Recurse Center and it’s been amazing to see him develop it all from scratch in C. (I contributed 2.5 lines of code on the web deployment/firebase side).

He’s a friend, but I am very unbiased in saying that the sample-rate execution of the entire grid seems like an incredible technical achievement.

One of the craziest (super super noisy but fascinating to watch) grids uses just a few “operators” that generate random operators and random values, and place them at random location.

That grid runs - easily! in the browser!! - at 1000 bpm. Forget 60 fps :)

I’ll update my comment linking to this patch so you can take a listen. It’s stunning, organic and very punk.

kookamamie · 56m ago
I'm curious - was it two and a half lines of code you contributed?
gregsadetsky · 18m ago
I was saying that in jest, ha. More like 2.5% of the code.

Very briefly, I contributed the CI pipeline that makes git push build the wasm and deploy it to a micro server that sets the specific required headers. I used the deployment tool I’ve been working on with a friend, which is called Disco.

There was something about wasm/the audio worklet requiring super specific headers - `Cross-Origin-Embedder-Policy: require-corp` … Nothing too complicated.

The other part I contributed is the loading/saving patches to Firebase, which lets people share compositions.

But all of the audio, grid, ui is all River’s!

Teknomadix · 32m ago
I want to run this on a Steam Deck!
gregsadetsky · 11m ago
Please wishlist it on Steam, it will help get the word out!

https://store.steampowered.com/app/3614060/CLAVIER36/

A Steam version is definitely coming - the biggest question re Steam Deck is how to deal with the input..

Do you use/like any other audio software on the Steam Deck?

xeonax · 1h ago
Can you see if you can serve the static files over cdn, might speed up the site loading speed. claviar.wasm took 4 minutes to load here. 200MBPS connection
gregsadetsky · 15m ago
Apologies, I’ll setup a proper CDN and update this message once it’s live. Thanks for the report!
qwertytyyuu · 52m ago
It doesn’t seem to load…
gregsadetsky · 11m ago
Apologies, it may have to do with the server. I’m on it and will update this message once it’s fixed/better. Thanks!