import type { CymbalParams } from './model'; // 8-inch toy cymbal in B20 bronze (E ~ 100 GPa, 8600 kg/m^3), 0.8 mm thick. const toy: CymbalParams = { diameter: 0.2, rings: 10, holeRadius: 0.006, bowHeight: 0, bellDiameter: 0.07, bellHeight: 0, thickness: 0.0008, youngs: 1.0e11, density: 8600, soften: 30, t60Low: 8, fLow: 200, t60High: 4, fHigh: 2000, excitation: 'stick', excR: 0.85, excAngle: 0, hitAngle: 0, excWidth: 0.015, // wider than a stick tip: one light bead alone makes the stick chatter stickMass: 0.03, stickSpeed: 1, stickK: 5e8, malletMass: 0.03, malletSpeed: 2, malletK: 1e7, malletP: 2.5, friction: 0.3, strikeVel: 1, forcePeak: 50, forceMs: 0.5, micDistance: 1, micElevation: 30, micAzimuth: 30, duration: 4, fs: 48000, cfl: 0.5, frameRate: 2000, }; export interface CymbalPreset { name: string; description: string; params: CymbalParams; } export const CYMBAL_PRESETS: CymbalPreset[] = [ { name: 'Bow and bell, stick', description: '8" bronze cymbal, 0.8 mm, with a 12 mm bow (dome) and a 7 cm bell, 12 mm high; ~370 beads, free (nothing holds it; its rigid motion is removed). In-plane stiffness softened 30× for speed; curvature couples bending to in-plane stretching, so softening matters more here than on a flat plate. Stick at 1 m/s near the edge, spread over a 15 mm patch (a single bead would make the stick chatter). Bending is resolved to about 1.3 kHz.', params: { ...toy, bowHeight: 0.012, bellHeight: 0.012 }, }, { name: 'Flat 8" toy, stick (fast)', description: 'Flat 0.8 mm bronze plate, 20 cm, ~370 beads, free. In-plane stiffness softened 30× for speed (a flat plate bends the same at small amplitude). Stick at 1 m/s near the edge, spread over a 15 mm patch.', params: toy, }, { name: 'Flat 8" toy, real bronze (slow)', description: 'Same plate with real in-plane stiffness: about 5× more time steps.', params: { ...toy, soften: 1 }, }, { name: 'Glancing crash stroke', description: 'Stick at 6 m/s, 60° from the normal toward the rim, with friction: pushes the plate sideways as well as down.', params: { ...toy, bowHeight: 0.012, bellHeight: 0.012, stickSpeed: 6, hitAngle: 60 }, }, { name: 'Felt mallet', description: 'Soft 30 g mallet at 2 m/s, longer contact, darker sound.', params: { ...toy, excitation: 'mallet', excR: 0.7, excWidth: 0.008 }, }, { name: 'Coarse quick look', description: '6 rings (~120 beads): fast, but bending is only resolved to a few hundred hertz.', params: { ...toy, rings: 6 }, }, ];