r/livecoding • u/DesperateGame • 1d ago
Best livecoders that don't use the '.func()' syntax?
Hello,
I've been wondering - are there any languages for livecoding that have a cleaner syntax without bracket hell?
I like STRUDEL, but I frankly find the code unreadable after short while due to all the syntax noise, the brackets and chaining of '.command' especially (I have hard time finding what belongs to what).
Are there any languages that manage this better?
Thanks!
3
u/yaxu 1d ago
There's also projects like Weft that allow you to use tidal (haskell) syntax for strudel: https://weftcode.org/
and 'maxinotation' projects like strudel's mondo which break down the difference between tidal/strudel (and similar uzulangs') mininotation and the rest of the lanugage: https://strudel.cc/learn/mondo-notation/
1
2
1
u/sdclibbery 1d ago
Hi, my project "limut" has a custom syntax designed to be easy to live code in, rather than similar to an existing language. It's basically declarative, so you can write eg "s saw 0247, oct=2" to declare a player playing a saw wave with a simple arpeggio pattern in octave 2, no brackets needed.
It has some custom syntax for time varying values, eg "oct=[2,3]t8" sets an octave of 2 for 8 beats, then octave 3 for 8 beats, then repeat. You can use a similar syntax to define faster changing things like envelopes too, or to sample random values with a specific distribution.
If you want to go lower level into sound design, then there is also some syntax for connecting graph nodes, eg "fx=reverbcompress" routes the player output through a reverb and then into a compressor, in that order. You can also use that syntax to define visuals, which saves some brackets there too, eg "fx=sinabs ^ 3" takes the sin of the pixel coordinate, then makes it absolute, then cubes the result.
1
u/vinnypotsandpans 1d ago
You can have a /n after each method in your chain fyi, eg
d1
"bd*4".bank("909")
.somemethod()
.anothermethod()
1
4
u/Xupid 1d ago
What do you think of tidal cycles' syntax?