# Stereo-channel follow-up — combined conclusion

The channel-level chroma test and the note-level panning test answer different
questions and must be read together.

## What the broad chroma test found

[`stereo-voice-audit.json`](stereo-voice-audit.json) uses the score timing map
already selected by the rest audit.  Among the seven complementary partitions
of the four MIDI tracks, its strongest aggregate chroma contrast favours MIDI
tracks 2–4 in the left channel and track 1 in the right channel.  The absolute
contrast (`0.06985`) exceeded all 200 fixed-seed common circular time-shift
controls (`p = 0.00498`).

This is a score-locked *aggregate spectral* correlation.  It does **not** show
that audio stems or a separate message exist.  Its basic register check is not
consistent with a simple “highest voice panned right” explanation: the right
channel's median spectral centroid is lower, not higher, than the left's.

## Direct note-level check

[`../note-panning-audit/note-panning-audit.json`](../note-panning-audit/note-panning-audit.json)
tests 886 collision-filtered MIDI note events.  It measures the L/R balance of
uncollided target harmonics at three positions inside each note, subtracts the
mean for the exact MIDI pitch, and permutes voice labels only inside the same
pitch group.  That pitch-controlled test finds no voice-specific panning effect
above its 2,000 within-pitch controls (`p = 0.3143`).

## Defensible conclusion

There is no current reproducible evidence that the left and right channels
contain isolated Bach voices or an independently decodable stereo payload.  The
aggregate chroma difference is retained as a narrow performance/mix observation,
but the direct note-level result fails to corroborate the proposed voice-split
mechanism.  It should not be used as a cipher key or promoted as a solution.

## Reproduction

```powershell
$python = '<bundled-python>'
& $python scripts\audit_contrapunctus_stereo_voices.py `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\analysis\audio-48khz-stereo.wav' `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\reference-score\mutopia-contrapunctusI.mid' `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\timing-audit\timing-audit.json' `
  --output 'solution\video\i-am-the-method-kQx2G3x7_WQ\stereo-voice-audit'

& $python scripts\audit_contrapunctus_note_panning.py `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\analysis\audio-48khz-stereo.wav' `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\reference-score\mutopia-contrapunctusI.mid' `
  'solution\video\i-am-the-method-kQx2G3x7_WQ\timing-audit\timing-audit.json' `
  --output 'solution\video\i-am-the-method-kQx2G3x7_WQ\note-panning-audit'
```
