{
  "scope": "Explicit note matching by channel+key; no pedal, repeated-note overlap, routing or sound engine",
  "division": 480,
  "tempoMicrosecondsPerQuarter": 500000,
  "cases": [
    {
      "file": "matched-off.mid",
      "trace": [
        {
          "tick": 0,
          "status": "0x90",
          "channel": 1,
          "key": 60,
          "velocity": 80,
          "meaning": "on",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        },
        {
          "tick": 480,
          "status": "0x80",
          "channel": 1,
          "key": 60,
          "velocity": 0,
          "meaning": "off",
          "matchedActiveNote": true,
          "activeAfter": []
        }
      ],
      "unmatchedNoteOns": []
    },
    {
      "file": "wrong-channel-off.mid",
      "trace": [
        {
          "tick": 0,
          "status": "0x90",
          "channel": 1,
          "key": 60,
          "velocity": 80,
          "meaning": "on",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        },
        {
          "tick": 480,
          "status": "0x81",
          "channel": 2,
          "key": 60,
          "velocity": 0,
          "meaning": "off",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        }
      ],
      "unmatchedNoteOns": [
        [
          1,
          60
        ]
      ]
    },
    {
      "file": "wrong-key-off.mid",
      "trace": [
        {
          "tick": 0,
          "status": "0x90",
          "channel": 1,
          "key": 60,
          "velocity": 80,
          "meaning": "on",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        },
        {
          "tick": 480,
          "status": "0x80",
          "channel": 1,
          "key": 61,
          "velocity": 0,
          "meaning": "off",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        }
      ],
      "unmatchedNoteOns": [
        [
          1,
          60
        ]
      ]
    },
    {
      "file": "zero-velocity-off.mid",
      "trace": [
        {
          "tick": 0,
          "status": "0x90",
          "channel": 1,
          "key": 60,
          "velocity": 80,
          "meaning": "on",
          "matchedActiveNote": false,
          "activeAfter": [
            [
              1,
              60
            ]
          ]
        },
        {
          "tick": 480,
          "status": "0x90",
          "channel": 1,
          "key": 60,
          "velocity": 0,
          "meaning": "off",
          "matchedActiveNote": true,
          "activeAfter": []
        }
      ],
      "unmatchedNoteOns": []
    }
  ]
}
