/ challenges-old / cymbal2
Sign in
challenges-old / cymbal2
cymbal2 / README.md
20 lines · 3.6 KBPreviewCodeBlameHistoryRaw
1# Instrument simulation challenges: cymbal2
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.
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, clamped at the mounting radius and free at the rim, 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: on the bell, on the bow, and near the thin rim, so that the difference in sound between the ping of the bell, the tone of the bow and the crash of the edge comes out of the same equations within one seven-second recording.
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.65 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