How robert0-ch1/chorda works
Chorda is a JUCE virtual-string synthesizer plugin and standalone instrument. The host supplies MIDI and parameter automation; the processor prepares voice parameters, renders the string voices, and applies output processing before returning audio. Its editor exposes the controls and string visualization, while preset management supports built-in and user presets. The README documents excitation, string damping, modulation, voice modes, and output effects; sampled source confirms the main processor-to-synth path, but not every internal DSP handoff, so uncertain links are omitted.
Main entry points: PluginProcessor.cpp Plugin processor · PluginEditor.cpp Plugin editor · PresetManager.cpp Preset manager · KarplusVoice.cpp String voice
Components 16
Audio engine
- Plugin processor
Source/PluginProcessor.cpp - Voice allocator
Source/DSP/PluckSynth.h - String voice
Source/DSP/KarplusVoice.cpp - Synth sound
Source/DSP/KarplusSound.h - Output effects
Source/PluginProcessor.cpp - Stereo widener
Source/DSP/StereoWidener.h
Controls and modulation
- Parameter definitions
Source/Parameters.h - LFO and voice controls
Source/PluginProcessor.cpp
Preset management
- Preset manager
Source/Presets/PresetManager.cpp - Factory presets
Source/Presets/FactoryPresets.cpp - User preset files
Source/Presets/PresetManager.cpp
User interface
- Plugin editor
Source/PluginEditor.cpp - String visualization
Source/UI/StringView.cpp - Preset controls
Source/UI/PresetBar.cpp - Widget styling
Source/UI/PluckLookAndFeel.cpp
Other components
- DAW / host
Connections 18
- DAW / host → Plugin processor: sends MIDI
Source/PluginProcessor.cpp - DAW / host → Plugin processor: automates parameters
- Plugin processor → Voice allocator: renders notes
Source/PluginProcessor.cpp - Plugin processor → Synth sound: registers sound
Source/PluginProcessor.cpp - Plugin processor → String voice: sets parameters
Source/PluginProcessor.cpp - Voice allocator → String voice: allocates voices
Source/DSP/PluckSynth.h - Plugin processor → Output effects: processes output
Source/PluginProcessor.cpp - Output effects → Stereo widener: applies width
- Parameter definitions → Plugin processor: defines controls
- Plugin processor → LFO and voice controls: prepares modulation
Source/PluginProcessor.cpp - LFO and voice controls → String voice: supplies modulation
Source/PluginProcessor.cpp - Plugin processor → Plugin editor: creates editor
Source/PluginProcessor.cpp - Plugin editor → String visualization: displays string
- Plugin editor → Preset controls: hosts controls
- Plugin editor → Widget styling: uses styling
- Preset controls → Preset manager: browses presets
- Preset manager → Factory presets: loads built-ins
Source/Presets/PresetManager.cpp - Preset manager → User preset files: reads and writes
Source/Presets/PresetManager.cpp