Bitcrusher is a Biscuit-style bitcrusher audio plugin inspired by the classic hardware unit of the same name.
Instead of using a traditional bit-depth reduction control, Bitcrusher gives you direct access to individual bits of the signal, allowing for precise and often unpredictable digital degradation.
Bitcrusher works by converting the incoming audio signal into an 8-bit representation. Each of the 8 bits can then be individually enabled or disabled via a user-controlled bit mask. This mask is applied to every sample using a selectable bitwise operation.
The more bits that are disabled (or manipulated) the more the output signal is degraded, producing anything from subtle digital grit to extreme lo-fi destruction.
- Incoming audio samples are converted to an 8-bit integer representation.
- The user defines the state of each bit (on/off) using the UI.
- These states are converted into an 8-bit mask.
- The mask is applied to each sample using one of two operations:
- Bitwise AND
- Bitwise XOR
- The processed signal is converted back to audio output.
- Preserves only the bits that are enabled in both the input sample and the mask.
- Typically results in predictable, stepped distortion.
- Lower bits being disabled introduces a gating effect (lower amplitude signals get muted)
- Flips bits where the mask bit is set to
1. - Can introduce aggressive, non-linear artifacts.
- Especially sensitive to changes in higher-order bits.
⚠️ Important:
The XOR operation can produce extremely loud and harsh outputs when higher-order (MSB) bits are toggled. To prevent excessive noise and potential speaker damage, the first three most significant bits are disabled and have no effect in XOR mode.
Below is an example illustrating how a single 8-bit input sample is processed.
| Bit | 1 (MSB) | 2 | 3 | 4 | 5 | 6 | 7 | 8 (LSB) |
|---|---|---|---|---|---|---|---|---|
| Input Sample | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| Bit Mask | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| AND Output | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| XOR Output | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
Note how the same mask produces dramatically different results depending on the selected operation.
- 8 toggle buttons representing each bit (MSB → LSB)
- Defines the bit mask applied to all processed samples
- Dropdown selector:
- AND
- XOR
- Determines how the bit mask interacts with the input signal
- Blends processed signal with the original input
- TODO: Not yet implemented
Currently, prebuilt binaries are provided for Windows only.
- Download the latest VST3 binary from the Releases page.
- Copy the
.vst3file to:C:\Program Files\Common Files\VST3 - Rescan plugins in your DAW if necessary.
Prebuilt binaries are not currently available for macOS or Linux.
To use Stutter on these platforms, you must build the plugin from source.
JUCE is included with the respository as a git submodule, therefore building the plugin is possible without an existing JUCE installation.
- Projucer executable
- The JUCE repository does not contain a prebuilt Projucer executable; you must build from source or download it separately in a JUCE release.
- A supported IDE (e.g. Visual Studio or Xcode)
-
Clone the repository with submodules:
git clone --recurse-submodules https://github.com/dpezdirc/Bitcrusher.git
-
Open the
.jucerfile in Projucer.- The project is preconfigured to reference the JUCE modules from the included submodule directory; no modification of the
.jucerfile is required.
- The project is preconfigured to reference the JUCE modules from the included submodule directory; no modification of the
-
Generate the project files for your platform (e.g. Visual Studio / Xcode).
-
Build the plugin in your IDE of choice.
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
See the LICENSE file for full license terms.
This plugin is built using the JUCE framework, which is included in this repository as a git submodule.
JUCE is dual-licensed under the AGPLv3 and a commercial license. This project uses JUCE under the terms of the AGPLv3, in accordance with JUCE’s licensing requirements.
See the JUCE submodule and its accompanying license file for detailed information.