import { mountBeadString } from './bead-string/page'; import { mountBeadDrum } from './bead-drum/page'; import { mountBeadCymbal } from './bead-cymbal/page'; export interface Instrument { id: string; name: string; blurb: string; mount?: (root: HTMLElement) => void; // absent = not built yet } export const INSTRUMENTS: Instrument[] = [ { id: 'bead-string', name: 'String of beads', blurb: 'Point masses joined by pre-tensioned springs, moving in 3D. Pluck, strike or hammer it; clamp, slide or free the ends; pin beads.', mount: mountBeadString, }, { id: 'bead-drum', name: 'Bead drum', 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.', mount: mountBeadDrum, }, { id: 'bead-cymbal', name: 'Cymbal', blurb: 'A thin bronze plate on felts at its centre, flat or with bow and bell. Hit it with a stick or mallet, at any angle; listen through a microphone.', mount: mountBeadCymbal, }, { id: 'bead-bar', name: 'Bar', blurb: 'A stiff chain with bending springs, free ends: xylophone-like overtones.' }, ];