This project implements an audio equalizer using JUCE and C++. By default, it includes 3 peaking bands, 2 shelves, and 2 cut bands for EQ processing. The peaking bands are dynamically implemented, allowing for easy adjustment of the number of bands by specifying the desired amount in the top of PluginProcessor.cpp. An all-pass filter band has been included in the project but has not been fully implemented in the GUI. All filter coefficients are calculated manually and applied using a Transposed Direct Form II BiQuad Filter. The Matlab directory provides a live script demonstrating some of the DSP techniques used in the project.
- Custom DSP classes for each filter band.
- Custom DSP class for Transposed Direct Form II biquad filter implementation *.
- Visuals for the magnitude frequency reqponse.
- Visuals for the phase frequency response *.
- Analyser line showing the magnitude of the input / output signal.
- Add in the TDF II code into the main EQProcessor.
- Add toggle button to view the phase frequency response.
- Implement higher quality analyser line with increased resolution.
- Add the All-Pass band options.
- Implement toggle option to visualise either the input or output signal of the EQ.
⚠️ CMake hasn't been updated since the last big update, therefore the project can instead be run and built using the ProJucer application.
Configure for Windows
cmake -G Visual Studio 17 2022 -S . -B build
Configure for MacOS
cmake -G Xcode -S . -B build '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64'
Build for Windows
cmake --build . -j 12
Build for MacOS
cd build
cmake --build . -j 8
EQ Audio Processing:
GUI: