{
  "python": "3.12.14 (main, Aug 25 2026, 13:50:33) [Clang 22.1.3 ]",
  "midoVersion": "1.3.3",
  "method": "Read PCM headers and exact samples with wave/struct; parse actual downloaded MIDI using file tempo with mido. No onset alignment or global shift. Count tracks, channels, note-ons and pan controller events. Compare full files byte-for-byte.",
  "inputs": [
    {
      "file": "alternating-stereo.wav",
      "channels": 2,
      "sampleRate": 44100,
      "frames": 141120,
      "bits": 16,
      "durationSeconds": 3.2,
      "sha256": "5bbe772a5eaf2acba038cce3b1566988f92d5449072a172573c83c2b4b425332"
    },
    {
      "file": "downmix-mono.wav",
      "channels": 1,
      "sampleRate": 44100,
      "frames": 141120,
      "bits": 16,
      "durationSeconds": 3.2,
      "sha256": "7c73c2cca51ad71de6f19e96180090c733e7d0118db1cf45c5425120f5a487c7"
    }
  ],
  "monoIsExactStereoAverage": true,
  "outputs": [
    {
      "file": "alternating-stereo.mid",
      "sha256": "98681faf9bf4379fd1017494e820034da4d401308d61e2b4ed680a6823d44804",
      "format": 0,
      "tracks": 1,
      "ticksPerBeat": 960,
      "channelNumbersZeroBased": [
        0
      ],
      "notes": 8,
      "pitchSequence": [
        60,
        64,
        67,
        72,
        69,
        65,
        62,
        60
      ],
      "pitchSequenceMatches": true,
      "controlChanges": [],
      "panCC10Count": 0,
      "noteOns": [
        {
          "pitch": 60,
          "seconds": 0,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 64,
          "seconds": 0.39739583333333334,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 67,
          "seconds": 0.7973958333333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 72,
          "seconds": 1.1973958333333332,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 69,
          "seconds": 1.5973958333333331,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 65,
          "seconds": 1.997395833333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 62,
          "seconds": 2.397395833333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 60,
          "seconds": 2.797395833333333,
          "velocity": 83,
          "channel": 0
        }
      ],
      "noteOffs": [
        {
          "pitch": 60,
          "seconds": 0.3026041666666667
        },
        {
          "pitch": 64,
          "seconds": 0.7026041666666667
        },
        {
          "pitch": 67,
          "seconds": 1.1026041666666666
        },
        {
          "pitch": 72,
          "seconds": 1.5026041666666665
        },
        {
          "pitch": 69,
          "seconds": 1.9026041666666664
        },
        {
          "pitch": 65,
          "seconds": 2.3026041666666663
        },
        {
          "pitch": 62,
          "seconds": 2.7026041666666663
        },
        {
          "pitch": 60,
          "seconds": 3.102604166666666
        }
      ],
      "maxAbsoluteOnsetErrorMs": 2.604166666667407,
      "events": [
        {
          "seconds": 0,
          "type": "set_tempo",
          "tempo": 500000,
          "time": 0
        },
        {
          "seconds": 0,
          "type": "program_change",
          "time": 0,
          "channel": 0,
          "program": 0
        },
        {
          "seconds": 0,
          "type": "note_on",
          "time": 0,
          "channel": 0,
          "note": 60,
          "velocity": 83
        },
        {
          "seconds": 0.3026041666666667,
          "type": "note_off",
          "time": 0.3026041666666667,
          "channel": 0,
          "note": 60,
          "velocity": 0
        },
        {
          "seconds": 0.39739583333333334,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 64,
          "velocity": 83
        },
        {
          "seconds": 0.7026041666666667,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 64,
          "velocity": 0
        },
        {
          "seconds": 0.7973958333333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 67,
          "velocity": 83
        },
        {
          "seconds": 1.1026041666666666,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 67,
          "velocity": 0
        },
        {
          "seconds": 1.1973958333333332,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 72,
          "velocity": 83
        },
        {
          "seconds": 1.5026041666666665,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 72,
          "velocity": 0
        },
        {
          "seconds": 1.5973958333333331,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 69,
          "velocity": 83
        },
        {
          "seconds": 1.9026041666666664,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 69,
          "velocity": 0
        },
        {
          "seconds": 1.997395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 65,
          "velocity": 83
        },
        {
          "seconds": 2.3026041666666663,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 65,
          "velocity": 0
        },
        {
          "seconds": 2.397395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 62,
          "velocity": 83
        },
        {
          "seconds": 2.7026041666666663,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 62,
          "velocity": 0
        },
        {
          "seconds": 2.797395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 60,
          "velocity": 83
        },
        {
          "seconds": 3.102604166666666,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 60,
          "velocity": 0
        },
        {
          "seconds": 3.1999999999999993,
          "type": "end_of_track",
          "time": 0.09739583333333333
        }
      ]
    },
    {
      "file": "downmix-mono.mid",
      "sha256": "98681faf9bf4379fd1017494e820034da4d401308d61e2b4ed680a6823d44804",
      "format": 0,
      "tracks": 1,
      "ticksPerBeat": 960,
      "channelNumbersZeroBased": [
        0
      ],
      "notes": 8,
      "pitchSequence": [
        60,
        64,
        67,
        72,
        69,
        65,
        62,
        60
      ],
      "pitchSequenceMatches": true,
      "controlChanges": [],
      "panCC10Count": 0,
      "noteOns": [
        {
          "pitch": 60,
          "seconds": 0,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 64,
          "seconds": 0.39739583333333334,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 67,
          "seconds": 0.7973958333333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 72,
          "seconds": 1.1973958333333332,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 69,
          "seconds": 1.5973958333333331,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 65,
          "seconds": 1.997395833333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 62,
          "seconds": 2.397395833333333,
          "velocity": 83,
          "channel": 0
        },
        {
          "pitch": 60,
          "seconds": 2.797395833333333,
          "velocity": 83,
          "channel": 0
        }
      ],
      "noteOffs": [
        {
          "pitch": 60,
          "seconds": 0.3026041666666667
        },
        {
          "pitch": 64,
          "seconds": 0.7026041666666667
        },
        {
          "pitch": 67,
          "seconds": 1.1026041666666666
        },
        {
          "pitch": 72,
          "seconds": 1.5026041666666665
        },
        {
          "pitch": 69,
          "seconds": 1.9026041666666664
        },
        {
          "pitch": 65,
          "seconds": 2.3026041666666663
        },
        {
          "pitch": 62,
          "seconds": 2.7026041666666663
        },
        {
          "pitch": 60,
          "seconds": 3.102604166666666
        }
      ],
      "maxAbsoluteOnsetErrorMs": 2.604166666667407,
      "events": [
        {
          "seconds": 0,
          "type": "set_tempo",
          "tempo": 500000,
          "time": 0
        },
        {
          "seconds": 0,
          "type": "program_change",
          "time": 0,
          "channel": 0,
          "program": 0
        },
        {
          "seconds": 0,
          "type": "note_on",
          "time": 0,
          "channel": 0,
          "note": 60,
          "velocity": 83
        },
        {
          "seconds": 0.3026041666666667,
          "type": "note_off",
          "time": 0.3026041666666667,
          "channel": 0,
          "note": 60,
          "velocity": 0
        },
        {
          "seconds": 0.39739583333333334,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 64,
          "velocity": 83
        },
        {
          "seconds": 0.7026041666666667,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 64,
          "velocity": 0
        },
        {
          "seconds": 0.7973958333333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 67,
          "velocity": 83
        },
        {
          "seconds": 1.1026041666666666,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 67,
          "velocity": 0
        },
        {
          "seconds": 1.1973958333333332,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 72,
          "velocity": 83
        },
        {
          "seconds": 1.5026041666666665,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 72,
          "velocity": 0
        },
        {
          "seconds": 1.5973958333333331,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 69,
          "velocity": 83
        },
        {
          "seconds": 1.9026041666666664,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 69,
          "velocity": 0
        },
        {
          "seconds": 1.997395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 65,
          "velocity": 83
        },
        {
          "seconds": 2.3026041666666663,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 65,
          "velocity": 0
        },
        {
          "seconds": 2.397395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 62,
          "velocity": 83
        },
        {
          "seconds": 2.7026041666666663,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 62,
          "velocity": 0
        },
        {
          "seconds": 2.797395833333333,
          "type": "note_on",
          "time": 0.09479166666666666,
          "channel": 0,
          "note": 60,
          "velocity": 83
        },
        {
          "seconds": 3.102604166666666,
          "type": "note_off",
          "time": 0.3052083333333333,
          "channel": 0,
          "note": 60,
          "velocity": 0
        },
        {
          "seconds": 3.1999999999999993,
          "type": "end_of_track",
          "time": 0.09739583333333333
        }
      ]
    }
  ],
  "midiFilesByteIdentical": true,
  "limits": "One original synthetic isolated melody; not a real-song accuracy result. MIDI-to-audio not tested because the site has no such exporter."
}
