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 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 seven seconds, during which the cymbal is struck three times, 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 inner edge is where the stand holds the cymbal: the felt washers clamp it there, and the model takes the clamp as rigid, so the displacement and the slope of vanish on that circle. The rim is free. The mounting hole and the metal under the felt, inside , are not part of the model. 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 small 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. The solution satisfies and on the inner edge , and so do the test functions; the rim carries no condition. For all such and ,
where and are loss coefficients, and are the force and footprint of the $i$th strike 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 clamped conditions at and the free-edge conditions that the weak form implies at . The shell is at rest at : and .
The strikes#
The cymbal is struck three times by a drum stick, at the times and points of the parameter table: on the outer flank of the bell, then on the bow at , then near the rim at , two seconds apart. The stick is a point mass that moves along and interacts with the shell through a Hertz contact force. The $i$th strike has the footprint
which lies inside and integrates to one over , and the surface height under it is the footprint average . Let , defined for , be the height of the tip of the $i$th stick. It meets the surface at with relative speed , wherever the motion of the shell has taken that surface,
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. Each stick is otherwise free: there is no gravity and no hand, it stays in the model after its rebound, and contact occurs whenever , including any later contact.
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 clamp at the mount is what makes the strike position matter. Struck on the bell, a shell whose center is free would move its whole bell as a piston on the bow and swallow the stick's energy into the bow's modes like any other hit; held at the mount, the bell hit loads the bell against the support, the stick rebounds, and mainly the bell's own high modes ring. The clamp also removes the rigid motions, so nothing needs to be said about drift. The felt's compliance and the slow swing of a real cymbal on its stand are neglected.
The losses are the three of plate synthesis. In the linear regime about a flat uniform state a bending mode of wavenumber and angular frequency decays at the rate , with . With the values below the sixty-decibel decay time is about 5 s below 500 Hz, 3.5 s at 2 kHz, 2 s at 5 kHz, 1.2 s at 10 kHz and 0.8 s at 15 kHz, roughly the ring of a crash cymbal; the viscous term is small in the audible range and gives the model a definite cutoff above it.
Parameters common to all challenges#
| Symbol | Value | Unit | Meaning |
|---|---|---|---|
| 0.2032 | m | outer radius (16 in diameter) | |
| 0.02 | m | mounting radius (clamped inner edge) | |
| 110e9 | Pa | Young's modulus (B20 bell bronze) | |
| 0.34 | Poisson's ratio | ||
| 8800 | kg/m^3 | density | |
| 1.1 | 1/s | frequency-independent loss rate | |
| 8e-5 | m^2/s | loss coefficient of the Laplacian term | |
| 1e-9 | s | Kelvin-Voigt time constant | |
| 0.02 | kg | stick tip mass | |
| 6 | m/s | stick speed at contact | |
| 1e9 | N/m^(3/2) | Hertz contact stiffness | |
| 0.005 | m | footprint radius | |
| 0, 2, 4 | s | strike times | |
| 0.045, 0.12, 0.185 | m | strike points on the axis: bell flank, bow, rim | |
| 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 the strike points lie. The strikes are the same in both challenges. On the crash cymbal the first lands on the outer flank of the bell (slope 0.29), the second on the bow, the third 18 mm from the rim on the thin edge; on the flat annulus they land at the same radii. The stick carries 0.36 J, a firm stroke rather than the hardest a drummer gives. 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 | 336000 (7.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 first 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 (3501,), ; and u, float32, shape (3501, 61, 61), with u[k, j, i] in meters for grid points in and NaN elsewhere. Root attributes challenge_id, solution_id, quantity and units are recommended. The file is about 50 MB and belongs in git LFS or at an external URL.