agentsclimarketplace

Dsp algorithm guide

Skill kunitoki/sonic-skills/skills/dsp-algorithm-guide

Modular Markdown-based audio skills for AI agents and developers, covering signal processing, synthesis, effects, analysis, and spatial audio.

Install
npx -y skills add kunitoki/sonic-skills --skill dsp-algorithm-guide

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Implementation guide for common DSP algorithms. Use when the user asks "implement a lowpass filter", "how do I write a compressor", "reverb algorithm", "FFT convolution", "pitch shifter", or "oscillator with no aliasing". Trigger on phrases like "biquad filter", "state variable filter", "feedback delay network", "phase vocoder", "overlap-add", "PolyBLEP", or any request to implement a specific DSP processing block.

SKILL.md

3.6 KB, as published. Nobody here has run it

DSP Algorithm Guide

Three steps: pick the right algorithm family, address implementation concerns, then verify correctness.

Step 1 — Identify the algorithm family

User requestAlgorithm familyRecommended starting point
Lowpass / highpass / bandpass / notchBiquad (IIR)Direct Form II transposed
High-quality parametric EQ, resonant filterBiquad cascade or SVFState Variable Filter (SVF)
Shelving / high-shelf / low-shelfBiquad (Audio EQ Cookbook)Peaking EQ or shelf coefficients
Reverb (algorithmic)FDN or Schroeder/MoorerFeedback Delay Network (FDN)
Reverb (convolution / IR)OLA / OLSOverlap-Add with FFT
Compressor / limiter / expander / gateLevel detector + gain computerRMS or peak detector + knee curve
Pitch shift / time stretchPhase vocoder or granularPhase vocoder for tonal material
Anti-aliased oscillatorBLIT / PolyBLEP / wavetablePolyBLEP for simple waveforms
Spectral processing / analysisSTFT pipelineOverlap-Add / Overlap-Save
Waveshaper / saturationMemoryless nonlinearitySoft-clip with oversampling

Step 2 — Implementation concerns

Work through this checklist before writing any DSP code:

  • Stability — confirm the algorithm's stability condition and check it after every coefficient update (e.g., biquad poles inside unit circle).
  • Coefficient precision — use double for coefficient computation; cast to float for the inner loop only if profiling demands it.
  • Denormal protection — use ScopedNoDenormals/FTZ where available, or add explicit state clamps/noise around feedback paths.
  • Latency reporting — if the algorithm introduces latency (e.g., FFT block size), call setLatencySamples() so the host can compensate.
  • Initialisation — clear all delay-line and state memory in prepareToPlay; never assume zero-init across transport loops.
  • Parameter smoothing — ramp filter coefficients or gain values over a block; abrupt changes cause clicks and, for IIR filters, instability.
  • Oversampling — nonlinear stages (waveshapers, saturators) need at least 2x oversampling to suppress alias products.

Step 3 — Test the implementation

  • Frequency response: compare magnitude/phase against the reference formula at multiple frequencies (e.g., plot with Python or MATLAB).
  • Step response: feed a unit step; verify overshoot and decay match the algorithm's expected behaviour.
  • Silence-in → silence-out: verify the output reaches and stays at zero after silent input (no denormal crawl).
  • No NaN / Inf: run with extreme parameter values (fc = 1 Hz, fc = Nyquist − 1 Hz, gain = 0 dB, gain = +24 dB).
  • Impulse response (convolution / reverb): verify IR matches the target via inverse FFT.
  • CPU profiling: measure per-block worst case before shipping; compare against the buffer deadline on the target CPU instead of relying on fixed ns/sample budgets.

See references/algorithm-cookbook.md for difference equations, stability conditions, coefficient mappings, and numerical tips for each family.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.