1import { mountBeadString } from './bead-string/page';
3export interface Instrument {
4 id: string;
5 name: string;
6 blurb: string;
7 mount?: (root: HTMLElement) => void; // absent = not built yet
8}
10export const INSTRUMENTS: Instrument[] = [
11 {
12 id: 'bead-string',
13 name: 'String of beads',
14 blurb: 'Point masses joined by pre-tensioned springs, moving in 3D. Pluck, strike or hammer it; clamp, slide or free the ends; pin beads.',
15 mount: mountBeadString,
16 },
17 { id: 'bead-drum', name: 'Bead drum', blurb: 'A membrane: a tensioned 2D net of beads with a clamped rim.' },
18 { id: 'bead-bar', name: 'Bar', blurb: 'A stiff chain with bending springs, free ends: xylophone-like overtones.' },
19 { id: 'bead-plate', name: 'Plate', blurb: 'A 2D net with bending, free or clamped edge.' },
20];