{
 "timestamp": "2026-06-18T14:14:38.979Z",
 "code": "use_bpm 110\nlive_loop :drums do\n sample :bd_haus\n sleep 0.5\n sample :drum_snare_hard, amp: 0.6\n sleep 0.25\n sample :bd_haus\n sleep 0.25\nend\nlive_loop :bass do\n use_synth :tb303\n play 36, release: 0.2, cutoff: 70\n sleep 0.5\n play 36, release: 0.2, cutoff: 80\n sleep 0.25\n play 38, release: 0.2, cutoff: 90\n sleep 0.25\nend\nlive_loop :melody do\n use_synth :prophet\n use_random_seed 42\n play (ring 60, 64, 67, 72, 60, 62, 67, 69).tick, release: 0.3, amp: 0.5\n sleep 0.25\nend\n",
 "duration": 20000,
 "name": "e2e-08_full_composition",
 "desktop": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/desktop-recordings/desktop_2026-06-18T14-13-44-685Z_e2e-08_full_composition.wav",
 "stats": {
 "duration": 21.370666666666665,
 "peak": 0.51,
 "rms": 0.0929,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 38,
 "median_spacing_s": 0.55,
 "midi": [
 40,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 48,
 55
 ],
 "pc": [
 4,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 0,
 7
 ],
 "names": [
 "E2",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "C3",
 "G3"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 }
 },
 "web": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/2026-06-18T14-13-45-877Z_inline_audio.wav",
 "stats": {
 "duration": 19.712,
 "peak": 0.3743,
 "rms": 0.0564,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 37,
 "median_spacing_s": 0.55,
 "midi": [
 40,
 48,
 54,
 48,
 48,
 54,
 54,
 54,
 48,
 50,
 48,
 48,
 54,
 54,
 54,
 53,
 54,
 54,
 48,
 48,
 53,
 48,
 54,
 54,
 50,
 48,
 54,
 54,
 54,
 48,
 48,
 42,
 48,
 48,
 54,
 54,
 48
 ],
 "pc": [
 4,
 0,
 6,
 0,
 0,
 6,
 6,
 6,
 0,
 2,
 0,
 0,
 6,
 6,
 6,
 5,
 6,
 6,
 0,
 0,
 5,
 0,
 6,
 6,
 2,
 0,
 6,
 6,
 6,
 0,
 0,
 6,
 0,
 0,
 6,
 6,
 0
 ],
 "names": [
 "E2",
 "C3",
 "F#3",
 "C3",
 "C3",
 "F#3",
 "F#3",
 "F#3",
 "C3",
 "D3",
 "C3",
 "C3",
 "F#3",
 "F#3",
 "F#3",
 "F3",
 "F#3",
 "F#3",
 "C3",
 "C3",
 "F3",
 "C3",
 "F#3",
 "F#3",
 "D3",
 "C3",
 "F#3",
 "F#3",
 "F#3",
 "C3",
 "C3",
 "F#2",
 "C3",
 "C3",
 "F#3",
 "F#3",
 "C3"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 },
 "toolFailReason": null,
 "errors": []
 },
 "spectrogram": {
 "l2_mel_db": 14.767068862915039,
 "mfcc_distance": 144.0015106201172,
 "frames_compared": 1849,
 "spectrogram_png": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-14-11-786Z_e2e-08_full_composition_spectrogram.png",
 "desktop_peak_freq_hz": 51.33204392313452,
 "web_peak_freq_hz": 51.339285714285715,
 "per_beat": null
 },
 "spectrogramError": null,
 "reportPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-14-11-786Z_e2e-08_full_composition.md",
 "reconciledPitch": null,
 "eventParity": {
 "report": {
 "verdict": "STRUCTURE-MATCH",
 "isPrng": false,
 "reasons": [
 "Significant synthdef multiset matches.",
 "Significant-layer first-appearance order differs (desktop: tb303→basic_stereo_player→prophet→basic_mono_player | web: basic_stereo_player→tb303→prophet→basic_mono_player) — thread-start timing."
 ],
 "rows": [
 {
 "synthdef": "sonic-pi-prophet",
 "desktop": 156,
 "web": 150,
 "ratio": 0.9615384615384616,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktop": 117,
 "web": 112,
 "ratio": 0.9572649572649573,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktop": 78,
 "web": 75,
 "ratio": 0.9615384615384616,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktop": 39,
 "web": 37,
 "ratio": 0.9487179487179487,
 "significant": true,
 "status": "match",
 "desktopOnset": 0.273,
 "webOnset": 0.273
 }
 ],
 "fxRows": [],
 "desktopTotal": 390,
 "webTotal": 374,
 "totalRatio": 0.96,
 "orderMatch": false,
 "desktopOrder": [
 "tb303",
 "basic_stereo_player",
 "prophet",
 "basic_mono_player"
 ],
 "webOrder": [
 "basic_stereo_player",
 "tb303",
 "prophet",
 "basic_mono_player"
 ],
 "sequenceParity": {
 "match": true,
 "epsilonMs": 15,
 "notesChecked": true,
 "rows": [
 {
 "synthdef": "sonic-pi-prophet",
 "desktopOnsets": [
 0,
 0.136,
 0.273,
 0.409,
 0.545,
 0.682,
 0.818,
 0.955,
 1.091,
 1.227,
 1.364,
 1.5,
 1.636,
 1.773,
 1.909,
 2.045,
 2.182,
 2.318,
 2.455,
 2.591,
 2.727,
 2.864,
 3,
 3.136,
 3.273,
 3.409,
 3.545,
 3.682,
 3.818,
 3.955,
 4.091,
 4.227,
 4.364,
 4.5,
 4.636,
 4.773,
 4.909,
 5.045,
 5.182,
 5.318,
 5.455,
 5.591,
 5.727,
 5.864,
 6,
 6.136,
 6.273,
 6.409,
 6.545,
 6.682,
 6.818,
 6.955,
 7.091,
 7.227,
 7.364,
 7.5,
 7.636,
 7.773,
 7.909,
 8.045,
 8.182,
 8.318,
 8.455,
 8.591,
 8.727,
 8.864,
 9,
 9.136,
 9.273,
 9.409,
 9.545,
 9.682,
 9.818,
 9.955,
 10.091,
 10.227,
 10.364,
 10.5,
 10.636,
 10.773,
 10.909,
 11.045,
 11.182,
 11.318,
 11.455,
 11.591,
 11.727,
 11.864,
 12,
 12.136,
 12.273,
 12.409,
 12.545,
 12.682,
 12.818,
 12.955,
 13.091,
 13.227,
 13.364,
 13.5,
 13.636,
 13.773,
 13.909,
 14.045,
 14.182,
 14.318,
 14.455,
 14.591,
 14.727,
 14.864,
 15,
 15.136,
 15.273,
 15.409,
 15.545,
 15.682,
 15.818,
 15.955,
 16.091,
 16.227,
 16.364,
 16.5,
 16.636,
 16.773,
 16.909,
 17.045,
 17.182,
 17.318,
 17.455,
 17.591,
 17.727,
 17.864,
 18,
 18.136,
 18.273,
 18.409,
 18.545,
 18.682,
 18.818,
 18.955,
 19.091,
 19.227,
 19.364,
 19.5,
 19.636,
 19.773,
 19.909,
 20.045,
 20.182,
 20.318,
 20.455,
 20.591,
 20.727,
 20.864,
 21,
 21.136
 ],
 "webOnsets": [
 0,
 0.136,
 0.273,
 0.409,
 0.546,
 0.682,
 0.818,
 0.955,
 1.091,
 1.227,
 1.364,
 1.5,
 1.636,
 1.773,
 1.909,
 2.045,
 2.182,
 2.318,
 2.455,
 2.591,
 2.727,
 2.864,
 3,
 3.136,
 3.273,
 3.409,
 3.545,
 3.682,
 3.818,
 3.955,
 4.091,
 4.227,
 4.364,
 4.5,
 4.636,
 4.773,
 4.909,
 5.046,
 5.182,
 5.318,
 5.455,
 5.591,
 5.727,
 5.864,
 6,
 6.136,
 6.273,
 6.409,
 6.546,
 6.682,
 6.818,
 6.955,
 7.091,
 7.227,
 7.364,
 7.5,
 7.636,
 7.773,
 7.909,
 8.046,
 8.182,
 8.318,
 8.455,
 8.591,
 8.727,
 8.864,
 9,
 9.136,
 9.273,
 9.409,
 9.546,
 9.682,
 9.818,
 9.955,
 10.091,
 10.227,
 10.364,
 10.5,
 10.636,
 10.773,
 10.909,
 11.046,
 11.182,
 11.318,
 11.455,
 11.591,
 11.727,
 11.864,
 12,
 12.136,
 12.273,
 12.409,
 12.546,
 12.682,
 12.818,
 12.955,
 13.091,
 13.227,
 13.364,
 13.5,
 13.636,
 13.773,
 13.909,
 14.046,
 14.182,
 14.318,
 14.455,
 14.591,
 14.727,
 14.864,
 15,
 15.136,
 15.273,
 15.409,
 15.546,
 15.682,
 15.818,
 15.955,
 16.091,
 16.227,
 16.364,
 16.5,
 16.636,
 16.773,
 16.909,
 17.046,
 17.182,
 17.318,
 17.455,
 17.591,
 17.727,
 17.864,
 18,
 18.136,
 18.273,
 18.409,
 18.546,
 18.682,
 18.818,
 18.955,
 19.091,
 19.227,
 19.364,
 19.5,
 19.636,
 19.773,
 19.909,
 20.046,
 20.182,
 20.318
 ],
 "comparedLen": 150,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktopOnsets": [
 0,
 0.273,
 0.409,
 0.545,
 0.818,
 0.955,
 1.091,
 1.364,
 1.5,
 1.636,
 1.909,
 2.045,
 2.182,
 2.455,
 2.591,
 2.727,
 3,
 3.136,
 3.273,
 3.545,
 3.682,
 3.818,
 4.091,
 4.227,
 4.364,
 4.636,
 4.773,
 4.909,
 5.182,
 5.318,
 5.455,
 5.727,
 5.864,
 6,
 6.273,
 6.409,
 6.545,
 6.818,
 6.955,
 7.091,
 7.364,
 7.5,
 7.636,
 7.909,
 8.045,
 8.182,
 8.455,
 8.591,
 8.727,
 9,
 9.136,
 9.273,
 9.545,
 9.682,
 9.818,
 10.091,
 10.227,
 10.364,
 10.636,
 10.773,
 10.909,
 11.182,
 11.318,
 11.455,
 11.727,
 11.864,
 12,
 12.273,
 12.409,
 12.545,
 12.818,
 12.955,
 13.091,
 13.364,
 13.5,
 13.636,
 13.909,
 14.045,
 14.182,
 14.455,
 14.591,
 14.727,
 15,
 15.136,
 15.273,
 15.545,
 15.682,
 15.818,
 16.091,
 16.227,
 16.364,
 16.636,
 16.773,
 16.909,
 17.182,
 17.318,
 17.455,
 17.727,
 17.864,
 18,
 18.273,
 18.409,
 18.545,
 18.818,
 18.955,
 19.091,
 19.364,
 19.5,
 19.636,
 19.909,
 20.045,
 20.182,
 20.455,
 20.591,
 20.727,
 21,
 21.136
 ],
 "webOnsets": [
 0,
 0.273,
 0.409,
 0.546,
 0.818,
 0.955,
 1.091,
 1.364,
 1.5,
 1.636,
 1.909,
 2.045,
 2.182,
 2.455,
 2.591,
 2.727,
 3,
 3.136,
 3.273,
 3.545,
 3.682,
 3.818,
 4.091,
 4.227,
 4.364,
 4.636,
 4.773,
 4.909,
 5.182,
 5.318,
 5.455,
 5.727,
 5.864,
 6,
 6.273,
 6.409,
 6.546,
 6.818,
 6.955,
 7.091,
 7.364,
 7.5,
 7.636,
 7.909,
 8.046,
 8.182,
 8.455,
 8.591,
 8.727,
 9,
 9.136,
 9.273,
 9.546,
 9.682,
 9.818,
 10.091,
 10.227,
 10.364,
 10.636,
 10.773,
 10.909,
 11.182,
 11.318,
 11.455,
 11.727,
 11.864,
 12,
 12.273,
 12.409,
 12.546,
 12.818,
 12.955,
 13.091,
 13.364,
 13.5,
 13.636,
 13.909,
 14.046,
 14.182,
 14.455,
 14.591,
 14.727,
 15,
 15.136,
 15.273,
 15.546,
 15.682,
 15.818,
 16.091,
 16.227,
 16.364,
 16.636,
 16.773,
 16.909,
 17.182,
 17.318,
 17.455,
 17.727,
 17.864,
 18,
 18.273,
 18.409,
 18.546,
 18.818,
 18.955,
 19.091,
 19.364,
 19.5,
 19.636,
 19.909,
 20.046,
 20.182
 ],
 "comparedLen": 112,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktopOnsets": [
 0,
 0.409,
 0.545,
 0.955,
 1.091,
 1.5,
 1.636,
 2.045,
 2.182,
 2.591,
 2.727,
 3.136,
 3.273,
 3.682,
 3.818,
 4.227,
 4.364,
 4.773,
 4.909,
 5.318,
 5.455,
 5.864,
 6,
 6.409,
 6.545,
 6.955,
 7.091,
 7.5,
 7.636,
 8.045,
 8.182,
 8.591,
 8.727,
 9.136,
 9.273,
 9.682,
 9.818,
 10.227,
 10.364,
 10.773,
 10.909,
 11.318,
 11.455,
 11.864,
 12,
 12.409,
 12.545,
 12.955,
 13.091,
 13.5,
 13.636,
 14.045,
 14.182,
 14.591,
 14.727,
 15.136,
 15.273,
 15.682,
 15.818,
 16.227,
 16.364,
 16.773,
 16.909,
 17.318,
 17.455,
 17.864,
 18,
 18.409,
 18.545,
 18.955,
 19.091,
 19.5,
 19.636,
 20.045,
 20.182,
 20.591,
 20.727,
 21.136
 ],
 "webOnsets": [
 0,
 0.409,
 0.546,
 0.955,
 1.091,
 1.5,
 1.636,
 2.045,
 2.182,
 2.591,
 2.727,
 3.136,
 3.273,
 3.682,
 3.818,
 4.227,
 4.364,
 4.773,
 4.909,
 5.318,
 5.455,
 5.864,
 6,
 6.409,
 6.546,
 6.955,
 7.091,
 7.5,
 7.636,
 8.046,
 8.182,
 8.591,
 8.727,
 9.136,
 9.273,
 9.682,
 9.818,
 10.227,
 10.364,
 10.773,
 10.909,
 11.318,
 11.455,
 11.864,
 12,
 12.409,
 12.546,
 12.955,
 13.091,
 13.5,
 13.636,
 14.046,
 14.182,
 14.591,
 14.727,
 15.136,
 15.273,
 15.682,
 15.818,
 16.227,
 16.364,
 16.773,
 16.909,
 17.318,
 17.455,
 17.864,
 18,
 18.409,
 18.546,
 18.955,
 19.091,
 19.5,
 19.636,
 20.046,
 20.182
 ],
 "comparedLen": 75,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktopOnsets": [
 0.273,
 0.818,
 1.364,
 1.909,
 2.455,
 3,
 3.545,
 4.091,
 4.636,
 5.182,
 5.727,
 6.273,
 6.818,
 7.364,
 7.909,
 8.455,
 9,
 9.545,
 10.091,
 10.636,
 11.182,
 11.727,
 12.273,
 12.818,
 13.364,
 13.909,
 14.455,
 15,
 15.545,
 16.091,
 16.636,
 17.182,
 17.727,
 18.273,
 18.818,
 19.364,
 19.909,
 20.455,
 21
 ],
 "webOnsets": [
 0.273,
 0.818,
 1.364,
 1.909,
 2.455,
 3,
 3.545,
 4.091,
 4.636,
 5.182,
 5.727,
 6.273,
 6.818,
 7.364,
 7.909,
 8.455,
 9,
 9.546,
 10.091,
 10.636,
 11.182,
 11.727,
 12.273,
 12.818,
 13.364,
 13.909,
 14.455,
 15,
 15.546,
 16.091,
 16.636,
 17.182,
 17.727,
 18.273,
 18.818,
 19.364,
 19.909
 ],
 "comparedLen": 37,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 }
 ],
 "reasons": [
 "prophet: 150 onsets match within ε (max Δ 1ms), notes match",
 "tb303: 112 onsets match within ε (max Δ 1ms), notes match",
 "basic_stereo_player: 75 onsets match within ε (max Δ 1ms), notes match",
 "basic_mono_player: 37 onsets match within ε (max Δ 1ms), notes match"
 ]
 }
 },
 "note": "STRUCTURE-MATCH · onset-seq match · d390/w374"
 }
}