dsp
DSP — Digital Signal Processing for Audio
A comprehensive reference for implementing real-time audio DSP algorithms in C/C++. Derived from the musicdsp.org community archive covering two decades of practitioner knowledge.
When to Use This Skill
- Implementing audio filters, effects, synthesizers, or analyzers in C/C++
- Writing
processBlock(),process(), or sample-by-sample DSP loops - Designing biquad coefficients, Moog ladder filters, or state variable filters
- Building delay lines, reverbs, compressors, waveshapers, or stereo processors
- Generating bandlimited waveforms, noise, or envelopes
- Optimizing audio code with fast math approximations or denormal prevention
Architecture
The skill is organized into domain-specific references. Read the relevant file(s) for the task at hand:
More from shortwavlabs/agent-skills
plugdata-patch
Create, modify, and generate Pure Data / plugdata audio patches (.pd files) programmatically. Use this skill whenever the user wants to build synthesizers, audio effects, MIDI processors, DSP patches, or any audio signal processing in Pure Data or plugdata — even if they just say "make a synth" or "create an audio effect" without naming plugdata explicitly. Also use when the user mentions .pd files, Pure Data, patching, or visual audio programming.
3vcv-rack-plugin
Build VCV Rack v2 plugins and modules in C++. Covers scaffolding, DSP implementation, panel design, widget construction, polyphony, expanders, build system, cross-compilation, and CI/CD. Use this skill whenever the user mentions VCV Rack, Rack plugins, Rack modules, eurorack simulation, modular synthesizer plugins, or wants to create audio DSP modules for VCV Rack — even if they just say "Rack plugin" or "make a module". Also applies when users are working in an existing VCV plugin codebase (files like plugin.hpp, plugin.json, Makefile with plugin.mk include, src/ with Module/ModuleWidget structs).
3juce-plugin
Build JUCE audio plugins (VST3, AU, AAX, Standalone, LV2) in C++ with CMake. Covers the full development workflow from project scaffolding to multi-format builds, including AudioProcessor lifecycle, parameter management with APVTS, DSP module chains, custom editor GUIs, state serialization, real-time audio safety, and cross-platform CI/CD. Use this skill whenever the user mentions JUCE, audio plugins, VST plugins, AU plugins, audio effects, synthesizers, MIDI processors, AudioProcessor, AudioProcessorEditor, Projucer, or wants to create audio software — even if they just say "make a plugin" or "audio plugin". Also applies when users are working in an existing JUCE codebase (files like PluginProcessor.cpp, PluginEditor.cpp, CMakeLists.txt with juce_add_plugin).
3vult-dsp
Write DSP algorithms in the Vult language for audio plugins, VCV Rack modules, embedded audio, and real-time signal processing. Vult transcompiles to C/C++ with zero-cost abstractions for stateful DSP. Use this skill whenever the user mentions Vult, vultc, Vult DSP code generation, writing audio DSP for VCV Rack plugins with Vult, embedded audio on Teensy/Arduino with Vult, fixed-point audio DSP, or any task involving transcompiling DSP to C/C++. Also use when the user asks about implementing filters, oscillators, envelopes, effects, or synthesizers using the Vult language.
2faust-dsp
Write DSP algorithms in the Faust programming language for real-time audio processing and synthesis. Faust (Functional Audio Stream) is a functional, block-diagram language that compiles to optimized C/C++, WebAssembly, LLVM IR, and more — targeting VST/AU plugins, standalone JACK apps, PureData/Max externals, WebAudio, embedded platforms (Teensy, ESP32, Bela), and more. Use this skill whenever the user asks about Faust, faust code, .dsp files, Faust libraries, faust2xx scripts, or any real-time audio DSP that could be expressed as a signal processing block diagram. Also use when the user mentions functional audio programming, compiling DSP to plugins, or cross-platform audio signal processing from a single source.
2