/ proof-of-concept / toy-instruments
Sign in
proof-of-concept / toy-instruments
toy-instruments / src / instruments / registry.ts
26 lines · 952 BCodeBlameHistory
4a8abcfString of beads: 3D bead-spring solver, control panel, waveform, spectrogram, wav, displacement viewerJeremy Magland 1import { mountBeadString } from './bead-string/page';
4export interface Instrument {
5 id: string;
6 name: string;
7 blurb: string;
8 mount?: (root: HTMLElement) => void; // absent = not built yet
9}
11export const INSTRUMENTS: Instrument[] = [
12 {
13 id: 'bead-string',
14 name: 'String of beads',
15 blurb: 'Point masses joined by pre-tensioned springs, moving in 3D. Pluck, strike or hammer it; clamp, slide or free the ends; pin beads.',
16 mount: mountBeadString,
17 },
19 id: 'bead-drum',
20 name: 'Bead drum',
21 blurb: 'A round drumhead: a tensioned hex net of beads in a clamped rim. Hit it with a felt mallet, strike, push or press it.',
22 mount: mountBeadDrum,
23 },
4a8abcfString of beads: 3D bead-spring solver, control panel, waveform, spectrogram, wav, displacement viewerJeremy Magland 24 { id: 'bead-bar', name: 'Bar', blurb: 'A stiff chain with bending springs, free ends: xylophone-like overtones.' },
25 { id: 'bead-plate', name: 'Plate', blurb: 'A 2D net with bending, free or clamped edge.' },
26];
↑↓ move↵openescclose