{
 "timestamp": "2026-06-18T14:11:38.494Z",
 "code": "use_bpm 130\nlive_loop :met1 do\n sleep 1\nend\ncmaster1 = 130\ncmaster2 = 130\ndefine :pattern do |pattern|\n return pattern.ring.tick == \"x\"\nend\nlive_loop :kick, sync: :met1 do\n a = 1.5\n sample :bd_tek, amp: a, cutoff: cmaster1 if pattern \"x--x--x---x--x--\"\n sleep 0.25\nend\nwith_fx :echo, mix: 0.2 do\n with_fx :reverb, mix: 0.2, room: 0.5 do\n live_loop :clap, sync: :met1 do\n a = 0.75\n sleep 1\n sample :drum_snare_hard, rate: 2.5, cutoff: cmaster1, amp: a\n sample :drum_snare_hard, rate: 2.2, start: 0.02, cutoff: cmaster1, pan: 0.2, amp: a\n sample :drum_snare_hard, rate: 2, start: 0.04, cutoff: cmaster1, pan: -0.2, amp: a\n sleep 1\n end\n end\nend\nwith_fx :reverb, mix: 0.2 do\n with_fx :panslicer, mix: 0.2 do\n live_loop :hhc1, sync: :met1 do\n a = 0.75\n p = [-0.3, 0.3].choose\n sample :drum_cymbal_closed, amp: a, rate: 2.5, finish: 0.5, pan: p, cutoff: cmaster2 if pattern \"x-x-x-x-x-x-x-x-xxx-x-x-x-x-x-x-\"\n sleep 0.125\n end\n end\nend\nlive_loop :hhc2, sync: :met1 do\n a = 1.25\n sleep 0.5\n sample :drum_cymbal_closed, cutoff: cmaster2, rate: 1.2, start: 0.01, finish: 0.5, amp: a\n sleep 0.5\nend\nwith_fx :reverb, mix: 0.7 do\n live_loop :crash, sync: :met1 do\n a = 0.1\n c = cmaster2-10\n r = 1.5\n f = 0.25\n crash = :drum_splash_soft\n sleep 14.5\n sample crash, amp: a, cutoff: c, rate: r, finish: f\n sample crash, amp: a, cutoff: c, rate: r-0.2, finish: f\n sleep 1\n sample crash, amp: a, cutoff: c, rate: r, finish: f\n sample crash, amp: a, cutoff: c, rate: r-0.2, finish: f\n sleep 0.5\n end\nend\nwith_fx :reverb, mix: 0.7 do\n live_loop :arp, sync: :met1 do\n with_fx :echo, phase: 1, mix: (line 0.1, 1, steps: 128).mirror.tick do\n a = 0.6\n r = 0.25\n c = 130\n p = (line -0.7, 0.7, steps: 64).mirror.tick\n at = 0.01\n use_synth :beep\n tick\n notes = (scale :g4, :major_pentatonic).shuffle\n play notes.look, amp: a, release: r, cutoff: c, pan: p, attack: at\n sleep 0.75\n end\n end\nend\nwith_fx :panslicer, mix: 0.4 do\n with_fx :reverb, mix: 0.75 do\n live_loop :synthbass, sync: :met1 do\n s = 4\n r = 2\n c = 60\n a = 0.75\n at = 0\n use_synth :tech_saws\n play :g3, sustain: 6, cutoff: c, amp: a, attack: at\n sleep 6\n play :d3, sustain: 2, cutoff: c, amp: a, attack: at\n sleep 2\n play :e3, sustain: 8, cutoff: c, amp: a, attack: at\n sleep 8\n end\n end\nend\n",
 "duration": 20000,
 "name": "e2e-05_dj_dave_full",
 "desktop": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/desktop-recordings/desktop_2026-06-18T14-10-44-177Z_e2e-05_dj_dave_full.wav",
 "stats": {
 "duration": 21.370666666666665,
 "peak": 0.7685,
 "rms": 0.1214,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 15,
 "median_spacing_s": 0.9299999999999999,
 "midi": [
 43,
 43,
 40,
 40,
 40,
 40,
 59,
 67,
 69,
 40,
 40,
 41,
 43,
 43,
 40
 ],
 "pc": [
 7,
 7,
 4,
 4,
 4,
 4,
 11,
 7,
 9,
 4,
 4,
 5,
 7,
 7,
 4
 ],
 "names": [
 "G2",
 "G2",
 "E2",
 "E2",
 "E2",
 "E2",
 "B3",
 "G4",
 "A4",
 "E2",
 "E2",
 "F2",
 "G2",
 "G2",
 "E2"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 }
 },
 "web": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/2026-06-18T14-10-45-446Z_inline_audio.wav",
 "stats": {
 "duration": 19.712,
 "peak": 0.4729,
 "rms": 0.0779,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 33,
 "median_spacing_s": 0.4,
 "midi": [
 40,
 68,
 40,
 43,
 43,
 40,
 43,
 40,
 76,
 76,
 40,
 69,
 40,
 40,
 68,
 41,
 40,
 40,
 40,
 79,
 69,
 71,
 40,
 40,
 69,
 40,
 40,
 71,
 40,
 79,
 74,
 67,
 41
 ],
 "pc": [
 4,
 8,
 4,
 7,
 7,
 4,
 7,
 4,
 4,
 4,
 4,
 9,
 4,
 4,
 8,
 5,
 4,
 4,
 4,
 7,
 9,
 11,
 4,
 4,
 9,
 4,
 4,
 11,
 4,
 7,
 2,
 7,
 5
 ],
 "names": [
 "E2",
 "G#4",
 "E2",
 "G2",
 "G2",
 "E2",
 "G2",
 "E2",
 "E5",
 "E5",
 "E2",
 "A4",
 "E2",
 "E2",
 "G#4",
 "F2",
 "E2",
 "E2",
 "E2",
 "G5",
 "A4",
 "B4",
 "E2",
 "E2",
 "A4",
 "E2",
 "E2",
 "B4",
 "E2",
 "G5",
 "D5",
 "G4",
 "F2"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 },
 "toolFailReason": null,
 "errors": []
 },
 "spectrogram": {
 "l2_mel_db": 16.755109786987305,
 "mfcc_distance": 159.564697265625,
 "frames_compared": 1849,
 "spectrogram_png": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-11-11-258Z_e2e-05_dj_dave_full_spectrogram.png",
 "desktop_peak_freq_hz": 66.63339156476167,
 "web_peak_freq_hz": 63.36241883116883,
 "per_beat": null
 },
 "spectrogramError": null,
 "reportPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-11-11-258Z_e2e-05_dj_dave_full.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: basic_stereo_player→mono_player→beep→basic_mono_player | web: basic_stereo_player→beep→mono_player→basic_mono_player) — common for PRNG layer selection."
 ],
 "rows": [
 {
 "synthdef": "sonic-pi-mono_player",
 "desktop": 290,
 "web": 283,
 "ratio": 0.9758620689655172,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-beep",
 "desktop": 60,
 "web": 59,
 "ratio": 0.9833333333333333,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktop": 57,
 "web": 55,
 "ratio": 0.9649122807017544,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktop": 22,
 "web": 22,
 "ratio": 1,
 "significant": true,
 "status": "match",
 "desktopOnset": 0.462,
 "webOnset": 0.462
 },
 {
 "synthdef": "sonic-pi-tech_saws",
 "desktop": 9,
 "web": 9,
 "ratio": 1,
 "significant": false,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 }
 ],
 "fxRows": [
 {
 "synthdef": "sonic-pi-fx_echo",
 "desktop": 61,
 "web": 60,
 "ratio": 0.9836065573770492,
 "significant": true,
 "status": "match",
 "desktopOnset": -0.462,
 "webOnset": -2.473
 },
 {
 "synthdef": "sonic-pi-fx_reverb",
 "desktop": 5,
 "web": 5,
 "ratio": 1,
 "significant": false,
 "status": "match",
 "desktopOnset": null,
 "webOnset": -2.473
 },
 {
 "synthdef": "sonic-pi-fx_panslicer",
 "desktop": 2,
 "web": 2,
 "ratio": 1,
 "significant": false,
 "status": "match",
 "desktopOnset": -0.462,
 "webOnset": -2.473
 }
 ],
 "desktopTotal": 438,
 "webTotal": 428,
 "totalRatio": 0.98,
 "orderMatch": false,
 "desktopOrder": [
 "basic_stereo_player",
 "mono_player",
 "beep",
 "basic_mono_player"
 ],
 "webOrder": [
 "basic_stereo_player",
 "beep",
 "mono_player",
 "basic_mono_player"
 ],
 "sequenceParity": {
 "match": true,
 "epsilonMs": 15,
 "notesChecked": true,
 "rows": [
 {
 "synthdef": "sonic-pi-mono_player",
 "desktopOnsets": [
 0,
 0.115,
 0.231,
 0.231,
 0.346,
 0.462,
 0.462,
 0.462,
 0.577,
 0.692,
 0.692,
 0.808,
 0.923,
 0.981,
 1.038,
 1.154,
 1.154,
 1.269,
 1.385,
 1.385,
 1.385,
 1.5,
 1.615,
 1.615,
 1.731,
 1.846,
 1.962,
 2.077,
 2.077,
 2.192,
 2.308,
 2.308,
 2.308,
 2.423,
 2.538,
 2.538,
 2.654,
 2.769,
 2.827,
 2.885,
 3,
 3,
 3.115,
 3.231,
 3.231,
 3.231,
 3.346,
 3.462,
 3.462,
 3.577,
 3.692,
 3.808,
 3.923,
 3.923,
 4.038,
 4.154,
 4.154,
 4.154,
 4.269,
 4.385,
 4.385,
 4.5,
 4.615,
 4.673,
 4.731,
 4.846,
 4.846,
 4.962,
 5.077,
 5.077,
 5.077,
 5.192,
 5.308,
 5.308,
 5.423,
 5.538,
 5.654,
 5.769,
 5.769,
 5.885,
 6,
 6,
 6,
 6.115,
 6.231,
 6.231,
 6.346,
 6.462,
 6.519,
 6.577,
 6.692,
 6.692,
 6.692,
 6.692,
 6.808,
 6.923,
 6.923,
 6.923,
 7.038,
 7.154,
 7.154,
 7.154,
 7.154,
 7.269,
 7.385,
 7.5,
 7.615,
 7.615,
 7.731,
 7.846,
 7.846,
 7.846,
 7.962,
 8.077,
 8.077,
 8.192,
 8.308,
 8.365,
 8.423,
 8.538,
 8.538,
 8.654,
 8.769,
 8.769,
 8.769,
 8.885,
 9,
 9,
 9.115,
 9.231,
 9.346,
 9.462,
 9.462,
 9.577,
 9.692,
 9.692,
 9.692,
 9.808,
 9.923,
 9.923,
 10.038,
 10.154,
 10.212,
 10.269,
 10.385,
 10.385,
 10.5,
 10.615,
 10.615,
 10.615,
 10.731,
 10.846,
 10.846,
 10.962,
 11.077,
 11.192,
 11.308,
 11.308,
 11.423,
 11.538,
 11.538,
 11.538,
 11.654,
 11.769,
 11.769,
 11.885,
 12,
 12.058,
 12.115,
 12.231,
 12.231,
 12.346,
 12.462,
 12.462,
 12.462,
 12.577,
 12.692,
 12.692,
 12.808,
 12.923,
 13.038,
 13.154,
 13.154,
 13.269,
 13.385,
 13.385,
 13.385,
 13.5,
 13.615,
 13.615,
 13.731,
 13.846,
 13.904,
 13.962,
 14.077,
 14.077,
 14.077,
 14.077,
 14.192,
 14.308,
 14.308,
 14.308,
 14.423,
 14.538,
 14.538,
 14.538,
 14.538,
 14.654,
 14.769,
 14.885,
 15,
 15,
 15.115,
 15.231,
 15.231,
 15.231,
 15.346,
 15.462,
 15.462,
 15.577,
 15.692,
 15.75,
 15.808,
 15.923,
 15.923,
 16.038,
 16.154,
 16.154,
 16.154,
 16.269,
 16.385,
 16.385,
 16.5,
 16.615,
 16.731,
 16.846,
 16.846,
 16.962,
 17.077,
 17.077,
 17.077,
 17.192,
 17.308,
 17.308,
 17.423,
 17.538,
 17.596,
 17.654,
 17.769,
 17.769,
 17.885,
 18,
 18,
 18,
 18.115,
 18.231,
 18.231,
 18.346,
 18.462,
 18.577,
 18.692,
 18.692,
 18.808,
 18.923,
 18.923,
 18.923,
 19.038,
 19.154,
 19.154,
 19.269,
 19.385,
 19.442,
 19.5,
 19.615,
 19.615,
 19.731,
 19.846,
 19.846,
 19.846,
 19.962,
 20.077,
 20.077,
 20.192,
 20.308,
 20.423,
 20.538,
 20.538,
 20.654,
 20.769,
 20.885
 ],
 "webOnsets": [
 0,
 0.115,
 0.231,
 0.231,
 0.346,
 0.462,
 0.462,
 0.462,
 0.577,
 0.692,
 0.692,
 0.808,
 0.923,
 0.981,
 1.039,
 1.154,
 1.154,
 1.269,
 1.385,
 1.385,
 1.385,
 1.5,
 1.615,
 1.615,
 1.731,
 1.846,
 1.962,
 2.077,
 2.077,
 2.192,
 2.308,
 2.308,
 2.308,
 2.423,
 2.538,
 2.538,
 2.654,
 2.769,
 2.827,
 2.885,
 3,
 3,
 3.115,
 3.231,
 3.231,
 3.231,
 3.346,
 3.462,
 3.462,
 3.577,
 3.692,
 3.808,
 3.923,
 3.923,
 4.038,
 4.154,
 4.154,
 4.154,
 4.269,
 4.385,
 4.385,
 4.5,
 4.615,
 4.673,
 4.731,
 4.846,
 4.846,
 4.962,
 5.077,
 5.077,
 5.077,
 5.192,
 5.308,
 5.308,
 5.423,
 5.539,
 5.654,
 5.769,
 5.769,
 5.885,
 6,
 6,
 6,
 6.115,
 6.231,
 6.231,
 6.346,
 6.462,
 6.519,
 6.577,
 6.692,
 6.692,
 6.692,
 6.692,
 6.808,
 6.923,
 6.923,
 6.923,
 7.039,
 7.154,
 7.154,
 7.154,
 7.154,
 7.269,
 7.385,
 7.5,
 7.615,
 7.615,
 7.731,
 7.846,
 7.846,
 7.846,
 7.962,
 8.077,
 8.077,
 8.192,
 8.308,
 8.365,
 8.423,
 8.539,
 8.539,
 8.654,
 8.769,
 8.769,
 8.769,
 8.885,
 9,
 9,
 9.115,
 9.231,
 9.346,
 9.462,
 9.462,
 9.577,
 9.692,
 9.692,
 9.692,
 9.808,
 9.923,
 9.923,
 10.039,
 10.154,
 10.212,
 10.269,
 10.385,
 10.385,
 10.5,
 10.615,
 10.615,
 10.615,
 10.731,
 10.846,
 10.846,
 10.962,
 11.077,
 11.192,
 11.308,
 11.308,
 11.423,
 11.539,
 11.539,
 11.539,
 11.654,
 11.769,
 11.769,
 11.885,
 12,
 12.058,
 12.115,
 12.231,
 12.231,
 12.346,
 12.462,
 12.462,
 12.462,
 12.577,
 12.692,
 12.692,
 12.808,
 12.923,
 13.039,
 13.154,
 13.154,
 13.269,
 13.385,
 13.385,
 13.385,
 13.5,
 13.615,
 13.615,
 13.731,
 13.846,
 13.904,
 13.962,
 14.077,
 14.077,
 14.077,
 14.077,
 14.192,
 14.308,
 14.308,
 14.308,
 14.423,
 14.539,
 14.539,
 14.539,
 14.539,
 14.654,
 14.769,
 14.885,
 15,
 15,
 15.115,
 15.231,
 15.231,
 15.231,
 15.346,
 15.462,
 15.462,
 15.577,
 15.692,
 15.75,
 15.808,
 15.923,
 15.923,
 16.039,
 16.154,
 16.154,
 16.154,
 16.269,
 16.385,
 16.385,
 16.5,
 16.615,
 16.731,
 16.846,
 16.846,
 16.962,
 17.077,
 17.077,
 17.077,
 17.192,
 17.308,
 17.308,
 17.423,
 17.539,
 17.596,
 17.654,
 17.769,
 17.769,
 17.885,
 18,
 18,
 18,
 18.115,
 18.231,
 18.231,
 18.346,
 18.462,
 18.577,
 18.692,
 18.692,
 18.808,
 18.923,
 18.923,
 18.923,
 19.039,
 19.154,
 19.154,
 19.269,
 19.385,
 19.442,
 19.5,
 19.615,
 19.615,
 19.731,
 19.846,
 19.846,
 19.846,
 19.962,
 20.077,
 20.077,
 20.192
 ],
 "comparedLen": 283,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-beep",
 "desktopOnsets": [
 0,
 0.346,
 0.692,
 1.038,
 1.385,
 1.731,
 2.077,
 2.423,
 2.769,
 3.115,
 3.462,
 3.808,
 4.154,
 4.5,
 4.846,
 5.192,
 5.538,
 5.885,
 6.231,
 6.577,
 6.923,
 7.269,
 7.615,
 7.962,
 8.308,
 8.654,
 9,
 9.346,
 9.692,
 10.038,
 10.385,
 10.731,
 11.077,
 11.423,
 11.769,
 12.115,
 12.462,
 12.808,
 13.154,
 13.5,
 13.846,
 14.192,
 14.538,
 14.885,
 15.231,
 15.577,
 15.923,
 16.269,
 16.615,
 16.962,
 17.308,
 17.654,
 18,
 18.346,
 18.692,
 19.038,
 19.385,
 19.731,
 20.077,
 20.423
 ],
 "webOnsets": [
 0,
 0.346,
 0.692,
 1.039,
 1.385,
 1.731,
 2.077,
 2.423,
 2.769,
 3.115,
 3.462,
 3.808,
 4.154,
 4.5,
 4.846,
 5.192,
 5.539,
 5.885,
 6.231,
 6.577,
 6.923,
 7.269,
 7.615,
 7.962,
 8.308,
 8.654,
 9,
 9.346,
 9.692,
 10.039,
 10.385,
 10.731,
 11.077,
 11.423,
 11.769,
 12.115,
 12.462,
 12.808,
 13.154,
 13.5,
 13.846,
 14.192,
 14.539,
 14.885,
 15.231,
 15.577,
 15.923,
 16.269,
 16.615,
 16.962,
 17.308,
 17.654,
 18,
 18.346,
 18.692,
 19.039,
 19.385,
 19.731,
 20.077
 ],
 "comparedLen": 59,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktopOnsets": [
 0,
 0.346,
 0.692,
 1.154,
 1.5,
 1.846,
 2.192,
 2.538,
 3,
 3.346,
 3.692,
 4.038,
 4.385,
 4.846,
 5.192,
 5.538,
 5.885,
 6.231,
 6.692,
 7.038,
 7.385,
 7.731,
 8.077,
 8.538,
 8.885,
 9.231,
 9.577,
 9.923,
 10.385,
 10.731,
 11.077,
 11.423,
 11.769,
 12.231,
 12.577,
 12.923,
 13.269,
 13.615,
 14.077,
 14.423,
 14.769,
 15.115,
 15.462,
 15.923,
 16.269,
 16.615,
 16.962,
 17.308,
 17.769,
 18.115,
 18.462,
 18.808,
 19.154,
 19.615,
 19.962,
 20.308,
 20.654
 ],
 "webOnsets": [
 0,
 0.346,
 0.692,
 1.154,
 1.5,
 1.846,
 2.192,
 2.538,
 3,
 3.346,
 3.692,
 4.038,
 4.385,
 4.846,
 5.192,
 5.539,
 5.885,
 6.231,
 6.692,
 7.039,
 7.385,
 7.731,
 8.077,
 8.539,
 8.885,
 9.231,
 9.577,
 9.923,
 10.385,
 10.731,
 11.077,
 11.423,
 11.769,
 12.231,
 12.577,
 12.923,
 13.269,
 13.615,
 14.077,
 14.423,
 14.769,
 15.115,
 15.462,
 15.923,
 16.269,
 16.615,
 16.962,
 17.308,
 17.769,
 18.115,
 18.462,
 18.808,
 19.154,
 19.615,
 19.962
 ],
 "comparedLen": 55,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktopOnsets": [
 0.462,
 1.385,
 2.308,
 3.231,
 4.154,
 5.077,
 6,
 6.923,
 7.846,
 8.769,
 9.692,
 10.615,
 11.538,
 12.462,
 13.385,
 14.308,
 15.231,
 16.154,
 17.077,
 18,
 18.923,
 19.846
 ],
 "webOnsets": [
 0.462,
 1.385,
 2.308,
 3.231,
 4.154,
 5.077,
 6,
 6.923,
 7.846,
 8.769,
 9.692,
 10.615,
 11.539,
 12.462,
 13.385,
 14.308,
 15.231,
 16.154,
 17.077,
 18,
 18.923,
 19.846
 ],
 "comparedLen": 22,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 }
 ],
 "reasons": [
 "mono_player: 283 onsets match within ε (max Δ 1ms), notes match",
 "beep: 59 onsets match within ε (max Δ 1ms), notes match",
 "basic_stereo_player: 55 onsets match within ε (max Δ 1ms), notes match",
 "basic_mono_player: 22 onsets match within ε (max Δ 1ms), notes match"
 ]
 }
 },
 "note": "STRUCTURE-MATCH · onset-seq match · d438/w428"
 }
}