Show HN: CLAVIER-36 – A programming environment for generative music

65 river_dillon 14 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 (14)

gregsadetsky · 4h 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 · 3h ago
I'm curious - was it two and a half lines of code you contributed?
gregsadetsky · 2h 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!

nielsbot · 1h ago
Cool project. I've referred people to Orca before--and the lack of "built in instruments" (and maybe the flow visualization) was a stumbling block. This feels more "consumer friendly" :)
eggy · 1h ago
Looks great, I'll have to play with it this weekend! Has a scent of Orca

https://github.com/hundredrabbits/orca

sammy0910 · 1h ago
this is a neat project! i know river and he is a very good engineer
xeonax · 3h 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 · 2h ago
Apologies, I’ll setup a proper CDN and update this message once it’s live. Thanks for the report!
Teknomadix · 2h ago
I want to run this on a Steam Deck!
gregsadetsky · 2h 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?

natebc · 1h ago
Wishlisted! Good luck!
qwertytyyuu · 3h ago
It doesn’t seem to load…
gregsadetsky · 2h 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!
2b3a51 · 2h ago
UK and Firefox 128-esr on linux appears to be loading and working ok