function P = maraca_defaults() % MARACA_DEFAULTS Default parameters, mirroring the web app's params.ts. % The output duration is not a parameter: it is % stroke_count / stroke_rate_hz + tail_s. % Shell geometry (complete thin spherical shell) P.shell_radius_m = 0.034; P.shell_thickness_m = 0.0022; % Shell material (dried gourd / hardwood veneer scale) P.density = 720.0; P.youngs_modulus = 2.5e9; P.poisson_ratio = 0.30; P.stiffness_trim = 1.00; P.max_mode_l = 16; P.max_mode_hz = 22000.0; % Damping P.loss_factor = 0.015; P.loss_slope = 6.0e-7; P.radiation_loss = 1.0; % Grains (seed beads) P.grain_radius_m = 0.0015; P.grain_density = 1300.0; P.grain_youngs = 6.0e8; P.grain_size_spread = 0.25; P.restitution = 0.55; % Shake gesture / stochastic impact process P.stroke_rate_hz = 4.5; P.stroke_count = 8; P.accent_period = 2; P.accent_gain = 1.5; P.grain_count = 320; P.bounces_per_grain = 1.3; P.shake_velocity = 2.2; P.slosh_lag_ms = 14.0; P.burst_width_ms = 45.0; P.impact_spread_deg = 35.0; P.seed = 1; % Closed air cavity P.cavity_coupling = 1.0; % Radiation / listener P.direct_gain = 1.0; P.listener_x_m = 0.15; P.listener_y_m = 0.25; P.listener_z_m = 0.30; P.speed_of_sound = 343.0; P.air_density = 1.204; % Rendering / output P.sample_rate = 48000; P.oversample = 2; P.tail_s = 0.40; P.pre_delay_ms = 3.0; P.normalize = 1; P.peak_dbfs = -3.0; P.full_scale_pa = 20.0; end