Clarity Module — Dynamic Mud & Air Reduction

Reduces low-mid mud (~350 Hz) and tames harshness (~4 kHz) using parallel bandpass filters feeding independent compressors, mixed back with the dry signal via clarityAmount.

Files

static/js/synth/modules/clarity.js

Signal Flow

input ──→ split ──→ dryGain ──┐
              │                 │
              ├──→ mudBp → mudComp → mudGain ──→ wetSum ──→ wetGain ──┐
              │                                                       │
              └──→ airBp → airComp → airGain ──→ wetSum ──────────────┘

                                                      output ←── sum

When clarityAmount <= 0, the module is completely bypassed — returns input unchanged.

Parameters

Param Range Default Description
clarityAmount 0–1 0 Wet/dry mix. 0 = off
mudFreq 200–800 Hz 350 Hz Centre frequency of the mud (low-mid) band
mudQ 0.5–5 2 Bandwidth of the mud bandpass filter
mudThresh –40–0 dB –18 dB Compressor threshold for mud band
mudRatio 1–10 3 Compression ratio for mud band
airFreq 2000–8000 Hz 4000 Hz Centre frequency of the air (harshness) band
airQ 0.5–5 1 Bandwidth of the air bandpass filter
airThresh –40–0 dB –15 dB Compressor threshold for air band
airRatio 1–10 4 Compression ratio for air band

Exports

Export Signature Purpose
paramDefs Parameter definitions for UI generation
build (ctx, params, input, dur) Create clarity chain or return input if bypassed
update (nodes, params) Update wet/dry mix and compressor params

Integration

Added to any engine's modules array as a processor type. The backward loop in buildLiveChain wires it automatically between the previous processor and masterGain.

{ id: 'clarity', label: 'Clarity', colour: '#2ecc71', type: 'processor',
  noSeqRandomise: true, noSectionLock: true,
  params: clarityMod.paramDefs,
  build: function (ctx, params, input, dur) { return clarityMod.build(ctx, params, input, dur); } }

Flags

  • noSeqRandomise: true — protected from sequencer randomise
  • noSectionLock: true — no lock icon in UI (mix-critical settings)
  • All params have lockable: false — individual lock icons hidden