| # Output examples |
|
|
| **Elegy in C-sharp minor** — 608 notes, every one composed by the model (plan-driven: it states a |
| theme, develops it by fragmenting, inverting and transposing, then brings it back transformed). |
|
|
| Both files below contain **identical pitches**. Nothing was added, removed or re-pitched. The only |
| difference is *how they are played*. |
|
|
| | file | | |
| |---|---| |
| | `elegy_01_score_as_composed.mid` / `.mp3` | raw model output: no pedal, near-flat velocities, onsets square on the beat | |
| | `elegy_02_performed.mid` / `.mp3` | the same 608 notes performed — melody voiced above the accompaniment, chords rolled by choice, rubato around a felt pulse, 196 pedal events caught at harmony changes | |
|
|
| ## Why the pair matters |
|
|
| Play `01` and then `02`. The gap between them is the most useful thing we learned building this |
| model: **a dry-sounding symbolic generation is usually not a composition failure but an unperformed |
| one.** Pitch content and performance are separable layers, and performance carries far more of the |
| perceived quality than we expected. |
|
|
| There's an acoustic reason as well as a musical one. Staggering a chord's attacks by roughly 20–70 ms |
| spreads its beating partials out in time, which measurably lowers sensory roughness, so rolled chords |
| aren't merely more expressive than struck ones, they're *cleaner*. Quantising a dense passage onto a |
| grid makes it rougher, not just stiffer. |
|
|
| If you're evaluating this model (or any symbolic music model) on raw output, you're hearing about |
| half of what's there. |
|
|