Lab

Unlimiter

An unlimiter device: amount, drive, crest, adaptive and a guarded ceiling, a panel that draws the lift for an attack's size, a Web Audio engine and tools for agents.

Audio UI

Gives back the attacks a limiter flattened. It tells an attack by how far a fast follower of the level rises over a slow one, and lifts it: adaptive, by what it is missing to reach the crest, so a healthy attack is left alone. It plays the de-limiter of audio.js. It is a device: a state, a panel, an engine and tools, each its own file.

Installation

pnpm dlx shadcn@latest add @audio-ui/unlimiter

It installs the device's state, its engine and its panel to components/audio-ui/devices/unlimiter/. The demo above, which wires them to a loop, is @audio-ui/block-unlimiter.

Controls

Controls · 7

Panel

The panel draws the lift an attack gets for its size, how far the fast follower is over the slow one, through the package's own curves, with the crest when it is adaptive.

import { UnlimiterPanel } from "@/components/audio-ui/devices/unlimiter/panel";
import { unlimiterDevice } from "@/components/audio-ui/devices/unlimiter/device";

const [state, setState] = useState(() => unlimiterDevice.defaults());

<UnlimiterPanel onValueChange={setState} value={state} />;

Engine

Create it, connect it and update it as for any device: see The engine.

The browser has no such node. The engine plays the processor of @audio/dynamics-unlimit's manifest as published, in an AudioWorklet fed only while it plays: off, or until the worklet is ready, the sound goes round it. Every value on the panel changes as it plays; its followers' times are the package's. It looks at no sound ahead, so it adds no latency.

Measured on a loop of hits pushed 12 dB into a limiter, which took their crest from 11.6 to 9.9 dB, the adaptive unlimiter gave it back to 11.7 dB. On the loop as it was, it added 0.9 dB.

Built by Ouest Labs, the source code is available on GitHub.
RSS