Elementary Audio
Declarative JavaScript library for digital audio signal processing, portable across web and native renderers.
| Language | JavaScript / C++ |
|---|---|
| Category | Synthesis & DSP |
| License | MIT |
| Platforms | Web macOS Windows Linux |
| Install | npm install @elemaudio/core |
| First released | ~2021 |
| Maintained | Yes |
| Links | Website · Source |
Strengths
- Declarative, functional graph-based DSP
- Portable: web plus native/offline renderers
- Dynamic graph updates at runtime
Limitations
- Requires a renderer host; steeper mental model
- Smaller community than Tone.js
Best for
Writing portable DSP shared between web apps and native audio plugins.
Minimal example
import { el } from '@elemaudio/core';
import WebRenderer from '@elemaudio/web-renderer';
const ctx = new AudioContext();
const core = new WebRenderer();
const node = await core.initialize(ctx, { numberOfOutputs: 1, outputChannelCount: [2] });
node.connect(ctx.destination);
const sig = el.mul(0.1, el.cycle(440));
core.render(sig, sig);