# Bytebeat, tixyland, and other functions of time

**URL:** <https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396>\
**Category:** Catalog\
**Created:** [5 January 2022 17:36 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396 "2022-01-05T17:36:19Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [5 January 2022 17:36 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/1 "2022-01-05T17:36:19Z")

</div>

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](https://greggman.com/downloads/examples/html5bytebeat/html5bytebeat.html#t=0&e=0&s=8000&bb=5d0000010061000000000000000017e07c623b67b5745cddf4be39ed2781586842b69caa2dfab1ba801725b10143e5071f8da55acfe947589deb17d594db653a3e26f29b302cbc1072beeae643371326dc6bbd0e1e83b47b30afc9f48bffebace864cb04fe848b234467c431ff987f8000).

There’s a nice guide to it here: [https://nightmachines.tv/downloads/Bytebeats\_Beginners\_Guide\_TTNM\_v1-5.pdf](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:

> <https://twitter.com/aemkei/status/1378106731386040322>

 ![image](https://forum.alpaca.lurk.org/uploads/secondsite/original/1X/04605d1d97c5bb08cc3ab703833f44aa7edb3d15.png)

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](https://www.dwitter.net/d/19615)

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

> <https://twitter.com/aemkei/status/1323399877611708416>
>
> Martin Kleppe @aemkei

> **[(t,i,x,y) =\> "creative code golfing"](https://tixy.land/)**
>
> A minimalist coding environment. Control 16x16 points with a single JavaScript function. By @aemkei

… 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](https://tidalcycles.org/) 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:

> **[Computation is woven](https://zenodo.org/record/4476811)**
>
> Evidence that computation is woven, and weaving is computation. The first computers were looms, and if we look closely enough, we can find the remaining legacy of this history. Here we visualise the contents of a Z80 processor register...

[![](https://zenodo.org/api/iiif/v2/a67f659f-42d8-4925-a3f6-404f3c8ff115:535786ce-efbf-4827-aeea-42f6cb290954:div16-1.png/full/750,/0/default.png) ](https://zenodo.org/api/iiif/v2/a67f659f-42d8-4925-a3f6-404f3c8ff115:535786ce-efbf-4827-aeea-42f6cb290954:div16-1.png/full/750,/0/default.png)

---

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [5 January 2022 18:05 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/2 "2022-01-05T18:05:26Z")

</div>

I also meant to include this awesome byte battle:

[![](https://img.youtube.com/vi/_JQm46HuDEE/hqdefault.jpg "Lovebyte 2021 - Byte Battle Quarterfinal: Flopine vs Gasman") ](https://www.youtube.com/watch?v=_JQm46HuDEE)

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

[https://lovebyte.party](https://lovebyte.party)

---

<div class="post-metadata">

**Author:** ![clarissa.littler](https://forum.patternclub.org/letter_avatar_proxy/v4/letter/c/5fc32e/32.png) [@clarissa.littler](https://forum.patternclub.org/u/clarissa.littler)\
**Post date:** [5 January 2022 19:16 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/3 "2022-01-05T19:16:06Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [5 January 2022 20:52 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/4 "2022-01-05T20:52:38Z")

</div>

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/](http://canonical.org/~kragen/bytebeat/)

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

> **[Discovering novel computer music techniques by exploring the space of short...](https://arxiv.org/abs/1112.1368)**
>
> Very short computer programs, sometimes consisting of as few as three
> arithmetic operations in an infinite loop, can generate data that sounds like
> music when output as raw PCM audio. The space of such programs was recently
> explored by dozens of...

---

<div class="post-metadata">

**Author:** ![svilayphiou](https://forum.patternclub.org/letter_avatar_proxy/v4/letter/s/edb3f5/32.png) [@svilayphiou](https://forum.patternclub.org/u/svilayphiou)\
**Post date:** [5 January 2022 21:44 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/5 "2022-01-05T21:44:42Z")

</div>

Never heard of bytebeat before, makes me think of Ibniz though \<[ibniz.org](http://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](https://raphaelbastide.com/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 😕

---

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [5 February 2022 20:09 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/6 "2022-02-05T20:09:57Z")

</div>

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

[https://lovebyte.party/](https://lovebyte.party/)

Explainer video:

[![](https://img.youtube.com/vi/mBmxcnH2l5c/maxresdefault.jpg "Sizecoding Explained in 1 Minute") ](https://www.youtube.com/watch?v=mBmxcnH2l5c)

Really looking forward to this!

---

<div class="post-metadata">

**Author:** ![interstar](https://forum.patternclub.org/user_avatar/forum.patternclub.org/interstar/32/191_2.png) [@interstar](https://forum.patternclub.org/u/interstar)\
**Post date:** [14 April 2022 18:31 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/7 "2022-04-14T18:31:08Z")

</div>

Ibniz is written by the guy who invented / discovered ByteBeats

---

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [1 September 2022 08:31 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/8 "2022-09-01T08:31:08Z")

</div>

A nice thread about bit fields over on metafilter:

> **[Patterns](https://www.metafilter.com/192164/Patterns)**
>
> Bit-field patterns created from applying simple formulas (small subset of work available in unrolled thread)

and a bitfield bot on the fediverse coming up with amazing patterns:

> **[Bit Art Bot (@bitartbot@botsin.space)](https://botsin.space/@bitartbot)**
>
> 7.34K Posts, 0 Following, 479 Followers · This is a bot which produces procedural art by plotting an integer function taking the current coordinates and producing an integer result. The function is procedurally created using random numbers and...

---

<div class="post-metadata">

**Author:** ![julian](https://forum.patternclub.org/letter_avatar_proxy/v4/letter/j/74df32/32.png) [@julian](https://forum.patternclub.org/u/julian)\
**Post date:** [1 September 2022 09:21 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/9 "2022-09-01T09:21:58Z")

</div>

This one is quite amazing:

[https://botsin.space/interact/108913255623761199?type=favourite](https://botsin.space/interact/108913255623761199?type=favourite)

 ![Screenshot 2022-09-01 at 11.21.32](https://forum.algorithmicpattern.org/uploads/secondsite/original/1X/051c33a81333692c8395d880cc797ae46d192679.png)

---

<div class="post-metadata">

**Author:** ![julian](https://forum.patternclub.org/letter_avatar_proxy/v4/letter/j/74df32/32.png) [@julian](https://forum.patternclub.org/u/julian)\
**Post date:** [13 September 2022 17:23 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/10 "2022-09-13T17:23:50Z")

</div>

Not bytebeats, but patterns \<–\> formulas: [https://twitter.com/hashtag/つぶやきGLSL](https://twitter.com/hashtag/%E3%81%A4%E3%81%B6%E3%82%84%E3%81%8DGLSL)

---

<div class="post-metadata">

**Author:** ![yaxu](https://forum.patternclub.org/user_avatar/forum.patternclub.org/yaxu/32/3_2.png) [@yaxu](https://forum.patternclub.org/u/yaxu)\
**Post date:** [3 November 2024 12:20 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/11 "2024-11-03T12:20:28Z")

</div>

I implemented bitfields in AdaCAD ([website](https://docs.adacad.org/), [forum topic](https://forum.algorithmicpattern.org/t/weaving-algorithmic-patterns-with-adacad/464))

It’s not very secure but if you’re familiar with github etc you could [try it out from here](https://github.com/UnstableDesign/AdaCAD/pull/203), by [running AdaCAD locally](https://docs.adacad.org/docs/howtodevelop/install).

---

<div class="post-metadata">

**Author:** ![devendorf](https://forum.patternclub.org/user_avatar/forum.patternclub.org/devendorf/32/275_2.png) [@devendorf](https://forum.patternclub.org/u/devendorf)\
**Post date:** [4 November 2024 18:27 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/12 "2024-11-04T18:27:42Z")

</div>

I’m hustling to get some materials together for a workshop this weekend but I’m looking forward to looking at the code and hopefully merging it to the beta when I get a moment. I’ll ping again when that takes place.

---

<div class="post-metadata">

**Author:** ![devendorf](https://forum.patternclub.org/user_avatar/forum.patternclub.org/devendorf/32/275_2.png) [@devendorf](https://forum.patternclub.org/u/devendorf)\
**Post date:** [3 March 2026 17:24 UTC](https://forum.patternclub.org/t/bytebeat-tixyland-and-other-functions-of-time/396/13 "2026-03-03T17:24:52Z")

</div>

So it’s almost 2 years later but I did get around to releasing Bitfield in the newest version of AdaCAD. I read through so many of the links here in an effort to document it and wrote my understanding of how the math works here: [bitfield | AdaCAD](https://docs.adacad.org/docs/reference/operations/structure/bitfield/)

Would love a second read to see if I’m getting this correctly!
