How jerryuhoo/fire works
Fire is a JUCE multiband distortion audio plugin. The main workflow is host audio entering the plugin processor, being split and processed across enabled bands, then returned to the host; user controls configure band/global effects and modulation. The README also documents presets, A/B comparison, HQ oversampling, spectrogram band editing, and visualizers. Several implementation details are represented at subsystem level because the supplied processor and UI excerpts are partial.
Main entry points: PluginProcessor.cpp Plugin Processor · ControlPanel Effect Controls · LfoManager.cpp LFO Manager · DSP Band Effects
Components 16
Audio Processing
- Plugin Processor
Source/PluginProcessor.cpp - Band Effects
Source/DSP - Distortion DSP
Source/DSP/DistortionLogic.h - Stereo Width
Source/DSP/WidthProcessor.cpp - Level Reporting
Source/PluginProcessor.cpp
Modulation
- LFO Manager
Source/DSP/LfoManager.cpp - LFO Engine
Source/DSP/LfoEngine.cpp - Modulation Routing
Source/DSP/ModulationRouting.h
Plugin Interface
- Plugin Editor
Source/PluginEditor.cpp - Effect Controls
Source/Panels/ControlPanel - Band Spectrogram
Source/Panels/SpectrogramPanel - Audio Visualizers
Source/Panels/ControlPanel/Graph Components - LFO Editor
Source/Panels/ControlPanel/LfoPanel.cpp
Parameters and Presets
- Plugin Parameters
Source/Utility/Parameters.h - Preset Controls
Source/Panels/TopPanel/Preset.cpp
Other components
- DAW Host
Connections 17
- DAW Host → Plugin Processor: audio and transport
- Plugin Processor → DAW Host: processed audio
- Plugin Processor → Band Effects: processes bands
- Band Effects → Distortion DSP: applies distortion
- Band Effects → Stereo Width: processes stereo
- Plugin Processor → Level Reporting: updates levels
- Plugin Processor → LFO Manager: processes modulation
- LFO Manager → LFO Engine: generates signals
- LFO Manager → Modulation Routing: applies routings
- LFO Manager → Plugin Parameters: reads and modulates
- Plugin Editor → Effect Controls: hosts controls
- Effect Controls → Plugin Parameters: edits values
- Effect Controls → Band Spectrogram: exposes band editing
- Effect Controls → Audio Visualizers: shows audio data
- Effect Controls → LFO Editor: exposes modulation
- LFO Editor → LFO Manager: edits shapes and routes
- Preset Controls → Plugin Parameters: loads and saves state