1function P = cymbal2_defaults()
2% CYMBAL2_DEFAULTS Default parameters, following Samejima (2021) Table 1:
3% an 18-inch medium crash (45 cm diameter) modeled as a shallow spherical
4% shell, supported at the center by a washer of finite impedance and struck
5% by a mallet whose stick is an elastic beam held in a compliant grip.
6% The output duration is not a parameter: it is
7% (strike_count - 1) / strike_rate_hz + tail_s.
9% Shell geometry (a shallow spherical cap; rise sets the radius of curvature
10% Rs = radius^2 / (2 * rise))
11P.radius_m = 0.230;
12P.rise_m = 0.040;
13P.thickness_m = 0.001;
15% Material (bronze, per the paper's measured cymbal)
16P.youngs_modulus = 1.1e11;
17P.poisson_ratio = 0.33;
18P.density = 8860.0;
20% Damping: decay rate sigma0 + sigma1 * a^2 * k^2 at flexural wavenumber k
21P.sigma0 = 1.34; % s^-1, frequency-independent
22P.sigma1 = 1.2e-3; % s^-1 per unit nondimensional k^2
24% Support at the center: an SDOF washer per unit length of the inner
25% circumference, entering as the shear boundary condition at r = washer
26% radius. support_clamped = 1 replaces it with the rigid clamp of the
27% earlier literature (Bilbao 2010), which is worth hearing once.
28P.washer_radius_m = 0.029;
29P.washer_stiffness = 1.65e5; % N/m per m
30P.washer_mass = 0.0; % kg per m (paper sets 0)
31P.washer_damping = 0.0; % N s/m per m (paper sets 0)
32P.support_clamped = 0;
34% Mallet head (SDOF, Hertz-type nonlinear stiffness f = K * delta^alpha)
35P.head_radius_m = 0.025;
36P.head_mass_kg = 0.028;
37P.head_stiffness = 1.6e8; % N m^-alpha
38P.head_alpha = 2.54;
40% Mallet stick (Euler-Bernoulli beam, FEM)
41P.stick_length_m = 0.390;
42P.stick_area_m2 = 1.43139e-4;
43P.stick_youngs = 8.8e9;
44P.stick_density = 400.0;
45P.stick_inertia_m4 = 1.63044e-9;
46P.stick_damping_rate = 10.0; % mass-proportional, R = rate * M
47P.n_beam = 20; % beam elements (21 nodes)
49% Grip: 0 = rotational spring hand (loose grip), 1 = clamped hand (tight)
50P.grip_clamped = 0;
51P.grip_spring = 140.0; % N m/rad
53% Strike gesture: the hand accelerates downward to strike_velocity, coasts
54% until the head touches, holds briefly, and retracts to its rest height.
55% The paper prescribes constant acceleration to the same terminal speed
56% but never reverses, so it cannot play a second stroke. Because the stick
57% is compliant, the tip arrives somewhat slower than the hand.
58P.strike_velocity = 5.75; % peak hand speed, m/s; reproduces the
59 % character of the authors' published demo
60P.strike_accel = 250.0; % downstroke hand acceleration, m/s^2
61P.retract_accel = 2500.0; % wrist-snap retract acceleration, m/s^2
62P.strike_hold_ms = 0.5; % dwell between contact and retract
63P.strike_gap_m = -1; % rest clearance; <= 0 sizes it to the stroke
64P.strike_r = 0.6; % contact radius, 0 at the washer, 1 at the rim
65P.strike_theta_deg = 180.0;
66P.strike_count = 1;
67P.strike_rate_hz = 4.0;
68P.velocity_spread = 0.0; % relative velocity scatter of repeated strokes
69P.seed = 1;
71% Pickup: normal acceleration of the shell at one point, as in the paper
72P.pickup_r = 0.6;
73P.pickup_theta_deg = 0.0;
75% Discretization
76P.n_radial = 24; % radial grid intervals (the paper's N_r)
77P.n_theta = 60; % azimuthal grid points (the paper's N_theta)
78P.g_param = 0.2498; % free parameter of the implicit shell scheme
79P.phi_param = 0.7; % free parameter of the washer and beam schemes
81% Rendering / output
82P.sample_rate = 48000;
83P.oversample = 2; % simulation runs at oversample * sample_rate
84P.tail_s = 6.0; % the low modes carry T60 of about 5 s
85P.pre_delay_ms = 3.0;
86P.normalize = 1;
87P.peak_dbfs = -3.0;
88P.full_scale_accel = 4.0e4; % m/s^2 mapped to full scale when normalize = 0
89end