devuiGuideDemosAPIGitHub

Audio and MIDI

import { audio } from '@haxiomic/devui/audio';
import { midi } from '@haxiomic/devui/midi';

const input = audio(gui, videoElement);   // or a MediaStream (the mic), or any AudioNode
input.bind(gui.find('Scene/size'), 'low', { range: [10, 60], smoothing: 0.7 });
input.values.low;                         // 0โ€“1 every frame, for your own use

input.bind(gui.find('Scene/glow'), 'level', { gain: 2, remember: true });  // kept across reloads
input.unbind(gui.find('Scene/glow'));

const m = midi(gui);                      // asks the browser for MIDI access
m.learn(gui.find('Scene/size'));          // the next knob moved drives it
m.map(gui.find('Scene/hue'), { kind: 'cc', channel: 1, number: 21 });
// midi(gui, { softTakeover: false }): knobs set values at once, jumps and all