frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

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

https://clavier36.com/p/LtZDdcRP3haTWHErgvdM
117•river_dillon•16h 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

Comments

gregsadetsky•16h 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•15h ago
I'm curious - was it two and a half lines of code you contributed?
gregsadetsky•14h 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!

gregsadetsky•11h ago
EDIT: sorry, got away for a few hours

This is the patch:

WARNING - GETS SUPER SUPER LOUD https://clavier36.com/p/tEWcc48tFPm8qiyx9ljo WARNING - GETS SUPER SUPER LOUD

Zoom out using your mouse wheel/trackpad to see it all. It's realllly gorgeous if you let it run. But super, super loud at random times :-)

xeonax•15h 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•14h ago
Apologies, I’ll setup a proper CDN and update this message once it’s live. Thanks for the report!
qwertytyyuu•15h ago
It doesn’t seem to load…
gregsadetsky•14h 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•13h ago
UK and Firefox 128-esr on linux appears to be loading and working ok
Teknomadix•14h ago
I want to run this on a Steam Deck!
gregsadetsky•14h 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•13h ago
Wishlisted! Good luck!
sammy0910•13h ago
this is a neat project! i know river and he is a very good engineer
eggy•13h ago
Looks great, I'll have to play with it this weekend! Has a scent of Orca

https://github.com/hundredrabbits/orca

nielsbot•13h 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" :)
santiagobasulto•10h ago
Off topic: where did you get the name from? There's a town Clavier (Claviere in French) in the Italian/French alps.
gregsadetsky•9h ago
Clavier is keyboard in French and German (Klavier)

36 because, just like base64 uses 64 characters, clavier uses A-Z and 0-9 :-)

photonthug•4h ago
An loanword in English, many will recognize it from Bach if nothing else https://en.wikipedia.org/wiki/The_Well-Tempered_Clavier
rwhaling•9h ago
CLAVIER is amazing, the wire system alone is such a huge improvement over ORCA, and it's now feasible to make much larger patches and refactor safely, kudos to River for all the hard work on the polish and quality-of-life.

I was testing MIDI on a prerelease build last weekend and it turned out quite nice: https://www.instagram.com/p/DOUUIfeEQWY/

Excited for more folks to get to play with it!

chris_st•7h ago
See also [0] Ooda and Zoa on iOS and [1] Midinous on Steam

0: https://www.audiosymmetric.com/ooda.html (same person for Zoa) 1: https://midinous.com

kristopolous•6h ago
In the video, within the first 10 seconds, I should understand the offering of the product by seeing it.

You can get into the details later but right now I've got no idea what's going on here and don't know why I should invest my time in it.

You need to motivate people by showing off the thing.

Also on the phone it just says basically "go away". Once again, show me some video, song, Bandcamp, SoundCloud, something that would motivate me to switch to a desktop.

gregsadetsky•5h ago
Apologies for the long video! I didn't want to rush too much as it's supposed to serve as a tutorial.

CLAVIER-36 is a musical instrument, so it will necessarily take some time to master it.

You can jump to 7:14 in the video - https://youtu.be/rIpQmJVMjCA?feature=shared&t=434 - to hear and see how it works. It's a grid based instrument, where you place "operators", or functions on the grid.

That's the 10 second version. The longer version will require a bit of a time investment unfortunately. But it's quite interesting once/if you get into it and start making patches.

@rwhaling posted one of his compositions: https://www.instagram.com/p/DOUUIfeEQWY/ hopefully that's more what you were looking for?

Also, if you click OP's link - https://clavier36.com/p/LtZDdcRP3haTWHErgvdM - you should be brought to an example patch. Is that working for you? Unfortunately, a mobile version is not available right now (it would be tricky to port it, without having to dramatically rethink the UI).

Cheers

kristopolous•7m ago
Thanks! Those were just tips and my first impression

Show HN: A store that generates products from anything you type in search

https://anycrap.shop/
851•kafked•18h ago•265 comments

Show HN: UltraPlot. A Succinct Wrapper for Matplotlib

https://github.com/Ultraplot/UltraPlot
6•cvanelteren•3d ago•1 comments

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

https://clavier36.com/p/LtZDdcRP3haTWHErgvdM
117•river_dillon•16h ago•23 comments

Show HN: Vicinae – A native, Raycast-compatible launcher for Linux

https://github.com/vicinaehq/vicinae
148•aurellius•4d ago•32 comments

Show HN: Small Transfers – charge from 0.000001 USD per request for your SaaS

https://smalltransfers.com/
172•strnisa•3d ago•63 comments

Show HN: I made a generative online drum machine with ClojureScript

https://dopeloop.ai/beat-maker/
192•chr15m•1d ago•47 comments

Show HN: Building a Deep Research Agent Using MCP-Agent

https://thealliance.ai/blog/building-a-deep-research-agent-using-mcp-agent
86•saqadri•3d ago•18 comments

Show HN: MemoryMe: An effort to beat Cognitive Decline

https://shraddhabuiltitwithai.com/memoryme/
6•shraddha92•11h ago•0 comments

Show HN: YC Startup Map – A Map Visualization of the YC Startup Directory

https://ycstartupmap.com/
14•Brysonbw•1d ago•5 comments

Show HN: Aris – a free AI-powered answer engine for kids

https://www.aris.chat
29•andrewdug•1d ago•60 comments

Show HN: Term.everything – Run any GUI app in the terminal

https://github.com/mmulet/term.everything
1057•mmulet•4d ago•143 comments

Show HN: council - ai groupchat of ctos (no more asking ai to roleplay)

https://www.trycouncil.com/council/cto
9•YAndreaRusso•10h ago•8 comments

Show HN: An MCP Gateway to block the lethal trifecta

https://github.com/Edison-Watch/open-edison
49•76SlashDolphin•1d ago•22 comments

Show HN: MediaMouth – I created a comment section for movies and TV shows

https://mediamouthapp.com/
2•KiaraCanaan•11h ago•0 comments

Show HN: I built an open source drag and drop editor for Genkit AI flows

4•mfolaron•12h ago•1 comments

Show HN: C++ Compiler Support Page

https://cppstat.dev
64•cemdervis•5d ago•30 comments

Show HN: wcwidth-o1 – Find Unicode text cell width in no time for JavaScript/TS

https://github.com/dawsonhuang0/Wcwidth-O1
15•dawson0•1d ago•3 comments

Show HN: Making a cross-platform game in Go using WebRTC Datachannels

https://pion.ly/blog/making-a-game-with-pion/
72•valorzard•3d ago•11 comments

Show HN: Writing – How to make a computer browser internet automatically

2•imvetri•13h ago•2 comments

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container

https://github.com/juhovh/tailguard
148•juhovh•4d ago•34 comments

Show HN: DWS OS, a Plan 9 Inspired Web “OS”

https://dws.rip
48•tdubey•1d ago•9 comments

Show HN: Nano Banana Prompt Generator

https://nanobananaprompt.org/prompt-generator/
3•chooat•15h ago•1 comments

Show HN: Tap Map (iOS) crowdsourced beer prices in Edinburgh and London

http://tapmapapp.org
3•pcrausaz•15h ago•0 comments

Show HN: Bottlefire – Build single-executable microVMs from Docker images

https://bottlefire.dev/
161•losfair•6d ago•24 comments

Show HN: A simple stock analysis app

https://market-sage.netlify.app
2•totaldude87•16h ago•0 comments

Show HN: Haystack – Review pull requests like you wrote them yourself

https://haystackeditor.com
85•akshaysg•3d ago•59 comments

Show HN: Consentless – A minimalist, privacy-preserving traffic counter

https://consentless.joeldare.com
9•codazoda•1d ago•2 comments

Show HN: AI Roast – Fun AI-generated roasts of websites

https://ai-roast.jamatrix.io/
2•happy_malone•19h ago•1 comments

Show HN: Tsink – Embedded time-series database for Rust

https://github.com/h2337/tsink
6•h2337•1d ago•1 comments

Show HN: I made a small site to share text and files

https://www.dum.pt/
40•MarsB•1d ago•50 comments