/ challenges-old / cymbal2
Sign in
challenges-old / cymbal2
cymbal2 / README.md
20 lines · 3.6 KBCodeBlameHistory
f723da2cymbal2: four challenges on one thin-shell cymbal model with a stick strikeJeremy Magland 1# Instrument simulation challenges: cymbal2
d6a9b3fTwo challenges, each with three strikes at 0, 2 and 4 s; 7 s outputJeremy Magland 3This repository defines two simulation challenges on one geometrically nonlinear thin-shell model of a 16 inch crash cymbal struck by a drum stick, and publishes the comparison of every registered solution at [challenges/cymbal2/site](https://vault1.magland.org/challenges/cymbal2/site/). It follows the arrangement of the [string](https://vault1.magland.org/challenges/string), [plate](https://vault1.magland.org/challenges/plate) and [cymbal](https://vault1.magland.org/challenges/cymbal) repositories: the model is defined in the continuum, solutions live in separate registered repositories, and the shared [challenge-tools](https://vault1.magland.org/challenges/challenge-tools) package scores them against a reference chosen from among the submissions.
9469644First strike moved off the bell to 70 mm, just outside its edgeJeremy Magland 5The model is defined once, in [MODEL.md](MODEL.md): a shallow shell with in-plane inertia, Saint Venant-Kirchhoff through the thickness, Kelvin-Voigt and mass-proportional damping, free at both edges with its six rigid motions held, struck by a point mass through a Hertz contact, radiating to a listener 1.5 m away through the Rayleigh integral. Each challenge fixes the profile and the thickness. In both, the same stick lands three times, two seconds apart: just outside the bell, at half the radius, and near the rim, so that the difference in sound between a hit near the stiff center and a crash near the rim comes out of the same equations within one seven-second recording.
d6a9b3fTwo challenges, each with three strikes at 0, 2 and 4 s; 7 s outputJeremy Magland 7| ID | Geometry | Deliverable |
8| --- | --- | --- |
9| [cymbal2-flat-v1](challenges/cymbal2-flat-v1/README.md) | flat annulus, 1.0 mm | 7 s mono wav, 48 kHz, float32 |
10| [cymbal2-crash-v1](challenges/cymbal2-crash-v1/README.md) | bow, cosine bell, taper 1.2 to 0.7 mm | 7 s mono wav, 48 kHz, float32 |
12Each challenge lives in `challenges/<challenge-id>/` as a `README.md`, which together with MODEL.md is the specification, and a `challenge.json` with the parameters, output format, error measures and field-export grid in machine-readable form. The stick parameters and the output scales are provisional until the first solutions have been heard; once a solution is published, a challenge is never changed, and a corrected model gets a new ID.
14## Solution repositories and the registry
16The repositories that take part in the comparison are listed in [registry/solution-repos.json](registry/solution-repos.json). To register one, open a pull request adding an entry (repository, branch, path of its `solutions` directory). A solution repository contains `solutions/<challenge-id>/<submission-id>.json` files following the [submission schema](https://vault1.magland.org/challenges/challenge-tools/blob/main/schema.json), with wav files beside them or at URLs, and optionally field exports. The comparison workflow clones every registered repository at the head of its branch and runs on any push to this repository or when dispatched by hand (`mochi workflow run .mochi/workflows/results.yml --repo challenges/cymbal2`).
18## Scoring
20Every solution is compared with the reference under the two error measures of MODEL.md; the spectrogram error ranks, because the response is chaotic and waveforms of equally good solutions diverge within the first tenth of a second. The reference is chosen automatically from the accuracy orderings that submissions assert about their own solutions, by the rule described in the [string repository README](https://vault1.magland.org/challenges/string/blob/main/README.md#how-solutions-are-scored) and implemented in challenge-tools. A challenge may override the choice by naming a solution in `reference_solution` in its `challenge.json`.
↑↓ move↵openescclose