Show HN: CLAVIER-36 (programming environment for generative music)
clavier36.comCLAVIER-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
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.
I'm curious - was it two and a half lines of code you contributed?
I want to run this on a Steam Deck!
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
It doesn’t seem to load…