@cod3gen/audiofilters
Version:
Audio filter design utilities (biquad PEQ/shelves, crossover families, RIAA) for Node.js
66 lines (45 loc) • 1.74 kB
Markdown
# @cod3gen/audiofilters
Audio filter design utilities (biquad PEQ/shelves, LP/HP crossover families, RIAA) for Node.js.
- Parametric and shelving EQ (biquad)
- Butterworth, Bessel, Linkwitz–Riley LP/HP crossovers (6–48 dB/oct)
- RIAA equalization (standard/inverse) with optional DC block
- Alias-based generator for ergonomic usage: `generateCoeff(alias, data)`
## Install
```sh
npm install @cod3gen/audiofilters
```
## Usage
```js
import { AudioFilters } from '@cod3gen/audiofilters';
const af = new AudioFilters();
// 1) Biquad: peaking EQ
const peq = af.generateCoeff('peq', { gain: 3, fc: 1000, Q: 1, fs: 48000 });
// 2) Crossover: LR24 low-pass at 2k
const lr24lp = af.generateCoeff('lr24', { mode: 'lowpass', fc: 2000, fs: 48000 });
// 3) RIAA
const riaa = af.generateCoeff('riaa', { sample_rate: 48000, dc_block: true });
```
## API
- `FilterDesigns`: metadata for crossover designs (family, order, slope, sections, aliases)
- `filterDesign`: numeric ids per design (for compatibility)
- `filterLength`: number of biquad sections per design
- `bqFilterDesign`: numeric ids for biquad response types
- `class AudioFilters`:
- `defaultCoefficients()` → unity biquad
- `makeParametricEQ(...)`, `makeLowShelv(...)`, `makeHighShelv(...)`, `makeAllpass(...)`
- `makeHighPass(designId, fc, fs, bypass?)`, `makeLowPass(designId, fc, fs, bypass?)`
- `makeRIAAEqualization(opts)`
- `generateCoeff(alias, data)` → alias router (biquad/crossover/RIAA)
## Build
```sh
npm run build
```
## Demo
```sh
npm run demo
```
## Publish
- GitHub: push this folder as a repo/package
- npm: bump version, then `npm publish --access public`
## License
MIT