function P = cymbal_defaults() % CYMBAL_DEFAULTS Default parameters, mirroring the web app's params.ts. % The output duration is not a parameter: it is % (strike_count - 1) / strike_rate_hz + tail_s. % Plate geometry (a 16-inch crash-ride) P.radius_m = 0.2032; P.hole_radius_m = 0.0064; P.bell_radius_m = 0.0450; P.bell_height_m = 0.0170; P.bow_height_m = 0.0200; P.thickness_bell_m = 0.00115; P.thickness_rim_m = 0.00075; % Material (B20 bell bronze) P.density = 8700.0; P.youngs_modulus = 1.05e11; P.poisson_ratio = 0.33; P.stiffness_trim = 1.00; % Hammering and lathing: the departure from an exactly axisymmetric plate P.hammer_mix = 0.55; % strength of the hybridization of near neighbours P.hammer_bw = 0.05; % relative frequency window it acts over P.hammer_detune = 0.004; % relative scatter of the mode frequencies P.hammer_seed = 7; % Discretization / mode retention P.n_elements = 28; P.n_diameters = 56; % highest circumferential order solved for P.min_mode_hz = 40.0; P.max_mode_hz = 10000.0; % Damping P.damp_rate = 1.70; % s^-1, frequency-independent decay rate P.loss_factor = 2.0e-5; P.loss_slope = 3.0e-10; P.radiation_loss = 1.0; P.mount_loss = 3.0; % N s/m dashpot at the inner edge (felt and stand) % Stick (nylon-tip drumstick) P.tip_radius_m = 0.0050; P.stick_mass_kg = 0.030; P.stick_youngs = 5.0e9; P.restitution = 0.55; % Strike gesture P.strike_velocity = 3.0; P.strike_r = 0.94; % 0 at the hole, 1 at the rim P.strike_angle_deg = 40.0; % 0 = normal to the surface, 90 = tangential P.strike_count = 1; P.strike_rate_hz = 6.0; P.roll_r2 = 0.80; % second contact radius when strike_count > 1 P.timing_jitter_ms = 8.0; P.velocity_spread = 0.18; P.seed = 1; % Nonlinear cascade P.cascade_gain = 800.0; P.cascade_back = 0.45; % downward / upward transfer ratio P.cascade_ratio = 1.19; % frequency ratio of one transfer step (2^0.25) P.cascade_leak = 1.0; % 1 = energy leaving the top mode is lost P.cascade_step_ms = 1.0; P.turbulence = 0.0; % log-amplitude spread of the fluctuation (off) % Radiation / listener P.direct_gain = 1.0; P.dipole_scale = 1.0; P.n_azimuth = 224; % azimuthal samples in the listener transfer P.listener_x_m = 0.40; P.listener_y_m = 0.00; P.listener_z_m = 0.40; P.speed_of_sound = 343.0; P.air_density = 1.204; % Rendering / output P.sample_rate = 48000; P.oversample = 2; P.tail_s = 3.0; P.pre_delay_ms = 3.0; P.normalize = 1; P.peak_dbfs = -3.0; P.full_scale_pa = 5.0; end