/ proof-of-concept / toy-instruments
Sign in
proof-of-concept / toy-instruments
toy-instruments / src / instruments / bead-drum / presets.ts
70 lines · 2.1 KBBlameHistoryRaw
1import type { DrumParams } from './model';
3// Mylar-like head: 0.19 mm film, surface density 0.26 kg/m^2, E t ~ 8.6e5 N/m.
4const fast: DrumParams = {
5 diameter: 0.3,
6 rings: 12,
7 density: 0.26,
8 tension: 1500, // c = 76 m/s, ideal f01 ~ 194 Hz
9 inPlane: 12000, // softened: in-plane waves only ~3x faster than transverse
10 t60Low: 1.2,
11 fLow: 200,
12 t60High: 0.25,
13 fHigh: 3000,
14 excitation: 'mallet',
15 excR: 0.35,
16 excAngle: 0,
17 excWidth: 0.008,
18 malletMass: 0.02,
19 malletSpeed: 3,
20 feltK: 1e8,
21 feltP: 2.5,
22 strikeVel: 1,
23 forcePeak: 50,
24 forceMs: 1,
25 pressAmp: 0.003,
26 pickupMode: 'sum',
27 pickupR: 0.5,
28 pickupAngle: 120,
29 pickupAxis: 'y',
30 duration: 1.5,
31 fs: 48000,
32 cfl: 0.5,
33 frameRate: 2000,
34};
36export interface DrumPreset {
37 name: string;
38 description: string;
39 params: DrumParams;
42export const DRUM_PRESETS: DrumPreset[] = [
43 {
44 name: 'Tom, fast (softened in-plane)',
45 description:
46 '30 cm head, ~470 beads, 1500 N/m, ideal fundamental ~194 Hz. In-plane springs softened about 70x for speed: small-amplitude pitch is unchanged, but large hits glide and couple more than a real head.',
47 params: fast,
48 },
49 {
50 name: 'Tom, realistic Mylar (slow)',
51 description:
52 'Same head with Mylar-like in-plane stiffness (E·t = 8.6e5 N/m). Accurate in-plane behaviour, about 6x more time steps.',
53 params: { ...fast, inPlane: 8.6e5 },
54 },
55 {
56 name: 'Hard hit near the rim',
57 description: 'Fast head, light hard mallet at 4 m/s close to the rim: short contact, bright attack, many modes.',
58 params: { ...fast, excR: 0.8, malletMass: 0.01, malletSpeed: 4, feltK: 1e9, feltP: 2.8, excWidth: 0.005 },
59 },
60 {
61 name: 'Soft mallet in the centre',
62 description: 'Heavy soft mallet at the centre: long contact, mostly the axisymmetric modes, dark sound.',
63 params: { ...fast, excR: 0, malletMass: 0.05, malletSpeed: 1.5, feltK: 2e6, feltP: 2.3, excWidth: 0.015 },
64 },
65 {
66 name: 'Small coarse drum',
67 description: '6 rings (~130 beads): runs quickly; the coarse lattice is audibly more inharmonic than a real head.',
68 params: { ...fast, diameter: 0.2, rings: 6, excWidth: 0.01 },
69 },
70];
↑↓ move↵openescclose