audioJS

@audio/filter-korg35

Status calibrated

npm1.2.1licenseMIT

Korg MS-20 style filter (Korg35)

Overview

Install
Updated
Family
filter, 16 packages under it
Tags
shape
import korg35 from '@audio/filter-korg35'

Korg MS-10/MS-20, 1978 — 2-pole filter with lowpass and highpass outputs from nonlinear feedback.

Topology: 2 cascaded one-pole sections with nonlinear feedback; HP = input − LP
Response: −12 dB/oct-12\,\text{dB/oct}; resonance 0–1 adds damping/saturation character — no resonant peak, no self-oscillation at any setting (2 real poles in the loop can't reach the −180° phase Barkhausen's criterion needs at any finite, audible frequency, unlike Moog/Diode's 4-pole loops)
Complementarity: LP+HP=input holds exactly only at resonance=0 (verified to 1e-16); at resonance>0 the HP tap's extra feedback term makes LP+HP diverge from the input (measured −7.5 dB to +1.4 dB error at resonance=0.8 across 200 Hz–5 kHz)

korg35(buffer, { fc: 1000, resonance: 0.5, type: 'lowpass',  fs: 44100 })
korg35(buffer, { fc: 1000, resonance: 0.5, type: 'highpass', fs: 44100 })

Circuit: Korg MS-10/MS-20 (1978)
Analysis: Stilson & Smith, "Analyzing the Korg MS-20 Filter" (1996); Zavalishin, The Art of VA Filter Design (2012), Ch. 5
vs Moog ladder: 2-pole (−12 dB/oct-12\,\text{dB/oct}) vs 4-pole (−24 dB/oct-24\,\text{dB/oct}); Korg35 has both LP and HP taps from one circuit, but no self-oscillation

Param Default
fc 1000 cutoff frequency, Hz
resonance 0 0–1; feedback k = 2·resonance; never self-oscillates
fs 44100 sample rate, Hz
drive 1 input gain into the feedback-path tanh saturation
type 'lowpass' 'lowpass' or 'highpass'

Pass the same params object on every call to persist the 2 stage states across blocks.

Use when: MS-20-style aggressive filter character with a highpass tap available; use moogLadder for 4-pole warmth and true self-oscillation instead.


Part of @audio/filter — the filter family umbrella. This README is generated from the umbrella docs.

MIT © audiojs