{
  "started": "2026-10-06T04:18:14.552Z",
  "ended": "2026-10-06T04:18:14.989Z",
  "researchAnchor": "audio to midi",
  "provisionalApprovedKeyword": "audio to midi converter",
  "queueIndex": 14,
  "sourceCodeSHA256": "7f9c8b44a6ac99835b7e2f86c4f141385a1045396e40214c0afe6cee94e8f7ea",
  "method": "Three 2.4-second stereo16-bit44100Hz synthetic four-note WAVs: identical channels, exact inverted right channel, silent right channel. Parse actual WAV integers to Float32 channel arrays, pass through unmodified site mixToMono/downsample/detectNotes Balanced/buildMidi. Use an AudioBuffer-shaped object; browser decoder/UI not tested.",
  "sourceNotes": [
    {
      "pitch": 60,
      "start": 0,
      "duration": 0.45,
      "amplitude": 0.35
    },
    {
      "pitch": 64,
      "start": 0.6,
      "duration": 0.45,
      "amplitude": 0.35
    },
    {
      "pitch": 67,
      "start": 1.2,
      "duration": 0.45,
      "amplitude": 0.35
    },
    {
      "pitch": 72,
      "start": 1.7999999999999998,
      "duration": 0.45,
      "amplitude": 0.35
    }
  ],
  "results": [
    {
      "label": "same-polarity",
      "input": {
        "file": "same-polarity.wav",
        "bytes": 423404,
        "sha256": "c43d1475ac6e2b48c85cf47629089f045ae30ccc19d16d94a5e996c4587bd84b",
        "left": {
          "rms": 0.2117701791342598,
          "peak": 0.3499755859375
        },
        "right": {
          "rms": 0.2117701791342598,
          "peak": 0.3499755859375
        }
      },
      "mono": {
        "rms": 0.2117701791342598,
        "peak": 0.3499755859375
      },
      "output": {
        "file": "same-polarity.mid",
        "bytes": 69,
        "sha256": "a06dc4a2bcf08c7b67b6faf39a449b722d8d838f24dd00ca44c2b1db754b4972",
        "noteCount": 4,
        "notes": [
          {
            "pitch": 60,
            "start": 0,
            "duration": 0.46439909297052157,
            "velocity": 118
          },
          {
            "pitch": 64,
            "start": 0.46439909297052157,
            "duration": 0.603718820861678,
            "velocity": 118
          },
          {
            "pitch": 67,
            "start": 1.0681179138321997,
            "duration": 0.5572789115646258,
            "velocity": 118
          },
          {
            "pitch": 72,
            "start": 1.6718367346938776,
            "duration": 0.5108390022675737,
            "velocity": 118
          }
        ]
      }
    },
    {
      "label": "opposite-polarity",
      "input": {
        "file": "opposite-polarity.wav",
        "bytes": 423404,
        "sha256": "0f1c574d7bcaeeee943a54c791d8f67e7d3f7864ff19b5ffe608cffb1721d708",
        "left": {
          "rms": 0.2117701791342598,
          "peak": 0.3499755859375
        },
        "right": {
          "rms": 0.2117701791342598,
          "peak": 0.3499755859375
        }
      },
      "mono": {
        "rms": 0,
        "peak": 0
      },
      "output": {
        "file": "opposite-polarity.mid",
        "bytes": 33,
        "sha256": "7f8f4cab686e02744c44b4103a05756cec87b33f8526d209bedcddec29b59515",
        "noteCount": 0,
        "notes": []
      }
    },
    {
      "label": "left-only",
      "input": {
        "file": "left-only.wav",
        "bytes": 423404,
        "sha256": "29e2e16ac3785af9b753295c3bfe876db6ca471c3f6b485f5ca51cd98b5e799b",
        "left": {
          "rms": 0.2117701791342598,
          "peak": 0.3499755859375
        },
        "right": {
          "rms": 0,
          "peak": 0
        }
      },
      "mono": {
        "rms": 0.1058850895671299,
        "peak": 0.17498779296875
      },
      "output": {
        "file": "left-only.mid",
        "bytes": 69,
        "sha256": "659edf9358e935bc761cce9b44bf22cde85d00cd84b85e276b714780b41abd7c",
        "noteCount": 4,
        "notes": [
          {
            "pitch": 60,
            "start": 0,
            "duration": 0.46439909297052157,
            "velocity": 102
          },
          {
            "pitch": 64,
            "start": 0.46439909297052157,
            "duration": 0.603718820861678,
            "velocity": 99
          },
          {
            "pitch": 67,
            "start": 1.0681179138321997,
            "duration": 0.5572789115646258,
            "velocity": 101
          },
          {
            "pitch": 72,
            "start": 1.6718367346938776,
            "duration": 0.5108390022675737,
            "velocity": 103
          }
        ]
      }
    }
  ],
  "limits": "Exact synthetic stereo cancellation only. Production functions unchanged. WAV sample bytes parsed to Float32 arrays, not browser decoding, file picker, listening, DAW import or real vocals. The 33-byte zero-note MIDI is diagnostic only; production UI reports no stable notes instead of offering that file as a successful conversion.",
  "publicationDate": "2026-10-06",
  "command": "node tests/stereo-cancellation-prep.mjs --check",
  "artifactProvenance": "Originally generated October5; regenerated and remeasured October6 on this machine by the recorded command. The repeat checked all original WAV/MIDI hashes; identical bytes are supplied."
}