{
  "date": "2026-11-06",
  "main_keyword": "audio to midi",
  "monthly_search_volume": null,
  "source_commit": "e7577a4b389d19db976fae605bbf2ce1d1a7c1a0",
  "method": "Two original MIDI controls rendered locally with exact production helper functions. Both WAVs selected in live Chrome WAV-to-MIDI at export BPM 120, final-release estimate enabled; native MIDI download links clicked. Ruby parser independently reads bytes, event tempo maps and note seconds.",
  "runs": {
    "constant120": {
      "input": {
        "bytes": 87,
        "sha256": "49069afcdd339c1d87ce15a133706fabc52b410baf2274a087b15277722090e6",
        "format": 0,
        "tracks": 1,
        "ppq": 480,
        "tempo_events": [
          {
            "tick": 0,
            "microseconds_per_quarter": 500000,
            "seconds": 0.0
          }
        ],
        "notes": [
          {
            "pitch": 60,
            "start_ticks": 0,
            "velocity": 88,
            "end_ticks": 360,
            "start_seconds": 0.0,
            "end_seconds": 0.375,
            "start_quarter_note_beats": 0.0
          },
          {
            "pitch": 62,
            "start_ticks": 480,
            "velocity": 88,
            "end_ticks": 840,
            "start_seconds": 0.5,
            "end_seconds": 0.875,
            "start_quarter_note_beats": 1.0
          },
          {
            "pitch": 64,
            "start_ticks": 960,
            "velocity": 88,
            "end_ticks": 1320,
            "start_seconds": 1.0,
            "end_seconds": 1.375,
            "start_quarter_note_beats": 2.0
          },
          {
            "pitch": 67,
            "start_ticks": 1440,
            "velocity": 88,
            "end_ticks": 1800,
            "start_seconds": 1.5,
            "end_seconds": 1.875,
            "start_quarter_note_beats": 3.0
          },
          {
            "pitch": 69,
            "start_ticks": 1920,
            "velocity": 88,
            "end_ticks": 2280,
            "start_seconds": 2.0,
            "end_seconds": 2.375,
            "start_quarter_note_beats": 4.0
          },
          {
            "pitch": 72,
            "start_ticks": 2400,
            "velocity": 88,
            "end_ticks": 2760,
            "start_seconds": 2.5,
            "end_seconds": 2.875,
            "start_quarter_note_beats": 5.0
          }
        ]
      },
      "output": {
        "bytes": 101,
        "sha256": "504d88ed8cb593c982d82b08e39a4b9ccb47ed2c4225e34ce36810f4ffe55278",
        "format": 0,
        "tracks": 1,
        "ppq": 480,
        "tempo_events": [
          {
            "tick": 0,
            "microseconds_per_quarter": 500000,
            "seconds": 0.0
          }
        ],
        "notes": [
          {
            "pitch": 60,
            "start_ticks": 0,
            "velocity": 88,
            "end_ticks": 401,
            "start_seconds": 0.0,
            "end_seconds": 0.4177083333333333,
            "start_quarter_note_beats": 0.0
          },
          {
            "pitch": 62,
            "start_ticks": 424,
            "velocity": 88,
            "end_ticks": 892,
            "start_seconds": 0.4416666666666667,
            "end_seconds": 0.9291666666666666,
            "start_quarter_note_beats": 0.8833333333333333
          },
          {
            "pitch": 64,
            "start_ticks": 892,
            "velocity": 88,
            "end_ticks": 1382,
            "start_seconds": 0.9291666666666666,
            "end_seconds": 1.4395833333333332,
            "start_quarter_note_beats": 1.8583333333333334
          },
          {
            "pitch": 67,
            "start_ticks": 1382,
            "velocity": 88,
            "end_ticks": 1850,
            "start_seconds": 1.4395833333333332,
            "end_seconds": 1.9270833333333333,
            "start_quarter_note_beats": 2.879166666666667
          },
          {
            "pitch": 69,
            "start_ticks": 1872,
            "velocity": 88,
            "end_ticks": 2341,
            "start_seconds": 1.95,
            "end_seconds": 2.4385416666666666,
            "start_quarter_note_beats": 3.9
          },
          {
            "pitch": 72,
            "start_ticks": 2341,
            "velocity": 88,
            "end_ticks": 2768,
            "start_seconds": 2.4385416666666666,
            "end_seconds": 2.8833333333333333,
            "start_quarter_note_beats": 4.877083333333333
          }
        ]
      },
      "onset_errors_seconds": [
        0.0,
        -0.05833333333333329,
        -0.07083333333333341,
        -0.060416666666666785,
        -0.050000000000000044,
        -0.06145833333333339
      ],
      "onset_error_sum": 0.30104166666666693,
      "onset_mae_formula": "sum(abs(output_start[i] - input_start[i])) / 6",
      "onset_mae_seconds": 0.050173611111111155,
      "output_start_intervals_seconds": [
        0.4416666666666667,
        0.4874999999999999,
        0.5104166666666666,
        0.5104166666666667,
        0.48854166666666665
      ],
      "tempo_map_recovered": true
    },
    "change120to90": {
      "input": {
        "bytes": 94,
        "sha256": "0286addf8e2b8289998252a849e619c5474949301691e10588d02b2cb8ea4fc3",
        "format": 0,
        "tracks": 1,
        "ppq": 480,
        "tempo_events": [
          {
            "tick": 0,
            "microseconds_per_quarter": 500000,
            "seconds": 0.0
          },
          {
            "tick": 1440,
            "microseconds_per_quarter": 666667,
            "seconds": 1.5
          }
        ],
        "notes": [
          {
            "pitch": 60,
            "start_ticks": 0,
            "velocity": 88,
            "end_ticks": 360,
            "start_seconds": 0.0,
            "end_seconds": 0.375,
            "start_quarter_note_beats": 0.0
          },
          {
            "pitch": 62,
            "start_ticks": 480,
            "velocity": 88,
            "end_ticks": 840,
            "start_seconds": 0.5,
            "end_seconds": 0.875,
            "start_quarter_note_beats": 1.0
          },
          {
            "pitch": 64,
            "start_ticks": 960,
            "velocity": 88,
            "end_ticks": 1320,
            "start_seconds": 1.0,
            "end_seconds": 1.375,
            "start_quarter_note_beats": 2.0
          },
          {
            "pitch": 67,
            "start_ticks": 1440,
            "velocity": 88,
            "end_ticks": 1800,
            "start_seconds": 1.5,
            "end_seconds": 2.0000002500000003,
            "start_quarter_note_beats": 3.0
          },
          {
            "pitch": 69,
            "start_ticks": 1920,
            "velocity": 88,
            "end_ticks": 2280,
            "start_seconds": 2.166667,
            "end_seconds": 2.6666672499999997,
            "start_quarter_note_beats": 4.0
          },
          {
            "pitch": 72,
            "start_ticks": 2400,
            "velocity": 88,
            "end_ticks": 2760,
            "start_seconds": 2.833334,
            "end_seconds": 3.33333425,
            "start_quarter_note_beats": 5.0
          }
        ]
      },
      "output": {
        "bytes": 101,
        "sha256": "2de26ffe085e6adddb1a538a0d5c26ebb9e0d2b8d5749940716d9564c53d911e",
        "format": 0,
        "tracks": 1,
        "ppq": 480,
        "tempo_events": [
          {
            "tick": 0,
            "microseconds_per_quarter": 500000,
            "seconds": 0.0
          }
        ],
        "notes": [
          {
            "pitch": 60,
            "start_ticks": 0,
            "velocity": 88,
            "end_ticks": 401,
            "start_seconds": 0.0,
            "end_seconds": 0.4177083333333333,
            "start_quarter_note_beats": 0.0
          },
          {
            "pitch": 62,
            "start_ticks": 424,
            "velocity": 88,
            "end_ticks": 892,
            "start_seconds": 0.4416666666666667,
            "end_seconds": 0.9291666666666666,
            "start_quarter_note_beats": 0.8833333333333333
          },
          {
            "pitch": 64,
            "start_ticks": 892,
            "velocity": 88,
            "end_ticks": 1382,
            "start_seconds": 0.9291666666666666,
            "end_seconds": 1.4395833333333332,
            "start_quarter_note_beats": 1.8583333333333334
          },
          {
            "pitch": 67,
            "start_ticks": 1382,
            "velocity": 88,
            "end_ticks": 2006,
            "start_seconds": 1.4395833333333332,
            "end_seconds": 2.089583333333333,
            "start_quarter_note_beats": 2.879166666666667
          },
          {
            "pitch": 69,
            "start_ticks": 2006,
            "velocity": 88,
            "end_ticks": 2653,
            "start_seconds": 2.089583333333333,
            "end_seconds": 2.7635416666666663,
            "start_quarter_note_beats": 4.179166666666666
          },
          {
            "pitch": 72,
            "start_ticks": 2653,
            "velocity": 88,
            "end_ticks": 3209,
            "start_seconds": 2.7635416666666663,
            "end_seconds": 3.3427083333333334,
            "start_quarter_note_beats": 5.527083333333334
          }
        ]
      },
      "onset_errors_seconds": [
        0.0,
        -0.05833333333333329,
        -0.07083333333333341,
        -0.060416666666666785,
        -0.07708366666666677,
        -0.06979233333333346
      ],
      "onset_error_sum": 0.3364593333333337,
      "onset_mae_formula": "sum(abs(output_start[i] - input_start[i])) / 6",
      "onset_mae_seconds": 0.05607655555555562,
      "output_start_intervals_seconds": [
        0.4416666666666667,
        0.4874999999999999,
        0.5104166666666666,
        0.6499999999999999,
        0.6739583333333332
      ],
      "tempo_map_recovered": false
    }
  },
  "rendered_wavs": [
    {
      "name": "constant120",
      "method": "Exact production parseMidi/synth/wav functions executed in local Node VM; not a browser renderer run",
      "sourceCommit": "e7577a4b389d19db976fae605bbf2ce1d1a7c1a0",
      "inputMidiSha256": "49069afcdd339c1d87ce15a133706fabc52b410baf2274a087b15277722090e6",
      "wavSha256": "de4fafaf9fedb7a635884df678efd1861a57dca621f8b5fc677e0facea30f2ea",
      "wavBytes": 148882,
      "frames": 74419,
      "sampleRate": 22050,
      "duration": 3.3750113378684805,
      "notes": [
        {
          "midi": 60,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 0,
          "keyEndTick": 360,
          "endTick": 360,
          "start": 0,
          "end": 0.375,
          "keyEnd": 0.375,
          "beat": 0,
          "keyBeats": 0.75
        },
        {
          "midi": 62,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 480,
          "keyEndTick": 840,
          "endTick": 840,
          "start": 0.5,
          "end": 0.875,
          "keyEnd": 0.875,
          "beat": 1,
          "keyBeats": 0.75
        },
        {
          "midi": 64,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 960,
          "keyEndTick": 1320,
          "endTick": 1320,
          "start": 1,
          "end": 1.375,
          "keyEnd": 1.375,
          "beat": 2,
          "keyBeats": 0.75
        },
        {
          "midi": 67,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 1440,
          "keyEndTick": 1800,
          "endTick": 1800,
          "start": 1.5,
          "end": 1.875,
          "keyEnd": 1.875,
          "beat": 3,
          "keyBeats": 0.75
        },
        {
          "midi": 69,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 1920,
          "keyEndTick": 2280,
          "endTick": 2280,
          "start": 2,
          "end": 2.375,
          "keyEnd": 2.375,
          "beat": 4,
          "keyBeats": 0.75
        },
        {
          "midi": 72,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 2400,
          "keyEndTick": 2760,
          "endTick": 2760,
          "start": 2.5,
          "end": 2.875,
          "keyEnd": 2.875,
          "beat": 5,
          "keyBeats": 0.75
        }
      ],
      "tempoMap": [
        {
          "tick": 0,
          "us": 500000,
          "seconds": 0
        }
      ]
    },
    {
      "name": "change120to90",
      "method": "Exact production parseMidi/synth/wav functions executed in local Node VM; not a browser renderer run",
      "sourceCommit": "e7577a4b389d19db976fae605bbf2ce1d1a7c1a0",
      "inputMidiSha256": "0286addf8e2b8289998252a849e619c5474949301691e10588d02b2cb8ea4fc3",
      "wavSha256": "b8d9fee5bbef993abcdec9a1c24831f7f4a245d56ee62c15ba52b246f32b3ee6",
      "wavBytes": 169096,
      "frames": 84526,
      "sampleRate": 22050,
      "duration": 3.8333786848072564,
      "notes": [
        {
          "midi": 60,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 0,
          "keyEndTick": 360,
          "endTick": 360,
          "start": 0,
          "end": 0.375,
          "keyEnd": 0.375,
          "beat": 0,
          "keyBeats": 0.75
        },
        {
          "midi": 62,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 480,
          "keyEndTick": 840,
          "endTick": 840,
          "start": 0.5,
          "end": 0.875,
          "keyEnd": 0.875,
          "beat": 1,
          "keyBeats": 0.75
        },
        {
          "midi": 64,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 960,
          "keyEndTick": 1320,
          "endTick": 1320,
          "start": 1,
          "end": 1.375,
          "keyEnd": 1.375,
          "beat": 2,
          "keyBeats": 0.75
        },
        {
          "midi": 67,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 1440,
          "keyEndTick": 1800,
          "endTick": 1800,
          "start": 1.5,
          "end": 2.0000002500000003,
          "keyEnd": 2.0000002500000003,
          "beat": 3,
          "keyBeats": 0.75
        },
        {
          "midi": 69,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 1920,
          "keyEndTick": 2280,
          "endTick": 2280,
          "start": 2.166667,
          "end": 2.6666672499999997,
          "keyEnd": 2.6666672499999997,
          "beat": 4,
          "keyBeats": 0.75
        },
        {
          "midi": 72,
          "velocity": 88,
          "channel": 0,
          "track": 0,
          "startTick": 2400,
          "keyEndTick": 2760,
          "endTick": 2760,
          "start": 2.833334,
          "end": 3.33333425,
          "keyEnd": 3.33333425,
          "beat": 5,
          "keyBeats": 0.75
        }
      ],
      "tempoMap": [
        {
          "tick": 0,
          "us": 500000,
          "seconds": 0
        },
        {
          "tick": 1440,
          "us": 666667,
          "seconds": 1.5
        }
      ]
    }
  ],
  "timing_formula": {
    "input_seconds": "Sum (segment_tick_length / 480 * segment_tempo_microseconds / 1000000)",
    "change_tick": 1440,
    "change_seconds": "1440 / 480 * 500000 / 1000000 = 1.5",
    "last_input_start_seconds": "1.5 + (2400 - 1440) / 480 * 666667 / 1000000 = 2.833334",
    "output_tick_to_seconds": "tick / 480 * 500000 / 1000000 for both actual downloads"
  }
}
