synth: rename blit.c/blit.h to blep.c/blep.h to match actual algorithm
The oscillator core implements minBLEP-style synthesis (naive waveform plus a precomputed band-limited step correction table, ppBLEP) rather than classic impulse-train BLIT synthesis, despite the old BLIT_* naming. Renamed the source files and all BLIT_* identifiers to BLEP_* throughout src/synth (blep.c/h, vco.c/h, synth_defs.h, config.mk) and updated the CLAUDE.md/TODO.md references accordingly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01262jWgCmReCRdUi6u9cRYa
This commit is contained in:
@@ -32,7 +32,7 @@ There are no automated tests in this repo; verification is manual, by building,
|
||||
|
||||
The codebase has a hard split between a **portable C DSP core** and a **C++/JUCE plugin shell**, built as separate sub-Makefiles and linked together:
|
||||
|
||||
- `src/synth/` — pure C DSP engine (no JUCE, no C++). Oscillators (`vco.c`, BLIT-based band-limited synthesis in `blit.c`), wavetables (`wavetable.c`, `mw_wave_data.c` — Waldorf Microwave/PPG-style wavetables), filter (`vcf.c`), envelopes (`env.c`), LFOs (`lfo.c`), noise (`noise.c`), and parameter scaling (`param_scale.c`). `synth_float_t` is a build-time typedef (`double` on Linux, `float` on Windows — set via `-Dsynth_float_t=...` in the Makefiles).
|
||||
- `src/synth/` — pure C DSP engine (no JUCE, no C++). Oscillators (`vco.c`, BLEP-based band-limited synthesis in `blep.c`), wavetables (`wavetable.c`, `mw_wave_data.c` — Waldorf Microwave/PPG-style wavetables), filter (`vcf.c`), envelopes (`env.c`), LFOs (`lfo.c`), noise (`noise.c`), and parameter scaling (`param_scale.c`). `synth_float_t` is a build-time typedef (`double` on Linux, `float` on Windows — set via `-Dsynth_float_t=...` in the Makefiles).
|
||||
- `voice.h`/`voice.c` is the center of this layer: a `voice_t` (per-voice state: 2 VCOs, 4 LFOs, 4 envelopes, 1 VCF) driven by a shared `voice_common_t` (global LFO/env/VCF/noise tables and shared per-block buffers, to avoid recomputing identical modulation sources per voice). All per-voice parameters are addressed by the flat `VOICE_PARAM_*` enum in `voice.h`; modulation routing (FM/AM/PWM sources for oscillators, filter cutoff/Q sources) is expressed as source/amount/op triples pointing into `VOICE_MOD_SRC_*`.
|
||||
- Voice audio rendering can run multi-threaded: `JaySynthThread` (in `src/plug/JaySynth.h`) splits the voice array across CPU cores, each thread calling `VoiceProcessDataV`.
|
||||
- `src/plug/` — the JUCE `AudioProcessor`/`Synthesiser` plugin implementation, C++11.
|
||||
|
||||
Reference in New Issue
Block a user