BIT BOX
The BIT BOX is a semi modular synth voice that uses manipulation of bits as the basis for sound creation and sequencing/modulation.
I uploaded 5 levels of the BIT BOX, from the basic building blocks used in the BIT BOX, to the BIT BOX+ (BIT BOX combined with subtractive synthesis). Each level has its own download section with version history and demos.
This thread only contains documentation for the BIT BOX (LVL4) and BIT BOX+ (LVL5). This should however cover all other levels as well.
The goal of the BIT BOX was to stuff some pretty complex stuff into a ridiculous, blinking box with way too many controls, so you can just turn knobs, connect stuff and listen to what comes out, without completely knowing what’s going on.
However, if you would like to know what exactly is happening and how you can use it to create certain sounds, I made a tutorial patch that explains the ideas and techniques that are implemented in the BIT BOX. (It’s the last download)
Documentation
The BIT BOX is segmented into multiple sub-modules. Only the inputs and outputs for bits are positioned inside these modules. All other inputs and outputs are placed in a patch bay on the right side of the BIT BOX.
In this documentation I describe one module at a time, including its inputs and outputs in the patch bay.
Generator
This sub-module is responsible for generating a signal that can be fed into the quantizer sub-module.
It provides the bits of a saw-LFO as gate signals.
You can switch and manipulate these bits to create create a signal that is then used as input for the quantizer.
I/O
Input |
Signal Range |
Notes |
|
clock (1 - 0) |
(in patch bay) Provides the tempo for the internal clock, that is used for the generator and OSC2 in LFO mode (The clock can also be triggered manually) |
|
gate (1 - 0) |
(in patch bay) Arms the BIT BOX for reset. The actual reset happens on the next rising edge of the clock signal (arming for reset can also be triggered manually) (all LFOs, and flipflops will be reset) |
|
1 or 0 |
The bits you put in here are converted back into a signal that is then fed into the quantizer |
Output |
Signal Range |
Notes |
|
modulation (1 - 0) |
(in patch bay) direct out after the bits are converted back into a wave |
|
1 or 0 |
These outputs provide the bits of a saw-LFO as gate signals (the same as an 8 bit binary counter would) |
Controls
Knob, Button |
Function |
Notes |
|
speed of generator |
determines a multiplication or devision of the clock-tempo that is used as tempo for the ramp LFO of the generator |
|
flip source LFO |
inverts the saw-LFO that is the source for the bits |
|
phase shift |
shifts the phase of oscillator 2 in relation to the generators phase to get some interesting rhythms (only when OSC2 is in LFO mode) |
Scaling
This sub-module is responsible for scaling the generator-signal before it goes into the quantizer.
Controls
Knob |
Function |
Notes |
|
octave offset |
|
|
octave range |
|
Displays
Meter |
Displays |
Notes |
|
visual representation of the generator-signal |
|
Quantizer
This quantizer quantiles the incoming signal to one of 12 notes, that can be activated or deactivated. When a signal is quantized to a deactivated note, it gets passed up or down (depending on how the quantizer is set) until the next active note.
This is the most CPU efficient way for this kind of quantizer functionality I could come up with.
I/O
Input |
Signal Range |
Notes |
|
1 or 0 |
(in patch bay) determines whether notes are passed up or down. (input and button negate each other) |
Output |
Signal Range |
Notes |
|
1/octave |
(in patch bay) output of the quantized signal |
Controls
Knob, Button |
Function |
Notes |
|
select root |
shifts the signal up before quantizing it, so 0 is quantized to the selected root. |
|
flip passing direction |
determines whether notes are passed up or down. (input and button negate each other) |
|
activate and deactivate notes |
when a value is quantized to an active note (or if a note gets passed to it), the light in the middle of the corresponding button lights up green. When a value is quantized to a deactivated note the light is white. The lights on the bottom of the buttons show, which note is selected as root |
Displays
Meter |
Displays |
Notes |
|
displays in which direction notes are passed |
|
Oscillator 1
Oscillator 1 is essentially three saw-wave-oscillators. One mid-oscillator, running at the frequency that comes from the quantizer and two side-oscillators. The combination of these waves is then split up into its bits, so you can mess with them, to get new harmonically interesting waveforms.
(All controls of this oscillator are applied, before the audio is split up into bits)
I/O
Input |
Signal Range |
Notes |
|
1 or 0 (stereo channels) |
The bits you put in here are converted back into an audio signal |
Output |
Signal Range |
Notes |
|
audio (-1 - 1) |
(in patch bay) Left and right output of the signal, directly after the bits are converted back to audio (not DC blocked) |
|
1 or 0 (stereo channels) |
The saw waves get split up into their bits. These bits are output here. |
Controls
Knob |
Function |
Notes |
|
side-oscillator detune |
Tunes the frequency of the side-oscillators away from the mid-oscillators frequency (one up, one down) |
|
side-oscillator octave |
Increases the octave of the side-oscillators (0-3) |
|
side-oscillator width |
Pans one side-oscillator left and the other one right |
|
shift |
attenuates the signal before it is split up into bits. (lowering the volume, shifts the bits upwards) |
|
side-/mid-oscillator mix |
Mixes between the mid- and the side-oscillators |
Oscillator 2
Oscillator 2 is one saw-wave-oscillator, that can run in VCO and LFO mode. It also lets you mess with its bits, so you can get some harmonically interesting waveforms (when in VCO mode), or create some interesting rhythms (when in LFO mode)
I/O
Input |
Signal Range |
Notes |
|
1 or 0 |
The bits you put in here are converted back into a wave |
Output |
Signal Range |
Notes |
|
1 or 0 |
The saw-wave gets split up into its bits. These bits are output here. |
|
audio (-1 - 1) |
Output as audio signal, directly after the bits are converted back to a waveform (not DC blocked) |
|
modulation (0 - 1) |
Output as modulation signal, directly after the bits are converted back to a waveform (not DC blocked) |
Controls
Knob, Button |
Function |
Notes |
|
(VCO mode) octave |
Sets the octave when in VCO mode |
|
(VCO mode) fine tune |
Fine tunes the frequency when in VCO mode |
|
(LFO mode) speed |
determines a multiplication or devision of the clock-tempo that is used when in LFO mode |
|
select mode |
LFO mode: frequency is determined by the internal clock. VCO mode: frequency is determined by 1/oct signal from the quantizer. |
|
shift |
attenuates the signal before it is split up into bits. (lowering the volume, shifts the bits upwards) |
|
flip |
inverts the saw-wave that is the source for the bits |
Combine + effects
short description
I/O
Input |
Signal Range |
Notes |
|
modulation (0 - 1) |
pan modulation input |
Controls
Knob |
Function |
Notes |
|
combination type |
types AND, OR and XOR are using logic gates, type ‘mix’ just adds osc1 and 2 together |
|
pan modulation depth |
|
|
drive |
after combination and pan modulation |
|
color |
1 pole filter (<50%: low pass >50%: high pass) (BIT BOX + has just a high pass filter here) |
Bit utility bar
This includes some logic gates and flipflops (AND gates are labeled wit & and NOT gates are labeled with !)
I/O
All input and outputs expect values that are either 1 or 0
(However, some of them, can actually handle audio an modulation signals, because of the way they are implemented.
e.g: You can use the AND gates as VCAs and the NOT gates to invert modulation signals)
VCF and VCO (BIT BOX +)
This section contains a slightly modified k35 low fass filter and a linear VCA, to shape the sound even more.
I/O
Input |
Signal Range |
Notes |
|
modulation (0 - 1) |
(in patch bay) cv input for the VCF |
|
modulation (0 - 1) |
(in patch bay) cv input for the VCA |
Controls
Knob |
Function |
Notes |
|
Filter cutoff |
|
|
Filter resonance |
|
|
Filter cv attenuation |
|
|
Amplitude |
|
|
Amplifier cv mix |
0% → VCA is always open . 100% → VCA is completely controlled by the cv input. |
|
|
|
Function generator (BIT BOX +)
These are three loopable attack decay envelope generators, with a variable curve.
(based on stshoens awesome Variable Curve ADSR Envelope Generator)
I/O
Input |
Signal Range |
Notes |
|
gate (0 - 1) |
|
Output |
Signal Range |
Notes |
|
modulation (0 - 1) |
|
Controls
Knob, Button |
Function |
Notes |
|
attack time |
note |
|
decay time |
note |
|
curve |
0% → exponential, 50% → linear, 100% → logarithmic |
|
activate loop |
when activates, the envelope starts again, as soon as it has finished |
CV scalers (BIT BOX +)
These are four separate modules that can be used to scale modulation signals between a ‘ceiling‘ and a ‘floor‘.
If the incoming signal is 1, the output-signal is equal to the value set by the ceiling-knob and if the input is 0 the output is equal to the value set by the floor-knob.
This way you can attenuate, offset and invert modulation signals with just two knobs.
I/O
Input |
Signal Range |
Notes |
|
modulation (0 - 1) |
|
Output |
Signal Range |
Notes |
|
modulation (0 - 1) |
|
Controls
Knob |
Function |
Notes |
|
ceiling |
|
|
floor |
|
Downloads
LVL1
This patch contains a collection of basic building block modules for bit-manipulation.
These are basically the same building blocks I used in the BIT BOX, but with some visual feedback and only audio and gate inputs, so you can use them directly inside a normal Audulus patch.
Version History
Revision |
File |
Date |
Notes |
1.0 |
LVL1.audulus (482.7 KB) |
01/26/2021 |
|
LVL2
This patch contains some sub-modules of the BIT BOX and BIT BOX+
- multiple versions of the quantizer
- Oscillator 1
- the function generator from the BIT BOX +
Version History
Revision |
File |
Date |
Notes |
1.0 |
LVL2.audulus (763.7 KB) |
01/26/2021 |
|
LVL3
This patch contains the BIT BOX split up into two modules.
One is the generator/sequenzer section and the other one is the oscillator and combine section.
(I you want to use logic gates, use the ones from LVL1)
Version History
Revision |
File |
Date |
Notes |
1.0 |
LVL3.audulus (868.4 KB) |
01/26/2021 |
|
LVL4 (BIT BOX)
The complete bit fun box
Version History
Revision |
File |
Date |
Notes |
1.0 |
LVL4.audulus (919.2 KB) |
01/26/2021 |
|
Demos
LVL5 (BIT BOX +)
The BIT BOX + is the essentially the BIT BOC plus VCA, VCF and some stuff for modulation.
The idea behind it is to combine oscillators based on bit manipulation with some techniques from traditional subtractive synthesis.
Version History
Revision |
File |
Date |
Notes |
1.0 |
LVL5.audulus (1.0 MB) |
01/26/2021 |
|
Demos
Tutorial
Version History
Revision |
File |
Date |
Notes |
1.0 |
Tutorial.audulus (945.1 KB) |
01/26/2021 |
How to use bit-manipulation in sound-synthesis |