{
  "schema": 1,
  "audioVersion": "2.9.0",
  "sourceSha256": "e498e9ecc2321d12cfc69924869b9894b8c5df33fccb327a12ed83e93cb80f09",
  "sources": [
    "https://github.com/audiojs/audio/blob/main/audio.js",
    "https://github.com/audiojs"
  ],
  "packages": [
    {
      "name": "@audio/amp",
      "version": "1.0.2",
      "family": "amp",
      "description": "Guitar/bass amplification — umbrella for @audio/amp-* atoms (tube stage, cabinet IR)",
      "url": "https://github.com/audiojs/amp",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/amp-cabinet",
      "version": "1.2.4",
      "family": "amp",
      "description": "Cabinet simulation — measured-IR convolution (pair with @audio/measure-ir) or classical speaker-sim biquads",
      "url": "https://github.com/audiojs/amp",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/amp-tube",
      "version": "1.2.4",
      "family": "amp",
      "description": "Tube amp stage — highpass → oversampled tube saturation → bass/mid/treble tone stack → level",
      "url": "https://github.com/audiojs/amp",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/assert",
      "version": "0.2.0",
      "family": "assert",
      "description": "Runner-agnostic audio assertion helpers for CI: peak, RMS, silence, clipping, DC offset, pitch, regression",
      "url": "https://github.com/audiojs/assert",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory",
      "version": "1.0.2",
      "family": "auditory",
      "description": "Auditory filterbanks — umbrella for @audio/auditory-* atoms (bark, ERB, mel, gammatone, octave)",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory-bark",
      "version": "1.1.1",
      "family": "auditory",
      "description": "Bark-scale filter bank",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory-erb",
      "version": "1.0.2",
      "family": "auditory",
      "description": "ERB-scale band centers and bandwidths (Glasberg & Moore) — pair with @audio/auditory-gammatone for actual filtering",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory-gammatone",
      "version": "1.0.1",
      "family": "auditory",
      "description": "Gammatone auditory filter (cochlear model)",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory-mel",
      "version": "1.0.1",
      "family": "auditory",
      "description": "Mel-frequency triangular filter bank",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/auditory-octave",
      "version": "1.1.1",
      "family": "auditory",
      "description": "IEC 61260 fractional-octave filter bank",
      "url": "https://github.com/audiojs/auditory",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/beat",
      "version": "3.0.0",
      "family": "beat",
      "description": "Beat detection — umbrella for @audio/beat-* atoms (onset detection, tempo estimation, beat tracking)",
      "url": "https://github.com/audiojs/beat#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/beat-detect",
      "version": "1.1.0",
      "family": "beat",
      "description": "Full beat detection pipeline: onset detection → tempo estimation → beat grid",
      "url": "https://github.com/audiojs/beat/tree/main/packages/beat-detect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/beat-onset",
      "version": "1.0.4",
      "family": "beat",
      "description": "Spectral flux onset detection",
      "url": "https://github.com/audiojs/beat/tree/main/packages/beat-onset",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/beat-tempo",
      "version": "2.0.0",
      "family": "beat",
      "description": "Tempo estimation via autocorrelation of onset detection function",
      "url": "https://github.com/audiojs/beat/tree/main/packages/beat-tempo",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/beat-track",
      "version": "1.1.0",
      "family": "beat",
      "description": "Dynamic programming beat tracker",
      "url": "https://github.com/audiojs/beat/tree/main/packages/beat-track",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/biquad",
      "version": "1.2.2",
      "family": "biquad",
      "description": "The audio-side biquad — RBJ cookbook coefficients (Web Audio conventions) + stateful SOS kernel (process/step/cascade/filter)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/biquad",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/chain",
      "version": "0.1.1",
      "family": "chain",
      "description": "Auto-Chain — analysis-driven processing chain: measure, build an adaptive stage list, apply it, show the recipe (Dolby.io Media Enhance class, classical DSP, no ML)",
      "url": "https://github.com/audiojs/chain#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/compile",
      "version": "0.1.4",
      "family": "compile",
      "description": "JavaScript audio processors to AudioWorklet nodes and experimental macOS VST3 plugins",
      "url": "https://github.com/audiojs/compile#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/compile-vst",
      "version": "0.0.1",
      "family": "compile",
      "description": "Compile audio.js atoms to native VST3 plugins with JZ",
      "url": "https://github.com/audiojs/compile/tree/main/packages/compile-vst#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/compile-wam",
      "version": "0.1.2",
      "family": "compile",
      "description": "Run audio.js atoms as Web Audio Modules / AudioWorklet nodes",
      "url": "https://github.com/audiojs/compile/tree/main/packages/compile-wam#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/decode",
      "version": "4.0.0",
      "family": "decode",
      "description": "Decode audio data in node or browser",
      "url": "https://github.com/audiojs/decode#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-aac",
      "version": "1.6.0",
      "family": "decode",
      "description": "Decode AAC/M4A (FAAD2 WASM) and ALAC/Apple Lossless (pure JS) to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-aac#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-ac3",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode AC-3 (Dolby Digital) audio with liba52 WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-ac3",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-aiff",
      "version": "1.3.0",
      "family": "decode",
      "description": "Decode AIFF/AIFF-C audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-aiff#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-amr",
      "version": "1.3.1",
      "family": "decode",
      "description": "Decode AMR-NB/WB audio via opencore-amr WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-amr#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-ape",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode Monkey's Audio (APE) with FFmpeg's ape decoder, WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-ape",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-avi",
      "version": "1.1.0",
      "family": "decode",
      "description": "Decode the audio stream of AVI files (PCM, MP3, AAC, µ-law, A-law) to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-avi",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-caf",
      "version": "1.4.1",
      "family": "decode",
      "description": "Decode CAF (Core Audio Format) audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-caf#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-dsd",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode DSD (DSF, DFF) audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-dsd#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-dts",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode DTS (DTS Coherent Acoustics core) audio with libdca WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-dts",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-eac3",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode E-AC-3 (Dolby Digital Plus) and AC-3 with FFmpeg's eac3 decoder, WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-eac3",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-flac",
      "version": "2.0.0",
      "family": "decode",
      "description": "Decode FLAC audio with libFLAC WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-flac#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-mod",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode tracker modules — MOD, XM, S3M, IT, MPTM and more — with libopenmpt WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-mod",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-mp3",
      "version": "1.3.1",
      "family": "decode",
      "description": "Decode MP3 audio with mpg123 WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-mp3#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-mp4",
      "version": "1.3.1",
      "family": "decode",
      "description": "Decode the audio track of MP4, MOV, M4A, M4V and 3GP files (AAC, ALAC, MP3, FLAC, Opus, AMR, PCM) to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-mp4",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-mpc",
      "version": "1.0.0",
      "family": "decode",
      "description": "Decode Musepack (MPC, SV7 and SV8) audio with libmpcdec WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-mpc",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-opus",
      "version": "1.3.3",
      "family": "decode",
      "description": "Decode Ogg Opus audio with local libopus WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-opus#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-qoa",
      "version": "2.0.0",
      "family": "decode",
      "description": "Decode QOA audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-qoa#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-tta",
      "version": "2.0.0",
      "family": "decode",
      "description": "Decode TTA (True Audio) lossless audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-tta",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-vorbis",
      "version": "1.3.4",
      "family": "decode",
      "description": "Decode Ogg Vorbis audio with libvorbis WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-vorbis#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-wav",
      "version": "2.0.0",
      "family": "decode",
      "description": "Decode WAV audio to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-wav#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-wavpack",
      "version": "2.0.0",
      "family": "decode",
      "description": "Decode WavPack (.wv) audio with libwavpack WASM",
      "url": "https://github.com/audiojs/decode/tree/main/packages/decode-wavpack",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-webm",
      "version": "1.6.1",
      "family": "decode",
      "description": "Decode WebM / Matroska audio (Opus, Vorbis, AAC, MP3, FLAC, ALAC, PCM) to PCM samples",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-webm#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/decode-wma",
      "version": "1.4.0",
      "family": "decode",
      "description": "Decode WMA audio (v1, v2, Pro, Lossless) with FFmpeg's decoders, WASM",
      "url": "https://github.com/audiojs/decode/tree/master/packages/decode-wma#readme",
      "private": false,
      "proposedTests": [
        "reference PCM and frame count",
        "truncated input and errors",
        "chunked decode and channel layout"
      ]
    },
    {
      "name": "@audio/defeedback",
      "version": "1.2.0",
      "family": "defeedback",
      "description": "Adaptive feedback suppression — umbrella for @audio/defeedback-* atoms (analyzer, tracker, notch bank)",
      "url": "https://github.com/audiojs/defeedback",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/defeedback-analyzer",
      "version": "1.0.1",
      "family": "defeedback",
      "description": "Feedback candidate detection — spectral peaks with PNPR/PHPR howl criteria (Waterschoot & Moonen 2011)",
      "url": "https://github.com/audiojs/defeedback",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/defeedback-notchbank",
      "version": "1.2.0",
      "family": "defeedback",
      "description": "Adaptive notch bank — pooled narrow IIR cuts, click-free coefficient morphing, deepen-on-redeploy",
      "url": "https://github.com/audiojs/defeedback",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/defeedback-tracker",
      "version": "1.0.1",
      "family": "defeedback",
      "description": "Howl trajectory tracking — persistence + stability + narrowness gates; music discriminator",
      "url": "https://github.com/audiojs/defeedback",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/denoise",
      "version": "0.4.2",
      "family": "denoise",
      "description": "Noise reduction — gate, spectral subtraction, Wiener, OM-LSA, dehum, declick, decrackle, declip, deesser, dereverb",
      "url": "https://github.com/audiojs/denoise#readme",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-debreath",
      "version": "0.1.8",
      "family": "denoise",
      "description": "De-breath — VAD-driven downward attenuation during non-speech regions",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-debreath",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-declick",
      "version": "0.1.7",
      "family": "denoise",
      "description": "De-click — detect impulsive transients via AR prediction residual, replace with",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-declick",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-declip",
      "version": "0.1.7",
      "family": "denoise",
      "description": "De-clip — restore samples that have been hard-clipped at ±threshold",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-declip",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-decrackle",
      "version": "0.1.7",
      "family": "denoise",
      "description": "De-crackle — continuous-stream version of de-click for vinyl-style noise",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-decrackle",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-dehum",
      "version": "0.2.0",
      "family": "denoise",
      "description": "Mains hum removal: measured, then notched; no hum, no change",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-dehum",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-deplosive",
      "version": "0.1.10",
      "family": "denoise",
      "description": "De-plosive — detect short low-frequency bursts ('p', 'b' attacks on close mics)",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-deplosive",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-dereverb",
      "version": "0.2.0",
      "family": "denoise",
      "description": "De-reverb: late reverberation off speech by weighted prediction error (WPE, Nakatani et al. 2010), recursive",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-dereverb",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-desilence",
      "version": "0.1.1",
      "family": "denoise",
      "description": "De-silence — VAD-driven silence handling for speech: remove, shorten (Smart Speed), split, trim",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-desilence",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-detect",
      "version": "0.3.1",
      "family": "denoise",
      "description": "denoise — content-aware auto-selector that classifies the dominant noise type",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-detect",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-dewind",
      "version": "0.1.9",
      "family": "denoise",
      "description": "De-wind / de-rumble — adaptive high-pass that opens wider when low-frequency",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-dewind",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-dewow",
      "version": "0.1.2",
      "family": "denoise",
      "description": "Wow & flutter correction — pitch-drift removal for tape/vinyl/cassette transfers",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-dewow",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-omlsa",
      "version": "0.2.0",
      "family": "denoise",
      "description": "OM-LSA: Optimally Modified Log-Spectral Amplitude (Cohen & Berdugo 2001), with IMCRA noise (Cohen 2003) or a noise learned where it plays alone",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-omlsa",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-repair",
      "version": "0.2.0",
      "family": "denoise",
      "description": "Spectral repair: rebuild dropouts and damaged time×frequency regions by AR interpolation, a sinusoidal bridge or a similarity transplant, routed by length and content (iZotope RX class)",
      "url": "https://github.com/audiojs/denoise",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-spectral",
      "version": "0.2.1",
      "family": "denoise",
      "description": "Spectral subtraction (Boll 1979) with Berouti over-subtraction + spectral floor",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-spectral",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/denoise-wiener",
      "version": "0.2.1",
      "family": "denoise",
      "description": "Wiener filter / MMSE-LSA denoise with decision-directed a-priori SNR",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/denoise-wiener",
      "private": false,
      "proposedTests": [
        "noise reduction and desired-signal loss",
        "clean-signal preservation",
        "boundary continuity"
      ]
    },
    {
      "name": "@audio/dynamics",
      "version": "0.3.0",
      "family": "dynamics",
      "description": "Dynamics processing — umbrella for @audio/dynamics-* atoms (compressor, limiter, gate, expander, de-esser, ducker, softclip, compand, transient shaper)",
      "url": "https://github.com/audiojs/dynamics#readme",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-compand",
      "version": "0.1.6",
      "family": "dynamics",
      "description": "Multi-segment compander (SoX `compand`). Arbitrary piecewise-linear transfer",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-compand",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-compressor",
      "version": "0.3.0",
      "family": "dynamics",
      "description": "Feed-forward soft-knee compressor, gain reduction smoothed in the log domain (Giannoulis, Massberg & Reiss 2012)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-compressor",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-deesser",
      "version": "0.2.7",
      "family": "dynamics",
      "description": "De-esser: bandpass sidechain (sibilance band) drives a compressor whose gain",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-deesser",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-ducker",
      "version": "0.1.8",
      "family": "dynamics",
      "description": "External-sidechain compressor: main signal's gain is reduced in proportion",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-ducker",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-envelope",
      "version": "0.1.3",
      "family": "dynamics",
      "description": "Branching one-pole envelope follower. Returns a stateful per-sample detector",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-envelope",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-expander",
      "version": "0.2.1",
      "family": "dynamics",
      "description": "Downward expander: reduces gain below threshold by (T-L)·(ratio-1) dB,",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-expander",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-fet",
      "version": "0.2.4",
      "family": "dynamics",
      "description": "FET compressor model — 0.2 ms peak attack, high ratios, firm knee (1176 class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-fet",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-gate",
      "version": "0.1.6",
      "family": "dynamics",
      "description": "Noise gate with hold-then-close logic and smoothed gain transitions",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-gate",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-leveler",
      "version": "0.2.0",
      "family": "dynamics",
      "description": "Gain riding / dialogue leveler — framewise smoothed loudness normalization (dynaudnorm / Vocal Rider class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-leveler",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-limiter",
      "version": "0.1.6",
      "family": "dynamics",
      "description": "Lookahead brickwall limiter. A sliding-window maximum (monotonic deque) over",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-limiter",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-multiband",
      "version": "0.4.2",
      "family": "dynamics",
      "description": "Multiband compressor — Linkwitz-Riley split + per-band soft-knee compression, flat sum (SoX mcompand class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-multiband",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-opto",
      "version": "0.2.4",
      "family": "dynamics",
      "description": "Optical compressor model — RMS detector, wide knee, T4 program-dependent release (LA-2A class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-opto",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-softclip",
      "version": "0.2.1",
      "family": "dynamics",
      "description": "Static waveshaping — no envelope, no time state. Deterministic per-sample",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-softclip",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-transient-shaper",
      "version": "0.1.6",
      "family": "dynamics",
      "description": "Transient shaper — independently boosts/cuts attack and sustain portions",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-transient-shaper",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-unlimit",
      "version": "0.1.1",
      "family": "dynamics",
      "description": "Classical de-limiter: transient-gated upward expansion restoring crest a brickwall limiter flattened",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-unlimit",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-varimu",
      "version": "0.2.4",
      "family": "dynamics",
      "description": "Vari-Mu compressor model — feedback detection, drive-dependent ratio, soft wide knee (Fairchild class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-varimu",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/dynamics-vca",
      "version": "0.2.4",
      "family": "dynamics",
      "description": "VCA compressor model — clean feed-forward, near-hard knee (dbx/SSL bus class)",
      "url": "https://github.com/audiojs/dynamics/tree/main/packages/dynamics-vca",
      "private": false,
      "proposedTests": [
        "static transfer curve",
        "attack release and lookahead",
        "silence and stereo linking"
      ]
    },
    {
      "name": "@audio/effect",
      "version": "2.1.6",
      "family": "effect",
      "description": "Audio effects — umbrella for @audio/effect-* atoms (modulation, delay, distortion, utility)",
      "url": "https://github.com/audiojs/effect#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-autowah",
      "version": "1.1.5",
      "family": "effect",
      "description": "Auto-wah — envelope follower drives resonant bandpass cutoff",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-autowah",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-bitcrusher",
      "version": "1.1.4",
      "family": "effect",
      "description": "Bitcrusher — sample-rate reduction + bit-depth quantization",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-bitcrusher",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-chorus",
      "version": "2.0.1",
      "family": "effect",
      "description": "Chorus — multiple detuned delay lines for ensemble thickening",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-chorus",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-delay",
      "version": "1.0.4",
      "family": "effect",
      "description": "Simple delay — mix of dry signal with delayed copy",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-delay",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-distortion",
      "version": "1.1.4",
      "family": "effect",
      "description": "Distortion / saturation — non-linear waveshaping",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-distortion",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-exciter",
      "version": "1.2.1",
      "family": "effect",
      "description": "Exciter — psychoacoustic harmonic synthesis for presence/air",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-exciter",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-flanger",
      "version": "2.0.1",
      "family": "effect",
      "description": "Flanger — modulated short delay with feedback",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-flanger",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-freqshift",
      "version": "1.1.5",
      "family": "effect",
      "description": "Frequency shifter — single-sideband shift via Hilbert transform",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-freqshift",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-gain",
      "version": "1.1.1",
      "family": "effect",
      "description": "Gain — simple level adjustment in dB",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-gain",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-graindelay",
      "version": "1.1.5",
      "family": "effect",
      "description": "Granular delay — per-grain pitch/time scatter (Ableton Grain Delay class)",
      "url": "https://github.com/audiojs/effect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-lofi",
      "version": "1.1.5",
      "family": "effect",
      "description": "Lo-fi character — wow/flutter, vinyl noise, crackle, bandwidth ceiling (RC-20 class)",
      "url": "https://github.com/audiojs/effect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-mixer",
      "version": "1.0.1",
      "family": "effect",
      "description": "Mixer — sums multiple buffers with gains",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-mixer",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-multitap",
      "version": "1.1.5",
      "family": "effect",
      "description": "Multi-tap delay — multiple delay taps at different times and gains",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-multitap",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-noiseshaper",
      "version": "1.1.5",
      "family": "effect",
      "description": "Noise shaping — error-feedback dithering for bit-depth reduction",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-noiseshaper",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-phaser",
      "version": "1.1.5",
      "family": "effect",
      "description": "Phaser — cascade of swept first-order allpass filters creating moving notches/peaks",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-phaser",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-pingpong",
      "version": "1.1.4",
      "family": "effect",
      "description": "Ping-pong delay — stereo: left and right delays alternate",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-pingpong",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-ringmod",
      "version": "1.1.4",
      "family": "effect",
      "description": "Ring modulator — multiplies signal by a carrier oscillator",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-ringmod",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-rotary",
      "version": "0.1.1",
      "family": "effect",
      "description": "Rotary speaker (Leslie) simulation — split horn/drum rotors, Doppler + directivity AM",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-rotary",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-sbr",
      "version": "1.2.1",
      "family": "effect",
      "description": "Spectral band replication — extend HF from midband harmonics (aural exciter family; De-Slop bandwidth recovery)",
      "url": "https://github.com/audiojs/effect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-slew",
      "version": "1.1.4",
      "family": "effect",
      "description": "Rate-of-change limiter",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-slew",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-stutter",
      "version": "1.1.5",
      "family": "effect",
      "description": "Stutter / beat-repeat — sliced buffer retrigger (Ableton Beat Repeat class)",
      "url": "https://github.com/audiojs/effect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-subbass",
      "version": "1.2.0",
      "family": "effect",
      "description": "Psychoacoustic bass enhancer — harmonic synthesis below cutoff (MaxxBass/RBass class)",
      "url": "https://github.com/audiojs/effect",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-tapestop",
      "version": "0.1.1",
      "family": "effect",
      "description": "Tape-stop / spin-down — variable-rate playback with a decelerating read pointer",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-tapestop",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-tremolo",
      "version": "1.1.4",
      "family": "effect",
      "description": "Tremolo — amplitude modulation via LFO",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-tremolo",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-vibrato",
      "version": "2.0.1",
      "family": "effect",
      "description": "Vibrato — pitch modulation via modulated delay line",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-vibrato",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/effect-wah",
      "version": "1.1.5",
      "family": "effect",
      "description": "Wah-wah — swept resonant bandpass filter",
      "url": "https://github.com/audiojs/effect/tree/main/packages/effect-wah",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/encode",
      "version": "1.9.0",
      "family": "encode",
      "description": "Encode audio data in node or browser",
      "url": "https://github.com/audiojs/encode#readme",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-aac",
      "version": "1.2.1",
      "family": "encode",
      "description": "Encode PCM audio samples to AAC (ADTS): WebCodecs, else the Fraunhofer FDK encoder (WASM)",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-aac",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-aiff",
      "version": "1.4.2",
      "family": "encode",
      "description": "Encode PCM audio samples to AIFF format",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-aiff",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-alac",
      "version": "1.0.2",
      "family": "encode",
      "description": "Encode PCM audio to Apple Lossless (ALAC) — pure JS port of Apple's reference encoder",
      "url": "https://github.com/audiojs/encode",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-caf",
      "version": "1.3.2",
      "family": "encode",
      "description": "Encode PCM audio samples to CAF (Core Audio Format) LPCM",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-caf",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-flac",
      "version": "1.4.2",
      "family": "encode",
      "description": "Encode PCM audio samples to FLAC format via WASM",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-flac",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-mp3",
      "version": "2.0.0",
      "family": "encode",
      "description": "Encode PCM audio samples to MP3 format via WASM",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-mp3",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-mp4",
      "version": "1.2.0",
      "family": "encode",
      "description": "Encode PCM audio samples to MP4/M4A (ISO BMFF) — pure JS muxer, remuxer and iTunes-tag writer",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-mp4",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-ogg",
      "version": "1.3.0",
      "family": "encode",
      "description": "Encode PCM audio samples to OGG Vorbis format via WASM",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-ogg",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-opus",
      "version": "1.3.1",
      "family": "encode",
      "description": "Encode PCM audio samples to Ogg Opus (libopus WASM)",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-opus",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-qoa",
      "version": "1.3.1",
      "family": "encode",
      "description": "Encode PCM audio samples to QOA (Quite OK Audio) format",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-qoa",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-wav",
      "version": "1.5.2",
      "family": "encode",
      "description": "Encode PCM audio samples to WAV format",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-wav",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-wavpack",
      "version": "1.0.2",
      "family": "encode",
      "description": "Encode PCM audio samples to WavPack (.wv) with libwavpack WASM",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-wavpack",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/encode-webm",
      "version": "1.3.0",
      "family": "encode",
      "description": "Encode PCM audio samples to WebM (Opus, libopus WASM)",
      "url": "https://github.com/audiojs/encode/tree/main/packages/encode-webm",
      "private": false,
      "proposedTests": [
        "lossless roundtrip or codec quality",
        "metadata and delay padding",
        "stream finalization"
      ]
    },
    {
      "name": "@audio/eq",
      "version": "1.0.3",
      "family": "eq",
      "description": "Equalization & tone shaping — umbrella for @audio/eq-* atoms (shelves, parametric, graphic, baxandall, tilt, crossover)",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-baxandall",
      "version": "1.2.3",
      "family": "eq",
      "description": "Baxandall tone control — bass/treble shelving with reciprocal characteristics",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-crossover",
      "version": "1.0.1",
      "family": "eq",
      "description": "N-way crossover network using Linkwitz-Riley filters",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-dynamic",
      "version": "1.2.3",
      "family": "eq",
      "description": "Dynamic EQ — per-band peaking gain driven by band energy (Pro-Q3/soothe class, generalized de-esser)",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-fir",
      "version": "1.0.2",
      "family": "eq",
      "description": "FIR convolution EQ — linear-phase, arbitrary magnitude response (frequency-sampling design; firequalizer / match-EQ class)",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-fit",
      "version": "0.1.0",
      "family": "eq",
      "description": "Fit an N-band parametric EQ (RBJ peaking + shelves) to a target magnitude curve — greedy init + Levenberg–Marquardt refinement",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-graphic",
      "version": "1.2.4",
      "family": "eq",
      "description": "Graphic equalizer using ISO octave-band center frequencies",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-highshelf",
      "version": "1.1.2",
      "family": "eq",
      "description": "High-shelf filter — boost or cut above a corner frequency",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-lowshelf",
      "version": "1.1.2",
      "family": "eq",
      "description": "Low-shelf filter — boost or cut below a corner frequency",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-parametric",
      "version": "1.1.2",
      "family": "eq",
      "description": "N-band parametric EQ",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/eq-tilt",
      "version": "1.2.3",
      "family": "eq",
      "description": "Tilt EQ — see-saw around a pivot frequency",
      "url": "https://github.com/audiojs/eq",
      "private": false,
      "proposedTests": [
        "band-center gain and Q",
        "unity-gain identity",
        "multi-band composition"
      ]
    },
    {
      "name": "@audio/filter",
      "version": "3.2.1",
      "family": "filter",
      "description": "Audio-facing filters — umbrella for @audio/filter-* atoms (biquads, comb, resonator, DC blocker, pre-emphasis, spectral tilt, analog ladder models)",
      "url": "https://github.com/audiojs/filter#readme",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-biquad",
      "version": "2.0.2",
      "family": "filter",
      "description": "Audio-facing biquad filters — highpass, lowpass, bandpass, notch, allpass (Hz/Q params, per-channel state)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-biquad",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-comb",
      "version": "1.1.3",
      "family": "filter",
      "description": "Comb filter — feedforward (FIR) and feedback (IIR)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-comb",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-dcblocker",
      "version": "1.1.3",
      "family": "filter",
      "description": "DC blocking filter",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-dcblocker",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-derivative",
      "version": "1.0.2",
      "family": "filter",
      "description": "Derivative / integral — FFmpeg aderivative/aintegral first-difference & running-sum pair",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-derivative",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-diode-ladder",
      "version": "1.2.1",
      "family": "filter",
      "description": "Diode ladder filter (Roland TB-303 / EMS VCS3 style)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-diode-ladder",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-korg35",
      "version": "1.2.1",
      "family": "filter",
      "description": "Korg MS-20 style filter (Korg35)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-korg35",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-moog-ladder",
      "version": "1.1.3",
      "family": "filter",
      "description": "Moog 4-pole transistor ladder filter (-24 dB/oct lowpass with resonance)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-moog-ladder",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-oberheim",
      "version": "1.2.1",
      "family": "filter",
      "description": "Oberheim SEM state-variable filter (–12 dB/oct multimode)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-oberheim",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-preemphasis",
      "version": "1.1.3",
      "family": "filter",
      "description": "Pre-emphasis / de-emphasis filter",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-preemphasis",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-resonator",
      "version": "1.2.1",
      "family": "filter",
      "description": "Constant-peak-gain resonator (JOS two-zero form)",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-resonator",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-spectral-tilt",
      "version": "1.2.1",
      "family": "filter",
      "description": "Spectral tilt filter: apply a constant dB/octave slope to the spectrum",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-spectral-tilt",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/filter-variable",
      "version": "1.2.3",
      "family": "filter",
      "description": "Variable-bandwidth filter with per-sample smoothed coefficient trajectory",
      "url": "https://github.com/audiojs/filter/tree/main/packages/filter-variable",
      "private": false,
      "proposedTests": [
        "impulse and frequency response",
        "stability at parameter limits",
        "chunk partition and channel isolation"
      ]
    },
    {
      "name": "@audio/host",
      "version": "0.1.1",
      "family": "host",
      "description": "Universal audio plugin host — VST3, CLAP, and more",
      "url": "https://github.com/audiojs/host",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap",
      "version": "0.1.1",
      "family": "host",
      "description": "CLAP plugin host for audiojs",
      "url": "https://github.com/audiojs/host",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap-darwin-arm64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-clap native addon for darwin-arm64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap-darwin-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-clap native addon for darwin-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap-linux-arm64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-clap native addon for linux-arm64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap-linux-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-clap native addon for linux-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-clap-win32-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-clap native addon for win32-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst",
      "version": "0.1.1",
      "family": "host",
      "description": "VST3 plugin host for audiojs",
      "url": "https://github.com/audiojs/host",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst-darwin-arm64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-vst native addon for darwin-arm64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst-darwin-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-vst native addon for darwin-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst-linux-arm64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-vst native addon for linux-arm64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst-linux-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-vst native addon for linux-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/host-vst-win32-x64",
      "version": "0.1.0",
      "family": "host",
      "description": "@audio/host-vst native addon for win32-x64",
      "url": "https://github.com/audiojs/host",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/loudness",
      "version": "1.2.3",
      "family": "loudness",
      "description": "Loudness metering — umbrella for @audio/loudness-* atoms (BS.1770-4 LUFS, true peak, LRA, ReplayGain, DR, speech contrast, sound labeling)",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-contrast",
      "version": "1.0.4",
      "family": "loudness",
      "description": "Speech contrast — foreground/background RMS difference, WCAG 2.0 SC 1.4.7 (Audacity Contrast)",
      "url": "https://github.com/audiojs/loudness/tree/main/packages/loudness-contrast",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-dr",
      "version": "1.1.4",
      "family": "loudness",
      "description": "DR value — TT/dr14 crest-factor dynamic range meter",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-lra",
      "version": "1.3.0",
      "family": "loudness",
      "description": "Loudness range (LRA) — EBU Tech 3342 short-term distribution, P95−P10 after gating",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-lufs",
      "version": "1.2.0",
      "family": "loudness",
      "description": "Integrated loudness (LUFS) — ITU-R BS.1770-4 K-weighted gated measurement, EBU Tech 3341-verified",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-replaygain",
      "version": "1.2.1",
      "family": "loudness",
      "description": "ReplayGain 2.0 — track gain to the −18 LUFS reference",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-sounds",
      "version": "1.0.3",
      "family": "loudness",
      "description": "Sound labeling — level-threshold region detection (Audacity Label Sounds)",
      "url": "https://github.com/audiojs/loudness/tree/main/packages/loudness-sounds",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/loudness-truepeak",
      "version": "1.1.6",
      "family": "loudness",
      "description": "True peak (dBTP) — 4× sinc-oversampled inter-sample peak (BS.1770-5 Annex 2 methodology)",
      "url": "https://github.com/audiojs/loudness",
      "private": false,
      "proposedTests": [
        "analytic levels and silence",
        "EBU/BS.1770 official vectors where applicable",
        "gating and channel weighting"
      ]
    },
    {
      "name": "@audio/lpc",
      "version": "1.1.0",
      "family": "lpc",
      "description": "Linear predictive coding — Levinson-Durbin AR analysis, prediction, forward extrapolation, and least-squares gap interpolation",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/lpc",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure",
      "version": "1.1.4",
      "family": "measure",
      "description": "Acoustic & system measurement — umbrella for @audio/measure-* atoms (IR capture, response, latency)",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-align",
      "version": "1.0.1",
      "family": "measure",
      "description": "Multi-mic phase/time alignment — signed cross-correlation delay + polarity (Auto-Align class)",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-correct",
      "version": "0.1.0",
      "family": "measure",
      "description": "Response correction design — measured response + target curve → FIR and/or parametric correction EQ (REW/Dirac/Acourate class)",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-ir",
      "version": "1.0.1",
      "family": "measure",
      "description": "Impulse-response capture — exponential sine sweep deconvolution (Farina 2000), self-calibrated",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-latency",
      "version": "1.0.1",
      "family": "measure",
      "description": "Round-trip latency — FFT cross-correlation peak between reference and loopback",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-lossy",
      "version": "0.1.0",
      "family": "measure",
      "description": "Lossy-transcode detection — spectral-cutoff estimation + source classification (Spek / aucdtect class)",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/measure-response",
      "version": "1.0.1",
      "family": "measure",
      "description": "Frequency response from an impulse response — zero-padded FFT magnitude",
      "url": "https://github.com/audiojs/measure",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic",
      "version": "1.1.3",
      "family": "mic",
      "description": "Capture audio from microphone in browser/node",
      "url": "https://github.com/audiojs/mic#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic-darwin-arm64",
      "version": "1.1.2",
      "family": "mic",
      "description": "audio-mic native addon for macOS ARM64",
      "url": "https://github.com/audiojs/mic",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic-darwin-x64",
      "version": "1.1.2",
      "family": "mic",
      "description": "audio-mic native addon for macOS x64",
      "url": "https://github.com/audiojs/mic",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic-linux-arm64",
      "version": "1.1.1",
      "family": "mic",
      "description": "audio-mic native addon for Linux ARM64",
      "url": "https://github.com/audiojs/mic",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic-linux-x64",
      "version": "1.1.1",
      "family": "mic",
      "description": "audio-mic native addon for Linux x64",
      "url": "https://github.com/audiojs/mic",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mic-win32-x64",
      "version": "1.1.1",
      "family": "mic",
      "description": "audio-mic native addon for Windows x64",
      "url": "https://github.com/audiojs/mic",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/midi",
      "version": "1.0.3",
      "family": "midi",
      "description": "Symbolic & timed formats — umbrella for @audio/midi-* atoms (SMF parse, write, synth render), MusicXML/ABC notation, subtitles (SRT/VTT/LRC/TTML)",
      "url": "https://github.com/audiojs/midi",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/midi-parse",
      "version": "1.0.2",
      "family": "midi",
      "description": "Standard MIDI file parser — tracks, tempo map, note events",
      "url": "https://github.com/audiojs/midi",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/midi-render",
      "version": "0.1.0",
      "family": "midi",
      "description": "MIDI → PCM — GM-mapped synth render, no soundfont, no samples",
      "url": "https://github.com/audiojs/midi",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/midi-soundfont",
      "version": "0.0.0",
      "family": "midi",
      "description": "Soundfont sampler — render MIDI through SF2/pre-rendered banks (midi-js-soundfonts)",
      "url": "",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/midi-write",
      "version": "1.0.2",
      "family": "midi",
      "description": "Standard MIDI file writer — note events → SMF (mir-transcribe output target)",
      "url": "https://github.com/audiojs/midi",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir",
      "version": "1.1.3",
      "family": "mir",
      "description": "Music information retrieval — umbrella for @audio/mir-* atoms (chroma, chord, key; MIREX-parity roadmap)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-chord",
      "version": "1.0.1",
      "family": "mir",
      "description": "24 binary chord templates: C, C#, … B (major) then C, C#, … B (minor)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-chordino",
      "version": "1.0.0",
      "family": "mir",
      "description": "Chordino (Mauch 2010): chord sequence from NNLS chroma, as the reference Vamp plugin",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-chroma",
      "version": "1.1.2",
      "family": "mir",
      "description": "Chroma (pitch-class profile) feature — a 12-D vector where each bin holds",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-coversong",
      "version": "1.1.4",
      "family": "mir",
      "description": "Cover song identification — recognize the same composition across performances",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-downbeat",
      "version": "1.1.4",
      "family": "mir",
      "description": "Downbeat estimation — locate the bar-level \"1\" within a beat grid",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-drums",
      "version": "1.1.5",
      "family": "mir",
      "description": "Drum transcription — kick/snare/hihat onset detection and classification",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-fingerprint",
      "version": "1.1.3",
      "family": "mir",
      "description": "Landmark fingerprinting — spectral peak constellation hashes + offset-vote matching (Wang 2003 class)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-key",
      "version": "1.0.1",
      "family": "mir",
      "description": "Krumhansl–Kessler major and minor key profiles",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-melody",
      "version": "1.1.3",
      "family": "mir",
      "description": "Melody contour — frame-level F0 track via YIN with voicing (MIREX melody shape)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-multif0",
      "version": "1.1.4",
      "family": "mir",
      "description": "Multiple F0 estimation — all simultaneous pitches per frame (polyphonic)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-nnls-chroma",
      "version": "1.0.0",
      "family": "mir",
      "description": "NNLS Chroma (Mauch & Dixon 2010): treble and bass chromagram with tuning, as the reference Vamp plugin",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-similarity",
      "version": "1.1.4",
      "family": "mir",
      "description": "Audio similarity — distance metric between recordings",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-structure",
      "version": "1.1.3",
      "family": "mir",
      "description": "Structural segmentation — Foote checkerboard novelty over MFCC self-similarity (Foote 2000)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-tempogram",
      "version": "1.1.4",
      "family": "mir",
      "description": "Tempogram — local tempo over time via onset-envelope autocorrelation",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-tonnetz",
      "version": "1.1.2",
      "family": "mir",
      "description": "Tonal centroid (Tonnetz) — 6-dim interval-circle projection of chroma (Harte 2006)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/mir-transcribe",
      "version": "1.1.4",
      "family": "mir",
      "description": "Polyphonic transcription — audio → MIDI note events (onset, offset, pitch, velocity)",
      "url": "https://github.com/audiojs/mir",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/musicxml",
      "version": "0.1.0",
      "family": "musicxml",
      "description": "MusicXML 4.0 writer/parser and ABC writer — note events ↔ notation",
      "url": "https://github.com/audiojs/midi",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural",
      "version": "0.0.0",
      "family": "neural",
      "description": "Neural lane — umbrella for @audio/neural-* atoms (runtime adapter, denoise, amp, separation)",
      "url": "",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-align",
      "version": "0.1.0",
      "family": "neural",
      "description": "Forced alignment — audio + known transcript → word/character timestamps (CTC trellis, wav2vec2 acoustic model)",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-amp",
      "version": "0.1.0",
      "family": "neural",
      "description": "Neural amp modeling — NAM (.nam) WaveNet capture playback, dependency-free",
      "url": "",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-asr",
      "version": "0.1.0",
      "family": "neural",
      "description": "Speech-to-text — Whisper (OpenAI, MIT) running locally via transformers.js/ONNX Runtime, in Node and the browser",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-capture",
      "version": "0.1.0",
      "family": "neural",
      "description": "Device capture — staged identifier: dry/wet pair → cheapest audiojs formula (IR → Hammerstein → …) with null-depth report",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-denoise",
      "version": "0.1.0",
      "family": "neural",
      "description": "Neural speech enhancement: RNNoise (Valin 2018) in pure JS, bit-exact to its C, weights bundled; DeepFilterNet3 through ONNX Runtime, matching the Python original",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-diarize",
      "version": "0.1.0",
      "family": "neural",
      "description": "Speaker diarization — who spoke when (WavLM x-vector embeddings, agglomerative clustering)",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-pitch",
      "version": "0.1.0",
      "family": "neural",
      "description": "Monophonic pitch posterior and voicing from a small transposition-equivariant network with MIT weights, in plain JavaScript; a stage 1 for @audio/pitch-pyin's HMM and note model",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-runtime",
      "version": "0.1.0",
      "family": "neural",
      "description": "Model inference adapter — ONNX Runtime (Node/wasm/webgpu) behind one worklet-ready interface",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-separate",
      "version": "0.1.0",
      "family": "neural",
      "description": "Source separation (stems): Open-Unmix-class spectrogram masking + multichannel Wiener refinement, Hybrid Transformer Demucs, model-agnostic ONNX",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-synth",
      "version": "0.1.0",
      "family": "neural",
      "description": "Sound matching — configure any knob-synth to reproduce a target sound (CMA-ES over multi-scale spectral loss)",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-timbre",
      "version": "0.1.0",
      "family": "neural",
      "description": "Timbre recognition: a small encoder maps one note to a vector, a catalog of preset vectors names the sound (Yamaha DX7 first), ranked by cosine through @audio/neural-runtime",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-transcribe",
      "version": "0.1.0",
      "family": "neural",
      "description": "Polyphonic note transcription with pitch bends: Spotify's Basic Pitch (ICASSP 2022) through ONNX Runtime, in Node and the browser",
      "url": "https://github.com/audiojs/neural",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/neural-tts",
      "version": "0.1.0",
      "family": "neural",
      "description": "Text to speech — SpeechT5 (and VITS/mms-tts-eng) running locally via transformers.js/ONNX Runtime, in Node and the browser",
      "url": "https://github.com/audiojs/neural",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/noise-estimate",
      "version": "2.1.0",
      "family": "noise",
      "description": "Noise PSD estimation — minimum statistics (Martin 2001), IMCRA (Cohen 2003), and quiet-segment profiling for spectral denoisers",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/noise-estimate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/note",
      "version": "1.0.2",
      "family": "note",
      "description": "Music-theory primitives — Hz ↔ MIDI ↔ name, cents, scales, pitch snapping",
      "url": "https://github.com/audiojs/note",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/onset",
      "version": "1.0.3",
      "family": "onset",
      "description": "Onset detection — spectral-flux and energy-flux onset detection functions (ODFs) + adaptive peak picking",
      "url": "https://github.com/audiojs/beat/tree/main/packages/onset",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch",
      "version": "2.0.4",
      "family": "pitch",
      "description": "Pitch detection — umbrella for @audio/pitch-* atoms (YIN, pYIN, McLeod, HPS, cepstrum, SWIPE, autocorrelation, AMDF)",
      "url": "https://github.com/audiojs/pitch#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-amdf",
      "version": "1.0.1",
      "family": "pitch",
      "description": "AMDF (Average Magnitude Difference Function) pitch detection",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-amdf",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-autocorrelation",
      "version": "1.0.1",
      "family": "pitch",
      "description": "Normalized autocorrelation pitch detection (baseline)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-autocorrelation",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-cepstrum",
      "version": "1.0.1",
      "family": "pitch",
      "description": "Cepstrum pitch detection (Noll, 1967)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-cepstrum",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-hps",
      "version": "1.0.1",
      "family": "pitch",
      "description": "Harmonic Product Spectrum (Schroeder, 1968)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-hps",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-mcleod",
      "version": "1.0.1",
      "family": "pitch",
      "description": "McLeod Pitch Method (McLeod & Wyvill, 2005)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-mcleod",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-pyin",
      "version": "2.0.0",
      "family": "pitch",
      "description": "pYIN — probabilistic YIN (Mauch & Dixon, 2014)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-pyin",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-swipe",
      "version": "1.0.1",
      "family": "pitch",
      "description": "SWIPE′ — Sawtooth Waveform Inspired Pitch Estimator with prime harmonics",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-swipe",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/pitch-yin",
      "version": "1.0.5",
      "family": "pitch",
      "description": "YIN pitch detection (de Cheveigné & Kawahara, 2002)",
      "url": "https://github.com/audiojs/pitch/tree/main/packages/pitch-yin",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/quality",
      "version": "1.0.1",
      "family": "quality",
      "description": "Objective audio quality metrics — SNR, segmental SNR, log-spectral distance, spectral similarity, noise-reduction ratio, per-partial modulation depth",
      "url": "https://github.com/audiojs/measure/tree/main/packages/quality",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/resample",
      "version": "1.2.3",
      "family": "resample",
      "description": "Sample-rate conversion — umbrella for @audio/resample-* atoms (sinc, linear, polyphase)",
      "url": "https://github.com/audiojs/resample",
      "private": false,
      "proposedTests": [
        "output length and rate",
        "passband SNR and alias rejection",
        "stream flush and chunk partition"
      ]
    },
    {
      "name": "@audio/resample-linear",
      "version": "1.0.2",
      "family": "resample",
      "description": "Linear-interpolation resampling — cheap, real-time (no anti-alias; use resample-sinc for downsampling)",
      "url": "https://github.com/audiojs/resample",
      "private": false,
      "proposedTests": [
        "output length and rate",
        "passband SNR and alias rejection",
        "stream flush and chunk partition"
      ]
    },
    {
      "name": "@audio/resample-polyphase",
      "version": "1.1.0",
      "family": "resample",
      "description": "Polyphase FIR resampling — streaming-friendly rational rate conversion (48↔16/24 kHz voice-agent path)",
      "url": "https://github.com/audiojs/resample",
      "private": false,
      "proposedTests": [
        "output length and rate",
        "passband SNR and alias rejection",
        "stream flush and chunk partition"
      ]
    },
    {
      "name": "@audio/resample-sinc",
      "version": "1.2.0",
      "family": "resample",
      "description": "Windowed-sinc (Lanczos, 32-tap) resampling with anti-alias kernel widening on downsample",
      "url": "https://github.com/audiojs/resample",
      "private": false,
      "proposedTests": [
        "output length and rate",
        "passband SNR and alias rejection",
        "stream flush and chunk partition"
      ]
    },
    {
      "name": "@audio/reverb",
      "version": "1.0.2",
      "family": "reverb",
      "description": "Reverberation — umbrella for @audio/reverb-* atoms (Schroeder, Freeverb, Dattorro plate, FDN, convolution, spring, shimmer)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-convolution",
      "version": "1.0.1",
      "family": "reverb",
      "description": "Convolution reverb — impulse-response convolution (rooms, plates, cabinets)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-dattorro",
      "version": "1.1.3",
      "family": "reverb",
      "description": "Dattorro plate reverb — input diffusers + figure-eight tank (JAES 1997 topology and taps)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-fdn",
      "version": "1.1.3",
      "family": "reverb",
      "description": "FDN reverb — 8 mutually-prime delays, O(N) Householder feedback, per-line damping (Jot topology)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-freeverb",
      "version": "1.0.4",
      "family": "reverb",
      "description": "Freeverb — Schroeder-Moorer 8-comb + 4-allpass reverb, Jezar public-domain tuning, stereo spread",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-schroeder",
      "version": "1.1.3",
      "family": "reverb",
      "description": "Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-shimmer",
      "version": "1.1.4",
      "family": "reverb",
      "description": "Shimmer reverb — octave-up pitch-shifted feedback tail (Valhalla/Eno-Lanois class)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/reverb-spring",
      "version": "1.1.3",
      "family": "reverb",
      "description": "Spring reverb — dispersive allpass-chain loop (Parker-Välimäki class simplified model)",
      "url": "https://github.com/audiojs/reverb",
      "private": false,
      "proposedTests": [
        "impulse tail and decay",
        "wet dry identity",
        "stability and channel routing"
      ]
    },
    {
      "name": "@audio/saturate",
      "version": "1.0.3",
      "family": "saturate",
      "description": "Saturation — umbrella for @audio/saturate-* atoms (tape, tube, transistor, waveshaper, multiband)",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/saturate-multiband",
      "version": "1.1.4",
      "family": "saturate",
      "description": "Multiband saturation — LR split + per-band tube drive (Saturn class)",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/saturate-tape",
      "version": "1.1.3",
      "family": "saturate",
      "description": "Tape saturation — tanh transfer + playback HF rolloff (simplified machine model)",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/saturate-transistor",
      "version": "1.1.3",
      "family": "saturate",
      "description": "Transistor/console saturation — odd-symmetric cubic, 3rd-harmonic dominant",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/saturate-tube",
      "version": "1.0.5",
      "family": "saturate",
      "description": "Tube saturation — asymmetric biased tanh, even-harmonic signature",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/saturate-waveshaper",
      "version": "1.1.3",
      "family": "saturate",
      "description": "Waveshaper — normalized tanh or custom curve, oversampled",
      "url": "https://github.com/audiojs/saturate",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/shift",
      "version": "1.1.4",
      "family": "shift",
      "description": "Canonical pitch-shifting algorithms: phase vocoder, peak-locked, transient-aware, PSOLA, WSOLA, granular, PaulStretch, SMS, HPSS, formant, sampler, hybrid",
      "url": "https://github.com/audiojs/shift#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-delay",
      "version": "1.0.2",
      "family": "shift",
      "description": "Delay-line (harmonizer) pitch shift — dual crossfading taps sweeping a modulated delay window",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-delay#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-formant",
      "version": "1.1.5",
      "family": "shift",
      "description": "Formant-preserving pitch shift via cepstral envelope re-imposition",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-formant#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-granular",
      "version": "1.0.2",
      "family": "shift",
      "description": "Granular pitch shift — direct grain-read synthesis for signature textural sound",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-granular#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-hpss",
      "version": "1.0.2",
      "family": "shift",
      "description": "Harmonic/Percussive Source Separation pitch shift — shifts harmonics, preserves transients",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-hpss#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-hybrid",
      "version": "1.0.2",
      "family": "shift",
      "description": "Hybrid pitch shift — runs phase-lock + WSOLA in parallel, crossfades by transient confidence",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-hybrid#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-lpc",
      "version": "1.0.2",
      "family": "shift",
      "description": "LPC source-filter pitch shift — repitched excitation residual through the unmodified all-pole vocal-tract filter",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-lpc#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-ola",
      "version": "1.0.3",
      "family": "shift",
      "description": "OLA (Overlap-Add) pitch shift — simplest stretch+resample baseline",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-ola#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-paulstretch",
      "version": "1.1.4",
      "family": "shift",
      "description": "Paulstretch-style randomized-phase pitch shift for textural blur",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-paulstretch#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-psola",
      "version": "1.0.3",
      "family": "shift",
      "description": "PSOLA (Pitch-Synchronous Overlap-Add) pitch shift — pitch-synchronous grains for monophonic voice",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-psola#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-pvoc",
      "version": "1.1.5",
      "family": "shift",
      "description": "Canonical phase vocoder (Bernsee/SMB) pitch shift",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-pvoc#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-pvoc-lock",
      "version": "1.0.2",
      "family": "shift",
      "description": "Peak-locked phase vocoder (Laroche-Dolson) pitch shift",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-pvoc-lock#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-sample",
      "version": "1.0.2",
      "family": "shift",
      "description": "Sampler-style pitch shift — sinc-interpolated fractional-stride resample (no time preservation)",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-sample#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-sms",
      "version": "1.0.2",
      "family": "shift",
      "description": "Spectral Modeling Synthesis (Serra/Smith) sinusoidal+residual pitch shift",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-sms#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-transient",
      "version": "1.0.2",
      "family": "shift",
      "description": "Transient-aware phase vocoder pitch shift with attack preservation",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-transient#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/shift-wsola",
      "version": "1.0.3",
      "family": "shift",
      "description": "WSOLA (Waveform-Similarity Overlap-Add) pitch shift — similarity-search OLA variant",
      "url": "https://github.com/audiojs/shift/tree/main/packages/shift-wsola#readme",
      "private": false,
      "proposedTests": [
        "pitch ratio and duration",
        "formant or transient retention",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/sinusoidal",
      "version": "1.0.1",
      "family": "sinusoidal",
      "description": "Sinusoidal modeling — umbrella for @audio/sinusoidal-* atoms (partial tracking, additive resynthesis, residual)",
      "url": "https://github.com/audiojs/sinusoidal",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/sinusoidal-residual",
      "version": "1.0.2",
      "family": "sinusoidal",
      "description": "Residual noise layer — spectral subtraction of tracked partials with input phase (Serra SMS)",
      "url": "https://github.com/audiojs/sinusoidal",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/sinusoidal-synth",
      "version": "1.0.2",
      "family": "sinusoidal",
      "description": "Additive resynthesis from partial trajectories — interpolated freq/amp, integrated phase",
      "url": "https://github.com/audiojs/sinusoidal",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/sinusoidal-track",
      "version": "1.0.2",
      "family": "sinusoidal",
      "description": "Sinusoidal analysis — STFT peaks (parabolic) + nearest-frequency partial tracking (McAulay-Quatieri 1986)",
      "url": "https://github.com/audiojs/sinusoidal",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/spatial",
      "version": "1.0.3",
      "family": "spatial",
      "description": "Spatial & channel tools — umbrella for @audio/spatial-* atoms (panner, widener, haas, auto-panner, crossfeed)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-ambisonic",
      "version": "0.1.0",
      "family": "spatial",
      "description": "Ambisonics — encode/rotate/decode, 1st-3rd order (HOA), ACN/SN3D (AmbiX), FuMa conversion",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-autopan",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Auto-panner — LFO-driven stereo panning. Constant-power cos/sin law",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-binaural",
      "version": "0.1.1",
      "family": "spatial",
      "description": "Structural binaural panner — Brown-Duda spherical-head ITD + head-shadow ILD (no HRIR data)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-channelsplit",
      "version": "1.0.1",
      "family": "spatial",
      "description": "Channel split/combine — multichannel ↔ mono planes (FFmpeg channelsplit)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-crossfeed",
      "version": "1.1.1",
      "family": "spatial",
      "description": "Headphone crossfeed filter",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-delay",
      "version": "1.0.1",
      "family": "spatial",
      "description": "Per-channel delay in ms/samples (FFmpeg adelay)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-haas",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Haas effect — delays one channel by 1–35 ms to create phantom stereo image",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-microshift",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Micro-pitch stereo widener — ±cents detuned copies (H3000 MicroShift class)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-midside",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Mid/side encode-decode — L/R ↔ M/S matrix with width control",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-panner",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Stereo panner — constant-power panning",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-surround",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Stereo → 5.1 matrix upmix — C/LFE/Ls/Rs derivation (documented simple matrix)",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/spatial-widener",
      "version": "1.1.3",
      "family": "spatial",
      "description": "Stereo widener — mid/side processing to adjust stereo width",
      "url": "https://github.com/audiojs/spatial",
      "private": false,
      "proposedTests": [
        "channel routing and polarity",
        "mono compatibility",
        "energy and inter-channel delay"
      ]
    },
    {
      "name": "@audio/speaker",
      "version": "2.4.0",
      "family": "speaker",
      "description": "Output audio data to speaker in browser/node",
      "url": "https://github.com/audiojs/speaker#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speaker-darwin-arm64",
      "version": "2.3.3",
      "family": "speaker",
      "description": "audio-speaker native addon for darwin arm64",
      "url": "https://github.com/audiojs/speaker",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speaker-darwin-x64",
      "version": "2.3.3",
      "family": "speaker",
      "description": "audio-speaker native addon for darwin x64",
      "url": "https://github.com/audiojs/speaker",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speaker-linux-arm64",
      "version": "2.3.3",
      "family": "speaker",
      "description": "audio-speaker native addon for linux arm64",
      "url": "https://github.com/audiojs/speaker",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speaker-linux-x64",
      "version": "2.3.3",
      "family": "speaker",
      "description": "audio-speaker native addon for linux x64",
      "url": "https://github.com/audiojs/speaker",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speaker-win32-x64",
      "version": "2.3.3",
      "family": "speaker",
      "description": "audio-speaker native addon for win32 x64",
      "url": "https://github.com/audiojs/speaker",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/spectral",
      "version": "1.2.4",
      "family": "spectral",
      "description": "Spectral features — umbrella for @audio/spectral-* atoms (centroid, spread, flatness, rolloff, flux, slope, crest, zcr)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-centroid",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Spectral centroid — magnitude-weighted mean frequency (Hz). Peeters 2004 §6.1.",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-contrast",
      "version": "1.1.3",
      "family": "spectral",
      "description": "Spectral contrast — per-octave peak/valley difference (Jiang 2002, librosa parity)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-cqt",
      "version": "1.0.1",
      "family": "spectral",
      "description": "Constant-Q transform — log-frequency spectrum, Q-scaled windows (Brown 1991)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-crest",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Spectral crest — peak-to-mean ratio of the POWER spectrum (≥1; high = peaky/tonal).",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-edit",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Spectral editing — gain on time×frequency regions via COLA-normalized STFT (Audacity/afftfilt class)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-flatness",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Spectral flatness — geometric/arithmetic mean ratio of the POWER spectrum, 0 (tonal) … 1 (noise).",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-flux",
      "version": "1.1.4",
      "family": "spectral",
      "description": "Spectral flux — frame-to-frame magnitude change. Euclidean by default (FFmpeg aspectralstats);",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-freeze",
      "version": "1.0.1",
      "family": "spectral",
      "description": "Spectral freeze — sustain a spectral frame with phase dispersion (Spectral Time class)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-harmonics",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Harmonic descriptors — inharmonicity, tristimulus, odd/even ratio from f0 (essentia parity)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-ltas",
      "version": "1.1.4",
      "family": "spectral",
      "description": "LTAS — long-term average spectrum via Welch's method (adaptive-EQ / match-EQ substrate)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-mfcc",
      "version": "1.0.2",
      "family": "spectral",
      "description": "MFCC — mel-frequency cepstral coefficients (FFT → mel triangles → log → DCT-II)",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-pvoc",
      "version": "1.1.0",
      "family": "spectral",
      "description": "Phase-vocoder engine — peak-gated and peak-locked spectral bin scatter (Bernsee, Laroche-Dolson), phase locking, peak finding; powers @audio/shift-pvoc* and @audio/stretch-pvoc*",
      "url": "https://github.com/audiojs/spectral/tree/main/packages/spectral-pvoc",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-rolloff",
      "version": "1.1.4",
      "family": "spectral",
      "description": "Spectral rolloff — frequency below which \\`p\\` of total spectral energy lies (default 85%).",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-slope",
      "version": "1.1.4",
      "family": "spectral",
      "description": "Spectral slope — least-squares linear regression of magnitude over frequency. Peeters 2004 §6.6.",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-spread",
      "version": "1.1.4",
      "family": "spectral",
      "description": "Spectral spread — magnitude-weighted standard deviation around the centroid (Hz). Peeters 2004 §6.1.",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-target",
      "version": "1.0.1",
      "family": "spectral",
      "description": "Target-curve library — per-content-type LTAS targets (speech/music/pink/voice-music) + deviation math for adaptive/match EQ",
      "url": "https://github.com/audiojs/spectral",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/spectral-zcr",
      "version": "1.0.2",
      "family": "spectral",
      "description": "Zero-crossing rate — per-frame sign-change fraction (librosa zero_crossing_rate class)",
      "url": "https://github.com/audiojs/spectral/tree/main/packages/spectral-zcr",
      "private": false,
      "proposedTests": [
        "analytic sine impulse and DC",
        "window normalization",
        "frame and channel independence"
      ]
    },
    {
      "name": "@audio/speech-formant",
      "version": "1.0.1",
      "family": "speech",
      "description": "Parallel formant filter bank",
      "url": "https://github.com/audiojs/filter/tree/main/packages/speech-formant",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speech-lpc",
      "version": "1.0.2",
      "family": "speech",
      "description": "Linear Predictive Coding analysis/synthesis",
      "url": "https://github.com/audiojs/filter/tree/main/packages/speech-lpc",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speech-vocoder",
      "version": "1.1.1",
      "family": "speech",
      "description": "Channel vocoder",
      "url": "https://github.com/audiojs/filter/tree/main/packages/speech-vocoder",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/speech-world",
      "version": "0.0.0",
      "family": "speech",
      "description": "WORLD-style vocoder — source-filter decomposition: F0 + spectral envelope + aperiodicity (Morise 2016)",
      "url": "",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/stft",
      "version": "2.0.0",
      "family": "stft",
      "description": "Canonical STFT — batch / stream / analyse with normalized Hann OLA; stream ≡ batch under any chunking",
      "url": "https://github.com/audiojs/stft#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/stretch",
      "version": "2.1.0",
      "family": "stretch",
      "description": "Time stretching — umbrella for @audio/stretch-* atoms (WSOLA, phase vocoder variants, PaulStretch, PSOLA, SMS)",
      "url": "https://github.com/audiojs/stretch#readme",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-hybrid",
      "version": "1.2.2",
      "family": "stretch",
      "description": "Hybrid harmonic/percussive time stretch (Driedger) — HPSS split, phase-locked vocoder + OLA per layer",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-hybrid",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-paulstretch",
      "version": "1.2.2",
      "family": "stretch",
      "description": "Paulstretch — Paul Nasca's extreme stretch (8×+) for ambient/drone material",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-paulstretch",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-pghi",
      "version": "1.3.0",
      "family": "stretch",
      "description": "Phase Gradient Heap Integration vocoder (Průša & Holighaus \"Phase Vocoder Done Right\") — no peak picking, no transient heuristics",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-pghi",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-psola",
      "version": "1.2.2",
      "family": "stretch",
      "description": "Pitch-Synchronous Overlap-Add — time-domain stretch for speech and monophonic instruments",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-psola",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-pvoc",
      "version": "1.2.3",
      "family": "stretch",
      "description": "Phase vocoder time stretching — educational baseline without phase locking",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-pvoc",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-pvoc-lock",
      "version": "1.3.3",
      "family": "stretch",
      "description": "Phase-locked vocoder (Laroche & Dolson 1999) — eliminates phasiness of plain pvoc",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-pvoc-lock",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-sms",
      "version": "1.2.2",
      "family": "stretch",
      "description": "Sinusoidal Modeling Synthesis time stretching — harmonic/tonal material",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-sms",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-transient",
      "version": "1.2.3",
      "family": "stretch",
      "description": "Transient-aware phase-locked vocoder (Röbel 2003) — preserves attacks on drums and plucks",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-transient",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/stretch-wsola",
      "version": "1.2.2",
      "family": "stretch",
      "description": "WSOLA time stretching — time-domain, low CPU, great for speech",
      "url": "https://github.com/audiojs/stretch/tree/main/packages/stretch-wsola",
      "private": false,
      "proposedTests": [
        "duration ratio and pitch retention",
        "transient location and smearing",
        "identity and channel coherence"
      ]
    },
    {
      "name": "@audio/subtitle",
      "version": "0.1.0",
      "family": "subtitle",
      "description": "Timed-text subtitle formats — SRT, WebVTT, LRC (+ enhanced word-level), TTML: parse and write",
      "url": "https://github.com/audiojs/midi/tree/main/packages/subtitle",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/synth",
      "version": "1.3.0",
      "family": "synth",
      "description": "Synthesis & signal generators — umbrella for @audio/synth-* atoms (noise colors, oscillator, chirp, DTMF, pluck, risset drum, rhythm track, envelope, LFO)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-chirp",
      "version": "1.1.3",
      "family": "synth",
      "description": "Chirp — linear/exponential frequency sweep (ESS measurement signal, Farina 2000)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-drum",
      "version": "2.0.1",
      "family": "synth",
      "description": "Drum synthesis — membrane kick, metal cymbal, noise snare (Tone.js class)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-dtmf",
      "version": "1.0.1",
      "family": "synth",
      "description": "DTMF dial tones — ITU-T Q.23 row/column pairs per digit",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-dx7",
      "version": "0.1.0",
      "family": "synth",
      "description": "Yamaha DX7 FM engine: a bit-exact JavaScript port of the Music Synthesizer for Android core (6 operators, 32 algorithms, DX7 envelopes, LFO, pitch EG), with DX7 sysex loading",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-envelope",
      "version": "1.1.3",
      "family": "synth",
      "description": "ADSR envelope generator — gain contour for amplitude/filter modulation",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-fm",
      "version": "0.2.1",
      "family": "synth",
      "description": "FM synthesis — Chowning phase modulation, single-op or serial op stack, bell/epiano presets",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-lfo",
      "version": "1.0.1",
      "family": "synth",
      "description": "LFO — low-frequency control signal, bipolar/unipolar",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-modal",
      "version": "0.2.1",
      "family": "synth",
      "description": "Modal synthesis — two-pole resonator bank (string/bar/membrane/plate/tube), impulse or noise excited",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-noise",
      "version": "2.0.1",
      "family": "synth",
      "description": "Colors of noise — white, pink (Kellet), brown, blue, violet; seeded, slope-verified",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-osc",
      "version": "1.1.0",
      "family": "synth",
      "description": "Oscillator — band-limited sine/square/sawtooth/triangle with detune",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-pluck",
      "version": "1.1.3",
      "family": "synth",
      "description": "Karplus-Strong plucked string synthesis",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-poly",
      "version": "1.2.1",
      "family": "synth",
      "description": "Polyphonic voice allocator — wrap any voice with N-voice polyphony",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-rhythm",
      "version": "1.1.3",
      "family": "synth",
      "description": "Rhythm / click track — BPM grid with accented downbeats",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-risset",
      "version": "1.1.3",
      "family": "synth",
      "description": "Risset drum — inharmonic partial set with exponential decay",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-sfx",
      "version": "1.1.4",
      "family": "synth",
      "description": "Game/UI sound effects generator — ZZFX / ChipTone class parameterized synthesis",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-tonewheel",
      "version": "0.1.0",
      "family": "synth",
      "description": "Tonewheel organ (Hammond B-3 upper manual): 91 geared tonewheels, nine drawbars, foldback, single-trigger percussion, key click, vibrato/chorus scanner",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-tonewheel-fit",
      "version": "0.1.0",
      "family": "synth",
      "description": "Tonewheel registration from audio: sustained organ note or chord → nine drawbars 0..8, percussion guess, score (NNLS against the tonewheel model)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-voice",
      "version": "1.2.0",
      "family": "synth",
      "description": "Synth voice — osc × ADSR through envelope-scaled lowpass (Tone.js Synth class)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/synth-wavetable",
      "version": "1.0.1",
      "family": "synth",
      "description": "Morphing wavetable oscillator — scan a bank of single-cycle tables (WaveEdit class)",
      "url": "https://github.com/audiojs/synth",
      "private": false,
      "proposedTests": [
        "frequency and amplitude accuracy",
        "Nyquist alias energy",
        "seeded repeatability and envelope endpoints"
      ]
    },
    {
      "name": "@audio/tap",
      "version": "0.0.0",
      "family": "tap",
      "description": "Play any app's audio through a compiled audio.js atom on macOS",
      "url": "",
      "private": true,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/tune",
      "version": "0.2.2",
      "family": "tune",
      "description": "Pitch correction — umbrella for @audio/tune-* atoms (scale snap, MIDI-target)",
      "url": "https://github.com/audiojs/tune",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/tune-midi",
      "version": "1.0.2",
      "family": "tune",
      "description": "Note-target pitch correction — align melody to reference MIDI/notes (Melodyne class)",
      "url": "https://github.com/audiojs/tune",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/tune-snap",
      "version": "1.1.3",
      "family": "tune",
      "description": "Pitch correction — YIN track → note segments → scale snap → PSOLA retune (Auto-Tune class, per-note v1)",
      "url": "https://github.com/audiojs/tune",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/vad",
      "version": "1.0.2",
      "family": "vad",
      "description": "Voice activity detection — frame-level speech/non-speech decision (energy + spectral flatness) plus per-bin speech-presence probability and decision-directed a-priori SNR",
      "url": "https://github.com/audiojs/denoise/tree/main/packages/vad",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/vocals",
      "version": "1.0.5",
      "family": "vocals",
      "description": "Center-channel vocal isolation & removal",
      "url": "https://github.com/audiojs/vocals",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/voice",
      "version": "1.0.2",
      "family": "voice",
      "description": "Voice synthesis — umbrella for @audio/voice-* atoms (vocal tract, voder, glottal source)",
      "url": "https://github.com/audiojs/voice",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/voice-glottis",
      "version": "1.0.2",
      "family": "voice",
      "description": "Glottal source models — LF model, Rosenberg pulse (excitation for tract/formant synthesis)",
      "url": "https://github.com/audiojs/voice",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/voice-tract",
      "version": "1.0.2",
      "family": "voice",
      "description": "Articulatory vocal-tract synthesis — Kelly-Lochbaum waveguide (Pink Trombone class)",
      "url": "https://github.com/audiojs/voice",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/voice-voder",
      "version": "1.0.2",
      "family": "voice",
      "description": "Voder — manual formant/channel speech synthesis (Dudley 1939 recreation)",
      "url": "https://github.com/audiojs/voice",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting",
      "version": "1.2.1",
      "family": "weighting",
      "description": "Frequency weighting filters — umbrella for @audio/weighting-* atoms (A, B, C, D, K/BS.1770, ITU-R 468, RIAA)",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-a",
      "version": "1.2.3",
      "family": "weighting",
      "description": "IEC 61672-1:2013 analog prototype frequencies",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-b",
      "version": "1.1.3",
      "family": "weighting",
      "description": "IEC 61672-1:2013 / ANSI S1.42 B-weighting filter — moderate-loudness frequency response",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-c",
      "version": "1.2.3",
      "family": "weighting",
      "description": "IEC 61672-1:2013 C-weighting: H(s) = K·s² / ((s+w1)²(s+w4)²)",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-d",
      "version": "1.0.3",
      "family": "weighting",
      "description": "IEC 537 D-weighting filter — aircraft-noise frequency response (resonant hump near 4 kHz)",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-itu468",
      "version": "1.2.3",
      "family": "weighting",
      "description": "ITU-R BS.468-4 noise weighting, exact matched-z realization: peaked at",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-k",
      "version": "1.2.0",
      "family": "weighting",
      "description": "ITU-R BS.1770-4 K-weighting: high-shelf + RLB highpass",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/weighting-riaa",
      "version": "1.1.3",
      "family": "weighting",
      "description": "RIAA playback (de-emphasis): H(s) = (1 + s*T2) / ((1 + s*T1) * (1 + s*T3))",
      "url": "https://github.com/audiojs/weighting",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    },
    {
      "name": "@audio/window",
      "version": "1.0.3",
      "family": "window",
      "description": "Audio-facing window kit — typed fills (periodic/symmetric), apply, COLA check over window-function",
      "url": "https://github.com/audiojs/window#readme",
      "private": false,
      "proposedTests": [
        "defined input/output contract",
        "boundary and invalid-input behavior",
        "determinism and resource lifecycle"
      ]
    }
  ],
  "methods": [
    {
      "name": "compressor",
      "module": "@audio/dynamics-compressor/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -20,
          "smoothing": 0.01,
          "unit": "dB"
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 6,
          "unit": "dB"
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB"
        },
        "upThreshold": {
          "type": "number",
          "min": -80,
          "max": 0,
          "default": -40,
          "smoothing": 0.01,
          "unit": "dB"
        },
        "upRatio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 1
        },
        "upKnee": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 6,
          "unit": "dB"
        },
        "upRange": {
          "type": "number",
          "min": 0,
          "max": 40,
          "default": 12,
          "unit": "dB"
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 100,
          "default": 5,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 1000,
          "default": 100,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "limiter",
      "module": "@audio/dynamics-limiter/audio",
      "kind": "processor",
      "params": {
        "ceiling": {
          "type": "number",
          "min": -30,
          "max": 0,
          "default": -0.3,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "lookahead": {
          "type": "number",
          "min": 0.1,
          "max": 20,
          "default": 5,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 1000,
          "default": 50,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any"
    },
    {
      "name": "gate",
      "module": "@audio/dynamics-gate/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -80,
          "max": 0,
          "default": -40,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "closeThreshold": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -46,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "range": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -60,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "hold": {
          "type": "number",
          "min": 0,
          "max": 500,
          "default": 10,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 0.01,
          "max": 100,
          "default": 0.1,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 1000,
          "default": 100,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "lookahead": {
          "type": "number",
          "min": 0,
          "max": 50,
          "default": 0,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "deesser",
      "module": "@audio/dynamics-deesser/audio",
      "kind": "processor",
      "params": {
        "mode": {
          "type": "enum",
          "values": [
            "broadband",
            "band"
          ],
          "default": "broadband",
          "flags": [
            "restart"
          ]
        },
        "fc": {
          "type": "number",
          "min": 2000,
          "max": 16000,
          "default": 6500,
          "unit": "Hz",
          "flags": [
            "restart"
          ],
          "alias": "freq"
        },
        "Q": {
          "type": "number",
          "min": 0.3,
          "max": 10,
          "default": 2,
          "flags": [
            "restart"
          ],
          "alias": "q"
        },
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -20,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4,
          "flags": [
            "restart"
          ]
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 6,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 100,
          "default": 1,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 1000,
          "default": 40,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any"
    },
    {
      "name": "softclip",
      "module": "@audio/dynamics-softclip/audio",
      "kind": "processor",
      "params": {
        "curve": {
          "type": "enum",
          "values": [
            "tanh",
            "atan",
            "cubic",
            "sin",
            "hard"
          ],
          "default": "tanh"
        },
        "drive": {
          "type": "number",
          "min": 0.1,
          "max": 20,
          "default": 1
        },
        "ceiling": {
          "type": "number",
          "min": 0.05,
          "max": 1,
          "default": 1
        },
        "oversample": {
          "type": "number",
          "min": 1,
          "max": 8,
          "default": 1,
          "step": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "expander",
      "module": "@audio/dynamics-expander/audio",
      "kind": "processor",
      "params": {
        "mode": {
          "type": "enum",
          "values": [
            "downward",
            "upward"
          ],
          "default": "downward"
        },
        "threshold": {
          "type": "number",
          "min": -80,
          "max": 0,
          "default": -30,
          "smoothing": 0.01,
          "unit": "dB"
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 2
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 6,
          "unit": "dB"
        },
        "range": {
          "type": "number",
          "min": 0,
          "max": 90,
          "default": 40,
          "unit": "dB"
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 100,
          "default": 5,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 1000,
          "default": 50,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "compand",
      "module": "@audio/dynamics-compand/audio",
      "kind": "processor",
      "params": {
        "out0": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -90,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "out1": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -60,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "out2": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -20,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "out3": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -8,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 200,
          "default": 5,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 2000,
          "default": 200,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "leveler",
      "module": "@audio/dynamics-leveler/audio",
      "kind": "processor",
      "params": {
        "target": {
          "type": "number",
          "min": -40,
          "max": 0,
          "default": -20,
          "unit": "dB"
        },
        "frame": {
          "type": "number",
          "min": 0.05,
          "max": 5,
          "default": 0.5,
          "unit": "s"
        },
        "maxGain": {
          "type": "number",
          "min": 0,
          "max": 30,
          "default": 12,
          "unit": "dB"
        },
        "smooth": {
          "type": "number",
          "min": 0,
          "max": 30,
          "default": 5
        },
        "gate": {
          "type": "number",
          "min": 0,
          "max": 60,
          "default": 20,
          "unit": "dB"
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "transient-shaper",
      "module": "@audio/dynamics-transient-shaper/audio",
      "kind": "processor",
      "params": {
        "attackGain": {
          "type": "number",
          "min": -1,
          "max": 2,
          "default": 0
        },
        "sustainGain": {
          "type": "number",
          "min": -1,
          "max": 2,
          "default": 0
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "unlimit",
      "module": "@audio/dynamics-unlimit/audio",
      "kind": "processor",
      "params": {
        "amount": {
          "type": "number",
          "min": 0,
          "max": 18,
          "default": 6,
          "unit": "dB"
        },
        "drive": {
          "type": "number",
          "min": 0,
          "max": 10,
          "default": 1
        },
        "adaptive": {
          "type": "bool",
          "default": true
        },
        "crestTarget": {
          "type": "number",
          "min": 3,
          "max": 25,
          "default": 10,
          "unit": "dB"
        },
        "ceiling": {
          "type": "number",
          "min": -60,
          "max": 24,
          "default": 24,
          "unit": "dB"
        },
        "fastAttack": {
          "type": "number",
          "min": 0.1,
          "max": 10,
          "default": 0.5,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "fastRelease": {
          "type": "number",
          "min": 1,
          "max": 100,
          "default": 20,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "slowAttack": {
          "type": "number",
          "min": 1,
          "max": 200,
          "default": 20,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "slowRelease": {
          "type": "number",
          "min": 10,
          "max": 1000,
          "default": 200,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "auto",
      "module": "@audio/chain/audio",
      "kind": "processor",
      "params": {
        "type": {
          "type": "enum",
          "values": [
            "speech",
            "music",
            "voice-music"
          ],
          "default": "speech"
        },
        "intensity": {
          "type": "number",
          "min": 0,
          "max": 2,
          "default": 1
        },
        "targetLufs": {
          "type": "number",
          "min": -30,
          "max": -6,
          "default": 0,
          "unit": "LUFS"
        },
        "ceiling": {
          "type": "number",
          "min": -6,
          "max": 0,
          "default": -1,
          "unit": "dB"
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "ducker",
      "module": "@audio/dynamics-ducker/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -30,
          "smoothing": 0.01,
          "unit": "dB"
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 6,
          "unit": "dB"
        },
        "range": {
          "type": "number",
          "min": -90,
          "max": 0,
          "default": -24,
          "unit": "dB"
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 200,
          "default": 20,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 1,
          "max": 2000,
          "default": 300,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": {
        "inputs": [
          2,
          2
        ],
        "outputs": [
          2
        ]
      },
      "tail": 0
    },
    {
      "name": "dehum",
      "module": "@audio/denoise-dehum/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 0,
          "max": 400,
          "default": 0,
          "unit": "Hz"
        },
        "harmonics": {
          "type": "number",
          "min": 0,
          "max": 40,
          "default": 0
        },
        "Q": {
          "type": "number",
          "min": 1,
          "max": 200,
          "default": 30
        },
        "adaptive": {
          "type": "bool",
          "default": false
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "specsub",
      "module": "@audio/denoise-spectral/audio",
      "kind": "processor",
      "params": {
        "alpha": {
          "type": "number",
          "min": 0,
          "max": 6,
          "default": 0,
          "flags": [
            "restart"
          ]
        },
        "beta": {
          "type": "number",
          "min": 0,
          "max": 0.5,
          "default": 0.05,
          "unit": "",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "wiener",
      "module": "@audio/denoise-wiener/audio",
      "kind": "processor",
      "params": {
        "rule": {
          "type": "enum",
          "values": [
            "wiener",
            "mmse-lsa"
          ],
          "default": "mmse-lsa",
          "flags": [
            "restart"
          ]
        },
        "alphaDD": {
          "type": "number",
          "min": 0.8,
          "max": 0.999,
          "default": 0.98,
          "flags": [
            "restart"
          ]
        },
        "xiFloor": {
          "type": "number",
          "min": -30,
          "max": 0,
          "default": -15,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "omlsa",
      "module": "@audio/denoise-omlsa/audio",
      "kind": "processor",
      "params": {
        "alphaDD": {
          "type": "number",
          "min": 0.8,
          "max": 0.999,
          "default": 0.98,
          "flags": [
            "restart"
          ]
        },
        "qPrior": {
          "type": "number",
          "min": 0,
          "max": 0.95,
          "default": 0,
          "flags": [
            "restart"
          ]
        },
        "gMin": {
          "type": "number",
          "min": -40,
          "max": 0,
          "default": -15,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "xiFloor": {
          "type": "number",
          "min": -30,
          "max": 0,
          "default": -25,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "dereverb",
      "module": "@audio/denoise-dereverb/audio",
      "kind": "processor",
      "params": {
        "lookahead": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.25,
          "unit": "s",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "deplosive",
      "module": "@audio/denoise-deplosive/audio",
      "kind": "processor",
      "params": {
        "triggerRatio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4
        },
        "attenuation": {
          "type": "number",
          "min": -40,
          "max": 0,
          "default": -18,
          "unit": "dB"
        },
        "attack": {
          "type": "number",
          "min": 0.001,
          "max": 0.2,
          "default": 0.005,
          "unit": "s"
        },
        "release": {
          "type": "number",
          "min": 0.005,
          "max": 1,
          "default": 0.08,
          "unit": "s"
        },
        "crossover": {
          "type": "number",
          "min": 50,
          "max": 500,
          "default": 200,
          "unit": "Hz",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "dewind",
      "module": "@audio/denoise-dewind/audio",
      "kind": "processor",
      "params": {
        "cutoffMin": {
          "type": "number",
          "min": 20,
          "max": 300,
          "default": 60,
          "unit": "Hz"
        },
        "cutoffMax": {
          "type": "number",
          "min": 50,
          "max": 500,
          "default": 250,
          "unit": "Hz"
        },
        "order": {
          "type": "number",
          "min": 1,
          "max": 4,
          "default": 2,
          "flags": [
            "restart"
          ]
        },
        "Q": {
          "type": "number",
          "min": 0.3,
          "max": 3,
          "default": 0.707
        },
        "attack": {
          "type": "number",
          "min": 0.005,
          "max": 1,
          "default": 0.05,
          "unit": "s"
        },
        "release": {
          "type": "number",
          "min": 0.01,
          "max": 2,
          "default": 0.4,
          "unit": "s"
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "declick",
      "module": "@audio/denoise-declick/audio",
      "kind": "processor",
      "params": {
        "order": {
          "type": "number",
          "min": 4,
          "max": 200,
          "default": 60
        },
        "windowSize": {
          "type": "number",
          "min": 256,
          "max": 8192,
          "default": 1024
        },
        "hopSize": {
          "type": "number",
          "min": 64,
          "max": 4096,
          "default": 512
        },
        "threshold": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4
        },
        "guard": {
          "type": "number",
          "min": 0,
          "max": 16,
          "default": 2
        },
        "maxBurst": {
          "type": "number",
          "min": 1,
          "max": 512,
          "default": 64
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "declip",
      "module": "@audio/denoise-declip/audio",
      "kind": "processor",
      "params": {
        "clipLevel": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        },
        "order": {
          "type": "number",
          "min": 10,
          "max": 300,
          "default": 100
        },
        "context": {
          "type": "number",
          "min": 10,
          "max": 2000,
          "default": 400
        },
        "maxRun": {
          "type": "number",
          "min": 1,
          "max": 500,
          "default": 50
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "decrackle",
      "module": "@audio/denoise-decrackle/audio",
      "kind": "processor",
      "params": {
        "order": {
          "type": "number",
          "min": 4,
          "max": 200,
          "default": 50
        },
        "windowSize": {
          "type": "number",
          "min": 256,
          "max": 8192,
          "default": 2048
        },
        "hopSize": {
          "type": "number",
          "min": 64,
          "max": 4096,
          "default": 1024
        },
        "threshold": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 2.5
        },
        "guard": {
          "type": "number",
          "min": 0,
          "max": 16,
          "default": 1
        },
        "maxBurst": {
          "type": "number",
          "min": 1,
          "max": 512,
          "default": 12
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "debreath",
      "module": "@audio/denoise-debreath/audio",
      "kind": "processor",
      "params": {
        "range": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -12,
          "unit": "dB"
        },
        "attack": {
          "type": "number",
          "min": 0.0005,
          "max": 0.5,
          "default": 0.005,
          "unit": "s"
        },
        "release": {
          "type": "number",
          "min": 0.001,
          "max": 2,
          "default": 0.1,
          "unit": "s"
        },
        "snrTh": {
          "type": "number",
          "min": 0,
          "max": 20,
          "default": 4,
          "unit": "dB"
        },
        "flatTh": {
          "type": "number",
          "min": 0.05,
          "max": 1,
          "default": 0.5
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "rnnoise",
      "module": "@audio/neural-denoise/audio",
      "kind": "processor",
      "params": {
        "limit": {
          "type": "number",
          "min": 0,
          "max": 100,
          "default": 20,
          "unit": "dB"
        }
      },
      "channels": "any",
      "tail": 0
    },
    {
      "name": "freeverb",
      "module": "@audio/reverb-freeverb/audio",
      "kind": "processor",
      "params": {
        "room": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "damp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.33,
          "smoothing": 0.02
        }
      },
      "channels": "any",
      "tail": 6
    },
    {
      "name": "delay",
      "module": "@audio/effect-delay/audio",
      "kind": "processor",
      "params": {
        "time": {
          "type": "number",
          "min": 0.001,
          "max": 4,
          "default": 0.25,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.95,
          "default": 0.3
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "smoothing": 0.02
        }
      },
      "channels": "any",
      "tail": 8
    },
    {
      "name": "chorus",
      "module": "@audio/effect-chorus/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.05,
          "max": 10,
          "default": 1.5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "delay": {
          "type": "number",
          "min": 0.002,
          "max": 0.05,
          "default": 0.02,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "voices": {
          "type": "number",
          "min": 1,
          "max": 8,
          "default": 3,
          "step": 1,
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0.1
    },
    {
      "name": "flanger",
      "module": "@audio/effect-flanger/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.02,
          "max": 5,
          "default": 0.3,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "delay": {
          "type": "number",
          "min": 0.0001,
          "max": 0.02,
          "default": 0.003,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.9,
          "default": 0.5
        }
      },
      "channels": "any"
    },
    {
      "name": "phaser",
      "module": "@audio/effect-phaser/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.02,
          "max": 10,
          "default": 0.5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "stages": {
          "type": "number",
          "min": 2,
          "max": 12,
          "default": 4,
          "step": 2,
          "flags": [
            "restart"
          ]
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.9,
          "default": 0.5
        },
        "fc": {
          "type": "number",
          "min": 100,
          "max": 5000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        }
      },
      "channels": "any"
    },
    {
      "name": "tremolo",
      "module": "@audio/effect-tremolo/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.1,
          "max": 20,
          "default": 5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        }
      },
      "channels": "any"
    },
    {
      "name": "vibrato",
      "module": "@audio/effect-vibrato/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.1,
          "max": 15,
          "default": 5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0.02
    },
    {
      "name": "autowah",
      "module": "@audio/effect-autowah/audio",
      "kind": "processor",
      "params": {
        "base": {
          "type": "number",
          "min": 50,
          "max": 1000,
          "default": 300,
          "unit": "Hz",
          "curve": "log"
        },
        "range": {
          "type": "number",
          "min": 100,
          "max": 6000,
          "default": 3000,
          "unit": "Hz",
          "curve": "log"
        },
        "Q": {
          "type": "number",
          "min": 0.5,
          "max": 20,
          "default": 5
        },
        "attack": {
          "type": "number",
          "min": 0.0005,
          "max": 0.05,
          "default": 0.002,
          "unit": "s"
        },
        "release": {
          "type": "number",
          "min": 0.01,
          "max": 1,
          "default": 0.1,
          "unit": "s"
        },
        "sens": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 2
        }
      },
      "channels": "any"
    },
    {
      "name": "wah",
      "module": "@audio/effect-wah/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.05,
          "max": 10,
          "default": 1.5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 3,
          "default": 0.8,
          "unit": "oct"
        },
        "fc": {
          "type": "number",
          "min": 200,
          "max": 3000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "Q": {
          "type": "number",
          "min": 0.5,
          "max": 20,
          "default": 5
        },
        "mode": {
          "type": "enum",
          "values": [
            "auto",
            "manual"
          ],
          "default": "auto"
        }
      },
      "channels": "any"
    },
    {
      "name": "bitcrusher",
      "module": "@audio/effect-bitcrusher/audio",
      "kind": "processor",
      "params": {
        "bits": {
          "type": "number",
          "min": 1,
          "max": 24,
          "default": 8,
          "step": 1
        },
        "rate": {
          "type": "number",
          "min": 0.01,
          "max": 1,
          "default": 0.25
        }
      },
      "channels": "any"
    },
    {
      "name": "distortion",
      "module": "@audio/effect-distortion/audio",
      "kind": "processor",
      "params": {
        "drive": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "type": {
          "type": "enum",
          "values": [
            "soft",
            "hard",
            "tanh",
            "foldback"
          ],
          "default": "soft"
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.02
        }
      },
      "channels": "any"
    },
    {
      "name": "exciter",
      "module": "@audio/effect-exciter/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 500,
          "max": 8000,
          "default": 3000,
          "unit": "Hz",
          "curve": "log",
          "alias": "freq"
        },
        "drive": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "amount": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        }
      },
      "channels": "any"
    },
    {
      "name": "ringmod",
      "module": "@audio/effect-ringmod/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 1,
          "max": 5000,
          "default": 440,
          "unit": "Hz",
          "curve": "log"
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.02
        }
      },
      "channels": "any"
    },
    {
      "name": "freqshift",
      "module": "@audio/effect-freqshift/audio",
      "kind": "processor",
      "params": {
        "shift": {
          "type": "number",
          "min": -2000,
          "max": 2000,
          "default": 100,
          "unit": "Hz"
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.02
        },
        "taps": {
          "type": "number",
          "min": 17,
          "max": 255,
          "default": 65,
          "step": 2,
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any"
    },
    {
      "name": "multitap",
      "module": "@audio/effect-multitap/audio",
      "kind": "processor",
      "params": {
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.9,
          "default": 0
        }
      },
      "channels": "any"
    },
    {
      "name": "pingpong",
      "module": "@audio/effect-pingpong/audio",
      "kind": "processor",
      "params": {
        "time": {
          "type": "number",
          "min": 0.01,
          "max": 2,
          "default": 0.25,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.9,
          "default": 0.4
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "smoothing": 0.02
        }
      },
      "channels": 2
    },
    {
      "name": "slew",
      "module": "@audio/effect-slew/audio",
      "kind": "processor",
      "params": {
        "rise": {
          "type": "number",
          "min": 10,
          "max": 20000,
          "default": 1000,
          "curve": "log"
        },
        "fall": {
          "type": "number",
          "min": 10,
          "max": 20000,
          "default": 1000,
          "curve": "log"
        }
      },
      "channels": "any"
    },
    {
      "name": "noiseshaper",
      "module": "@audio/effect-noiseshaper/audio",
      "kind": "processor",
      "params": {
        "bits": {
          "type": "number",
          "min": 1,
          "max": 24,
          "default": 16,
          "step": 1
        }
      },
      "channels": "any"
    },
    {
      "name": "lofi",
      "module": "@audio/effect-lofi/audio",
      "kind": "processor",
      "params": {
        "wow": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        },
        "flutter": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.2
        },
        "noise": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.1
        },
        "crackle": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.1
        },
        "lowpass": {
          "type": "number",
          "min": 500,
          "max": 18000,
          "default": 6000,
          "unit": "Hz",
          "curve": "log"
        },
        "highpass": {
          "type": "number",
          "min": 20,
          "max": 500,
          "default": 60,
          "unit": "Hz",
          "curve": "log"
        },
        "drive": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        }
      },
      "channels": "any",
      "tail": 0.1
    },
    {
      "name": "graindelay",
      "module": "@audio/effect-graindelay/audio",
      "kind": "processor",
      "params": {
        "time": {
          "type": "number",
          "min": 0.02,
          "max": 1.5,
          "default": 0.25,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "spray": {
          "type": "number",
          "min": 0,
          "max": 0.1,
          "default": 0.02,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "pitch": {
          "type": "number",
          "min": -24,
          "max": 24,
          "default": 0,
          "unit": "st",
          "flags": [
            "restart"
          ]
        },
        "jitter": {
          "type": "number",
          "min": 0,
          "max": 12,
          "default": 0,
          "unit": "st",
          "flags": [
            "restart"
          ]
        },
        "grain": {
          "type": "number",
          "min": 0.01,
          "max": 0.3,
          "default": 0.08,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 0.9,
          "default": 0.3
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "smoothing": 0.02
        }
      },
      "channels": "any"
    },
    {
      "name": "stutter",
      "module": "@audio/effect-stutter/audio",
      "kind": "processor",
      "params": {
        "interval": {
          "type": "number",
          "min": 0.05,
          "max": 2,
          "default": 0.5,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "slice": {
          "type": "number",
          "min": 0.01,
          "max": 1,
          "default": 0.125,
          "unit": "s",
          "flags": [
            "restart"
          ]
        },
        "decay": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.02
        }
      },
      "channels": "any",
      "tail": 2
    },
    {
      "name": "subbass",
      "module": "@audio/effect-subbass/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 30,
          "max": 200,
          "default": 80,
          "unit": "Hz",
          "curve": "log",
          "alias": "freq"
        },
        "amount": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "drive": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "keep": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any"
    },
    {
      "name": "sbr",
      "module": "@audio/effect-sbr/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 2000,
          "max": 16000,
          "default": 8000,
          "unit": "Hz",
          "curve": "log",
          "alias": "cutoff"
        },
        "amount": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "drive": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        }
      },
      "channels": "any"
    },
    {
      "name": "rotary",
      "module": "@audio/effect-rotary/audio",
      "kind": "processor",
      "params": {
        "hornSpeed": {
          "type": "number",
          "min": 0,
          "max": 10,
          "default": 0.8,
          "unit": "Hz"
        },
        "drumSpeed": {
          "type": "number",
          "min": 0,
          "max": 10,
          "default": 0.7,
          "unit": "Hz"
        },
        "crossover": {
          "type": "number",
          "min": 200,
          "max": 3000,
          "default": 800,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        },
        "hornInertia": {
          "type": "number",
          "min": 0.05,
          "max": 3,
          "default": 0.6,
          "unit": "s"
        },
        "drumInertia": {
          "type": "number",
          "min": 0.05,
          "max": 6,
          "default": 2.5,
          "unit": "s"
        },
        "micSpread": {
          "type": "number",
          "min": 0,
          "max": 3.14159,
          "default": 1.5708,
          "unit": "rad"
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.02
        }
      },
      "channels": {
        "inputs": 1,
        "outputs": 2
      },
      "tail": 0.05
    },
    {
      "name": "tapestop",
      "module": "@audio/effect-tapestop/audio",
      "kind": "processor",
      "params": {
        "at": {
          "type": "number",
          "min": 0,
          "max": 60,
          "default": 0,
          "unit": "s"
        },
        "time": {
          "type": "number",
          "min": 0.05,
          "max": 10,
          "default": 1,
          "unit": "s"
        },
        "curve": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        },
        "direction": {
          "type": "enum",
          "values": [
            "stop",
            "start"
          ],
          "default": "stop"
        },
        "flutter": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "tube",
      "module": "@audio/saturate-tube/audio",
      "kind": "processor",
      "params": {
        "drive": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 2
        },
        "bias": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.25
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "osc",
      "module": "@audio/synth-osc/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 440,
          "curve": "log",
          "unit": "Hz"
        },
        "detune": {
          "type": "number",
          "min": -1200,
          "max": 1200,
          "default": 0,
          "unit": "cents"
        },
        "gain": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.8,
          "smoothing": 0.01
        },
        "type": {
          "type": "enum",
          "values": [
            "sine",
            "square",
            "sawtooth",
            "triangle"
          ],
          "default": "sine"
        }
      },
      "channels": {
        "inputs": [],
        "outputs": 1
      }
    },
    {
      "name": "fm",
      "module": "@audio/synth-fm/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 440,
          "unit": "Hz",
          "curve": "log"
        },
        "ratio": {
          "type": "number",
          "min": 0.01,
          "max": 20,
          "default": 2,
          "curve": "log"
        },
        "index": {
          "type": "number",
          "min": 0,
          "max": 20,
          "default": 5,
          "unit": "rad"
        },
        "indexDecay": {
          "type": "number",
          "min": 0,
          "max": 10,
          "default": 0,
          "unit": "s"
        },
        "indexFloor": {
          "type": "number",
          "min": 0,
          "max": 20,
          "default": 0,
          "unit": "rad"
        },
        "feedback": {
          "type": "number",
          "min": 0,
          "max": 6.2832,
          "default": 0,
          "unit": "rad"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.8
        },
        "attack": {
          "type": "number",
          "min": 0,
          "max": 2,
          "default": 0.005,
          "unit": "s"
        },
        "release": {
          "type": "number",
          "min": 0,
          "max": 4,
          "default": 0.1,
          "unit": "s"
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "modal",
      "module": "@audio/synth-modal/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 20,
          "max": 5000,
          "default": 440,
          "unit": "Hz",
          "curve": "log"
        },
        "model": {
          "type": "enum",
          "values": [
            "string",
            "bar",
            "membrane",
            "plate",
            "tube-open",
            "tube-closed"
          ],
          "default": "bar"
        },
        "nmodes": {
          "type": "number",
          "min": 1,
          "max": 16,
          "default": 8,
          "step": 1
        },
        "t60": {
          "type": "number",
          "min": 0.05,
          "max": 20,
          "default": 2,
          "unit": "s",
          "curve": "log"
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 2,
          "default": 0.7
        },
        "inharmonicity": {
          "type": "number",
          "min": 0,
          "max": 0.01,
          "default": 0
        },
        "strike": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "exciter": {
          "type": "enum",
          "values": [
            "impulse",
            "noise"
          ],
          "default": "impulse"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.8
        },
        "seed": {
          "type": "number",
          "min": 1,
          "max": 65536,
          "default": 9,
          "step": 1
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "isolate",
      "module": "@audio/vocals/audio",
      "kind": "processor",
      "params": {},
      "channels": 2
    },
    {
      "name": "widener",
      "module": "@audio/spatial-widener/audio",
      "kind": "processor",
      "params": {
        "width": {
          "type": "number",
          "min": 0,
          "max": 4,
          "default": 1.5,
          "smoothing": 0.01
        }
      },
      "channels": 2
    },
    {
      "name": "haas",
      "module": "@audio/spatial-haas/audio",
      "kind": "processor",
      "params": {
        "time": {
          "type": "number",
          "min": 1,
          "max": 35,
          "default": 20,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "channel": {
          "type": "enum",
          "values": [
            "left",
            "right"
          ],
          "default": "right",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": 2
    },
    {
      "name": "panner",
      "module": "@audio/spatial-panner/audio",
      "kind": "processor",
      "params": {
        "pan": {
          "type": "number",
          "min": -1,
          "max": 1,
          "default": 0,
          "smoothing": 0.01
        }
      },
      "channels": 2
    },
    {
      "name": "autopan",
      "module": "@audio/spatial-autopan/audio",
      "kind": "processor",
      "params": {
        "rate": {
          "type": "number",
          "min": 0.01,
          "max": 20,
          "default": 0.5,
          "unit": "Hz",
          "curve": "log"
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": 2
    },
    {
      "name": "midside",
      "module": "@audio/spatial-midside/audio",
      "kind": "processor",
      "params": {
        "mode": {
          "type": "enum",
          "values": [
            "encode",
            "decode"
          ],
          "default": "encode"
        },
        "width": {
          "type": "number",
          "min": 0,
          "max": 4,
          "default": 1,
          "smoothing": 0.01
        }
      },
      "channels": 2
    },
    {
      "name": "microshift",
      "module": "@audio/spatial-microshift/audio",
      "kind": "processor",
      "params": {
        "cents": {
          "type": "number",
          "min": 1,
          "max": 50,
          "default": 9,
          "unit": "cents",
          "flags": [
            "restart"
          ]
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "smoothing": 0.01
        }
      },
      "channels": 2,
      "tail": 0.05
    },
    {
      "name": "binaural",
      "module": "@audio/spatial-binaural/audio",
      "kind": "processor",
      "params": {
        "azimuth": {
          "type": "number",
          "min": -180,
          "max": 180,
          "default": 0,
          "unit": "deg"
        },
        "distance": {
          "type": "number",
          "min": 0,
          "max": 10,
          "default": 1,
          "unit": "m"
        },
        "headRadius": {
          "type": "number",
          "min": 0.05,
          "max": 0.12,
          "default": 0.0875,
          "unit": "m",
          "flags": [
            "restart"
          ]
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "smoothing": 0.01
        }
      },
      "channels": 2
    },
    {
      "name": "surround",
      "module": "@audio/spatial-surround/audio",
      "kind": "processor",
      "params": {
        "delay": {
          "type": "number",
          "min": 1,
          "max": 50,
          "default": 12,
          "unit": "ms"
        },
        "lfeCut": {
          "type": "number",
          "min": 40,
          "max": 300,
          "default": 120,
          "unit": "Hz"
        }
      },
      "channels": {
        "inputs": 2,
        "outputs": 6
      },
      "streaming": false
    },
    {
      "name": "vocoder",
      "module": "@audio/shift-pvoc/audio",
      "kind": "processor",
      "params": {
        "semitones": {
          "type": "number",
          "min": -24,
          "max": 24,
          "default": 0,
          "smoothing": 0.01
        }
      },
      "channels": "any",
      "tail": 0,
      "latency": 2048
    },
    {
      "name": "formant-shift",
      "module": "@audio/shift-formant/audio",
      "kind": "processor",
      "params": {
        "semitones": {
          "type": "number",
          "min": -24,
          "max": 24,
          "default": 0,
          "smoothing": 0.01
        }
      },
      "channels": "any",
      "tail": 0,
      "latency": 2048
    },
    {
      "name": "paulstretch",
      "module": "@audio/shift-paulstretch/audio",
      "kind": "processor",
      "params": {
        "semitones": {
          "type": "number",
          "min": -24,
          "max": 24,
          "default": 0
        },
        "frame": {
          "type": "number",
          "min": 0.05,
          "max": 2,
          "default": 0.37,
          "unit": "s"
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "pitch-shift",
      "module": "@audio/shift/audio",
      "kind": "processor",
      "params": {
        "semitones": {
          "type": "number",
          "min": -24,
          "max": 24,
          "default": 0
        },
        "method": {
          "type": "enum",
          "values": [
            "auto",
            "ola",
            "vocoder",
            "phase-lock",
            "transient",
            "formant",
            "psola",
            "wsola",
            "granular",
            "paulstretch",
            "sms",
            "hpss",
            "sample",
            "hybrid",
            "delay",
            "lpc"
          ],
          "default": "auto"
        },
        "content": {
          "type": "enum",
          "values": [
            "any",
            "voice",
            "tonal"
          ],
          "default": "any"
        },
        "formant": {
          "type": "bool",
          "default": false
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "tune",
      "module": "@audio/tune-snap/audio",
      "kind": "processor",
      "params": {
        "scale": {
          "type": "enum",
          "values": [
            "chromatic",
            "major",
            "minor",
            "harmonic-minor",
            "melodic-minor",
            "pentatonic-major",
            "pentatonic-minor",
            "blues",
            "dorian",
            "mixolydian",
            "whole"
          ],
          "default": "chromatic"
        },
        "root": {
          "type": "number",
          "min": 0,
          "max": 11,
          "default": 0,
          "step": 1
        },
        "a4": {
          "type": "number",
          "min": 415,
          "max": 466,
          "default": 440,
          "unit": "Hz"
        },
        "tolerance": {
          "type": "number",
          "min": 0,
          "max": 50,
          "default": 8,
          "unit": "cents"
        },
        "strength": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "tail": 0,
      "streaming": false
    },
    {
      "name": "schroeder",
      "module": "@audio/reverb-schroeder/audio",
      "kind": "processor",
      "params": {
        "decay": {
          "type": "number",
          "min": 0,
          "max": 0.98,
          "default": 0.84
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3,
          "smoothing": 0.02
        }
      },
      "channels": "any"
    },
    {
      "name": "plate",
      "module": "@audio/reverb-dattorro/audio",
      "kind": "processor",
      "params": {
        "decay": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "fdn",
      "module": "@audio/reverb-fdn/audio",
      "kind": "processor",
      "params": {
        "decay": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.6
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "spring",
      "module": "@audio/reverb-spring/audio",
      "kind": "processor",
      "params": {
        "decay": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.6
        },
        "tension": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.4
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.35
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "shimmer",
      "module": "@audio/reverb-shimmer/audio",
      "kind": "processor",
      "params": {
        "decay": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "shimmer": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "damping": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.3
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.4
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "fet",
      "module": "@audio/dynamics-fet/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -18,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "ratio": {
          "type": "number",
          "min": 4,
          "max": 20,
          "default": 8,
          "flags": [
            "restart"
          ]
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 12,
          "default": 3,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 0.02,
          "max": 5,
          "default": 0.2,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 20,
          "max": 1000,
          "default": 120,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0.3
    },
    {
      "name": "opto",
      "module": "@audio/dynamics-opto/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -20,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "ratio": {
          "type": "number",
          "min": 1.5,
          "max": 6,
          "default": 3,
          "flags": [
            "restart"
          ]
        },
        "knee": {
          "type": "number",
          "min": 4,
          "max": 24,
          "default": 10,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 1,
          "max": 100,
          "default": 10,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 1
    },
    {
      "name": "varimu",
      "module": "@audio/dynamics-varimu/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -22,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "knee": {
          "type": "number",
          "min": 6,
          "max": 30,
          "default": 15,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 5,
          "max": 200,
          "default": 25,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 50,
          "max": 2000,
          "default": 400,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0.5
    },
    {
      "name": "vca",
      "module": "@audio/dynamics-vca/audio",
      "kind": "processor",
      "params": {
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -20,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 4,
          "flags": [
            "restart"
          ]
        },
        "knee": {
          "type": "number",
          "min": 0,
          "max": 12,
          "default": 1,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 100,
          "default": 1,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "release": {
          "type": "number",
          "min": 20,
          "max": 2000,
          "default": 150,
          "unit": "ms",
          "flags": [
            "restart"
          ]
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB",
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any",
      "tail": 0.3
    },
    {
      "name": "multiband",
      "module": "@audio/dynamics-multiband/audio",
      "kind": "processor",
      "params": {
        "low": {
          "type": "number",
          "min": 40,
          "max": 1000,
          "default": 200,
          "unit": "Hz",
          "curve": "log"
        },
        "high": {
          "type": "number",
          "min": 1000,
          "max": 12000,
          "default": 2000,
          "unit": "Hz",
          "curve": "log"
        },
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -24,
          "unit": "dB"
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 3
        },
        "upThreshold": {
          "type": "number",
          "min": -80,
          "max": 0,
          "default": -40,
          "unit": "dB"
        },
        "upRatio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 1
        },
        "depth": {
          "type": "number",
          "min": 0,
          "max": 2,
          "default": 1
        },
        "attack": {
          "type": "number",
          "min": 0.1,
          "max": 100,
          "default": 5,
          "unit": "ms"
        },
        "release": {
          "type": "number",
          "min": 20,
          "max": 2000,
          "default": 150,
          "unit": "ms"
        },
        "makeup": {
          "type": "number",
          "min": -12,
          "max": 24,
          "default": 0,
          "unit": "dB"
        }
      },
      "channels": "any",
      "tail": 0.3,
      "streaming": false
    },
    {
      "name": "moog",
      "module": "@audio/filter-moog-ladder/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "resonance": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        },
        "drive": {
          "type": "number",
          "min": 0.1,
          "max": 10,
          "default": 1
        }
      },
      "channels": "any"
    },
    {
      "name": "korg35",
      "module": "@audio/filter-korg35/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "resonance": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        },
        "drive": {
          "type": "number",
          "min": 0.1,
          "max": 10,
          "default": 1
        },
        "type": {
          "type": "enum",
          "values": [
            "lowpass",
            "highpass"
          ],
          "default": "lowpass"
        }
      },
      "channels": "any"
    },
    {
      "name": "diode",
      "module": "@audio/filter-diode-ladder/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "resonance": {
          "type": "number",
          "min": 0,
          "max": 1.2,
          "default": 0
        },
        "drive": {
          "type": "number",
          "min": 0.1,
          "max": 10,
          "default": 1
        }
      },
      "channels": "any"
    },
    {
      "name": "oberheim",
      "module": "@audio/filter-oberheim/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "resonance": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0
        },
        "type": {
          "type": "enum",
          "values": [
            "lowpass",
            "highpass",
            "bandpass",
            "notch"
          ],
          "default": "lowpass"
        }
      },
      "channels": "any"
    },
    {
      "name": "resonator",
      "module": "@audio/filter-resonator/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 440,
          "unit": "Hz",
          "curve": "log"
        },
        "bw": {
          "type": "number",
          "min": 1,
          "max": 2000,
          "default": 50,
          "unit": "Hz",
          "curve": "log"
        }
      },
      "channels": "any",
      "tail": 0.5
    },
    {
      "name": "spectral-tilt",
      "module": "@audio/filter-spectral-tilt/audio",
      "kind": "processor",
      "params": {
        "slope": {
          "type": "number",
          "min": -6,
          "max": 6,
          "default": 0,
          "unit": "dB/oct"
        }
      },
      "channels": "any"
    },
    {
      "name": "variable",
      "module": "@audio/filter-variable/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 20,
          "max": 20000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        },
        "Q": {
          "type": "number",
          "min": 0.1,
          "max": 30,
          "default": 0.707,
          "curve": "log"
        },
        "type": {
          "type": "enum",
          "values": [
            "lowpass",
            "highpass",
            "bandpass"
          ],
          "default": "lowpass"
        }
      },
      "channels": "any"
    },
    {
      "name": "comb",
      "module": "@audio/filter-comb/audio",
      "kind": "processor",
      "params": {
        "delay": {
          "type": "number",
          "min": 0.05,
          "max": 100,
          "default": 10,
          "unit": "ms",
          "curve": "log"
        },
        "gain": {
          "type": "number",
          "min": -0.99,
          "max": 0.99,
          "default": 0.5
        },
        "type": {
          "type": "enum",
          "values": [
            "feedforward",
            "feedback"
          ],
          "default": "feedforward"
        }
      },
      "channels": "any",
      "tail": 0.5
    },
    {
      "name": "dcblocker",
      "module": "@audio/filter-dcblocker/audio",
      "kind": "processor",
      "params": {
        "R": {
          "type": "number",
          "min": 0.9,
          "max": 0.9999,
          "default": 0.995
        }
      },
      "channels": "any"
    },
    {
      "name": "emphasis",
      "module": "@audio/filter-preemphasis/audio",
      "kind": "processor",
      "params": {
        "alpha": {
          "type": "number",
          "min": 0.5,
          "max": 0.99,
          "default": 0.97
        }
      },
      "channels": "any"
    },
    {
      "name": "deemphasis",
      "module": "@audio/filter-preemphasis/audio",
      "kind": "processor",
      "params": {
        "alpha": {
          "type": "number",
          "min": 0.5,
          "max": 0.99,
          "default": 0.97
        }
      },
      "channels": "any"
    },
    {
      "name": "derivative",
      "module": "@audio/filter-derivative/audio",
      "kind": "processor",
      "params": {},
      "channels": "any"
    },
    {
      "name": "integral",
      "module": "@audio/filter-derivative/audio",
      "kind": "processor",
      "params": {
        "leak": {
          "type": "number",
          "min": 0.9,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any"
    },
    {
      "name": "geq",
      "module": "@audio/eq-graphic/audio",
      "kind": "processor",
      "params": {
        "g31": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g63": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g125": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g250": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g500": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g1k": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g2k": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g4k": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g8k": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "g16k": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        }
      },
      "channels": "any"
    },
    {
      "name": "tilt",
      "module": "@audio/eq-tilt/audio",
      "kind": "processor",
      "params": {
        "gain": {
          "type": "number",
          "min": -12,
          "max": 12,
          "default": 0,
          "unit": "dB"
        },
        "pivot": {
          "type": "number",
          "min": 100,
          "max": 10000,
          "default": 1000,
          "unit": "Hz",
          "curve": "log"
        }
      },
      "channels": "any"
    },
    {
      "name": "baxandall",
      "module": "@audio/eq-baxandall/audio",
      "kind": "processor",
      "params": {
        "bass": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "treble": {
          "type": "number",
          "min": -15,
          "max": 15,
          "default": 0,
          "unit": "dB"
        },
        "fBass": {
          "type": "number",
          "min": 60,
          "max": 1000,
          "default": 250,
          "unit": "Hz",
          "curve": "log"
        },
        "fTreble": {
          "type": "number",
          "min": 1000,
          "max": 12000,
          "default": 4000,
          "unit": "Hz",
          "curve": "log"
        }
      },
      "channels": "any"
    },
    {
      "name": "dyneq",
      "module": "@audio/eq-dynamic/audio",
      "kind": "processor",
      "params": {
        "fc": {
          "type": "number",
          "min": 40,
          "max": 16000,
          "default": 6000,
          "unit": "Hz",
          "curve": "log"
        },
        "Q": {
          "type": "number",
          "min": 0.3,
          "max": 20,
          "default": 2,
          "curve": "log"
        },
        "threshold": {
          "type": "number",
          "min": -60,
          "max": 0,
          "default": -30,
          "unit": "dB"
        },
        "ratio": {
          "type": "number",
          "min": 1,
          "max": 20,
          "default": 3
        },
        "attack": {
          "type": "number",
          "min": 0.5,
          "max": 100,
          "default": 5,
          "unit": "ms"
        },
        "release": {
          "type": "number",
          "min": 10,
          "max": 1000,
          "default": 80,
          "unit": "ms"
        },
        "maxGain": {
          "type": "number",
          "min": 0,
          "max": 24,
          "default": 12,
          "unit": "dB"
        },
        "mode": {
          "type": "enum",
          "values": [
            "down",
            "up"
          ],
          "default": "down"
        }
      },
      "channels": "any",
      "tail": 0.2,
      "streaming": false
    },
    {
      "name": "tape",
      "module": "@audio/saturate-tape/audio",
      "kind": "processor",
      "params": {
        "drive": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 1.5
        },
        "warmth": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.25
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "transistor",
      "module": "@audio/saturate-transistor/audio",
      "kind": "processor",
      "params": {
        "drive": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 2
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "waveshaper",
      "module": "@audio/saturate-waveshaper/audio",
      "kind": "processor",
      "params": {
        "drive": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 2
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "multisat",
      "module": "@audio/saturate-multiband/audio",
      "kind": "processor",
      "params": {
        "low": {
          "type": "number",
          "min": 40,
          "max": 1000,
          "default": 200,
          "unit": "Hz",
          "curve": "log"
        },
        "high": {
          "type": "number",
          "min": 1000,
          "max": 12000,
          "default": 2000,
          "unit": "Hz",
          "curve": "log"
        },
        "drive": {
          "type": "number",
          "min": 0.5,
          "max": 10,
          "default": 2
        },
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "amp",
      "module": "@audio/amp-tube/audio",
      "kind": "processor",
      "params": {
        "gain": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        },
        "bass": {
          "type": "number",
          "min": -12,
          "max": 12,
          "default": 0,
          "unit": "dB"
        },
        "mid": {
          "type": "number",
          "min": -12,
          "max": 12,
          "default": 0,
          "unit": "dB"
        },
        "treble": {
          "type": "number",
          "min": -12,
          "max": 12,
          "default": 0,
          "unit": "dB"
        },
        "level": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "cabinet",
      "module": "@audio/amp-cabinet/audio",
      "kind": "processor",
      "params": {
        "mix": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "defeedback",
      "module": "@audio/defeedback/audio",
      "kind": "processor",
      "params": {
        "notches": {
          "type": "number",
          "min": 1,
          "max": 24,
          "default": 12,
          "step": 1,
          "flags": [
            "restart"
          ]
        },
        "Q": {
          "type": "number",
          "min": 10,
          "max": 100,
          "default": 30,
          "curve": "log",
          "flags": [
            "restart"
          ],
          "alias": "q"
        },
        "strength": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "flags": [
            "restart"
          ]
        }
      },
      "channels": "any"
    },
    {
      "name": "noise",
      "module": "@audio/synth-noise/audio",
      "kind": "processor",
      "params": {
        "color": {
          "type": "enum",
          "values": [
            "white",
            "pink",
            "brown",
            "blue",
            "violet"
          ],
          "default": "white"
        },
        "seed": {
          "type": "number",
          "min": 1,
          "max": 65536,
          "default": 1,
          "step": 1
        },
        "gain": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.8
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "chirp",
      "module": "@audio/synth-chirp/audio",
      "kind": "processor",
      "params": {
        "f0": {
          "type": "number",
          "min": 1,
          "max": 20000,
          "default": 20,
          "unit": "Hz",
          "curve": "log"
        },
        "f1": {
          "type": "number",
          "min": 1,
          "max": 22050,
          "default": 20000,
          "unit": "Hz",
          "curve": "log"
        },
        "method": {
          "type": "enum",
          "values": [
            "exp",
            "linear"
          ],
          "default": "exp"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.9
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "pluck",
      "module": "@audio/synth-pluck/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 20,
          "max": 4000,
          "default": 220,
          "unit": "Hz",
          "curve": "log"
        },
        "damp": {
          "type": "number",
          "min": 0.9,
          "max": 0.9999,
          "default": 0.996
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "seed": {
          "type": "number",
          "min": 1,
          "max": 65536,
          "default": 1,
          "step": 1
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "risset",
      "module": "@audio/synth-risset/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 30,
          "max": 1000,
          "default": 100,
          "unit": "Hz",
          "curve": "log"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.6
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "rhythm",
      "module": "@audio/synth-rhythm/audio",
      "kind": "processor",
      "params": {
        "bpm": {
          "type": "number",
          "min": 20,
          "max": 300,
          "default": 120
        },
        "beats": {
          "type": "number",
          "min": 1,
          "max": 12,
          "default": 4,
          "step": 1
        },
        "freq": {
          "type": "number",
          "min": 200,
          "max": 4000,
          "default": 1000,
          "unit": "Hz"
        },
        "accentFreq": {
          "type": "number",
          "min": 200,
          "max": 6000,
          "default": 1500,
          "unit": "Hz"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "sfx",
      "module": "@audio/synth-sfx/audio",
      "kind": "processor",
      "params": {
        "preset": {
          "type": "enum",
          "values": [
            "pickup",
            "laser",
            "explosion",
            "powerup",
            "hit",
            "jump",
            "blip",
            "coin"
          ],
          "default": "blip"
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "kick",
      "module": "@audio/synth-drum/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 30,
          "max": 120,
          "default": 55,
          "unit": "Hz"
        },
        "drop": {
          "type": "number",
          "min": 1,
          "max": 8,
          "default": 3
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.9
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "cymbal",
      "module": "@audio/synth-drum/audio",
      "kind": "processor",
      "params": {
        "freq": {
          "type": "number",
          "min": 100,
          "max": 800,
          "default": 200,
          "unit": "Hz"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.5
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "snare",
      "module": "@audio/synth-drum/audio",
      "kind": "processor",
      "params": {
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "seed": {
          "type": "number",
          "min": 1,
          "max": 65536,
          "default": 9,
          "step": 1
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "adsr",
      "module": "@audio/synth-envelope/audio",
      "kind": "processor",
      "params": {
        "attack": {
          "type": "number",
          "min": 0.001,
          "max": 2,
          "default": 0.01,
          "unit": "s",
          "curve": "log"
        },
        "decay": {
          "type": "number",
          "min": 0.001,
          "max": 2,
          "default": 0.1,
          "unit": "s",
          "curve": "log"
        },
        "sustain": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        },
        "release": {
          "type": "number",
          "min": 0.001,
          "max": 4,
          "default": 0.3,
          "unit": "s",
          "curve": "log"
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "voice",
      "module": "@audio/synth-voice/audio",
      "kind": "processor",
      "params": {
        "type": {
          "type": "enum",
          "values": [
            "sine",
            "square",
            "sawtooth",
            "triangle"
          ],
          "default": "sawtooth"
        },
        "attack": {
          "type": "number",
          "min": 0.001,
          "max": 2,
          "default": 0.01,
          "unit": "s",
          "curve": "log"
        },
        "decay": {
          "type": "number",
          "min": 0.001,
          "max": 2,
          "default": 0.15,
          "unit": "s",
          "curve": "log"
        },
        "sustain": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.6
        },
        "release": {
          "type": "number",
          "min": 0.001,
          "max": 4,
          "default": 0.25,
          "unit": "s",
          "curve": "log"
        },
        "fc": {
          "type": "number",
          "min": 100,
          "max": 16000,
          "default": 3000,
          "unit": "Hz",
          "curve": "log",
          "alias": "cutoff"
        },
        "envAmount": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.6
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "poly",
      "module": "@audio/synth-poly/audio",
      "kind": "processor",
      "params": {
        "voices": {
          "type": "number",
          "min": 1,
          "max": 32,
          "default": 16,
          "step": 1
        },
        "type": {
          "type": "enum",
          "values": [
            "sine",
            "square",
            "sawtooth",
            "triangle"
          ],
          "default": "sawtooth"
        },
        "amp": {
          "type": "number",
          "min": 0,
          "max": 1,
          "default": 0.7
        }
      },
      "channels": {
        "inputs": [],
        "outputs": "any"
      },
      "streaming": false
    },
    {
      "name": "stretch-pvoc-lock",
      "module": "@audio/stretch-pvoc-lock/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-pvoc",
      "module": "@audio/stretch-pvoc/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-pghi",
      "module": "@audio/stretch-pghi/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-wsola",
      "module": "@audio/stretch-wsola/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-psola",
      "module": "@audio/stretch-psola/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-sms",
      "module": "@audio/stretch-sms/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-transient",
      "module": "@audio/stretch-transient/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-hybrid",
      "module": "@audio/stretch-hybrid/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 4,
          "default": 1
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "stretch-paul",
      "module": "@audio/stretch-paulstretch/audio",
      "kind": "processor",
      "params": {
        "factor": {
          "type": "number",
          "min": 0.25,
          "max": 8,
          "default": 4
        },
        "frame": {
          "type": "number",
          "min": 0.05,
          "max": 2,
          "default": 0.37,
          "unit": "s"
        }
      },
      "channels": "any",
      "streaming": false
    },
    {
      "name": "truepeak",
      "module": "@audio/loudness-truepeak/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "lra",
      "module": "@audio/loudness-lra/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "replaygain",
      "module": "@audio/loudness-replaygain/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "dr",
      "module": "@audio/loudness-dr/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "speech-contrast",
      "module": "@audio/loudness-contrast/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "sounds",
      "module": "@audio/loudness-sounds/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "rolloff",
      "module": "@audio/spectral-rolloff/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "spread",
      "module": "@audio/spectral-spread/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "slope",
      "module": "@audio/spectral-slope/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "flux",
      "module": "@audio/spectral-flux/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "contrast",
      "module": "@audio/spectral-contrast/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "ltas",
      "module": "@audio/spectral-ltas/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "zcr",
      "module": "@audio/spectral-zcr/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "structure",
      "module": "@audio/mir-structure/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "tempogram",
      "module": "@audio/mir-tempogram/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "melody",
      "module": "@audio/mir-melody/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "downbeat",
      "module": "@audio/mir-downbeat/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "fingerprint",
      "module": "@audio/mir-fingerprint/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "drums",
      "module": "@audio/mir-drums/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "multif0",
      "module": "@audio/mir-multif0/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "transcribe",
      "module": "@audio/mir-transcribe/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "similarity",
      "module": "@audio/mir-similarity/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "coversong",
      "module": "@audio/mir-coversong/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "chroma",
      "module": "@audio/mir-chroma/audio",
      "kind": "analysis",
      "params": {}
    },
    {
      "name": "tonnetz",
      "module": "@audio/mir-tonnetz/audio",
      "kind": "analysis",
      "params": {}
    }
  ]
}
