Finally finished! Bees-in-the-Trees Version 4.1 modified firmware for Braids now available


Actually, my first take on adding bytebeats to Bees was to use the C++ code for the 60 bytebeat equations provided by default in the Microbe Modular Equation Composer module. All the source code for the Equation Composer is available under an open-source license, specifically, the GPLv3. After some google-research and putting a few questions to various open source licensing experts (including my sister), it transpires that legally it is fine to incorporate the GPLv3 Equation Composer code in a file that is included into the Braids compiled executable, because the MIT (aka expat) license that the Braids code is licensed under by Olivier is compatible with code licensed under the GPLv3 (but not GPLv2 or earlier code). The only stipulation is that the compiled firmware images would also need to be licensed under the GPLv3, which is not a problem.

However, I thought better of it, because doing that would almost certainly undermine sales of the Equation Composer module (people with a Braids who might have otherwise have bought an Equation Composer may change their purchasing decisions, or people may buy a Braids instead of an Equation Composer as a result). It would be unethical to use their open-sourced code in that way. Thus I only added two byte beat equations that aren’t in the factory set of equations for Equation Composer. Naturally I sought permission to use those two equations from their authors, although I admit that I haven’t heard back from either yet - but the equations were published in a way that suggested that the authors did want them to be used. If they ultimately object, there are plenty of others to chose from, although after auditioning about 50 or 60 equations I found in various places around the internet, I concluded that although most were interesting, most also sound terrible and set one’s teeth on edge. I chose the two least grating I could find, but there are other “nice” byte beat equations. They aren’t really equations, BTW, they are bit operation algorithms with a functional form. Anyone interested should read viznut’s analysis - I made use of the stephth “equation” given there, BTW. I’m surprised that no-one seems to have attempted a formal analysis from a discrete maths perspective - superficially, these things would seem to be rings or semirings, I think, governed by or describing an abstract algebra (obviously what I know about rings and semirings and abstract algebras can be written on a postage stamp…).


@Benelong ok, I’m big enough to admit that half of that went right over my head ( not surprising as I suffer from discalcula and flunked every maths and science class I ever took) Though the talk of the Equation Composer made me wonder about using the bytebeat algorithms to create interesting random cvs, something not really possible on the Equation Composer unless you enable a DC jumper on the back (I think, I don’t own an EC - but remember reading this in the manual) anyway, I shall download 4.0 today and give it a try (and post the results if it’s not a complete washout)


@rupertlally, the idea of using byte beat algorithms to create CVs is an interesting one. Readily doable in Frames or Peaks, or Tides, but not in Braids. I’ll add it to my to-explore list.


@Bennelong not even in LFO mode?

Meant to add: if you chose to add more bytebeat algorithms some of the drum ones in equation would probably be interesting to explore…

Off topic: talking of alt firmwares, wondered what you would do with Branches?


The Braids output is not DC coupled, thus amplitude falls rapidly to nothing below about 1 Hz. So it can really only act as a NVLFO (Not Very Low Frequency Oscillator).

Suggestions for interesting byte beat algorithms welcome! The time consuming part is auditioning them, and working out whether they give useful results if two of the constants in them are replaced by variables whose values are set by the Timbre and Colour parameters in Braids. You can do such auditioning in any of the online byte beat platforms. I recommend this - be sure to use infix format and 11 or 22kHz rates. You can easily change values in that on-the-fly and instantly hear the results. Let me know if you come up with some promising candidates.

Branches? Maybe a mode that does deterministic clock division, in which the knob and the CV input determines the clock division ratio? Or even just a VC clock. Or a mode that couples or chains the two halves together in some way, such as a VC clock in the top half with VC division of that clock in the bottom half? Or a burst trigger generator (I’ve seen a description of a module that generates bursts or flurries of triggers somewhere, I’m sure)? Or a VC trigger delay line? The MPU only has 8k of flash, so there are distinct limits as to what can be done, but on the other hand, the entire source code is contained in a single file.


Thanks, I’ll see what I come up with re: interesting bytebeat algorithms - I even have a Reaktor ensemble that uses them, though to be honest I’m still not sure how exactly it works …

Clock divider/burst gen sound like excellent ideas! Definitely not enough burst generators out there; Harvestman did one a while back but that’s now been discontinued and I think Noise Engineering have one coming out soon.


@rupertlally Befaco do a Probabilistic Burst Generator

No info there, but there’s a photo/rendering of the module elsewhere on the site, I think.



@toneburst thanks! Didn’t realise Befaco did assembled modules as well as kits either, so I will definitely check this out


There has been some discussion here about the quality of their kits. Several people, including myself have had bad experiences with them. They do have a good range of DIY Euro modules, though, and some look quite interesting.



I have released Bees-in-the-Trees v4.0 for public consumption - it is no longer a beta release. The only changes over v4.0-beta are the addition of a third bytebeat model, and a fix for the way RNDM mode works in the meta-sequencer (it now works as intended, and as described in the documentation). You can download files here. As always, please read the installation instructions carefully!


wow and wow… thanks for all your hard work :slight_smile:


I like Bees-in-the-Trees v4.0 so much, I actually had to buy a second Braids to have them running in tandem. Thanks again!


Thanks! I’m still working on v4.1, trying out various things before deciding on what gets added. Unfortunately presets may not be possible - I’m struggling to come up with a workable user interface for them, and there are (lack of) memory issues which require various tricks to work-around, such as hijacking the delay line buffers for temporary storage (thanks to Olivier for suggesting this).


OK, I have completed work on v4.1 of Bees-in-the-Trees, which will be the final version, at least for quite a while, thus it can finally be said to be finished, insofar as any software is ever really finished. The flash storage is completely full, so adding anything new means removing something else, which is not fun. In any case, I want to move on to hacking the code for some other modules!

Especial thanks are due to all those brave souls who helped test Bees-in-the-Trees and provided so much useful feedback.

Unfortunately, the foreshadowed preset storage and recall capability was not a viable option, for reasons explained in the release notes for v4.1 at

However, I have tried to improve the usability a bit by allowing editing of values to optionally work as a wrap-around loop, which should reduce encoder twiddling quite a bit. I have also added one more bytebeats oscillator model on top of the three that were already in v4.0.

Anyway, if you would like to try Bees-in-the-Trees, then you can download WAV files for it from the link above. Please let me know if you encounter any bugs or problems.

To mark the release of Bees-in-the-Trees v4.1, here is a little I track I recorded using only Braids running Bees-in-the-Trees. The canon is computer-generated (no, not by Bees-in-the-Trees, but by a Python program based on some code by Stephan Himpe and making heavy use of the fabulous Music21 library for Python). Props to the first person (other than Olivier) to provide a cogent explanation for the title of the track.