Battuta article reproduction

Build the Rust binary from OliviaMIDI revision
7b5a0a894f4364962a2f49533c64bea8a31a08cb:
https://github.com/JX-Shen/OliviaMIDI/tree/7b5a0a894f4364962a2f49533c64bea8a31a08cb

Keep reproduce.py, original.mid and the combination/ directory together.
Requires Python 3, FluidSynth and ffmpeg, plus your own GeneralUser GS soundfont.
The original rendering record pins the soundfont SHA256.

python3 reproduce.py --mid /path/to/mid --soundfont /path/to/GeneralUser-GS.sf2 --out /path/to/new-directory

The script records four edit cases in both matching modes, checks every note
against the requested changes, renders the original eight bars, and renders
the four complete Burgmuller MIDI files before cutting aligned excerpts.
The excerpt uses frames 34816 through 243709 at 44100 Hz, with 20 ms fades at
both outer edges. There is no gain normalisation or per-version time shift.

original.mid is the original OliviaMIDI repository fixture. The audio made
from it is a new rendering, not a recording of an earlier conversation.

The combination inputs are recorded research candidates, not examples of a
released combine command. B-request.json and C-request.json retain the source
requests. Their combination was verified in the research record; this script
renders the supplied candidates rather than implementing that prototype.

Music source: J. F. F. Burgmuller, L'Arabesque, Op. 100.
Mutopia transcription maintained by Bas Wassink.
https://www.mutopiaproject.org/cgibin/piece-info.cgi?id=203
The source page declares Public Domain (checked 10 September 2026).
Research: https://github.com/JX-Shen/OliviaMIDI/issues/48

The soundfont is not included. No human listening preference, historical-audio
identity or universal renderer behaviour is claimed.
