/ proof-of-concept / toy-instruments
Sign in
proof-of-concept / toy-instruments
toy-instruments / src / instruments / bead-cymbal / presets.ts
83 lines · 2.6 KBBlameHistoryRaw
1import type { CymbalParams } from './model';
3// 8-inch toy cymbal in B20 bronze (E ~ 100 GPa, 8600 kg/m^3), 0.8 mm thick.
4const toy: CymbalParams = {
5 diameter: 0.2,
6 rings: 10,
7 holeRadius: 0.006,
8 bowHeight: 0,
9 bellDiameter: 0.07,
10 bellHeight: 0,
11 thickness: 0.0008,
12 youngs: 1.0e11,
13 density: 8600,
14 soften: 30,
15 t60Low: 8,
16 fLow: 200,
17 t60High: 4,
18 fHigh: 2000,
19 excitation: 'stick',
20 excR: 0.85,
21 excAngle: 0,
22 hitAngle: 0,
23 excWidth: 0.015, // wider than a stick tip: one light bead alone makes the stick chatter
24 stickMass: 0.03,
25 stickSpeed: 1,
26 stickK: 5e8,
27 malletMass: 0.03,
28 malletSpeed: 2,
29 malletK: 1e7,
30 malletP: 2.5,
31 friction: 0.3,
32 strikeVel: 1,
33 forcePeak: 50,
34 forceMs: 0.5,
35 micDistance: 1,
36 micElevation: 30,
37 micAzimuth: 30,
38 duration: 4,
39 fs: 48000,
40 cfl: 0.5,
41 frameRate: 2000,
42};
44export interface CymbalPreset {
45 name: string;
46 description: string;
47 params: CymbalParams;
50export const CYMBAL_PRESETS: CymbalPreset[] = [
51 {
52 name: 'Bow and bell, stick',
53 description:
54 '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.',
55 params: { ...toy, bowHeight: 0.012, bellHeight: 0.012 },
56 },
57 {
58 name: 'Flat 8" toy, stick (fast)',
59 description:
60 '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.',
61 params: toy,
62 },
63 {
64 name: 'Flat 8" toy, real bronze (slow)',
65 description: 'Same plate with real in-plane stiffness: about 5× more time steps.',
66 params: { ...toy, soften: 1 },
67 },
68 {
69 name: 'Glancing crash stroke',
70 description: 'Stick at 6 m/s, 60° from the normal toward the rim, with friction: pushes the plate sideways as well as down.',
71 params: { ...toy, bowHeight: 0.012, bellHeight: 0.012, stickSpeed: 6, hitAngle: 60 },
72 },
73 {
74 name: 'Felt mallet',
75 description: 'Soft 30 g mallet at 2 m/s, longer contact, darker sound.',
76 params: { ...toy, excitation: 'mallet', excR: 0.7, excWidth: 0.008 },
77 },
78 {
79 name: 'Coarse quick look',
80 description: '6 rings (~120 beads): fast, but bending is only resolved to a few hundred hertz.',
81 params: { ...toy, rings: 6 },
82 },
83];
↑↓ move↵openescclose