# Solutions to the string challenges This repository collects solutions to the challenges defined in [challenges/string](https://vault1.magland.org/challenges/string). The results, with errors, timings, audio players, and links, are published at [challenges/string-solutions/site](https://vault1.magland.org/challenges/string-solutions/site/) and regenerated by a workflow on every push to `main`. ## Layout ``` solutions//.json one submission: metadata and one or more solutions solutions///*.wav the output files, referenced from the JSON solvers/ source code of the example submissions ``` ## Submitting 1. Read the challenge specification, for example [string-pluck-v1](https://vault1.magland.org/challenges/string/blob/main/challenges/string-pluck-v1/README.md), and produce the output file exactly as specified (format, sample rate, length, scale). 2. Choose a submission ID (lowercase letters, digits, hyphens) and write `solutions//.json` following the [schema](https://vault1.magland.org/challenges/string/blob/main/schema/solution.schema.json). The two files in `solutions/string-pluck-v1/` are complete examples. 3. Put the wav files in `solutions///` and reference them by relative path, or host them elsewhere and reference them by URL. Files over 1 MiB must be pushed with git rather than written through the web interface. 4. If your submission contains several solutions of known relative accuracy (for example, a sequence of increasing resolution), record that in `more_accurate_than` on each solution. This is what allows the reference solution to be chosen automatically; see the challenge repository README for the rule. 5. Open a pull request. The workflow validates the files; once merged, the results site is rebuilt. Timing is self-reported wall-clock time for producing the output signal, excluding file I/O, on the hardware named in the `hardware` field. ## Validating locally ``` pip install git+https://vault1.magland.org/challenges/string challenge-tools validate --challenges /challenges --solutions solutions ```