A simple bitcrusher plugin inspired by a tutorial by Aaron Leese (Stagecraft Software) and Joshua Hodge from the The Audio Programmer.
(here is a video of the plugin in action inside Ableton Live 10)
The plugin is the result of following along with the tutorial and then trying to add a bunch of improvements and extra features in order to learn the basics of the JUCE framework.
If you are just getting started, I suggest taking a look at the original tutorial and code first:
Here's a list of the main additions or changes that I made to the original tutorial code.
- mix: controlling dry/wet ratio
- noise type: chose between white and "simple" noise (TODO: add other type of noise)
- noise algorythm: chose whether noise is added or multiplied with the original signal
- gain: control the global output
- make use of
AudioProcessorValueTreeState
to manage plugin state and keep it in sync with the GUI. This considerably reduces code size and number of errors, highly recommended. See Tutorial: Saving and loading your plug-in state. - make use of
getStateInformation
andgetStateInformation
so that plugin state can be saved within your DAW session (again, see Tutorial: Saving and loading your plug-in state, as well as other JUCE tutorials) - make use of
removeFromTop
,removeFromLeft
(& friends) to build the GUI, instead of specifiying everything with fixed positions. See Tutorial: Advanced GUI layout techniques - the bitrate slider only shows integers