A minimal, RPN-based, feedback-capable interpreted music language, designed for LLM, human live coding, web sharing, and embedded hardware — with cellular automata as first-class primitives.
- functional programming philosophy
- easy to read and write for both humans and LLMs
- syntax should resemble natural language?
- Reverse Polish Notation?
- suitable for live coding
- simple type system: interger only, not floats
- modular: build complex rhythms from basic building blocks
- a basic rhythm generator is a pure function of uint->bool, which maps step index to trigger on/off
- basic building blocks: euclid, rotate, reverse, interleave, boolean logic (* for and, + for or) (make a list!)
- random source: bernoulli gate, velvet noise, with hardware sourced randomness
- quantizer, selector
- counter? system with memory?
- 8 bit ADC and DAC
- get chaos-like behavior via feedback patching
- discrete timing model: ticks->steps->trigger
- immediate visual feedback (Bret Victor, shadertoy)
- visual generator as first class citizen
-
rhythm visualization
-
push the tick rate to audio rate for sound generation
-
web assembly build via emscripten
-
x and y input as data source, normalized to mouse X and Y position on desktop
-
how to handle timing offset and velocity? groove?
- sub rhythms?
-
generate modulation signal from rhythm using deterministic systems like cellular automata and Music Thing Modular Turing Machines
-
lazy evaluation (what does it even mean?)
-
microtuning, frequency manipulation in hz
-
integration with hydra?
-
Claude MCP server is a must!
- but you need to figure out how to make agents receive audio feedback
- libremidi for midi input and output
- Starting Forth
- Crafting Interpreters
- ch 1-3, 14
- MAKE: electronic music from scratch
- to learn about logic ICs
- mux, demux
- counter
- schmidt trigger
- PLL
- Bonus: figure out how the WASP filter does integration using CMOS logic
- the language should be good enough for acid filters, because why not?
- Kurt James Werner
- Generalizations of Velvet Noise and Their Use in 1-Bit Music
- minimalism
- Ryoji Ikeda
- aethetics of aliasing
- 作って動かすALife
- emergence, boid
- read about literature on algorithmic composition by computer music research people
- Bret Victor: Inventing on Principle
- https://thebookofshaders.com/edit.php
- shadertoy
- number theory, combinitorial mathematics, and pseudo-random number generators
- Algorithmic Pattern project by Alex Mclean
- music theory: son clave, tresillo, world music
- The Geometry of Musical Rhythm by Godfried T. Toussaint
- Generative Art: A practical guide using Processing
- A New Kind of Science by Stephen Wolfram
- sapf: Sound As Pure Form and SuperCollider
- tidal cycles and strudel
- ORCA
- isobar and signalflow
- Klang
- the idea of using c++ to express signal flow is interesting
- Reactable
- Faust
- Bespoke Synth
- games of Zachtronics
- a whole bunch of similar algorave projects (dang! people have thought about this before...)
- https://github.com/tarpit-collective/cane
- https://github.com/pd3v/line
- https://xn--melrse-egb.org/
- https://machiaworx.net/recode/doku.php?id=start
- https://github.com/irritant/serialist (inactive)
- https://tweakable.org/examples
- https://github.com/echolevel/wulfcode
- https://github.com/sdclibbery/limut
- https://github.com/Mdashdotdashn/krill
- https://github.com/nnirror/facet
- https://github.com/lucretiomsp/Coypu
inspired by a breakboard prototype of logical ICs
this maps easily to an object oriented approach
- 4051 multiplexer
- shift register
- 8 bit DAC
- 8 bit ADC
- clock division: 1/2/4/8/16/32/64/128 (with swing built in)
- delay
- clock divider
- envelope
- S&H
- counters
- logic gates: or, nor, xor, xnor, and, nand, >, <, ==, !=
- gate to trigger
- flip-flop
- geiger: Binary waveform (Low/High) with random occurrence.
- MIDI note, gate, velocity, cc, pitchbend, play
- arpeggiator with up/down trigger input
- scale
These building blocks corresponds to different abstractions in a functional approach.
-
DivSkip
-
Mutable Instruments Marbles and grids
-
Rob Hordik Benjolin
-
Music Thing Modular Turing Machine with expanders
-
Joranalogue Select 2
-
Neutral Labs LUNA
-
early modular synthesizers: Moog System 15, buchla, are essentially composition systems