{"abstract":"Middle C is labelled C5 and every other key also reports an octave one too high.","category":"Music interval and transposition theory","checks":8,"contract":"Input [midi, fifths] with midi 0..127 and fifths -7..7. Use flat names when fifths < 0, sharp names otherwise; in keys with at least six sharps pitch class 5 is E#, with seven sharps pitch class 0 is B# of the previous octave, and with at least six flats pitch class 11 is Cb of the next octave. Octave -1 starts at key 0. Invalid input returns None.","evaluation_group":"w2-music-interval-midi-spelling-key","failed_approach":"Clamping the lowest octave to 0 relabels keys 0..11 as octave 0 instead of octave -1.","family":"w2-music-interval-midi-spelling-key-octave-origin","id":"FA-80866","implementations":{"attempt":{"sha256":"6c097453cba0af02a9dc791a3f53fb79a19d002448ad944086272e3da148a389","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or f < -7 or f > 7:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12 - 1 if m >= 12 else 0\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, -1], 'Db4'), ([0, 0], 'C-1'), ([128, 0], None), ([-1, 0], None), ([60, 8], None), ([60, -8], None), ([5, 6], 'E#-1')], [([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([1, -3], 'Db-1'), ([60, -8], None), ([0, 7], 'B#-2')], [([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([0, 0], 'C-1'), ([11, 0], 'B-1')], [([61, 1], 'C#4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([1, -3], 'Db-1'), ([5, 6], 'E#-1')], [([70, -2], 'Bb4'), ([65, 6], 'E#4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([60, 7], 'B#3'), ([48, 7], 'B#2'), ([11, 0], 'B-1'), ([0, 7], 'B#-2')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"3f6c38e806af7b7af57ee83e5b7d20c6bea839e4b61bcdebd0d73e2bd73b6391","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or f < -7 or f > 7:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, -1], 'Db4'), ([0, 0], 'C-1'), ([128, 0], None), ([-1, 0], None), ([60, 8], None), ([60, -8], None), ([5, 6], 'E#-1')], [([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([1, -3], 'Db-1'), ([60, -8], None), ([0, 7], 'B#-2')], [([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([0, 0], 'C-1'), ([11, 0], 'B-1')], [([61, 1], 'C#4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([1, -3], 'Db-1'), ([5, 6], 'E#-1')], [([70, -2], 'Bb4'), ([65, 6], 'E#4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([60, 7], 'B#3'), ([48, 7], 'B#2'), ([11, 0], 'B-1'), ([0, 7], 'B#-2')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"0d5df399688cd58e7509792537d612461a0b183c3ebf37648dd78d1e95ab9815","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    if not isinstance(x, list) or len(x) != 2:\n        return None\n    m, f = x\n    if not isinstance(m, int) or m < 0 or m > 127:\n        return None\n    if not isinstance(f, int) or f < -7 or f > 7:\n        return None\n    sharps = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    flats = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B']\n    table = flats if f < 0 else sharps\n    pc = m % 12\n    octave = m // 12 - 1\n    name = table[pc]\n    if f >= 6 and pc == 5:\n        name = 'E#'\n    if f == 7 and pc == 0:\n        name = 'B#'\n        octave -= 1\n    if f <= -6 and pc == 11:\n        name = 'Cb'\n        octave += 1\n    return name + str(octave)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[([60, 0], 'C4'), ([61, -1], 'Db4'), ([0, 0], 'C-1'), ([128, 0], None), ([-1, 0], None), ([60, 8], None), ([60, -8], None), ([5, 6], 'E#-1')], [([60, 0], 'C4'), ([61, 0], 'C#4'), ([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([1, -3], 'Db-1'), ([60, -8], None), ([0, 7], 'B#-2')], [([61, -1], 'Db4'), ([61, 1], 'C#4'), ([70, -2], 'Bb4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([0, 0], 'C-1'), ([11, 0], 'B-1')], [([61, 1], 'C#4'), ([70, 2], 'A#4'), ([65, 6], 'E#4'), ([65, 5], 'F4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([1, -3], 'Db-1'), ([5, 6], 'E#-1')], [([70, -2], 'Bb4'), ([65, 6], 'E#4'), ([65, 7], 'E#4'), ([65, -6], 'F4'), ([60, 7], 'B#3'), ([48, 7], 'B#2'), ([11, 0], 'B-1'), ([0, 7], 'B#-2')]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"oracle %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model with a stipulated toy contract; it is not a complete music notation or theory engine. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-music-interval-midi-spelling-key-octave-origin","generated_at":"2026-09-29T14:49:57.945110+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Pitch spelling and interval arithmetic decide the notes that notation, transposition and analysis tools display or play.","repair":"Restore the octave origin step so that it reads `octave = m // 12 - 1`.","root_cause":"The octave label is the plain quotient by twelve, forgetting that key 0 belongs to octave -1.","sha256":"a3f7172a9397041874cb1fc5e7ce787983b295acc10e4e42ba2e345711e88fec","title":"Key-aware MIDI note spelling: octave label one too high · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.73,"exit_code":1,"observations":[{"actual":"C4","check":"oracle 0","expected":"C4","passed":true},{"actual":"Db4","check":"oracle 1","expected":"Db4","passed":true},{"actual":"C0","check":"oracle 2","expected":"C-1","passed":false},{"actual":null,"check":"oracle 3","expected":null,"passed":true},{"actual":null,"check":"oracle 4","expected":null,"passed":true},{"actual":null,"check":"oracle 5","expected":null,"passed":true},{"actual":null,"check":"oracle 6","expected":null,"passed":true},{"actual":"E#0","check":"oracle 7","expected":"E#-1","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C4\", \"expected\": \"C4\", \"passed\": true}, {\"check\": \"oracle 1\", \"actual\": \"Db4\", \"expected\": \"Db4\", \"passed\": true}, {\"check\": \"oracle 2\", \"actual\": \"C0\", \"expected\": \"C-1\", \"passed\": false}, {\"check\": \"oracle 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 7\", \"actual\": \"E#0\", \"expected\": \"E#-1\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.394,"exit_code":1,"observations":[{"actual":"C5","check":"oracle 0","expected":"C4","passed":false},{"actual":"Db5","check":"oracle 1","expected":"Db4","passed":false},{"actual":"C0","check":"oracle 2","expected":"C-1","passed":false},{"actual":null,"check":"oracle 3","expected":null,"passed":true},{"actual":null,"check":"oracle 4","expected":null,"passed":true},{"actual":null,"check":"oracle 5","expected":null,"passed":true},{"actual":null,"check":"oracle 6","expected":null,"passed":true},{"actual":"E#0","check":"oracle 7","expected":"E#-1","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C5\", \"expected\": \"C4\", \"passed\": false}, {\"check\": \"oracle 1\", \"actual\": \"Db5\", \"expected\": \"Db4\", \"passed\": false}, {\"check\": \"oracle 2\", \"actual\": \"C0\", \"expected\": \"C-1\", \"passed\": false}, {\"check\": \"oracle 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 7\", \"actual\": \"E#0\", \"expected\": \"E#-1\", \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.14,"exit_code":0,"observations":[{"actual":"C4","check":"oracle 0","expected":"C4","passed":true},{"actual":"Db4","check":"oracle 1","expected":"Db4","passed":true},{"actual":"C-1","check":"oracle 2","expected":"C-1","passed":true},{"actual":null,"check":"oracle 3","expected":null,"passed":true},{"actual":null,"check":"oracle 4","expected":null,"passed":true},{"actual":null,"check":"oracle 5","expected":null,"passed":true},{"actual":null,"check":"oracle 6","expected":null,"passed":true},{"actual":"E#-1","check":"oracle 7","expected":"E#-1","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"oracle 0\", \"actual\": \"C4\", \"expected\": \"C4\", \"passed\": true}, {\"check\": \"oracle 1\", \"actual\": \"Db4\", \"expected\": \"Db4\", \"passed\": true}, {\"check\": \"oracle 2\", \"actual\": \"C-1\", \"expected\": \"C-1\", \"passed\": true}, {\"check\": \"oracle 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"oracle 7\", \"actual\": \"E#-1\", \"expected\": \"E#-1\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}