{
 "timestamp": "2026-06-18T14:12:41.609Z",
 "code": "use_bpm 130\nlive_loop :kick do\n sample :bd_tek, amp: 1.5 if (spread 5, 16).tick\n sleep 0.25\nend\nlive_loop :snare do\n sample :drum_snare_hard, amp: 0.6 if (spread 3, 8).tick\n sleep 0.25\nend\nlive_loop :hat do\n sample :drum_cymbal_closed, amp: 0.4, rate: 2 if (spread 11, 16).tick\n sleep 0.125\nend\nlive_loop :bass do\n use_synth :tb303\n play (ring :e2, :e2, :g2, :a2, :e2, :b1, :e2, :d2).tick, release: 0.2, cutoff: 80\n sleep 0.5\nend\n",
 "duration": 20000,
 "name": "e2e-06_euclidean",
 "desktop": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/desktop-recordings/desktop_2026-06-18T14-11-47-432Z_e2e-06_euclidean.wav",
 "stats": {
 "duration": 21.370666666666665,
 "peak": 0.6958,
 "rms": 0.1184,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 65,
 "median_spacing_s": 0.24,
 "midi": [
 40,
 50,
 40,
 49,
 51,
 57,
 40,
 50,
 40,
 50,
 40,
 57,
 40,
 50,
 40,
 49,
 51,
 57,
 40,
 50,
 40,
 50,
 51,
 57,
 40,
 50,
 40,
 50,
 40,
 57,
 40,
 52,
 40,
 49,
 51,
 57,
 40,
 50,
 40,
 50,
 40,
 57,
 40,
 50,
 40,
 49,
 51,
 57,
 40,
 50,
 40,
 49,
 51,
 57,
 40,
 50,
 40,
 50,
 40,
 57,
 40,
 52,
 40,
 49,
 51
 ],
 "pc": [
 4,
 2,
 4,
 1,
 3,
 9,
 4,
 2,
 4,
 2,
 4,
 9,
 4,
 2,
 4,
 1,
 3,
 9,
 4,
 2,
 4,
 2,
 3,
 9,
 4,
 2,
 4,
 2,
 4,
 9,
 4,
 4,
 4,
 1,
 3,
 9,
 4,
 2,
 4,
 2,
 4,
 9,
 4,
 2,
 4,
 1,
 3,
 9,
 4,
 2,
 4,
 1,
 3,
 9,
 4,
 2,
 4,
 2,
 4,
 9,
 4,
 4,
 4,
 1,
 3
 ],
 "names": [
 "E2",
 "D3",
 "E2",
 "C#3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "D3",
 "E2",
 "A3",
 "E2",
 "D3",
 "E2",
 "C#3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "D3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "D3",
 "E2",
 "A3",
 "E2",
 "E3",
 "E2",
 "C#3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "D3",
 "E2",
 "A3",
 "E2",
 "D3",
 "E2",
 "C#3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "C#3",
 "D#3",
 "A3",
 "E2",
 "D3",
 "E2",
 "D3",
 "E2",
 "A3",
 "E2",
 "E3",
 "E2",
 "C#3",
 "D#3"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 }
 },
 "web": {
 "wavPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/2026-06-18T14-11-48-334Z_inline_audio.wav",
 "stats": {
 "duration": 19.712,
 "peak": 0.4445,
 "rms": 0.071,
 "clipping": 0,
 "sampleRate": 48000,
 "channels": 2
 },
 "ok": true,
 "pitch": {
 "count": 64,
 "median_spacing_s": 0.24,
 "midi": [
 40,
 49,
 40,
 52,
 40,
 50,
 40,
 49,
 40,
 52,
 52,
 40,
 40,
 49,
 40,
 52,
 51,
 53,
 40,
 49,
 40,
 51,
 51,
 40,
 40,
 49,
 40,
 51,
 51,
 40,
 40,
 50,
 40,
 52,
 40,
 50,
 40,
 50,
 40,
 52,
 52,
 40,
 40,
 49,
 40,
 51,
 52,
 50,
 40,
 49,
 40,
 51,
 51,
 50,
 40,
 49,
 40,
 51,
 53,
 40,
 40,
 49,
 40,
 40
 ],
 "pc": [
 4,
 1,
 4,
 4,
 4,
 2,
 4,
 1,
 4,
 4,
 4,
 4,
 4,
 1,
 4,
 4,
 3,
 5,
 4,
 1,
 4,
 3,
 3,
 4,
 4,
 1,
 4,
 3,
 3,
 4,
 4,
 2,
 4,
 4,
 4,
 2,
 4,
 2,
 4,
 4,
 4,
 4,
 4,
 1,
 4,
 3,
 4,
 2,
 4,
 1,
 4,
 3,
 3,
 2,
 4,
 1,
 4,
 3,
 5,
 4,
 4,
 1,
 4,
 4
 ],
 "names": [
 "E2",
 "C#3",
 "E2",
 "E3",
 "E2",
 "D3",
 "E2",
 "C#3",
 "E2",
 "E3",
 "E3",
 "E2",
 "E2",
 "C#3",
 "E2",
 "E3",
 "D#3",
 "F3",
 "E2",
 "C#3",
 "E2",
 "D#3",
 "D#3",
 "E2",
 "E2",
 "C#3",
 "E2",
 "D#3",
 "D#3",
 "E2",
 "E2",
 "D3",
 "E2",
 "E3",
 "E2",
 "D3",
 "E2",
 "D3",
 "E2",
 "E3",
 "E3",
 "E2",
 "E2",
 "C#3",
 "E2",
 "D#3",
 "E3",
 "D3",
 "E2",
 "C#3",
 "E2",
 "D#3",
 "D#3",
 "D3",
 "E2",
 "C#3",
 "E2",
 "D#3",
 "F3",
 "E2",
 "E2",
 "C#3",
 "E2",
 "E2"
 ],
 "method": "onset",
 "confidence": 1,
 "inconclusive": false,
 "compare": "midi"
 },
 "toolFailReason": null,
 "errors": []
 },
 "spectrogram": {
 "l2_mel_db": 19.041107177734375,
 "mfcc_distance": 182.0930938720703,
 "frames_compared": 1849,
 "spectrogram_png": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-12-14-421Z_e2e-06_euclidean_spectrogram.png",
 "desktop_peak_freq_hz": 66.63339156476167,
 "web_peak_freq_hz": 60.673701298701296,
 "per_beat": null
 },
 "spectrogramError": null,
 "reportPath": "/Users/mrityunjaybhardwaj/Documents/projects/sonicPiWeb/.captures/compare_2026-06-18T14-12-14-421Z_e2e-06_euclidean.md",
 "reconciledPitch": null,
 "eventParity": {
 "report": {
 "verdict": "STRUCTURE-MATCH",
 "isPrng": false,
 "reasons": [
 "Significant synthdef multiset matches.",
 "Significant-layer first-appearance order differs (desktop: basic_mono_player→basic_stereo_player→tb303 | web: basic_stereo_player→tb303→basic_mono_player) — thread-start timing."
 ],
 "rows": [
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktop": 323,
 "web": 315,
 "ratio": 0.9752321981424149,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktop": 92,
 "web": 90,
 "ratio": 0.9782608695652174,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktop": 58,
 "web": 57,
 "ratio": 0.9827586206896551,
 "significant": true,
 "status": "match",
 "desktopOnset": 0,
 "webOnset": 0
 }
 ],
 "fxRows": [],
 "desktopTotal": 473,
 "webTotal": 462,
 "totalRatio": 0.98,
 "orderMatch": false,
 "desktopOrder": [
 "basic_mono_player",
 "basic_stereo_player",
 "tb303"
 ],
 "webOrder": [
 "basic_stereo_player",
 "tb303",
 "basic_mono_player"
 ],
 "sequenceParity": {
 "match": true,
 "epsilonMs": 15,
 "notesChecked": true,
 "rows": [
 {
 "synthdef": "sonic-pi-basic_mono_player",
 "desktopOnsets": [
 0,
 0,
 0.115,
 0.173,
 0.288,
 0.346,
 0.346,
 0.462,
 0.519,
 0.635,
 0.692,
 0.692,
 0.808,
 0.865,
 0.923,
 0.923,
 1.038,
 1.096,
 1.212,
 1.269,
 1.269,
 1.385,
 1.442,
 1.558,
 1.615,
 1.615,
 1.731,
 1.788,
 1.846,
 1.846,
 1.962,
 2.019,
 2.135,
 2.192,
 2.192,
 2.308,
 2.365,
 2.481,
 2.538,
 2.538,
 2.654,
 2.712,
 2.769,
 2.769,
 2.885,
 2.942,
 3.058,
 3.115,
 3.115,
 3.231,
 3.288,
 3.404,
 3.462,
 3.462,
 3.577,
 3.635,
 3.692,
 3.692,
 3.808,
 3.865,
 3.981,
 4.038,
 4.038,
 4.154,
 4.212,
 4.327,
 4.385,
 4.385,
 4.5,
 4.558,
 4.615,
 4.615,
 4.731,
 4.788,
 4.904,
 4.962,
 4.962,
 5.077,
 5.135,
 5.25,
 5.308,
 5.308,
 5.423,
 5.481,
 5.538,
 5.538,
 5.654,
 5.712,
 5.827,
 5.885,
 5.885,
 6,
 6.058,
 6.173,
 6.231,
 6.231,
 6.346,
 6.404,
 6.462,
 6.462,
 6.577,
 6.635,
 6.75,
 6.808,
 6.808,
 6.923,
 6.981,
 7.096,
 7.154,
 7.154,
 7.269,
 7.327,
 7.385,
 7.385,
 7.5,
 7.558,
 7.673,
 7.731,
 7.731,
 7.846,
 7.904,
 8.019,
 8.077,
 8.077,
 8.192,
 8.25,
 8.308,
 8.308,
 8.423,
 8.481,
 8.596,
 8.654,
 8.654,
 8.769,
 8.827,
 8.942,
 9,
 9,
 9.115,
 9.173,
 9.231,
 9.231,
 9.346,
 9.404,
 9.519,
 9.577,
 9.577,
 9.692,
 9.75,
 9.865,
 9.923,
 9.923,
 10.038,
 10.096,
 10.154,
 10.154,
 10.269,
 10.327,
 10.442,
 10.5,
 10.5,
 10.615,
 10.673,
 10.788,
 10.846,
 10.846,
 10.962,
 11.019,
 11.077,
 11.077,
 11.192,
 11.25,
 11.365,
 11.423,
 11.423,
 11.538,
 11.596,
 11.712,
 11.769,
 11.769,
 11.885,
 11.942,
 12,
 12,
 12.115,
 12.173,
 12.288,
 12.346,
 12.346,
 12.462,
 12.519,
 12.635,
 12.692,
 12.692,
 12.808,
 12.865,
 12.923,
 12.923,
 13.038,
 13.096,
 13.212,
 13.269,
 13.269,
 13.385,
 13.442,
 13.558,
 13.615,
 13.615,
 13.731,
 13.788,
 13.846,
 13.846,
 13.962,
 14.019,
 14.135,
 14.192,
 14.192,
 14.308,
 14.365,
 14.481,
 14.538,
 14.538,
 14.654,
 14.712,
 14.769,
 14.769,
 14.885,
 14.942,
 15.058,
 15.115,
 15.115,
 15.231,
 15.288,
 15.404,
 15.462,
 15.462,
 15.577,
 15.635,
 15.692,
 15.692,
 15.808,
 15.865,
 15.981,
 16.038,
 16.038,
 16.154,
 16.212,
 16.327,
 16.385,
 16.385,
 16.5,
 16.558,
 16.615,
 16.615,
 16.731,
 16.788,
 16.904,
 16.962,
 16.962,
 17.077,
 17.135,
 17.25,
 17.308,
 17.308,
 17.423,
 17.481,
 17.538,
 17.538,
 17.654,
 17.712,
 17.827,
 17.885,
 17.885,
 18,
 18.058,
 18.173,
 18.231,
 18.231,
 18.346,
 18.404,
 18.462,
 18.462,
 18.577,
 18.635,
 18.75,
 18.808,
 18.808,
 18.923,
 18.981,
 19.096,
 19.154,
 19.154,
 19.269,
 19.327,
 19.385,
 19.385,
 19.5,
 19.558,
 19.673,
 19.731,
 19.731,
 19.846,
 19.904,
 20.019,
 20.077,
 20.077,
 20.192,
 20.25,
 20.308,
 20.308,
 20.423,
 20.481,
 20.596,
 20.654,
 20.654,
 20.769,
 20.827,
 20.942,
 21,
 21,
 21.115,
 21.173,
 21.231
 ],
 "webOnsets": [
 0,
 0,
 0.115,
 0.173,
 0.289,
 0.346,
 0.346,
 0.462,
 0.519,
 0.635,
 0.692,
 0.692,
 0.808,
 0.865,
 0.923,
 0.923,
 1.039,
 1.096,
 1.212,
 1.269,
 1.269,
 1.385,
 1.442,
 1.558,
 1.615,
 1.615,
 1.731,
 1.789,
 1.846,
 1.846,
 1.962,
 2.019,
 2.135,
 2.192,
 2.192,
 2.308,
 2.365,
 2.481,
 2.538,
 2.538,
 2.654,
 2.712,
 2.769,
 2.769,
 2.885,
 2.942,
 3.058,
 3.115,
 3.115,
 3.231,
 3.288,
 3.404,
 3.462,
 3.462,
 3.577,
 3.635,
 3.692,
 3.692,
 3.808,
 3.865,
 3.981,
 4.038,
 4.038,
 4.154,
 4.212,
 4.327,
 4.385,
 4.385,
 4.5,
 4.558,
 4.615,
 4.615,
 4.731,
 4.788,
 4.904,
 4.962,
 4.962,
 5.077,
 5.135,
 5.25,
 5.308,
 5.308,
 5.423,
 5.481,
 5.538,
 5.538,
 5.654,
 5.712,
 5.827,
 5.885,
 5.885,
 6,
 6.058,
 6.173,
 6.231,
 6.231,
 6.346,
 6.404,
 6.462,
 6.462,
 6.577,
 6.635,
 6.75,
 6.808,
 6.808,
 6.923,
 6.981,
 7.096,
 7.154,
 7.154,
 7.269,
 7.327,
 7.385,
 7.385,
 7.5,
 7.558,
 7.673,
 7.731,
 7.731,
 7.846,
 7.904,
 8.019,
 8.077,
 8.077,
 8.192,
 8.25,
 8.308,
 8.308,
 8.423,
 8.481,
 8.596,
 8.654,
 8.654,
 8.769,
 8.827,
 8.942,
 9,
 9,
 9.115,
 9.173,
 9.231,
 9.231,
 9.346,
 9.404,
 9.519,
 9.577,
 9.577,
 9.692,
 9.75,
 9.865,
 9.923,
 9.923,
 10.039,
 10.096,
 10.154,
 10.154,
 10.269,
 10.327,
 10.442,
 10.5,
 10.5,
 10.615,
 10.673,
 10.789,
 10.846,
 10.846,
 10.962,
 11.019,
 11.077,
 11.077,
 11.192,
 11.25,
 11.365,
 11.423,
 11.423,
 11.539,
 11.596,
 11.712,
 11.769,
 11.769,
 11.885,
 11.942,
 12,
 12,
 12.115,
 12.173,
 12.289,
 12.346,
 12.346,
 12.462,
 12.519,
 12.635,
 12.692,
 12.692,
 12.808,
 12.865,
 12.923,
 12.923,
 13.039,
 13.096,
 13.212,
 13.269,
 13.269,
 13.385,
 13.442,
 13.558,
 13.615,
 13.615,
 13.731,
 13.789,
 13.846,
 13.846,
 13.962,
 14.019,
 14.135,
 14.192,
 14.192,
 14.308,
 14.365,
 14.481,
 14.539,
 14.539,
 14.654,
 14.712,
 14.769,
 14.769,
 14.885,
 14.942,
 15.058,
 15.115,
 15.115,
 15.231,
 15.289,
 15.404,
 15.462,
 15.462,
 15.577,
 15.635,
 15.692,
 15.692,
 15.808,
 15.865,
 15.981,
 16.039,
 16.039,
 16.154,
 16.212,
 16.327,
 16.385,
 16.385,
 16.5,
 16.558,
 16.615,
 16.615,
 16.731,
 16.789,
 16.904,
 16.962,
 16.962,
 17.077,
 17.135,
 17.25,
 17.308,
 17.308,
 17.423,
 17.481,
 17.539,
 17.539,
 17.654,
 17.712,
 17.827,
 17.885,
 17.885,
 18,
 18.058,
 18.173,
 18.231,
 18.231,
 18.346,
 18.404,
 18.462,
 18.462,
 18.577,
 18.635,
 18.75,
 18.808,
 18.808,
 18.923,
 18.981,
 19.096,
 19.154,
 19.154,
 19.269,
 19.327,
 19.385,
 19.385,
 19.5,
 19.558,
 19.673,
 19.731,
 19.731,
 19.846,
 19.904,
 20.019,
 20.077,
 20.077,
 20.192,
 20.25,
 20.308,
 20.308,
 20.423,
 20.481,
 20.596,
 20.654,
 20.654
 ],
 "comparedLen": 315,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-tb303",
 "desktopOnsets": [
 0,
 0.231,
 0.462,
 0.692,
 0.923,
 1.154,
 1.385,
 1.615,
 1.846,
 2.077,
 2.308,
 2.538,
 2.769,
 3,
 3.231,
 3.462,
 3.692,
 3.923,
 4.154,
 4.385,
 4.615,
 4.846,
 5.077,
 5.308,
 5.538,
 5.769,
 6,
 6.231,
 6.462,
 6.692,
 6.923,
 7.154,
 7.385,
 7.615,
 7.846,
 8.077,
 8.308,
 8.538,
 8.769,
 9,
 9.231,
 9.462,
 9.692,
 9.923,
 10.154,
 10.385,
 10.615,
 10.846,
 11.077,
 11.308,
 11.538,
 11.769,
 12,
 12.231,
 12.462,
 12.692,
 12.923,
 13.154,
 13.385,
 13.615,
 13.846,
 14.077,
 14.308,
 14.538,
 14.769,
 15,
 15.231,
 15.462,
 15.692,
 15.923,
 16.154,
 16.385,
 16.615,
 16.846,
 17.077,
 17.308,
 17.538,
 17.769,
 18,
 18.231,
 18.462,
 18.692,
 18.923,
 19.154,
 19.385,
 19.615,
 19.846,
 20.077,
 20.308,
 20.538,
 20.769,
 21
 ],
 "webOnsets": [
 0,
 0.231,
 0.462,
 0.692,
 0.923,
 1.154,
 1.385,
 1.615,
 1.846,
 2.077,
 2.308,
 2.538,
 2.769,
 3,
 3.231,
 3.462,
 3.692,
 3.923,
 4.154,
 4.385,
 4.615,
 4.846,
 5.077,
 5.308,
 5.538,
 5.769,
 6,
 6.231,
 6.462,
 6.692,
 6.923,
 7.154,
 7.385,
 7.615,
 7.846,
 8.077,
 8.308,
 8.539,
 8.769,
 9,
 9.231,
 9.462,
 9.692,
 9.923,
 10.154,
 10.385,
 10.615,
 10.846,
 11.077,
 11.308,
 11.539,
 11.769,
 12,
 12.231,
 12.462,
 12.692,
 12.923,
 13.154,
 13.385,
 13.615,
 13.846,
 14.077,
 14.308,
 14.539,
 14.769,
 15,
 15.231,
 15.462,
 15.692,
 15.923,
 16.154,
 16.385,
 16.615,
 16.846,
 17.077,
 17.308,
 17.539,
 17.769,
 18,
 18.231,
 18.462,
 18.692,
 18.923,
 19.154,
 19.385,
 19.615,
 19.846,
 20.077,
 20.308,
 20.539
 ],
 "comparedLen": 90,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 },
 {
 "synthdef": "sonic-pi-basic_stereo_player",
 "desktopOnsets": [
 0,
 0.346,
 0.692,
 1.038,
 1.385,
 1.846,
 2.192,
 2.538,
 2.885,
 3.231,
 3.692,
 4.038,
 4.385,
 4.731,
 5.077,
 5.538,
 5.885,
 6.231,
 6.577,
 6.923,
 7.385,
 7.731,
 8.077,
 8.423,
 8.769,
 9.231,
 9.577,
 9.923,
 10.269,
 10.615,
 11.077,
 11.423,
 11.769,
 12.115,
 12.462,
 12.923,
 13.269,
 13.615,
 13.962,
 14.308,
 14.769,
 15.115,
 15.462,
 15.808,
 16.154,
 16.615,
 16.962,
 17.308,
 17.654,
 18,
 18.462,
 18.808,
 19.154,
 19.5,
 19.846,
 20.308,
 20.654,
 21
 ],
 "webOnsets": [
 0,
 0.346,
 0.692,
 1.039,
 1.385,
 1.846,
 2.192,
 2.538,
 2.885,
 3.231,
 3.692,
 4.038,
 4.385,
 4.731,
 5.077,
 5.538,
 5.885,
 6.231,
 6.577,
 6.923,
 7.385,
 7.731,
 8.077,
 8.423,
 8.769,
 9.231,
 9.577,
 9.923,
 10.269,
 10.615,
 11.077,
 11.423,
 11.769,
 12.115,
 12.462,
 12.923,
 13.269,
 13.615,
 13.962,
 14.308,
 14.769,
 15.115,
 15.462,
 15.808,
 16.154,
 16.615,
 16.962,
 17.308,
 17.654,
 18,
 18.462,
 18.808,
 19.154,
 19.5,
 19.846,
 20.308,
 20.654
 ],
 "comparedLen": 57,
 "timingMatched": true,
 "firstMismatchIdx": -1,
 "maxDevMs": 1,
 "noteMatched": true,
 "matched": true
 }
 ],
 "reasons": [
 "basic_mono_player: 315 onsets match within ε (max Δ 1ms), notes match",
 "tb303: 90 onsets match within ε (max Δ 1ms), notes match",
 "basic_stereo_player: 57 onsets match within ε (max Δ 1ms), notes match"
 ]
 }
 },
 "note": "STRUCTURE-MATCH · onset-seq match · d473/w462"
 }
}