Bytebeat, tixyland, and other functions of time

I’ve been vaguely aware of bytebeat for many years, where crunchy music is made from astonishingly short lines of code, here’s an example.

There’s a nice guide to it here: https://nightmachines.tv/downloads/Bytebeats_Beginners_Guide_TTNM_v1-5.pdf

It always impressed me but I’ve not really thought enough about it to look into how it works, beyond extensive use of low-level bit operations that are a bit out of my comfort zone. The above guide describes it well but in terms of how to make waveforms, mixing and step sequencing. This is super near but in a way feels a little bit disappointing. These symbols feel a bit magic, and the magic goes away when they’re just treated as building blocks for quite conventional sequencing. Fair enough for a beginners guide to take this approach though!

Anyway, the basic approach is to define an audio output simply by taking time as input, both represented by an eight bit output. You apply the same approach to images, by taking ‘x’ and ‘y’ values as input instead of time:

That’s really fantastic - pair up the bits making up the x and y values, making a new number with a ‘true’ bit wherever one (and only one) of the corresponding bits in the x and y numbers are true, then making a white pixel there if this new number is equally divisible by 9… and you get an alien landscape. That whole twitter thread is recommended!

Here’s a similar approach but again with time as input:

https://www.dwitter.net/d/19615

And by the same author as that tweet thread, the more constrained tixy.land:

… where tixy stands for time, index, x and y. index is basically a loop going through the pixels, and x and y is derived from that… So really this is about making video animation as a function of time.

I suppose it’s not so unusual to make art based on pure functions of time… That’s how most sound synthesis is defined, right? It’s also how TidalCycles works under the hood… But this bytebeat and bytefield stuff seems to be about really paring things down to a minimum, until you get to the low-level affordances of representing integer values with binary bits… Which is all about interference patterns over time and space, just like the ones we see in textiles… As @nebogeo says, when you go low enough you reveal that all computation is woven:

I also meant to include this awesome byte battle:

and on twitter I just got pointed at the next edition of lovebyte coming up next month:

https://lovebyte.party

I love bytebeat! And this guide you linked is actually really cool. I wished I’d had it a couple years ago when I did my “audiolize procgen neopronoun sets as bytebeat programs” weird little project.

1 Like

The bytebeat neopronoun project sounds intriguing!

The lovebyte site points to this intro which looks like a healthy deep-dive worth of links…
http://canonical.org/~kragen/bytebeat/

e.g. the paper “Discovering novel computer music techniques by exploring the space of short computer programs”

Never heard of bytebeat before, makes me think of Ibniz though <ibniz.org>.

May I also point to a new project a friend of mine is doing? It’s called Cascade and it’s to make music using CSS on a Web page: cascade

Curious to know what you think. I find it interesting for teaching CSS to students not comfy with computers/code. But I don’t know much about music making :confused:

2 Likes

The ‘lovebyte’ festival of sizecoding is next weekend, 11-13th Feb 2022, featuring a lot of bytebeat etc:

https://lovebyte.party/

Explainer video:

Really looking forward to this!

Ibniz is written by the guy who invented / discovered ByteBeats

1 Like