{
 "timestamp": "2026-06-18T14:09:44.298Z",
 "code": "use_bpm 120\nlive_loop :drums do\n sample :bd_haus\n sleep 0.5\n sample :hat_snap\n sleep 0.25\n sample :hat_snap\n sleep 0.25\nend\nlive_loop :bass do\n use_synth :tb303\n notes = (ring :e2, :e2, :g2, :a2)\n play notes.tick, release: 0.3, cutoff: 60\n sleep 1\nend\nlive_loop :lead do\n use_synth :pluck\n play (scale :e4, :minor_pentatonic).choose, release: 0.2\n sleep 0.25\nend\n",
 "duration": 20000,
 "name": "e2e-03_multi_layer",
 "desktop": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/desktop-recordings/desktop_2026-06-18T14-08-49-721Z_e2e-03_multi_layer.wav",
 "stats": {
 "duration": 21.369333333333334,
 "peak": 0.4549,
 "rms": 0.0788,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 120,
 "median_spacing_s": 0.13,
 "midi": [
 41,
 81,
 64,
 41,
 90,
 74,
 62,
 76,
 71,
 44,
 76,
 76,
 41,
 71,
 71,
 41,
 86,
 81,
 62,
 86,
 69,
 44,
 69,
 76,
 41,
 64,
 88,
 41,
 67,
 88,
 62,
 67,
 67,
 44,
 88,
 69,
 41,
 71,
 69,
 41,
 81,
 76,
 62,
 74,
 64,
 44,
 81,
 76,
 41,
 67,
 69,
 41,
 93,
 95,
 62,
 79,
 74,
 44,
 71,
 74,
 41,
 74,
 76,
 41,
 67,
 69,
 62,
 67,
 86,
 44,
 64,
 67,
 41,
 67,
 86,
 41,
 76,
 76,
 62,
 71,
 74,
 44,
 81,
 81,
 41,
 74,
 67,
 41,
 71,
 74,
 62,
 64,
 74,
 44,
 67,
 67,
 41,
 76,
 64,
 41,
 83,
 74,
 62,
 83,
 83,
 44,
 76,
 81,
 41,
 71,
 81,
 41,
 74,
 67,
 62,
 76,
 64,
 44,
 64,
 67
 ],
 "pc": [
 5,
 9,
 4,
 5,
 6,
 2,
 2,
 4,
 11,
 8,
 4,
 4,
 5,
 11,
 11,
 5,
 2,
 9,
 2,
 2,
 9,
 8,
 9,
 4,
 5,
 4,
 4,
 5,
 7,
 4,
 2,
 7,
 7,
 8,
 4,
 9,
 5,
 11,
 9,
 5,
 9,
 4,
 2,
 2,
 4,
 8,
 9,
 4,
 5,
 7,
 9,
 5,
 9,
 11,
 2,
 7,
 2,
 8,
 11,
 2,
 5,
 2,
 4,
 5,
 7,
 9,
 2,
 7,
 2,
 8,
 4,
 7,
 5,
 7,
 2,
 5,
 4,
 4,
 2,
 11,
 2,
 8,
 9,
 9,
 5,
 2,
 7,
 5,
 11,
 2,
 2,
 4,
 2,
 8,
 7,
 7,
 5,
 4,
 4,
 5,
 11,
 2,
 2,
 11,
 11,
 8,
 4,
 9,
 5,
 11,
 9,
 5,
 2,
 7,
 2,
 4,
 4,
 8,
 4,
 7
 ],
 "names": [
 "F2",
 "A5",
 "E4",
 "F2",
 "F#6",
 "D5",
 "D4",
 "E5",
 "B4",
 "G#2",
 "E5",
 "E5",
 "F2",
 "B4",
 "B4",
 "F2",
 "D6",
 "A5",
 "D4",
 "D6",
 "A4",
 "G#2",
 "A4",
 "E5",
 "F2",
 "E4",
 "E6",
 "F2",
 "G4",
 "E6",
 "D4",
 "G4",
 "G4",
 "G#2",
 "E6",
 "A4",
 "F2",
 "B4",
 "A4",
 "F2",
 "A5",
 "E5",
 "D4",
 "D5",
 "E4",
 "G#2",
 "A5",
 "E5",
 "F2",
 "G4",
 "A4",
 "F2",
 "A6",
 "B6",
 "D4",
 "G5",
 "D5",
 "G#2",
 "B4",
 "D5",
 "F2",
 "D5",
 "E5",
 "F2",
 "G4",
 "A4",
 "D4",
 "G4",
 "D6",
 "G#2",
 "E4",
 "G4",
 "F2",
 "G4",
 "D6",
 "F2",
 "E5",
 "E5",
 "D4",
 "B4",
 "D5",
 "G#2",
 "A5",
 "A5",
 "F2",
 "D5",
 "G4",
 "F2",
 "B4",
 "D5",
 "D4",
 "E4",
 "D5",
 "G#2",
 "G4",
 "G4",
 "F2",
 "E5",
 "E4",
 "F2",
 "B5",
 "D5",
 "D4",
 "B5",
 "B5",
 "G#2",
 "E5",
 "A5",
 "F2",
 "B4",
 "A5",
 "F2",
 "D5",
 "G4",
 "D4",
 "E5",
 "E4",
 "G#2",
 "E4",
 "G4"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 }
 },
 "web": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/2026-06-18T14-08-50-873Z_inline_audio.wav",
 "stats": {
 "duration": 19.712,
 "peak": 0.2559,
 "rms": 0.0493,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 117,
 "median_spacing_s": 0.13,
 "midi": [
 41,
 81,
 64,
 41,
 90,
 74,
 62,
 95,
 71,
 44,
 64,
 76,
 41,
 90,
 71,
 41,
 74,
 69,
 62,
 74,
 69,
 44,
 81,
 76,
 41,
 64,
 76,
 41,
 67,
 69,
 62,
 67,
 67,
 44,
 69,
 88,
 41,
 83,
 69,
 41,
 69,
 76,
 62,
 74,
 64,
 44,
 81,
 95,
 41,
 79,
 69,
 41,
 74,
 71,
 62,
 67,
 86,
 44,
 71,
 74,
 41,
 74,
 76,
 41,
 67,
 88,
 62,
 67,
 74,
 44,
 64,
 67,
 41,
 67,
 74,
 41,
 76,
 64,
 62,
 71,
 86,
 44,
 88,
 69,
 41,
 74,
 79,
 41,
 71,
 74,
 62,
 64,
 74,
 44,
 67,
 67,
 41,
 76,
 64,
 41,
 71,
 74,
 62,
 71,
 83,
 44,
 88,
 69,
 41,
 71,
 69,
 41,
 86,
 67,
 62,
 76,
 64
 ],
 "pc": [
 5,
 9,
 4,
 5,
 6,
 2,
 2,
 11,
 11,
 8,
 4,
 4,
 5,
 6,
 11,
 5,
 2,
 9,
 2,
 2,
 9,
 8,
 9,
 4,
 5,
 4,
 4,
 5,
 7,
 9,
 2,
 7,
 7,
 8,
 9,
 4,
 5,
 11,
 9,
 5,
 9,
 4,
 2,
 2,
 4,
 8,
 9,
 11,
 5,
 7,
 9,
 5,
 2,
 11,
 2,
 7,
 2,
 8,
 11,
 2,
 5,
 2,
 4,
 5,
 7,
 4,
 2,
 7,
 2,
 8,
 4,
 7,
 5,
 7,
 2,
 5,
 4,
 4,
 2,
 11,
 2,
 8,
 4,
 9,
 5,
 2,
 7,
 5,
 11,
 2,
 2,
 4,
 2,
 8,
 7,
 7,
 5,
 4,
 4,
 5,
 11,
 2,
 2,
 11,
 11,
 8,
 4,
 9,
 5,
 11,
 9,
 5,
 2,
 7,
 2,
 4,
 4
 ],
 "names": [
 "F2",
 "A5",
 "E4",
 "F2",
 "F#6",
 "D5",
 "D4",
 "B6",
 "B4",
 "G#2",
 "E4",
 "E5",
 "F2",
 "F#6",
 "B4",
 "F2",
 "D5",
 "A4",
 "D4",
 "D5",
 "A4",
 "G#2",
 "A5",
 "E5",
 "F2",
 "E4",
 "E5",
 "F2",
 "G4",
 "A4",
 "D4",
 "G4",
 "G4",
 "G#2",
 "A4",
 "E6",
 "F2",
 "B5",
 "A4",
 "F2",
 "A4",
 "E5",
 "D4",
 "D5",
 "E4",
 "G#2",
 "A5",
 "B6",
 "F2",
 "G5",
 "A4",
 "F2",
 "D5",
 "B4",
 "D4",
 "G4",
 "D6",
 "G#2",
 "B4",
 "D5",
 "F2",
 "D5",
 "E5",
 "F2",
 "G4",
 "E6",
 "D4",
 "G4",
 "D5",
 "G#2",
 "E4",
 "G4",
 "F2",
 "G4",
 "D5",
 "F2",
 "E5",
 "E4",
 "D4",
 "B4",
 "D6",
 "G#2",
 "E6",
 "A4",
 "F2",
 "D5",
 "G5",
 "F2",
 "B4",
 "D5",
 "D4",
 "E4",
 "D5",
 "G#2",
 "G4",
 "G4",
 "F2",
 "E5",
 "E4",
 "F2",
 "B4",
 "D5",
 "D4",
 "B4",
 "B5",
 "G#2",
 "E6",
 "A4",
 "F2",
 "B4",
 "A4",
 "F2",
 "D6",
 "G4",
 "D4",
 "E5",
 "E4"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 },
 "toolFailReason": null,
 "errors": []
 },
 "spectrogram": {
 "l2_mel_db": 19.715909957885742,
 "mfcc_distance": 179.14027404785156,
 "frames_compared": 1849,
 "spectrogram_png": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-09-17-052Z_e2e-03_multi_layer_spectrogram.png",
 "desktop_peak_freq_hz": 54.002620577775005,
 "web_peak_freq_hz": 56.006493506493506,
 "per_beat": null
 },
 "spectrogramError": null,
 "reportPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-09-17-052Z_e2e-03_multi_layer.md",
 "reconciledPitch": null,
 "eventParity": {
 "report": {
 "verdict": "STRUCTURE-MATCH",
 "isPrng": true,
 "reasons": [
 "Significant layers present on both sides (PRNG piece — counts/choices vary by ).",
 "Significant-layer first-appearance order differs (desktop: tb303→pluck→basic_stereo_player | web: basic_stereo_player→tb303→pluck) — common for PRNG layer selection."
 ],
 "rows": [
 {
 "synthdef": "sonic-pi-pluck",
 "desktop": 170,
 "web": 166,
 "ratio": 0.9764705882352941,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktop": 127,
 "web": 124,
 "ratio": 0.9763779527559056,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktop": 43,
 "web": 42,
 "ratio": 0.9767441860465116,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 }
 ],
 "fxRows": [],
 "desktopTotal": 340,
 "webTotal": 332,
 "totalRatio": 0.98,
 "orderMatch": false,
 "desktopOrder": [
 "tb303",
 "pluck",
 "basic_stereo_player"
 ],
 "webOrder": [
 "basic_stereo_player",
 "tb303",
 "pluck"
 ],
 "sequenceParity": {
 "match": true,
 "epsilonMs": 15,
 "notesChecked": true,
 "rows": [
 {
 "synthdef": "sonic-pi-pluck",
 "desktopOnsets": [
 0,
 0.125,
 0.25,
 0.375,
 0.5,
 0.625,
 0.75,
 0.875,
 1,
 1.125,
 1.25,
 1.375,
 1.5,
 1.625,
 1.75,
 1.875,
 2,
 2.125,
 2.25,
 2.375,
 2.5,
 2.625,
 2.75,
 2.875,
 3,
 3.125,
 3.25,
 3.375,
 3.5,
 3.625,
 3.75,
 3.875,
 4,
 4.125,
 4.25,
 4.375,
 4.5,
 4.625,
 4.75,
 4.875,
 5,
 5.125,
 5.25,
 5.375,
 5.5,
 5.625,
 5.75,
 5.875,
 6,
 6.125,
 6.25,
 6.375,
 6.5,
 6.625,
 6.75,
 6.875,
 7,
 7.125,
 7.25,
 7.375,
 7.5,
 7.625,
 7.75,
 7.875,
 8,
 8.125,
 8.25,
 8.375,
 8.5,
 8.625,
 8.75,
 8.875,
 9,
 9.125,
 9.25,
 9.375,
 9.5,
 9.625,
 9.75,
 9.875,
 10,
 10.125,
 10.25,
 10.375,
 10.5,
 10.625,
 10.75,
 10.875,
 11,
 11.125,
 11.25,
 11.375,
 11.5,
 11.625,
 11.75,
 11.875,
 12,
 12.125,
 12.25,
 12.375,
 12.5,
 12.625,
 12.75,
 12.875,
 13,
 13.125,
 13.25,
 13.375,
 13.5,
 13.625,
 13.75,
 13.875,
 14,
 14.125,
 14.25,
 14.375,
 14.5,
 14.625,
 14.75,
 14.875,
 15,
 15.125,
 15.25,
 15.375,
 15.5,
 15.625,
 15.75,
 15.875,
 16,
 16.125,
 16.25,
 16.375,
 16.5,
 16.625,
 16.75,
 16.875,
 17,
 17.125,
 17.25,
 17.375,
 17.5,
 17.625,
 17.75,
 17.875,
 18,
 18.125,
 18.25,
 18.375,
 18.5,
 18.625,
 18.75,
 18.875,
 19,
 19.125,
 19.25,
 19.375,
 19.5,
 19.625,
 19.75,
 19.875,
 20,
 20.125,
 20.25,
 20.375,
 20.5,
 20.625,
 20.75,
 20.875,
 21,
 21.125
 ],
 "webOnsets": [
 0,
 0.125,
 0.25,
 0.375,
 0.5,
 0.625,
 0.75,
 0.875,
 1,
 1.125,
 1.25,
 1.375,
 1.5,
 1.625,
 1.75,
 1.875,
 2,
 2.125,
 2.25,
 2.375,
 2.5,
 2.625,
 2.75,
 2.875,
 3,
 3.125,
 3.25,
 3.375,
 3.5,
 3.625,
 3.75,
 3.875,
 4,
 4.125,
 4.25,
 4.375,
 4.5,
 4.625,
 4.75,
 4.875,
 5,
 5.125,
 5.25,
 5.375,
 5.5,
 5.625,
 5.75,
 5.875,
 6,
 6.125,
 6.25,
 6.375,
 6.5,
 6.625,
 6.75,
 6.875,
 7,
 7.125,
 7.25,
 7.375,
 7.5,
 7.625,
 7.75,
 7.875,
 8,
 8.125,
 8.25,
 8.375,
 8.5,
 8.625,
 8.75,
 8.875,
 9,
 9.125,
 9.25,
 9.375,
 9.5,
 9.625,
 9.75,
 9.875,
 10,
 10.125,
 10.25,
 10.375,
 10.5,
 10.625,
 10.75,
 10.875,
 11,
 11.125,
 11.25,
 11.375,
 11.5,
 11.625,
 11.75,
 11.875,
 12,
 12.125,
 12.25,
 12.375,
 12.5,
 12.625,
 12.75,
 12.875,
 13,
 13.125,
 13.25,
 13.375,
 13.5,
 13.625,
 13.75,
 13.875,
 14,
 14.125,
 14.25,
 14.375,
 14.5,
 14.625,
 14.75,
 14.875,
 15,
 15.125,
 15.25,
 15.375,
 15.5,
 15.625,
 15.75,
 15.875,
 16,
 16.125,
 16.25,
 16.375,
 16.5,
 16.625,
 16.75,
 16.875,
 17,
 17.125,
 17.25,
 17.375,
 17.5,
 17.625,
 17.75,
 17.875,
 18,
 18.125,
 18.25,
 18.375,
 18.5,
 18.625,
 18.75,
 18.875,
 19,
 19.125,
 19.25,
 19.375,
 19.5,
 19.625,
 19.75,
 19.875,
 20,
 20.125,
 20.25,
 20.375,
 20.5,
 20.625
 ],
 "comparedLen": 166,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 0,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktopOnsets": [
 0,
 0.25,
 0.375,
 0.5,
 0.75,
 0.875,
 1,
 1.25,
 1.375,
 1.5,
 1.75,
 1.875,
 2,
 2.25,
 2.375,
 2.5,
 2.75,
 2.875,
 3,
 3.25,
 3.375,
 3.5,
 3.75,
 3.875,
 4,
 4.25,
 4.375,
 4.5,
 4.75,
 4.875,
 5,
 5.25,
 5.375,
 5.5,
 5.75,
 5.875,
 6,
 6.25,
 6.375,
 6.5,
 6.75,
 6.875,
 7,
 7.25,
 7.375,
 7.5,
 7.75,
 7.875,
 8,
 8.25,
 8.375,
 8.5,
 8.75,
 8.875,
 9,
 9.25,
 9.375,
 9.5,
 9.75,
 9.875,
 10,
 10.25,
 10.375,
 10.5,
 10.75,
 10.875,
 11,
 11.25,
 11.375,
 11.5,
 11.75,
 11.875,
 12,
 12.25,
 12.375,
 12.5,
 12.75,
 12.875,
 13,
 13.25,
 13.375,
 13.5,
 13.75,
 13.875,
 14,
 14.25,
 14.375,
 14.5,
 14.75,
 14.875,
 15,
 15.25,
 15.375,
 15.5,
 15.75,
 15.875,
 16,
 16.25,
 16.375,
 16.5,
 16.75,
 16.875,
 17,
 17.25,
 17.375,
 17.5,
 17.75,
 17.875,
 18,
 18.25,
 18.375,
 18.5,
 18.75,
 18.875,
 19,
 19.25,
 19.375,
 19.5,
 19.75,
 19.875,
 20,
 20.25,
 20.375,
 20.5,
 20.75,
 20.875,
 21
 ],
 "webOnsets": [
 0,
 0.25,
 0.375,
 0.5,
 0.75,
 0.875,
 1,
 1.25,
 1.375,
 1.5,
 1.75,
 1.875,
 2,
 2.25,
 2.375,
 2.5,
 2.75,
 2.875,
 3,
 3.25,
 3.375,
 3.5,
 3.75,
 3.875,
 4,
 4.25,
 4.375,
 4.5,
 4.75,
 4.875,
 5,
 5.25,
 5.375,
 5.5,
 5.75,
 5.875,
 6,
 6.25,
 6.375,
 6.5,
 6.75,
 6.875,
 7,
 7.25,
 7.375,
 7.5,
 7.75,
 7.875,
 8,
 8.25,
 8.375,
 8.5,
 8.75,
 8.875,
 9,
 9.25,
 9.375,
 9.5,
 9.75,
 9.875,
 10,
 10.25,
 10.375,
 10.5,
 10.75,
 10.875,
 11,
 11.25,
 11.375,
 11.5,
 11.75,
 11.875,
 12,
 12.25,
 12.375,
 12.5,
 12.75,
 12.875,
 13,
 13.25,
 13.375,
 13.5,
 13.75,
 13.875,
 14,
 14.25,
 14.375,
 14.5,
 14.75,
 14.875,
 15,
 15.25,
 15.375,
 15.5,
 15.75,
 15.875,
 16,
 16.25,
 16.375,
 16.5,
 16.75,
 16.875,
 17,
 17.25,
 17.375,
 17.5,
 17.75,
 17.875,
 18,
 18.25,
 18.375,
 18.5,
 18.75,
 18.875,
 19,
 19.25,
 19.375,
 19.5,
 19.75,
 19.875,
 20,
 20.25,
 20.375,
 20.5
 ],
 "comparedLen": 124,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 0,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktopOnsets": [
 0,
 0.5,
 1,
 1.5,
 2,
 2.5,
 3,
 3.5,
 4,
 4.5,
 5,
 5.5,
 6,
 6.5,
 7,
 7.5,
 8,
 8.5,
 9,
 9.5,
 10,
 10.5,
 11,
 11.5,
 12,
 12.5,
 13,
 13.5,
 14,
 14.5,
 15,
 15.5,
 16,
 16.5,
 17,
 17.5,
 18,
 18.5,
 19,
 19.5,
 20,
 20.5,
 21
 ],
 "webOnsets": [
 0,
 0.5,
 1,
 1.5,
 2,
 2.5,
 3,
 3.5,
 4,
 4.5,
 5,
 5.5,
 6,
 6.5,
 7,
 7.5,
 8,
 8.5,
 9,
 9.5,
 10,
 10.5,
 11,
 11.5,
 12,
 12.5,
 13,
 13.5,
 14,
 14.5,
 15,
 15.5,
 16,
 16.5,
 17,
 17.5,
 18,
 18.5,
 19,
 19.5,
 20,
 20.5
 ],
 "comparedLen": 42,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 0,
 "noteMatched": true,
 "matched": true
 }
 ],
 "reasons": [
 "pluck: 166 onsets match within ε (max Δ 0ms), notes match",
 "basic_stereo_player: 124 onsets match within ε (max Δ 0ms), notes match",
 "tb303: 42 onsets match within ε (max Δ 0ms), notes match"
 ]
 }
 },
 "note": "STRUCTURE-MATCH · onset-seq match · d340/w332"
 }
}