# BitBreeder
An evolutionary system that evaluates noisy expressions (bytebeat-style functions of time) according to desired audio characteristics and cross-breeds and mutates the best ones.
Original blog post: BitBreeder (2013).
# 1 Streaming
Occasionally (or by appointment), bitbreeder.mathr.co.uk is online, streaming from my desktop at home, with a shared control interface web page.
# 2 Fitness
# 2.1 Audio Descriptors
- Loudness
-
overall volume level.
- Tonality
-
whether the sound has pitched components or is more noisy.
- Centroid
-
whether the sound is generally low or high frequency.
- Variance
-
whether the sound has a narrow or wide frequency spread.
- Skewness
-
the skewness of the spectral distribution.
- Kurtosis
-
the kurtosis of the spectral distribution.
- Novelty
-
preference of the age of generated expressions.
# 2.2 Modifiers
- Average
-
mean value over 2 minutes or so.
- Variability
-
measure of deviation from the average.
- Granularity
-
measure of how variable the variability is, or something.
# 3 Current Version
# 3.1 Web Interface
The bitbreeder
program has a WebSocket server for control parameters.
Open bitbreeder.html
as a file in your web browser
to connect to bitbreeder
running on localhost.
# 4 Previous Version
# 4.1 GTK Interface
Tabs add multiple populations to interbreed.
Left column is preferred quantile relative to population of expressions.
Right column is weight of preference.
# 4.2 OpenGL Display
As of January 2024, I added stereo support but there is no glyph for the channel variable yet.
As of February 2024, it’s no longer built by default, and probably needs some love to get working again.
# 5 Recordings
# 6 Performances
- TOPLAP20, Saturday 24th February, 01:30 - 01:45 UTC, streaming online.
- Festival Audioblast #12 : Resonant Futurs, Monday 19th February 2024, 00:00 - 23:00 CET, streaming online.
- Slave To The Algorithm launch, Saturday 13th April 2013, London, UK.
# 7 Source Code
Requires Haskell toolchain at compile time (tested with GHC 9.0 through 9.8), and C toolchain at both compile time and runtime.
git clone https://code.mathr.co.uk/bitbreeder.git
cd bitbreeder
make
cabal install
mkdir o
bitbreeder +RTS -N$(nproc)