Lab

Vibe

A photocell vibe device: a lamp that pulses on four phase-shift stages, in chorus or vibrato, with its speed, intensity and level, a panel that draws the lamp, a Web Audio engine and tools for agents.

Audio UI

A photocell vibe. A lamp pulses inside a box, and four light cells around it set four phase-shift stages: the brighter the lamp, the higher each stage turns the phase around. The stages sit far apart, so the sound sweeps in a lopsided, throbbing way rather than as an even phaser does, and the lamp lights at once and fades slowly, so the sweep rises quickly and falls back slowly. In Chorus mode the shifted sound is mixed with the dry one, for moving notches; in Vibrato mode it plays alone, and its moving phase is heard as pitch. It is a device: a state, a panel, an engine and tools, each its own file.

Installation

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

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

Controls

The knobs read 0 to 10, and show the value they set in the unit the sound takes.

Controls · 5

Panel

The panel draws the lamp's light over two seconds, over the mode and the knobs, all drawn off while the device is off. vibeLight(state) is what it draws, and lampCycle() gives one cycle of the light.

import { VibePanel } from "@/components/audio-ui/devices/vibe/panel";
import { vibeDevice } from "@/components/audio-ui/devices/vibe/device";

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

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

Engine

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

The sound goes through a warm preamp, then four all-pass stages spread from 90 Hz to 5.2 kHz, each moved in cents by one oscillator whose wave is the lamp's light. Chorus is half dry and half shifted, Vibrato is shifted alone, and off, the sound passes untouched. Every control moves with a ramp, so a turn makes no click.

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