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

clavier36.com

47 points by river_dillon 3 hours ago

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

nielsbot 4 minutes 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" :)

gregsadetsky 3 hours 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 2 hours ago

    I'm curious - was it two and a half lines of code you contributed?

    • gregsadetsky an hour 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!

sammy0910 33 minutes ago

this is a neat project! i know river and he is a very good engineer

xeonax 2 hours 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 an hour ago

    Apologies, I’ll setup a proper CDN and update this message once it’s live. Thanks for the report!

Teknomadix 2 hours ago

I want to run this on a Steam Deck!

qwertytyyuu 2 hours ago

It doesn’t seem to load…

  • gregsadetsky an hour 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 40 minutes ago

      UK and Firefox 128-esr on linux appears to be loading and working ok