{
  "schema": "astrune-task-cases/1",
  "date": "2026-11-01",
  "sourceRelease": "astrune-local-20261101-16a",
  "capturedAt": "2026-11-01T15:13:01.294Z",
  "scope": "Actual public browser workflows using original teaching MIDI. Not audio-transcription accuracy, human listening, or game-device acceptance.",
  "runs": [
    {
      "name": "genshin-unshifted",
      "kind": "game",
      "sourceNoteCount": 13,
      "outputNoteCount": 8,
      "transposeSemitones": 0,
      "unmatched": 5,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": false,
        "keyFit": false
      },
      "manifestFile": "genshin-unshifted-manifest.json",
      "svg": "genshin-unshifted-score-01.svg",
      "png": "genshin-unshifted.png",
      "package": "genshin-unshifted.zip"
    },
    {
      "name": "genshin-transposed",
      "kind": "game",
      "sourceNoteCount": 13,
      "outputNoteCount": 12,
      "transposeSemitones": -2,
      "unmatched": 1,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": false,
        "keyFit": true
      },
      "manifestFile": "genshin-transposed-manifest.json",
      "svg": "genshin-transposed-score-01.svg",
      "png": "genshin-transposed.png",
      "package": "genshin-transposed.zip"
    },
    {
      "name": "genshin-fitted",
      "kind": "game",
      "sourceNoteCount": 13,
      "outputNoteCount": 12,
      "transposeSemitones": -2,
      "unmatched": 1,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "genshin-fitted-manifest.json",
      "svg": "genshin-fitted-score-01.svg",
      "png": "genshin-fitted.png",
      "package": "genshin-fitted.zip"
    },
    {
      "name": "zither-fitted",
      "kind": "game",
      "sourceNoteCount": 13,
      "outputNoteCount": 12,
      "transposeSemitones": -2,
      "unmatched": 1,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-floral-zither",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "zither-fitted-manifest.json",
      "svg": "zither-fitted-score-01.svg",
      "png": "zither-fitted.png",
      "package": "zither-fitted.zip"
    },
    {
      "name": "sky-fitted",
      "kind": "game",
      "sourceNoteCount": 13,
      "outputNoteCount": 12,
      "transposeSemitones": -2,
      "unmatched": 1,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "sky-15-key",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "sky-fitted-manifest.json",
      "svg": "sky-fitted-score-01.svg",
      "png": "sky-fitted.png",
      "package": "sky-fitted.zip"
    },
    {
      "name": "piano-grand-staff",
      "kind": "piano",
      "sourceNoteCount": 12,
      "outputNoteCount": 12,
      "transposeSemitones": 0,
      "unmatched": 0,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "piano-grand-staff-manifest.json",
      "svg": "piano-grand-staff-score-01.svg",
      "png": "piano-grand-staff.png",
      "package": "piano-grand-staff.zip"
    },
    {
      "name": "octave-correction",
      "intentionalPractice": true,
      "wrongPitch": 76,
      "correctedPitch": 64,
      "startSec": 1.6,
      "before": "octave-before.mid",
      "after": "octave-after.mid",
      "beforeImage": "octave-before.png",
      "afterImage": "octave-after.png"
    },
    {
      "name": "octave-before-score",
      "kind": "piano",
      "sourceNoteCount": 8,
      "outputNoteCount": 8,
      "transposeSemitones": 0,
      "unmatched": 0,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "octave-before-score-manifest.json",
      "svg": "octave-before-score-score-01.svg",
      "png": "octave-before-score.png",
      "package": "octave-before-score.zip"
    },
    {
      "name": "octave-after-score",
      "kind": "piano",
      "sourceNoteCount": 8,
      "outputNoteCount": 8,
      "transposeSemitones": 0,
      "unmatched": 0,
      "settings": {
        "bpm": 120,
        "meter": "4/4",
        "useSourceTiming": true,
        "splitPitch": 60,
        "tonicMidi": 62,
        "gamePresetId": "genshin-windsong-lyre",
        "octaveFit": true,
        "keyFit": true
      },
      "manifestFile": "octave-after-score-manifest.json",
      "svg": "octave-after-score-score-01.svg",
      "png": "octave-after-score.png",
      "package": "octave-after-score.zip"
    }
  ],
  "readback": {
    "status": "PASS",
    "scope": "MIDI structure and note readback, no listening acceptance",
    "correction": {
      "beforePitch": 76,
      "afterPitch": 64,
      "changedNotes": 1,
      "totalNotes": 8,
      "unchangedTiming": true
    },
    "piano": {
      "notes": 12,
      "voices": 2
    },
    "beforeNotes": [
      {
        "pitch": 60,
        "startSec": 0,
        "durationSec": 0.7
      },
      {
        "pitch": 62,
        "startSec": 0.8,
        "durationSec": 0.7
      },
      {
        "pitch": 76,
        "startSec": 1.6,
        "durationSec": 0.6999999999999997
      },
      {
        "pitch": 65,
        "startSec": 2.4,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 67,
        "startSec": 3.2,
        "durationSec": 0.6999999999999997
      },
      {
        "pitch": 69,
        "startSec": 4,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 71,
        "startSec": 4.8,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 72,
        "startSec": 5.6,
        "durationSec": 0.7000000000000002
      }
    ],
    "afterNotes": [
      {
        "pitch": 60,
        "startSec": 0,
        "durationSec": 0.7
      },
      {
        "pitch": 62,
        "startSec": 0.8,
        "durationSec": 0.7
      },
      {
        "pitch": 64,
        "startSec": 1.6,
        "durationSec": 0.6999999999999997
      },
      {
        "pitch": 65,
        "startSec": 2.4,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 67,
        "startSec": 3.2,
        "durationSec": 0.6999999999999997
      },
      {
        "pitch": 69,
        "startSec": 4,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 71,
        "startSec": 4.8,
        "durationSec": 0.7000000000000002
      },
      {
        "pitch": 72,
        "startSec": 5.6,
        "durationSec": 0.7000000000000002
      }
    ]
  },
  "files": [
    {
      "name": "game-input.mid",
      "bytes": 161,
      "sha256": "f574eea4d93638f1455ddb57779f03faffb3f34a2132a3a273d7a223f3810510"
    },
    {
      "name": "piano-input.mid",
      "bytes": 151,
      "sha256": "d0faeb67751c9fbe17d109ee3118cbdaf5bef835f5123d3261ad9913ec3e55b1"
    },
    {
      "name": "octave-input.mid",
      "bytes": 116,
      "sha256": "9b3e5c88568e97778f8fb558de0caa20a02e5abbe437d4066547e3e63a779ade"
    },
    {
      "name": "octave-reference.mid",
      "bytes": 116,
      "sha256": "80cfb29b54b2919ae83922b6ded48278c9746b52b45789dbd33d3b3d3d13f3b1"
    },
    {
      "name": "octave-reference.wav",
      "bytes": 282284,
      "sha256": "f2bea72656f76d9ab4d3aa6467cdfb060a140baacd7e7a49ff05564bdd12b818"
    },
    {
      "name": "reference.json",
      "bytes": 7061,
      "sha256": "8f5dc1b669256b281eea9a36206c6cdcd84795049c85562979d3704f509ab7a4"
    },
    {
      "name": "LICENSE.txt",
      "bytes": 212,
      "sha256": "5fe547f3680ba6057f6e9ec18e41c7e7a8a5f3e9198f343a8715d351d191d005"
    },
    {
      "name": "genshin-unshifted.zip",
      "bytes": 1023034,
      "sha256": "bc8653b4d1adf2e4898372791caa8619a456279e2947ad62f7ad2e847c4b0966"
    },
    {
      "name": "genshin-unshifted-score-01.svg",
      "bytes": 1009923,
      "sha256": "645238ea047c344941ce2edcb1f9d3092b084236c3e031576c825f1c00760963"
    },
    {
      "name": "genshin-unshifted-manifest.json",
      "bytes": 10758,
      "sha256": "f5a8ddf9b9afca26eca044d780551f3288a8580ae2074bf54aa2e84936e9372f"
    },
    {
      "name": "genshin-unshifted-score.mid",
      "bytes": 148,
      "sha256": "580de361cf15c6d086ff618db7bac0d7a3b5aff6754bcfc3b8723302db9ad478"
    },
    {
      "name": "genshin-unshifted-note-mapping.tsv",
      "bytes": 1043,
      "sha256": "3cbc39dbc13c00d719a3987e0bd71bdcfd21cc5240e98dcc3a273881a462411f"
    },
    {
      "name": "genshin-transposed.zip",
      "bytes": 1024720,
      "sha256": "86e910290896e9dbd6aa055ed44172831b0e9aa381aeab1fe63ecaf1fd88d577"
    },
    {
      "name": "genshin-transposed-score-01.svg",
      "bytes": 1009642,
      "sha256": "b3761999090be7043b43a5ccd5ea8badcce0e8d6423b4030ffec54c643734be4"
    },
    {
      "name": "genshin-transposed-manifest.json",
      "bytes": 12608,
      "sha256": "14ec7cba390f31699d1164e913037dd97b57d234d7a91d2eb5aa18265db228f7"
    },
    {
      "name": "genshin-transposed-score.mid",
      "bytes": 184,
      "sha256": "5a581fa4d590eb5a3f7d2ab772bf1da49bdcaceb97a6f0ea7ecb9d13ceda1349"
    },
    {
      "name": "genshin-transposed-note-mapping.tsv",
      "bytes": 993,
      "sha256": "d28a13374805de4c2050a4abbf7c5806fcaebf4860f48d9a17c39820ca7cc03f"
    },
    {
      "name": "genshin-fitted.zip",
      "bytes": 1024749,
      "sha256": "27896c0c9676c3edb22cf1d825daafbef16cbfa945d3785684cfd14e7969b66d"
    },
    {
      "name": "genshin-fitted-score-01.svg",
      "bytes": 1009642,
      "sha256": "b3761999090be7043b43a5ccd5ea8badcce0e8d6423b4030ffec54c643734be4"
    },
    {
      "name": "genshin-fitted-manifest.json",
      "bytes": 12622,
      "sha256": "f6e8fe54bc14cd1e4968ac3368ed2959211c5edc5c1d864953d0fc20797a96e3"
    },
    {
      "name": "genshin-fitted-score.mid",
      "bytes": 184,
      "sha256": "5a581fa4d590eb5a3f7d2ab772bf1da49bdcaceb97a6f0ea7ecb9d13ceda1349"
    },
    {
      "name": "genshin-fitted-note-mapping.tsv",
      "bytes": 993,
      "sha256": "d28a13374805de4c2050a4abbf7c5806fcaebf4860f48d9a17c39820ca7cc03f"
    },
    {
      "name": "zither-fitted.zip",
      "bytes": 1024734,
      "sha256": "9ff2105900153d812c9d445ba4a634109f4e6a2907780e8e66e481e54b01b0f5"
    },
    {
      "name": "zither-fitted-score-01.svg",
      "bytes": 1009639,
      "sha256": "eea59933029db02a65ee3f3d186f70296f3af4f81560a040452bca93511e0b1c"
    },
    {
      "name": "zither-fitted-manifest.json",
      "bytes": 12616,
      "sha256": "32ba99e304447da890f985341558451c2d464d24d106b24f13bc5aeed75e4a0f"
    },
    {
      "name": "zither-fitted-score.mid",
      "bytes": 181,
      "sha256": "c541e234449f044eee4a09ce8dbfa7e0064cf006b58727fa069a71e92fa0b446"
    },
    {
      "name": "zither-fitted-note-mapping.tsv",
      "bytes": 993,
      "sha256": "d28a13374805de4c2050a4abbf7c5806fcaebf4860f48d9a17c39820ca7cc03f"
    },
    {
      "name": "sky-fitted.zip",
      "bytes": 1022417,
      "sha256": "cb6ec9d809c4626662a4369f1e9b0d943792834b250da7bc5f42e6ef43a0844a"
    },
    {
      "name": "sky-fitted-score-01.svg",
      "bytes": 1007337,
      "sha256": "72b8d80df18cbdb4404ffe813f06abdeff5d7e32308e535a5c4f76f06d96953c"
    },
    {
      "name": "sky-fitted-manifest.json",
      "bytes": 12603,
      "sha256": "5050c335bb66780a75b034557087906023262f03707e583287ebca0dd3ffaff7"
    },
    {
      "name": "sky-fitted-score.mid",
      "bytes": 180,
      "sha256": "8e1c1714e587db4dd15675db20adb6717677da4382a364966d231d3a85fd2348"
    },
    {
      "name": "sky-fitted-note-mapping.tsv",
      "bytes": 993,
      "sha256": "586cccfb49dda28b7619cf292da9a781e17901a9279428188e31fa355ca7a7bc"
    },
    {
      "name": "piano-grand-staff.zip",
      "bytes": 1092145,
      "sha256": "4e91841e2a2be86be00343d853997aeef63c0b13257dfb62e5a09cec8a968397"
    },
    {
      "name": "piano-grand-staff-score-01.svg",
      "bytes": 1025243,
      "sha256": "9071cef4f7ecf9d56952099d2e3a27111de6303d85d430e942a56d7dcb8ddcdd"
    },
    {
      "name": "piano-grand-staff-manifest.json",
      "bytes": 38603,
      "sha256": "c972d182900de81929317e852e96333f34d22adc7bbcd7d79d233c5ae2d4b9c3"
    },
    {
      "name": "piano-grand-staff-score.mid",
      "bytes": 216,
      "sha256": "b1a59d34b40ce483ed1890c434952f10874d277aea92e885b0e7cf46c816d5f3"
    },
    {
      "name": "piano-grand-staff-score.musicxml",
      "bytes": 26014,
      "sha256": "410b22a8cf666d62f63ee9572fb853c4a1798c8c7dcd77a126f35815adc141fe"
    },
    {
      "name": "piano-grand-staff-note-mapping.tsv",
      "bytes": 1006,
      "sha256": "e9a531a4ff78c957ab61a6b91153c3735605a99b9d0791fe41eab980d9363dd4"
    },
    {
      "name": "octave-before-score.zip",
      "bytes": 1050539,
      "sha256": "3c6651fc9bc8560a1eb765dc5819cee314db9c012bb138e9d4f137c3f15951e0"
    },
    {
      "name": "octave-before-score-score-01.svg",
      "bytes": 1012231,
      "sha256": "e88bc1ed5aaa69353da9154967d0f321fad7f23ce4f7676cdf7d2b53f7d26094"
    },
    {
      "name": "octave-before-score-manifest.json",
      "bytes": 22841,
      "sha256": "1787afa42cca60da1583a266cb3985a9bf0fd51cae95979c2837ecbc0e1f3bb2"
    },
    {
      "name": "octave-before-score-score.mid",
      "bytes": 177,
      "sha256": "b9f6c241ba278c04a6254417bb6fe4e6f5b988470494056af2f43ebebacc533f"
    },
    {
      "name": "octave-before-score-score.musicxml",
      "bytes": 13530,
      "sha256": "5813ce2435b85316dd048b431c5b3d79141bb6870ee2d62f8030d6c94f075898"
    },
    {
      "name": "octave-before-score-note-mapping.tsv",
      "bytes": 695,
      "sha256": "5c0b318e2afd906552c965344561cdf716f91ece2199e3c8224d76f745dc8531"
    },
    {
      "name": "octave-after-score.zip",
      "bytes": 1050573,
      "sha256": "7064cce20908b53dce407152b61d98aaefaba74bd930b19dc95b23205d99bc4c"
    },
    {
      "name": "octave-after-score-score-01.svg",
      "bytes": 1012270,
      "sha256": "54e5c0a4d59be7dfdafde815cfe819b8b0602be9e53fb10b4548f07511da11ac"
    },
    {
      "name": "octave-after-score-manifest.json",
      "bytes": 22838,
      "sha256": "9803bdc687773c94fc6726ad94b3f339e291eb90fa7595b5bdd4bad09b6ecd93"
    },
    {
      "name": "octave-after-score-score.mid",
      "bytes": 177,
      "sha256": "a4f2a4551159efb5dd50f5728abb4d8ff0985c4c39759ef4a746309ddf400e60"
    },
    {
      "name": "octave-after-score-score.musicxml",
      "bytes": 13529,
      "sha256": "31d02334e048d697773e3bead446c26e565ad00c1d5173c5119efd84632de635"
    },
    {
      "name": "octave-after-score-note-mapping.tsv",
      "bytes": 695,
      "sha256": "7cc2beb3b5703fbe94e94615a229428bed7628d5f521e0ead1c7488470b75e4c"
    },
    {
      "name": "octave-before.mid",
      "bytes": 147,
      "sha256": "3009900b232bbeeabbd2b01c425dad79c2b8efb9fb31519a27ee5dc54676a859"
    },
    {
      "name": "octave-after.mid",
      "bytes": 147,
      "sha256": "7d447c3de579ad637020201df3ef1331477ab592442d7543f1860a4d53a08848"
    },
    {
      "name": "readback.json",
      "bytes": 1782,
      "sha256": "4380af7bc639f1a39c8182d4b3dc1c5041052210095ac211e2a74b533386f549"
    }
  ]
}
