The cymbal2 model#
Every challenge in this repository is an instance of the model defined here. A challenge fixes the mid-surface profile , the thickness , the strike point and the output scale ; its README gives those and nothing else changes. The problem is to compute the pressure signal of the output section for six seconds and write it as a wav file.
Geometry#
The cymbal is a thin shell. Its mid-surface is the graph of a function over the annulus
and its thickness is . Both are functions of alone and are given per challenge. The rim and the edge of the hole are free. Below, subscripts , and denote partial derivatives, Greek indices run over , repeated Greek indices are summed, and is the Kronecker delta.
Unknowns and strains#
The unknowns are the displacements , , of the mid-surface point along the , and axes. The membrane strains are those of shallow-shell theory,
and the bending strains are .
Stress resultants#
The material is linearly elastic and isotropic, with Young's modulus , Poisson's ratio and density , and has a Kelvin-Voigt viscosity of time constant . The membrane forces and bending moments per unit length are
with , and .
Equations of motion#
The motion is defined by its weak form. For all test functions and , without constraint on either edge,
where is a loss rate, and are the strike force and footprint of the next section, and , are the variations of the strains at the current state,
Where the solution is smooth this is the strong form
together with the free-edge conditions that the weak form implies at and . The shell is at rest at : and .
The strike#
The cymbal is struck once by a drum stick, modeled as a point mass that moves along and interacts with the shell through a Hertz contact force. Let be the height of the stick tip above the undeformed surface point , with and . The force is spread over the footprint
which lies inside and integrates to one over . The surface height under the stick is the footprint average , the penetration is , and the contact force is
It acts on the stick upward, , and on the shell downward, as the traction along in the equations of motion. The stick is otherwise free: there is no gravity and no hand, and contact occurs whenever , including any later contact after the first rebound.
Output#
The output is the acoustic pressure at the listener point given by the Rayleigh integral of the transverse acceleration over the shell,
with taken as zero at negative times. This is the field of a planar source in a rigid baffle; the acoustic problem is not solved, and the air exerts no load on the shell.
Remarks#
The shell is free. The strains are invariant under the small rigid motions , (with , ), so the momentum and angular momentum that the strike imparts appear as a drift of that is linear in once the contact has ended, has no transverse acceleration, and does not enter ; the in-plane inertia of that drift is of relative order , about . The transverse displacement itself does contain the drift.
In the linear regime about the flat state, damps every mode at the rate and damps a mode of angular frequency at the rate .
Parameters common to all challenges#
| Symbol | Value | Unit | Meaning |
|---|---|---|---|
| 0.2032 | m | outer radius (16 in diameter) | |
| 0.006 | m | hole radius | |
| 110e9 | Pa | Young's modulus (B20 bell bronze) | |
| 0.34 | Poisson's ratio | ||
| 8800 | kg/m^3 | density | |
| 1.1 | 1/s | loss rate | |
| 1.2e-8 | s | Kelvin-Voigt time constant | |
| 0.02 | kg | stick tip mass | |
| 10 | m/s | stick speed at contact | |
| 1e9 | N/m^(3/2) | Hertz contact stiffness | |
| 0.005 | m | footprint radius | |
| 1.204 | kg/m^3 | air density | |
| 343 | m/s | speed of sound in air | |
| (0.65, 1.125, 0.75) | m | listener point |
All values are exact decimal numbers. The listener is 1.5 m from the origin, 30 degrees above the plane , at an azimuth of 60 degrees from the axis, on which every strike point lies. The stick values are provisional until the first solutions have been heard; they will be fixed before any solution is published, and a challenge is never changed after that.
Deliverable#
| Property | Value |
|---|---|
| channels | 1 |
| sample rate | 48000 Hz |
| number of samples | 288000 (6.0 s) |
| sample format | 32-bit IEEE float (WAVE_FORMAT_IEEE_FLOAT) |
| sample , for | |
output.signal_scale in the challenge's challenge.json, in Pa |
The first sample is at , the instant the stick touches the shell. Samples are pointwise values of with no anti-aliasing filter. Do not normalize the signal; absolute amplitude is compared.
Error measures#
Two relative errors against the reference solution are computed over the samples: the spectrogram error (primary; periodic Hann window of length 2048, hop 512, no padding) and the waveform error. The formulas are those of the string challenge. The spectrogram error ranks because the response to this strike is chaotic: solutions that agree in every band still differ in waveform after the first tenth of a second, and the waveform error is then near for any two of them.
Reference solution#
The reference is chosen automatically among the submitted solutions by the rule described in the repository README, unless reference_solution in challenge.json names one.
Optional field export#
A submission may provide the transverse displacement for visualization; it is not scored. The file is HDF5 with datasets x and y, float64, shape (61,), and the same for ; t, float64, shape (3001,), ; and u, float32, shape (3001, 61, 61), with u[k, j, i] in meters for grid points in and NaN elsewhere. The drift of the free shell is part of . Root attributes challenge_id, solution_id, quantity and units are recommended. The file is about 40 MB and belongs in git LFS or at an external URL.