{"_id":"@audio/reverb-schroeder","_rev":"5-e7af8fa4ce4cda171f547f387a5635c2","name":"@audio/reverb-schroeder","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@audio/reverb-schroeder","version":"1.0.0","keywords":["audio","dsp","reverb","schroeder"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/reverb-schroeder@1.0.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"2ff03c0124c8cfc721b23976998bc93810db8fb8","tarball":"https://registry.npmjs.org/@audio/reverb-schroeder/-/reverb-schroeder-1.0.0.tgz","fileCount":2,"integrity":"sha512-17iC6WrxmzygcSWJH82PIIt7+oyTY3bSG6Hlcdy/39+AVYcGhIWEzGbdeIdzF/bGcVf/Y/30puXDDyA2Om7dmA==","signatures":[{"sig":"MEUCIEISGnmqjVv1Dx4kOKuktv1nlgLL4Et3PMy9wXc2lslSAiEAta2mQt8sN+YkWZROlcx4oDvfQgsAOCZP6EmQKlJZJN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2021},"main":"schroeder.js","type":"module","engines":{"node":">=18"},"exports":{".":"./schroeder.js","./package.json":"./package.json"},"gitHead":"e3fbdb11e067705f21e8c18a562f1dac70a4e3db","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/reverb-schroeder_1.0.0_1783539858558_0.9533819794268705","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@audio/reverb-schroeder","version":"1.1.0","keywords":["audio","dsp","reverb","schroeder"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/reverb-schroeder@1.1.0","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"atom":"./atom.js","dist":{"shasum":"f35993b8b88be8264bcd023aa0ca606ee8f0a458","tarball":"https://registry.npmjs.org/@audio/reverb-schroeder/-/reverb-schroeder-1.1.0.tgz","fileCount":3,"integrity":"sha512-95k3b618M6O/uDKZKuJvJhLuLxFo0EQc39W+HNm7W+S6SYqegExTi5WH/VURmrsac3fnZC9xa1scFq+UYWZ1mA==","signatures":[{"sig":"MEUCIQDavEd2ClOyEz9C4v7eeXror1ArpkYHvJofgZPB1UOMNQIgPB0ScYzSRc1vTaNox2v2lItAeCHrAWR3AxPaBKuIQNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3385},"main":"schroeder.js","type":"module","engines":{"node":">=18"},"exports":{".":"./schroeder.js","./atom":"./atom.js","./package.json":"./package.json"},"gitHead":"4c2c72cd5de59281228f3de3a87170d339bb457a","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/reverb-schroeder_1.1.0_1783635120510_0.7546506760886695","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@audio/reverb-schroeder","version":"1.1.1","keywords":["audio","dsp","reverb","schroeder"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/reverb-schroeder@1.1.1","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"44dc083dcf7da04144d4a85d17011681b7f5e60d","tarball":"https://registry.npmjs.org/@audio/reverb-schroeder/-/reverb-schroeder-1.1.1.tgz","fileCount":3,"integrity":"sha512-iamlTn2t4g9Kf3+jpe/OhFQs3gcNSUOSXZ3pif540KfmemjUC1ifHJNGNuiv+qVW3uT92v49bC6VvuHvv59Ydw==","signatures":[{"sig":"MEUCIAFmaRCCONqekPkmXd/F1WlDGnDIuAZaqd9zmfTRlQYCAiEAlHkImeXYamhuKVCVH2K+P1Z8Ct+93X1G+wYIIV9/iu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3390},"main":"schroeder.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./schroeder.js","./audio":"./audio.js","./package.json":"./package.json"},"gitHead":"b16714728a59fd6d56cd8ab33f305dad4165a694","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/reverb-schroeder_1.1.1_1783645017782_0.4738801461108111","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@audio/reverb-schroeder","version":"1.1.2","keywords":["audio","dsp","reverb","schroeder"],"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","_id":"@audio/reverb-schroeder@1.1.2","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"dist":{"shasum":"a45125ce732bd0d6bdedc39fc2e889dd5ef59acc","tarball":"https://registry.npmjs.org/@audio/reverb-schroeder/-/reverb-schroeder-1.1.2.tgz","fileCount":4,"integrity":"sha512-K/L6eeGlEz2v/6jNOEbDjvV+r6RjMhb1jJyHaLurZiFm7S4PsF0QV4wWa4b6slNPziOA0QYShKjiUrFglzZuNg==","signatures":[{"sig":"MEYCIQDHF6E9Y2y43kxGAXVA6RnvyzNDG5FStrVBpClaErME5wIhAICsh3danR0yFoJkzf5tchKtI5+z1mW7aG2zH2fwoaOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4898},"main":"schroeder.js","type":"module","audio":"./audio.js","engines":{"node":">=18"},"exports":{".":"./schroeder.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"gitHead":"44f8107e10040cdbd0945e4965f0ed6144b44fb5","_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"_npmVersion":"11.12.1","description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/reverb-schroeder_1.1.2_1783701783646_0.523884047728608","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@audio/reverb-schroeder","version":"1.1.3","description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","type":"module","sideEffects":false,"main":"schroeder.js","exports":{".":"./schroeder.js","./audio":{"types":"./audio.d.ts","default":"./audio.js"},"./package.json":"./package.json"},"keywords":["audio","dsp","reverb","schroeder"],"license":"MIT","author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"audio":"./audio.js","repository":{"type":"git","url":"git+https://github.com/audiojs/reverb.git","directory":"packages/reverb-schroeder"},"funding":"https://github.com/sponsors/audiojs","types":"schroeder.d.ts","gitHead":"66500e037dac15d3fd697a23d00e3bd08300fdd1","_id":"@audio/reverb-schroeder@1.1.3","bugs":{"url":"https://github.com/audiojs/reverb/issues"},"homepage":"https://github.com/audiojs/reverb#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-JEQKFcaqFEExAeAbC+c0y7+AvexaKmkSkBTdkU3DYIzptEisPz+DxgE75NhNRmVcWV99nvyAJjIlQvJncDekZg==","shasum":"812af0b90bc2429b8a212bea1168712202a1a33a","tarball":"https://registry.npmjs.org/@audio/reverb-schroeder/-/reverb-schroeder-1.1.3.tgz","fileCount":6,"unpackedSize":8595,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqLNlUoccHbnMBOvllFxecbU664Ia2Z2hrobm16IAzpQIgcbiwl2tUdHAHrenDmyayF85m+ugwvW/7H8AQ57Mp0WA="}]},"_npmUser":{"name":"dy","email":"df.creative@gmail.com"},"directories":{},"maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reverb-schroeder_1.1.3_1783731744325_0.38151666181385013"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T19:44:18.386Z","modified":"2026-07-11T01:02:24.574Z","1.0.0":"2026-07-08T19:44:18.691Z","1.1.0":"2026-07-09T22:12:00.678Z","1.1.1":"2026-07-10T00:56:57.927Z","1.1.2":"2026-07-10T16:43:03.790Z","1.1.3":"2026-07-11T01:02:24.460Z"},"author":{"name":"Dmitry Iv.","email":"dfcreative@gmail.com"},"license":"MIT","keywords":["audio","dsp","reverb","schroeder"],"description":"Schroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers","maintainers":[{"name":"jamen","email":"jamenmarz@gmail.com"},{"name":"dfcreative","email":"df.creative@gmail.com"},{"name":"dy","email":"df.creative@gmail.com"}],"readme":"# @audio/reverb-schroeder [![npm](https://img.shields.io/npm/v/@audio/reverb-schroeder)](https://www.npmjs.com/package/@audio/reverb-schroeder) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)\n\nSchroeder reverb — 4 parallel feedback combs with LP damping + 2 series allpass diffusers\n\n```\nnpm install @audio/reverb-schroeder\n```\n\n```js\nimport schroeder from '@audio/reverb-schroeder'\n```\n\nThe classical Schroeder topology: 4 parallel feedback comb filters (prime delay lengths, ~29–35 ms at 44.1 kHz) each with one-pole LP damping on the feedback path, summed and run through 2 series allpass diffusers (`g = 0.5`, ~6–8 ms delays). Mono only — for stereo, call it once per channel with separate options objects (see below).\n\n```js\nschroeder(data, { decay: 0.84, damping: 0.5, mix: 0.3, fs: 44100 })\n```\n\n| Param | Default | |\n|---|---|---|\n| `decay` | `0.84` | 0..1 — comb feedback (reverb time) |\n| `damping` | `0.5` | 0..1 — high-frequency loss in the comb feedback path |\n| `mix` | `0.3` | 0..1 — wet/dry blend |\n| `fs` | `44100` | sample rate; delay lengths scale to it |\n\n**Requires an options object — `schroeder(data)` throws.** Unlike every other reverb in this family, `schroeder` has no default `= {}` on its second parameter, so a call with only `data` throws reading `params.decay` off `undefined` rather than falling back to defaults. Always pass at least `{}`.\n\n**Mutates `data` in place** and returns it. **Caches comb/allpass state on the options object itself** (`params._c`/`params._a`) rather than allocating fresh state per call — this is the family's one stateful exception. Passing a fresh options object each call gives independent, freshly-seeded reverb (the common case); passing the *same* options object across successive calls continues the same comb/allpass state, which is how you'd stream chunks through one continuous tail. Don't reuse an options object across unrelated buffers unless you want that continuity — reuse it per logical stream instead.\n\n**Use when:** the cheapest CPU budget in the family, or reproducing the specific Schroeder/Moorer-predecessor sound.<br>\n**Not for:** stereo width (use `freeverb`/`dattorro`/`fdn`) or streaming without manual state-object management.\n\n---\n\nPart of the [@audio/reverb](https://github.com/audiojs/reverb) family.\n\nMIT © [audiojs](https://github.com/audiojs)\n","readmeFilename":"README.md","homepage":"https://github.com/audiojs/reverb#readme","repository":{"type":"git","url":"git+https://github.com/audiojs/reverb.git","directory":"packages/reverb-schroeder"},"bugs":{"url":"https://github.com/audiojs/reverb/issues"}}