1function P = maraca_defaults()
2% MARACA_DEFAULTS Default parameters, mirroring the web app's params.ts.
3% The output duration is not a parameter: it is
4% stroke_count / stroke_rate_hz + tail_s.
6% Shell geometry (complete thin spherical shell)
7P.shell_radius_m = 0.034;
8P.shell_thickness_m = 0.0022;
10% Shell material (dried gourd / hardwood veneer scale)
11P.density = 720.0;
12P.youngs_modulus = 2.5e9;
13P.poisson_ratio = 0.30;
14P.stiffness_trim = 1.00;
15P.max_mode_l = 16;
16P.max_mode_hz = 22000.0;
18% Damping
19P.loss_factor = 0.015;
20P.loss_slope = 6.0e-7;
21P.radiation_loss = 1.0;
23% Grains (seed beads)
24P.grain_radius_m = 0.0015;
25P.grain_density = 1300.0;
26P.grain_youngs = 6.0e8;
27P.grain_size_spread = 0.25;
28P.restitution = 0.55;
30% Shake gesture / stochastic impact process
31P.stroke_rate_hz = 4.5;
32P.stroke_count = 8;
33P.accent_period = 2;
34P.accent_gain = 1.5;
35P.grain_count = 320;
36P.bounces_per_grain = 1.3;
37P.shake_velocity = 2.2;
38P.slosh_lag_ms = 14.0;
39P.burst_width_ms = 45.0;
40P.impact_spread_deg = 35.0;
41P.seed = 1;
43% Closed air cavity
44P.cavity_coupling = 1.0;
46% Radiation / listener
47P.direct_gain = 1.0;
48P.listener_x_m = 0.15;
49P.listener_y_m = 0.25;
50P.listener_z_m = 0.30;
51P.speed_of_sound = 343.0;
52P.air_density = 1.204;
54% Rendering / output
55P.sample_rate = 48000;
56P.oversample = 2;
57P.tail_s = 0.40;
58P.pre_delay_ms = 3.0;
59P.normalize = 1;
60P.peak_dbfs = -3.0;
61P.full_scale_pa = 20.0;
62end