- CMake >=3.15
- Eigen >=3.3
- JUCE == 6.1
- Open up plugin_framework/ProcessorGraphTest in CMake
- Run CMake and open the project in your IDE (Xcode, CLion, Visual Studio tested)
- Run the project with the desired plugin target
- Copy the generated plugin from the cmake-build-release to your plugin folder
a. Run git clone https://gitlab.com/libeigen/eigen.git
within ProcessorGraphTest/3rd-party
b. Run the following code from within the eigen folder (cd eigen first)
mkdir build
cd build
cmake ..
make
sudo make install
c. brew install superlu
(or equivalent for windows/linux)
d. brew install clang-format
We are making a JUCE amp simulator plugin with tone control and other basic effects in a signal chain. The plugin’s idea was based on the work from SmartGuitarAmp by GuitarML on GitHub (https://github.com/GuitarML/SmartGuitarAmp), and we are modifying it by introducing the idea of using our description-based parameter setting for the amp and other effects. We are keeping the idea of using a machine-trained model of an amp simulator as in SmartGuitarAmp, and using waveshaping as a valve simulator, PedalNetRT, and other basic guitar amp simulation algorithms to create the amp tone control. Our end goal is to have an amp simulator with a few built-in amps and 4-5 effects (could include reverb, LPF, HPF, comb filters, flanger, chorus, and distortion effects) that are easy to control similarly to a real guitar amp, and as a stretch goal we hope to implement a linear regression model for tone control where the user can upload an audio file of what they want their amp to sound like and the machine learning model will adjust the tone control and gain knobs to be close to the amount of wet/dry tone and would decide which of our default amp models to use to sound the closest. The plugin will have an intuitive GUI where users can upload an audio file to determine the tone of the amp as well as manually adjust parameters and effects. The plugin is targeted at guitar players who want to record into a DAW with the sound of their ideal amps, and is especially useful for an artist on the go. It is easier to use than other amp simulators, as you either get less choice in tone or too many controls with standard amp simulation plugins. Our plugin gets straight to the tone you want, no fuss.
- Build plugin backend
- Static wave shaper - MVP step 1
- Analog circuit modeling - MVP step 2
- Load wav files
- Implement IR convolution
- JSON load for pedalnet
- Build GUI
- Create basic GUI for effects and tone control (includes reverb, basic LPF, HPF, and comb filters, flanger, and chorus effects)
- Put more knobs and effects into the basic amp model like SmartGuitar Amp’s GUI
- Create sketches of the layout for each effect’s parameters GUI in Figma, possibly change from SmartGuitar Amp’s design if it is not expandable enough
- Midterm Milestone: Implement the GUI (without sophisticated controls, can just be the visuals but with space to put the functionality)
- Implement the tone control (from amp simulator models or waveshaper model)
- Implement the other effects’ GUI components
- User testing for ease of use and understanding
- Implement PedalNet
- Get PedalNet running
- Evaluate and improve the performance either locally or on server
- Train multiple different models - for amp and distortion pedals
- Figure out regression model for parameter estimation
- Research existing techniques
- Implement an example regression without audio input
- Implement regression model for audio input
- Midterm Milestone: Test on audio mapping - tone control
- Combine with current system
- Stretch: extend to other controls
- Research existing techniques
- Implement FX chain
- EQ
- Parametric
- Graphic
- Reverb
- Compression
- EQ