{
  "started": "2026-10-06T21:06:36.608Z",
  "ended": "2026-10-06T21:06:36.854Z",
  "researchAnchor": "audio to midi",
  "approvedKeyword": "convert wav file to midi",
  "queueIndex": 15,
  "sourceCodeSHA256": "7f9c8b44a6ac99835b7e2f86c4f141385a1045396e40214c0afe6cee94e8f7ea",
  "source": {
    "rate": 44100,
    "channels": 1,
    "integerPCMbits": 16,
    "pitch": 69,
    "amplitude": 0.35,
    "edgeSeconds": 0.008
  },
  "method": "Generate five separate sustained A4 mono 16-bit PCM WAVs, varying only their duration and matching 8ms edges; parse actual sample bytes, call unchanged production downsample/detectNotes/buildMidi at all three sensitivities. Record the actual production analysis-window count. No browser decoder or UI involved.",
  "results": [
    {
      "seconds": 0.1,
      "file": "100ms.wav",
      "bytes": 8864,
      "sha256": "c8d44382e846c756215df6c88285ff11f7a27a5a25ad182643048e67aecb5efa",
      "sourceSamples": 4410,
      "analysisSamples": 1102,
      "analysisRate": 11025,
      "analysisWindows": 0,
      "modes": [
        {
          "mode": 1,
          "modeName": "Cleaner",
          "minimumGroupSpanFrames": 5,
          "noteCount": 0,
          "notes": [],
          "file": "100ms-mode1.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 2,
          "modeName": "Balanced",
          "minimumGroupSpanFrames": 4,
          "noteCount": 0,
          "notes": [],
          "file": "100ms-mode2.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 3,
          "modeName": "More notes",
          "minimumGroupSpanFrames": 3,
          "noteCount": 0,
          "notes": [],
          "file": "100ms-mode3.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        }
      ]
    },
    {
      "seconds": 0.2,
      "file": "200ms.wav",
      "bytes": 17684,
      "sha256": "ea5e1ffd8fb9a80fa1aa53d126057f01600b9de1d46152fa5c86b9d585fcd617",
      "sourceSamples": 8820,
      "analysisSamples": 2205,
      "analysisRate": 11025,
      "analysisWindows": 0,
      "modes": [
        {
          "mode": 1,
          "modeName": "Cleaner",
          "minimumGroupSpanFrames": 5,
          "noteCount": 0,
          "notes": [],
          "file": "200ms-mode1.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 2,
          "modeName": "Balanced",
          "minimumGroupSpanFrames": 4,
          "noteCount": 0,
          "notes": [],
          "file": "200ms-mode2.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 3,
          "modeName": "More notes",
          "minimumGroupSpanFrames": 3,
          "noteCount": 0,
          "notes": [],
          "file": "200ms-mode3.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        }
      ]
    },
    {
      "seconds": 0.3,
      "file": "300ms.wav",
      "bytes": 26504,
      "sha256": "c804b7e9079ccb539f7ac832b3b1015c0928db41e367520505161f2166d0875a",
      "sourceSamples": 13230,
      "analysisSamples": 3307,
      "analysisRate": 11025,
      "analysisWindows": 2,
      "modes": [
        {
          "mode": 1,
          "modeName": "Cleaner",
          "minimumGroupSpanFrames": 5,
          "noteCount": 0,
          "notes": [],
          "file": "300ms-mode1.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 2,
          "modeName": "Balanced",
          "minimumGroupSpanFrames": 4,
          "noteCount": 0,
          "notes": [],
          "file": "300ms-mode2.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 3,
          "modeName": "More notes",
          "minimumGroupSpanFrames": 3,
          "noteCount": 0,
          "notes": [],
          "file": "300ms-mode3.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        }
      ]
    },
    {
      "seconds": 0.4,
      "file": "400ms.wav",
      "bytes": 35324,
      "sha256": "1d4d12fd5bf85504c8675cc8ad622d32b8f9e5a49d151e2f21cc2f470aecd308",
      "sourceSamples": 17640,
      "analysisSamples": 4410,
      "analysisRate": 11025,
      "analysisWindows": 4,
      "modes": [
        {
          "mode": 1,
          "modeName": "Cleaner",
          "minimumGroupSpanFrames": 5,
          "noteCount": 0,
          "notes": [],
          "file": "400ms-mode1.mid",
          "bytes": 33,
          "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515"
        },
        {
          "mode": 2,
          "modeName": "Balanced",
          "minimumGroupSpanFrames": 4,
          "noteCount": 1,
          "notes": [
            {
              "pitch": 69,
              "start": 0,
              "duration": 0.18575963718820862,
              "velocity": 118
            }
          ],
          "file": "400ms-mode2.mid",
          "bytes": 42,
          "sha256": "45cd52275126a3a0403643f4f68646a446dc680eab1dafce083fc42045adb44a"
        },
        {
          "mode": 3,
          "modeName": "More notes",
          "minimumGroupSpanFrames": 3,
          "noteCount": 1,
          "notes": [
            {
              "pitch": 69,
              "start": 0,
              "duration": 0.18575963718820862,
              "velocity": 118
            }
          ],
          "file": "400ms-mode3.mid",
          "bytes": 42,
          "sha256": "45cd52275126a3a0403643f4f68646a446dc680eab1dafce083fc42045adb44a"
        }
      ]
    },
    {
      "seconds": 0.6,
      "file": "600ms.wav",
      "bytes": 52964,
      "sha256": "a89239c62f503cdd507db5b7053407cbe4cac49d859fef2796788ac35d6807ca",
      "sourceSamples": 26460,
      "analysisSamples": 6615,
      "analysisRate": 11025,
      "analysisWindows": 8,
      "modes": [
        {
          "mode": 1,
          "modeName": "Cleaner",
          "minimumGroupSpanFrames": 5,
          "noteCount": 1,
          "notes": [
            {
              "pitch": 69,
              "start": 0,
              "duration": 0.37151927437641724,
              "velocity": 118
            }
          ],
          "file": "600ms-mode1.mid",
          "bytes": 42,
          "sha256": "caa9a178652ac3887ddf98319af1ae7cfd53675053d4ed27454343a43647eae7"
        },
        {
          "mode": 2,
          "modeName": "Balanced",
          "minimumGroupSpanFrames": 4,
          "noteCount": 1,
          "notes": [
            {
              "pitch": 69,
              "start": 0,
              "duration": 0.37151927437641724,
              "velocity": 118
            }
          ],
          "file": "600ms-mode2.mid",
          "bytes": 42,
          "sha256": "caa9a178652ac3887ddf98319af1ae7cfd53675053d4ed27454343a43647eae7"
        },
        {
          "mode": 3,
          "modeName": "More notes",
          "minimumGroupSpanFrames": 3,
          "noteCount": 1,
          "notes": [
            {
              "pitch": 69,
              "start": 0,
              "duration": 0.37151927437641724,
              "velocity": 118
            }
          ],
          "file": "600ms-mode3.mid",
          "bytes": 42,
          "sha256": "caa9a178652ac3887ddf98319af1ae7cfd53675053d4ed27454343a43647eae7"
        }
      ]
    }
  ],
  "limits": "Five isolated synthetic held A4 mono WAVs only, not short notes inside a longer recording. Code-level production downsample/detectNotes/buildMidi, no browser decoder, UI conversion, real music, vocal, listening or DAW import. No universal minimum-duration rule. Zero-note MIDI artifacts serialize an empty event list for diagnosis; production UI rejects no stable notes before download.",
  "publicationDate": "2026-10-07",
  "command": "node tests/wav-short-clip-prep.mjs --check",
  "artifactProvenance": "Generated October 6; regenerated and remeasured October 7 on this Windows machine. All original WAV and MIDI hashes matched. These are identical fixture/output bytes, not newly recorded music."
}