{"product_id":"plug-in-bundle","title":"The Plug-In Bundle - All Yurt Rock Plug-Ins","description":"\u003cstyle\u003e\n.yrb-box{border:1px solid var(--c,#e0a43b);border-radius:12px;padding:24px 20px;margin:24px 0;text-align:center}\n.yrb-label{margin:0 0 6px;font-size:12px;font-weight:bold;letter-spacing:.14em;text-transform:uppercase;color:var(--c,#e0a43b)}\n.yrb-lead{margin:0 0 16px}\n.yrb-btns{margin:0 0 12px}\n.yrb-btn{display:inline-block;background:var(--c,#e0a43b);color:var(--t,#0d0a07) !important;font-weight:600;padding:12px 24px;border-radius:8px;text-decoration:none !important;margin:4px 6px}\n.yrb-fine{margin:0;font-size:13px;opacity:.65}\n.yrb-video{padding:56.25% 0 0 0;position:relative;margin:24px 0}\n.yrb-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}\n\u003c\/style\u003e\n\u003cp\u003e\u003cstrong\u003eSix plug-ins. One low price.\u003c\/strong\u003e JUGGLE chops any loop onto pads and flips it into a brand-new groove. PRISM splits your kit into four bands of color. CARTRIDGE runs it through four generations of game consoles. DECADE puts eight decades of drum sound on a single timeline. Pick Pocket steals the feel from any drum groove and hands it to you as unquantized MIDI. Dr. Fill listens to a bar and writes the fill, cut entirely from the sounds of your own loop. This bundle gets you lifetime licenses for all six.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\"\u003e\n\u003cp class=\"yrb-label\"\u003eAll six Yurt Rock plug-ins\u003c\/p\u003e\n\u003cp class=\"yrb-lead\" style=\"font-size: 18px;\"\u003e\u003cstrong\u003eAll six plug-ins for just $99\u003c\/strong\u003e \u003cspan style=\"opacity: .65;\"\u003e— a $294 value\u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-label\" style=\"font-size: 18px;\"\u003eWhat's in the bundle\u003c\/p\u003e\n\u003cp style=\"margin: 0 0 8px;\"\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/juggle-chop-flip-loop-re-sequencer\" title=\"JUGGLE Plug-In\"\u003eJUGGLE\u003c\/a\u003e\u003c\/strong\u003e — Chop \u0026amp; Flip Loop Re-Sequencer\u003cbr\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/prism-multiband-spatial-fx-drum-plug-in\" title=\"PRISM Plug-In\"\u003ePRISM\u003c\/a\u003e\u003c\/strong\u003e — Multiband Spatial EFX Drum Plug-In\u003cbr\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/cartridge-console-era-drum-fx-plug-in\" title=\"CARTRIDGE Plug-In\"\u003eCARTRIDGE\u003c\/a\u003e\u003c\/strong\u003e — Console Era Drum FX Plug-In\u003cbr\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/decade-sonic-time-machine-plug-in\" title=\"DECADE Plug-In\"\u003eDECADE\u003c\/a\u003e\u003c\/strong\u003e — The Sonic Time Machine Plug-In\u003cbr\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/pick-pocket-audio-to-midi-drum-plug-in\" title=\"Pick Pocket Plug-In\"\u003ePick Pocket\u003c\/a\u003e\u003c\/strong\u003e — Audio to MIDI Drum Plug-In\u003cbr\u003e\u003cstrong\u003e\u003ca href=\"https:\/\/yurtrock.com\/products\/dr-fill-the-drum-fill-creator-plug-in\" title=\"Dr. Fill Plug-In\"\u003eDr. Fill\u003c\/a\u003e\u003c\/strong\u003e — The Drum Fill Creator Plug-In\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eLifetime licenses for all six · AU, VST3, AAX \u0026amp; Standalone · Up to 3 machines each\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003cstrong\u003eAll six are free to try.\u003c\/strong\u003e Download any of them below and run it on your own audio right now. No card. No iLok. After purchase, activate each one inside the plug-in.\u003c\/p\u003e\n\u003ch2\u003eJUGGLE — Chop \u0026amp; Flip Loop Re-Sequencer\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eChop it, flip it, play it back like you meant it.\u003c\/strong\u003e JUGGLE is a loop re-sequencer for any sound, not just drums. Capture any audio straight from your DAW, or load a loop from the entire Yurt Rock Vault catalog or your own drive, and JUGGLE cuts it onto pads. Then rebuild the groove your way on a 16-step grid, or let JUGGLE generate completely new grooves in a click. Try it on guitar, keys, bass, vocals and more to change the vibe and feel of your song in seconds.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\" style=\"--c: #3df2b1; --t: #0b0b10;\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003ePlay the whole thing before you pay.\u003c\/strong\u003e Every pad, every preset, the generator, the XY effects and the full mixing console, on any loop you like, for as long as you like. Exporting your flip is the only thing that needs a license.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/juggle\"\u003eDownload JUGGLE for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp style=\"margin: 0 0 12px; font-size: 14px;\"\u003eNo install? \u003ca href=\"https:\/\/vault.yurtrock.com\/labs\/juggle\" style=\"color: #3df2b1; font-weight: 600;\"\u003eOpen JUGGLE in your browser at The Vault Labs\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 11+ (Intel \u0026amp; Apple Silicon) · Windows 10+\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1243041957?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"JUGGLE - Chop \u0026amp; Flip Loop Re-Sequencer\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003cstyle\u003e\n#yrj{--j-bg:#0b0b10;--j-panel:#14141b;--j-panel2:#1c1c25;--j-text:#eceef1;--j-muted:rgba(236,238,241,.58);--j-faint:rgba(236,238,241,.32);--j-hair:rgba(236,238,241,.12);--j-on:#3df2b1;--j-off:#9aa3b2;--j-row:76px;display:block;box-sizing:border-box;width:100%;max-width:920px;margin:24px auto;background:var(--j-bg);color:var(--j-text);font-family:Archivo,\"Helvetica Neue\",Helvetica,Arial,system-ui,sans-serif;font-size:15px;line-height:1.35;-webkit-font-smoothing:antialiased;border:1px solid var(--j-hair);border-radius:3px;overflow:hidden;text-align:left}\n#yrj *,#yrj *::before,#yrj *::after{box-sizing:border-box;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;box-shadow:none;outline:0;float:none;transform:none;line-height:1.35;max-width:none;min-width:0;min-height:0;margin:0}\n#yrj button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-appearance:none;appearance:none}\n#yrj .j-head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--j-hair);background:var(--j-panel)}\n#yrj .j-hart{flex:none;width:44px;height:44px;border-radius:2px;object-fit:cover;display:block;border:1px solid var(--j-hair)}\n#yrj .j-htext{min-width:0}\n#yrj .j-title{font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;letter-spacing:.02em;text-transform:uppercase;font-size:15px;margin:0;color:var(--j-text)}\n#yrj .j-sub{display:block;font-size:12px;color:var(--j-muted);margin-top:2px}\n#yrj .j-playall{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none;padding:8px 14px;border:1px solid var(--j-on);color:var(--j-on);border-radius:2px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .15s,color .15s}\n#yrj .j-playall span{text-transform:uppercase;letter-spacing:.08em}\n#yrj .j-playall:hover{background:var(--j-on);color:#0b0b10}\n#yrj .j-playall svg{display:block}\n\/* the big switch: lights the half that's playing; tap a side to jump there at the same spot in the bar and stay *\/\n#yrj .j-tm{display:flex;align-items:center;gap:14px;padding:12px 18px;background:var(--j-panel2);border-bottom:1px solid var(--j-hair)}\n#yrj .j-lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--j-faint);white-space:nowrap}\n#yrj .j-sw{position:relative;flex:none;display:grid;grid-template-columns:1fr 1fr;width:188px;height:40px;border:1px solid var(--j-hair);border-radius:20px;background:var(--j-bg);overflow:hidden}\n#yrj .j-knob{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:17px;background:var(--j-off);transition:left .22s cubic-bezier(.3,.7,.3,1),background .22s}\n#yrj .j-sw.is-on .j-knob{left:50%;background:var(--j-on)}\n#yrj .j-sw.is-idle .j-knob{opacity:.18}\n#yrj .j-side{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--j-muted);transition:color .22s}\n#yrj .j-side span{letter-spacing:.12em;text-transform:uppercase}\n#yrj .j-sw:not(.is-on):not(.is-idle) .j-s-off,#yrj .j-sw.is-on .j-s-on{color:#0b0b10}\n#yrj .j-side:hover{color:var(--j-text)}\n#yrj .j-say{min-width:0;margin-left:auto;font-size:11.5px;color:var(--j-muted);text-align:right}\n#yrj .j-say b{color:var(--j-text);font-weight:600}\n#yrj .j-say .j-hold{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--j-on);border-radius:2px;color:var(--j-on);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;vertical-align:1px}\n#yrj .j-list{height:calc(var(--j-row) * 5);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(61,242,177,.45) transparent;margin:0;padding:0}\n#yrj .j-list::-webkit-scrollbar{width:9px}\n#yrj .j-list::-webkit-scrollbar-track{background:var(--j-panel)}\n#yrj .j-list::-webkit-scrollbar-thumb{background:rgba(61,242,177,.45);border-radius:9px}\n#yrj .j-list::-webkit-scrollbar-thumb:hover{background:var(--j-on)}\n#yrj .j-row{display:flex;align-items:center;gap:12px;width:100%;height:var(--j-row);padding:0 18px;text-align:left;border-bottom:1px solid var(--j-hair);transition:background .15s;cursor:pointer}\n#yrj .j-row:hover{background:var(--j-panel)}\n#yrj .j-row.is-active{background:var(--j-panel2)}\n#yrj .j-row.is-active .j-name{color:var(--j-on)}\n#yrj .j-play{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--j-hair);display:grid;place-items:center;color:var(--j-text);transition:.15s}\n#yrj .j-row:hover .j-play{border-color:var(--j-on);color:var(--j-on)}\n#yrj .j-row.is-active .j-play{background:var(--j-on);border-color:var(--j-on);color:#0b0b10}\n#yrj .j-play svg{display:block;width:13px;height:13px}\n#yrj .j-meta{min-width:0;flex:1 1 40%;display:flex;flex-direction:column;justify-content:center}\n#yrj .j-name{display:block;font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;color:var(--j-text)}\n#yrj .j-by{display:block;font-size:11.5px;color:var(--j-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}\n#yrj .j-wave{flex:1 1 26%;height:36px;min-width:70px;cursor:pointer;display:block}\n\/* per-row Off\/On pills: light with the half, and start that row on that side *\/\n#yrj .j-pills{flex:none;display:flex;gap:4px}\n#yrj .j-pill{width:38px;height:24px;border:1px solid var(--j-hair);border-radius:12px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--j-faint);transition:background .2s,color .2s,border-color .2s}\n#yrj .j-pill:hover{border-color:var(--j-text);color:var(--j-text)}\n#yrj .j-pill.lit.p-off{background:var(--j-off);border-color:var(--j-off);color:#0b0b10}\n#yrj .j-pill.lit.p-on{background:var(--j-on);border-color:var(--j-on);color:#0b0b10}\n#yrj .j-tag{flex:none;width:36px;display:block;text-align:right;font-size:11px;color:var(--j-muted);letter-spacing:.02em;white-space:nowrap}\n#yrj .j-foot{display:flex;align-items:center;gap:8px;padding:11px 18px;background:var(--j-panel);border-top:1px solid var(--j-hair);font-size:11.5px;color:var(--j-faint)}\n#yrj .j-foot .j-now{color:var(--j-muted);margin-left:auto;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n#yrj.is-narrow .j-wave,#yrj.is-narrow .j-tag,#yrj.is-narrow .j-sub,#yrj.is-narrow .j-say{display:none}\n#yrj.is-narrow .j-row{padding:0 12px;gap:10px}\n#yrj.is-narrow .j-head,#yrj.is-narrow .j-tm{padding-left:12px;padding-right:12px}\n#yrj.is-narrow .j-sw{margin-left:auto}\n#yrj.is-narrow .j-foot .j-count{display:none}\n@media (max-width:640px){#yrj{--j-row:70px;font-size:14px}#yrj .j-row{padding:0 12px;gap:10px}#yrj .j-head{padding:13px 12px}#yrj .j-hart{display:none}#yrj .j-wave{display:none}#yrj .j-playall span{display:none}#yrj .j-playall{padding:9px 11px}#yrj .j-tm{padding:10px 12px}#yrj .j-say{display:none}#yrj .j-sw{margin-left:auto}}\n@media (prefers-reduced-motion:reduce){#yrj *{transition:none !important}}\n\u003c\/style\u003e\n\u003cdiv id=\"yrj\" data-yrj-player=\"juggle\"\u003e\n\u003cdiv class=\"j-head\"\u003e\n\u003cimg class=\"j-hart\" alt=\"JUGGLE\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0510\/4363\/1276\/files\/JUGGLE_Cover.jpg?v=1793573305\u0026amp;width=120\"\u003e\n\u003cdiv class=\"j-htext\"\u003e\n\u003ch3 class=\"j-title\"\u003eHear JUGGLE\u003c\/h3\u003e\n\u003cspan class=\"j-sub\"\u003eEach preview plays the original loop (Off), then the JUGGLE flip (On). Flip the switch to compare.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"j-playall\"\u003e\u003csvg width=\"11\" height=\"11\" viewbox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2 1l9 5-9 5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003ePlay All\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"j-tm\"\u003e\n\u003cspan class=\"j-lbl\"\u003eJUGGLE\u003c\/span\u003e\n\u003cdiv class=\"j-sw is-idle\" role=\"group\" aria-label=\"JUGGLE off or on\"\u003e\n\u003cspan class=\"j-knob\"\u003e\u003c\/span\u003e\u003cbutton type=\"button\" class=\"j-side j-s-off\" aria-pressed=\"false\"\u003e\u003cspan\u003eOff\u003c\/span\u003e\u003c\/button\u003e\u003cbutton type=\"button\" class=\"j-side j-s-on\" aria-pressed=\"false\"\u003e\u003cspan\u003eOn\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cspan class=\"j-say\"\u003ePress play, then flip the switch\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"j-list\" role=\"list\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"j-foot\"\u003e\n\u003cspan class=\"j-count\"\u003e10 previews · scroll for more ↓\u003c\/span\u003e\u003cspan class=\"j-now\"\u003eNothing playing\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\nvar root=document.getElementById('yrj');if(!root||root.getAttribute('data-ready'))return;root.setAttribute('data-ready','1');\nvar BASE='https:\/\/pub-ce7191143c1846959ab46ad717da6fed.r2.dev\/previews\/juggle-chop-flip-loop-re-sequencer\/';\n\/* n name, f which side plays first (\"off\" = the original loop, \"on\" = the flip), p file, d seconds, w 64-step base36 waveform. The switch is at the midpoint. *\/\nvar DATA=[{\"n\":\"Chicken Scratch\",\"f\":\"off\",\"p\":\"juggle-chicken-scratch-off-on.mp3\",\"d\":8.76,\"w\":\"zcwcdxb43ksfaxf7xgvafyc637yf9waboc9bpd9f7boc9bafqc9bpd9f7boc9bae\"},{\"n\":\"Chord Stab Gate\",\"f\":\"on\",\"p\":\"juggle-chord-stab-gate-on-off.mp3\",\"d\":14.16,\"w\":\"y5l60wkc1vwe4l10zec1xx87kwthdiuh8vmfusv9iyx8biw9x8gax5u9k6yawgx9\"},{\"n\":\"Electric Encore\",\"f\":\"off\",\"p\":\"juggle-electric-encore-off-on.mp3\",\"d\":10.25,\"w\":\"z9zah23338y8i146zcxdh23647z8h255ten9g83suknag84bten9g83suknag84b\"},{\"n\":\"Hip Strut\",\"f\":\"off\",\"p\":\"juggle-hip-strut-off-on.mp3\",\"d\":8.04,\"w\":\"z628g318q6v8g4v72jq4i48eqgn5g4o4v83se4s7pttaf5tav83se4s7pttaf5ta\"},{\"n\":\"Late Night\",\"f\":\"off\",\"p\":\"juggle-late-night-off-on.mp3\",\"d\":8.93,\"w\":\"u8211018d21rl7q7p4111018e2111010z9m89576g4n6a535y9m89576g4n6a535\"},{\"n\":\"Marble Racket\",\"f\":\"off\",\"p\":\"juggle-marble-racket-off-on.mp3\",\"d\":10.7,\"w\":\"z5v61xc138vcdw82z5v61xc138vcdv82vbl72xc235ibkyi5vbl72xc235ibkyi5\"},{\"n\":\"Newark\",\"f\":\"off\",\"p\":\"juggle-newark-off-on.mp3\",\"d\":9.46,\"w\":\"paune5nda1w3k5mcb3w3kco4ldb2mds2u8ttojt8qhv8lttzs7ttojt8qhv8lttz\"},{\"n\":\"Shed Session\",\"f\":\"off\",\"p\":\"juggle-shed-session-off-on.mp3\",\"d\":9.62,\"w\":\"zkqojdoasghpsoocteepjsk8uhbofpngzovlnkvgujvlwwnizovlnkvgujvlwwni\"},{\"n\":\"Sub Octave\",\"f\":\"off\",\"p\":\"juggle-sub-octave-off-on.mp3\",\"d\":8.76,\"w\":\"mb8774e3743eg7e5d44684d4984ardi9zic787c6b64hjcl8zic787c6b64hjcl8\"},{\"n\":\"Sunday Swagger\",\"f\":\"off\",\"p\":\"juggle-sunday-swagger-off-on.mp3\",\"d\":9.84,\"w\":\"zeajiveexecn7bgayeajiveexecn7bgam5k5fok8k8k53k98m5k5fnk8l8k53k98\"}];\n\/* Chicken Scratch always opens the list; the rest come in a fresh order on every load *\/\nvar lead=DATA.shift();for(var si=DATA.length-1;si\u003e0;si--){var sj=Math.floor(Math.random()*(si+1)),st=DATA[si];DATA[si]=DATA[sj];DATA[sj]=st}DATA.unshift(lead);\nvar ON='#3df2b1',OFF='#9aa3b2';\nvar list=root.querySelector('.j-list'),now=root.querySelector('.j-now'),btnAll=root.querySelector('.j-playall');\nvar sw=root.querySelector('.j-sw'),say=root.querySelector('.j-say'),bOff=root.querySelector('.j-s-off'),bOn=root.querySelector('.j-s-on');\nvar audio=new Audio();audio.preload='none';\n\/* only one player on this page sounds at a time *\/\n(window.yrAudio=window.yrAudio||[]).push(audio);audio.addEventListener('play',function(){window.yrAudio.forEach(function(a){if(a!==audio)a.pause()})});\nvar cur=-1,playAll=false,rows=[],canv=[],side=null,hold=null;\nvar PLAY='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M3 1.5l7.5 4.5L3 10.5z\"\/\u003e\u003c\/svg\u003e',PAUSE='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2.5 1.5h2.5v9H2.5zM7 1.5h2.5v9H7z\"\/\u003e\u003c\/svg\u003e';\nfunction fmt(s){s=Math.round(s);return Math.floor(s\/60)+':'+('0'+s%60).slice(-2)}\nfunction peaks(w){var a=[];for(var i=0;i\u003cw.length;i++)a.push(parseInt(w[i],36)\/35);return a}\n\/* which half (0 first, 1 second) carries a side, and which side a half is *\/\nfunction halfOf(d,s){return s===d.f?0:1}\nfunction sideOf(d,h){return h===0?d.f:(d.f==='off'?'on':'off')}\nfunction dur(){return audio.duration||(cur\u003e=0?DATA[cur].d:0)}\n\/* the waveform wears both sides: the original in grey, the flip in green; the line is the switch *\/\nfunction draw(i,prog){var c=canv[i];if(!c||!c.offsetWidth)return;var d=DATA[i],dpr=window.devicePixelRatio||1,W=c.offsetWidth,H=c.offsetHeight;if(c.width!==W*dpr){c.width=W*dpr;c.height=H*dpr}var x=c.getContext('2d');x.setTransform(dpr,0,0,dpr,0,0);x.clearRect(0,0,W,H);var p=d.pk,n=p.length,bw=W\/n,hh=i===cur\u0026\u0026hold?halfOf(d,hold):-1;for(var k=0;k\u003cn;k++){var h=Math.max(2,p[k]*H*.92),f=k\/n,kh=f\u003c.5?0:1,col=sideOf(d,kh)==='on'?ON:OFF,past=f\u003cprog;x.globalAlpha=hh\u003e=0\u0026\u0026kh!==hh?.16:(past?1:.4);x.fillStyle=col;x.fillRect(k*bw+bw*.18,(H-h)\/2,Math.max(1,bw*.64),h)}x.globalAlpha=1;x.fillStyle='rgba(236,238,241,.55)';x.fillRect(Math.round(W\/2)-.5,2,1,H-4)}\nfunction drawAll(){for(var i=0;i\u003cDATA.length;i++)draw(i,i===cur\u0026\u0026audio.duration?audio.currentTime\/audio.duration:0)}\nfunction pills(i,s){var ps=rows[i].querySelectorAll('.j-pill');ps[0].classList.toggle('lit',s==='off');ps[1].classList.toggle('lit',s==='on')}\nfunction showSide(s){sw.classList.toggle('is-idle',!s);sw.classList.toggle('is-on',s==='on');bOff.setAttribute('aria-pressed',String(s==='off'));bOn.setAttribute('aria-pressed',String(s==='on'))}\nfunction tick(){if(cur\u003c0){side=null;showSide(null);say.textContent='Press play, then flip the switch';return}var d=DATA[cur],D=dur(),h=D\u0026\u0026audio.currentTime\u003e=D\/2?1:0,s=sideOf(d,h);if(s!==side){side=s;showSide(s);pills(cur,s)}var other=s==='on'?'Off':'On';say.innerHTML=hold?(s==='on'?'\u003cb\u003eThe JUGGLE flip\u003c\/b\u003e':'\u003cb\u003eThe original loop\u003c\/b\u003e')+'\u003cspan class=\"j-hold\"\u003eLooping\u003c\/span\u003e':(s==='on'?'\u003cb\u003eJUGGLE on\u003c\/b\u003e · the flip':'\u003cb\u003eJUGGLE off\u003c\/b\u003e · the original loop')+(h===0?' · flips '+other+' halfway':'')}\nDATA.forEach(function(d,i){d.pk=peaks(d.w);var r=document.createElement('div');r.className='j-row';r.setAttribute('role','listitem');\nr.innerHTML='\u003cbutton type=\"button\" class=\"j-play\" aria-label=\"Play '+d.n+'\"\u003e'+PLAY+'\u003c\/button\u003e\u003cspan class=\"j-meta\"\u003e\u003cspan class=\"j-name\"\u003e'+d.n+'\u003c\/span\u003e\u003cspan class=\"j-by\"\u003e'+(d.f==='off'?'Original loop first, then the JUGGLE flip':'The JUGGLE flip first, then the original loop')+'\u003c\/span\u003e\u003c\/span\u003e\u003ccanvas class=\"j-wave\"\u003e\u003c\/canvas\u003e\u003cspan class=\"j-pills\"\u003e\u003cbutton type=\"button\" class=\"j-pill p-off\" aria-label=\"'+d.n+': hear the original\"\u003eOff\u003c\/button\u003e\u003cbutton type=\"button\" class=\"j-pill p-on\" aria-label=\"'+d.n+': hear the flip\"\u003eOn\u003c\/button\u003e\u003c\/span\u003e\u003cspan class=\"j-tag\"\u003e'+fmt(d.d)+'\u003c\/span\u003e';\nlist.appendChild(r);rows.push(r);canv.push(r.querySelector('canvas'));\nr.addEventListener('click',function(e){if(e.target.tagName==='CANVAS'||e.target.closest('.j-pill'))return;playAll=false;toggle(i)});\nr.querySelector('.p-off').addEventListener('click',function(){pick(i,'off')});\nr.querySelector('.p-on').addEventListener('click',function(){pick(i,'on')});\nr.querySelector('canvas').addEventListener('click',function(e){var b=this.getBoundingClientRect(),f=(e.clientX-b.left)\/b.width;hold=null;if(cur!==i){playAll=false;play(i,f)}else if(audio.duration){audio.currentTime=f*audio.duration;if(audio.paused)audio.play()}tick();drawAll()});});\nfunction setUI(){rows.forEach(function(r,i){var on=i===cur;r.classList.toggle('is-active',on);r.querySelector('.j-play').innerHTML=(on\u0026\u0026!audio.paused)?PAUSE:PLAY;if(!on)pills(i,null)});now.textContent=cur\u003c0?'Nothing playing':(audio.paused?'Paused: ':'Now playing: ')+DATA[cur].n;side=null;tick()}\nfunction play(i,f){if(cur!==i){var old=cur;cur=i;side=null;audio.preload='auto';audio.src=BASE+DATA[i].p;if(old\u003e=0){draw(old,0);pills(old,null)}if(f)audio.addEventListener('loadedmetadata',function h(){audio.removeEventListener('loadedmetadata',h);audio.currentTime=f*audio.duration})}var pr=audio.play();if(pr\u0026\u0026pr.catch)pr.catch(function(){});setUI()}\nfunction toggle(i){if(cur===i\u0026\u0026!audio.paused){audio.pause()}else{if(cur!==i)hold=null;play(i)}}\n\/* jump to a side at the same spot in the bar and stay there (it loops that half) until the other side, the waveform or the same side again *\/\nfunction pick(i,s){playAll=false;var d=DATA[i];if(cur===i\u0026\u0026hold===s\u0026\u0026!audio.paused){hold=null;tick();drawAll();return}hold=s;var h=halfOf(d,s);if(cur!==i){play(i,h?.5:0)}else{var D=dur(),off=audio.currentTime%(D\/2);audio.currentTime=Math.min(D-.05,h*D\/2+off);if(audio.paused){var pr=audio.play();if(pr\u0026\u0026pr.catch)pr.catch(function(){})}}side=null;tick();drawAll()}\nbOff.addEventListener('click',function(){if(cur\u003c0)pick(0,'off');else pick(cur,'off')});\nbOn.addEventListener('click',function(){if(cur\u003c0)pick(0,'on');else pick(cur,'on')});\naudio.addEventListener('play',setUI);audio.addEventListener('pause',setUI);\n\/* hold: wrap inside the held half *\/\nvar tm=null;\nfunction keep(){clearTimeout(tm);if(cur\u003c0||!hold||!audio.duration||audio.paused)return;var D=audio.duration,h=halfOf(DATA[cur],hold),a=h*D\/2,b=a+D\/2,t=audio.currentTime;if(t\u003e=b-.03||t\u003ca-.05){audio.currentTime=a+Math.max(0,t-b);t=audio.currentTime}\n\/* a timer aimed at the switch point: frames alone are too coarse (and throttled) to wrap cleanly *\/\ntm=setTimeout(keep,Math.max(0,(b-.02-t)*1000\/(audio.playbackRate||1)))}\naudio.addEventListener('seeked',keep);audio.addEventListener('playing',keep);\nvar raf=null;function loop(){if(cur\u003e=0\u0026\u0026!audio.paused){keep();draw(cur,audio.duration?audio.currentTime\/audio.duration:0);tick();raf=requestAnimationFrame(loop)}else raf=null}\naudio.addEventListener('playing',function(){if(!raf)raf=requestAnimationFrame(loop)});\naudio.addEventListener('ended',function(){if(hold){audio.currentTime=halfOf(DATA[cur],hold)*audio.duration\/2;var pr=audio.play();if(pr\u0026\u0026pr.catch)pr.catch(function(){});return}draw(cur,0);if(playAll\u0026\u0026cur\u003cDATA.length-1){var n=cur+1;play(n);var r=rows[n];list.scrollTop=r.offsetTop-list.offsetTop-list.clientHeight\/2+r.offsetHeight\/2}else{playAll=false;setUI()}});\nbtnAll.addEventListener('click',function(){if(playAll\u0026\u0026!audio.paused){audio.pause();return}playAll=true;hold=null;play(cur\u003c0?0:cur)});\nfunction fit(){root.classList.toggle('is-narrow',root.offsetWidth\u003c560);drawAll()}\nif(window.ResizeObserver)new ResizeObserver(fit).observe(root);else window.addEventListener('resize',fit);\nfit();drawAll();setTimeout(drawAll,300);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003ch3\u003eWhat JUGGLE does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapture anything\u003c\/strong\u003e — put it on any DAW track and hit Capture, browse the whole Vault loop catalog inside the plug-in, or drag in your own audio\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eChop it onto pads\u003c\/strong\u003e — 16 or 32 slices, on an even musical grid or cut right on the hits\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlip the sequence\u003c\/strong\u003e — a 16-step grid with velocity, chance, ratchets and rolls, plus A and B scenes you can morph between or play as one 32-step flip\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLet it surprise you\u003c\/strong\u003e — 300 presets, a Roll dice, and a generator that turns a loop into boom bap, jungle, drill, footwork or half-time\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePerform and mix\u003c\/strong\u003e — hold Throw, Tape stop or Freeze, ride four XY squares, then shape it on a 16-channel mixing console\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDrag it out\u003c\/strong\u003e — pull the finished flip straight onto your DAW timeline, or click to save a WAV\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, capturing from your DAW, the step grid, scenes, the generator, performance moves, the mixing console and exporting: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/juggle\/\" title=\"JUGGLE Manual\"\u003eread the JUGGLE Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003ePRISM — Multiband Spatial EFX Drum Plug-In\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSplit your drums like light.\u003c\/strong\u003e PRISM turns multiband processing into optics. Your full kit enters the glass as white light and leaves as four colors: Sub, Body, Crack and Air. Each band gets its own saturation, punch, tempo-synced echo, place in the stereo field and send to a shared room. Widening the cymbals while the kick stays mono, or throwing echoes off the snare's crack while everything else stays dry, takes five seconds, not five plug-ins.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003eThe demo is the whole plug-in.\u003c\/strong\u003e Every band, every control, all 200 presets, on your own drums, for as long as you like. The output mutes for a moment every 45 seconds until you activate.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/prism\"\u003eDownload PRISM for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 11+ (Intel \u0026amp; Apple Silicon) · Windows 10+\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1234727413?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"PRISM - Multiband Spatial EFX Drum Plug-In\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003cstyle\u003e\n#yrv{--yrv-bg:#0d0a07;--yrv-panel:#15110b;--yrv-panel2:#1b160e;--yrv-text:#ede6da;--yrv-muted:rgba(237,230,218,.58);--yrv-faint:rgba(237,230,218,.32);--yrv-hair:rgba(237,230,218,.12);--yrv-gold:#e0a43b;--yrv-row:76px;display:block;box-sizing:border-box;width:100%;max-width:920px;margin:24px auto;background:var(--yrv-bg);color:var(--yrv-text);font-family:Archivo,\"Helvetica Neue\",Helvetica,Arial,system-ui,sans-serif;font-size:15px;line-height:1.35;-webkit-font-smoothing:antialiased;border:1px solid var(--yrv-hair);border-radius:3px;overflow:hidden;text-align:left}\n#yrv *,#yrv *::before,#yrv *::after{box-sizing:border-box;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;box-shadow:none;outline:0;float:none;transform:none;line-height:1.35;max-width:none;min-width:0;min-height:0;margin:0}\n#yrv button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-appearance:none;appearance:none}\n#yrv .yrv-head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--yrv-hair);background:var(--yrv-panel)}\n#yrv .yrv-hart{flex:none;width:44px;height:44px;border-radius:2px;object-fit:cover;display:block;border:1px solid var(--yrv-hair)}\n#yrv .yrv-htext{min-width:0}\n#yrv .yrv-title{font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;letter-spacing:.02em;text-transform:uppercase;font-size:15px;margin:0;color:var(--yrv-text)}\n#yrv .yrv-sub{display:block;font-size:12px;color:var(--yrv-muted);margin-top:2px}\n#yrv .yrv-playall{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none;padding:8px 14px;border:1px solid var(--yrv-gold);color:var(--yrv-gold);border-radius:2px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .15s,color .15s}\n#yrv .yrv-playall span{text-transform:uppercase;letter-spacing:.08em}\n#yrv .yrv-playall:hover{background:var(--yrv-gold);color:#1a140a}\n#yrv .yrv-playall svg{display:block}\n#yrv .yrv-list{height:calc(var(--yrv-row) * 5);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(224,164,59,.45) transparent;margin:0;padding:0}\n#yrv .yrv-list::-webkit-scrollbar{width:9px}\n#yrv .yrv-list::-webkit-scrollbar-track{background:var(--yrv-panel)}\n#yrv .yrv-list::-webkit-scrollbar-thumb{background:rgba(224,164,59,.45);border-radius:9px}\n#yrv .yrv-list::-webkit-scrollbar-thumb:hover{background:var(--yrv-gold)}\n#yrv .yrv-row{display:flex;align-items:center;gap:12px;width:100%;height:var(--yrv-row);padding:0 18px;text-align:left;border-bottom:1px solid var(--yrv-hair);transition:background .15s;cursor:pointer}\n#yrv .yrv-row:hover{background:var(--yrv-panel)}\n#yrv .yrv-row.is-active{background:var(--yrv-panel2)}\n#yrv .yrv-row.is-active .yrv-name{color:var(--yrv-gold)}\n#yrv .yrv-play{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--yrv-hair);display:grid;place-items:center;color:var(--yrv-text);transition:.15s}\n#yrv .yrv-row:hover .yrv-play{border-color:var(--yrv-gold);color:var(--yrv-gold)}\n#yrv .yrv-row.is-active .yrv-play{background:var(--yrv-gold);border-color:var(--yrv-gold);color:#1a140a}\n#yrv .yrv-play svg{display:block;width:13px;height:13px}\n#yrv .yrv-art{flex:none;width:44px;height:44px;border-radius:2px;object-fit:cover;background:var(--yrv-panel2);border:1px solid var(--yrv-hair);display:block}\n#yrv .yrv-meta{min-width:0;flex:1 1 46%;display:flex;flex-direction:column;justify-content:center}\n#yrv .yrv-name{display:block;font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;color:var(--yrv-text)}\n#yrv .yrv-by{display:block;font-size:11.5px;color:var(--yrv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}\n#yrv .yrv-by em{font-style:normal;color:var(--yrv-faint)}\n#yrv .yrv-wave{flex:1 1 26%;height:36px;min-width:70px;cursor:pointer;display:block}\n#yrv .yrv-tag{flex:none;width:78px;display:block;text-align:right;font-size:11px;color:var(--yrv-muted);letter-spacing:.02em;white-space:nowrap}\n#yrv .yrv-tag b{display:block;color:var(--yrv-text);font-weight:500}\n#yrv .yrv-foot{display:flex;align-items:center;gap:8px;padding:11px 18px;background:var(--yrv-panel);border-top:1px solid var(--yrv-hair);font-size:11.5px;color:var(--yrv-faint)}\n#yrv .yrv-foot .yrv-now{color:var(--yrv-muted);margin-left:auto;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n@media (max-width:640px){#yrv{--yrv-row:70px;font-size:14px}#yrv .yrv-row{padding:0 12px;gap:10px}#yrv .yrv-head{padding:13px 12px}#yrv .yrv-hart{display:none}#yrv .yrv-wave{display:none}#yrv .yrv-tag{width:66px}#yrv .yrv-playall span{display:none}#yrv .yrv-playall{padding:9px 11px}}\n@media (prefers-reduced-motion:reduce){#yrv *{transition:none !important}}\n\u003c\/style\u003e\n\u003cdiv id=\"yrv\" data-yrv-player=\"prism\"\u003e\n\u003cdiv class=\"yrv-head\"\u003e\n\u003cimg class=\"yrv-hart\" alt=\"PRISM\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0510\/4363\/1276\/files\/PRISM_CoverArt2.jpg?width=120\"\u003e\n\u003cdiv class=\"yrv-htext\"\u003e\n\u003ch3 class=\"yrv-title\"\u003eHear PRISM\u003c\/h3\u003e\n\u003cspan class=\"yrv-sub\"\u003eEach preview plays the drums dry, then through PRISM\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"yrv-playall\"\u003e\u003csvg width=\"11\" height=\"11\" viewbox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2 1l9 5-9 5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003ePlay All\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrv-list\" role=\"list\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"yrv-foot\"\u003e\n\u003cspan\u003e10 presets · scroll for more ↓\u003c\/span\u003e\u003cspan class=\"yrv-now\"\u003eNothing playing\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\nvar root=document.getElementById('yrv');if(!root||root.getAttribute('data-ready'))return;root.setAttribute('data-ready','1');\nvar BASE='https:\/\/pub-ce7191143c1846959ab46ad717da6fed.r2.dev\/previews\/prism-multiband-spatial-fx-drum-plug-in\/';\nvar ART='https:\/\/cdn.shopify.com\/s\/files\/1\/0510\/4363\/1276\/files\/PRISM_CoverArt2.jpg?width=120';\nvar DATA=[{\"n\": \"Copper\", \"o\": \"Off → On\", \"p\": \"copper-prism-off-on.mp3\", \"d\": 8.3, \"w\": \"o232v31dma92o33ao432u43ela82v22bq575zb3ipdh4y75ip954xa5kobc5y73j\"}, {\"n\": \"Dense Pack\", \"o\": \"Off → On\", \"p\": \"dense-pack-prism-off-on.mp3\", \"d\": 14.81, \"w\": \"m9i7lalhnfkimal9n9kbmekbk6l6mcn9zezjzgzuyyxywguhyezqujwnzezezkva\"}, {\"n\": \"Dotted Lines\", \"o\": \"Off → On\", \"p\": \"dotted-lines-prism-off-on.mp3\", \"d\": 10.25, \"w\": \"pckcp9olflmpplhmniqfncnmfmlqpdpgzjvmtiuontwyqsqmxryptkxyntuzwmvp\"}, {\"n\": \"High Contrast\", \"o\": \"Off → On\", \"p\": \"high-contrast-prism-off-on.mp3\", \"d\": 17.18, \"w\": \"g426k3f5g5f5o433e435j4g5f3f7hgh6yc5gw7zgzezfybb6zi7fwazfxczgxzzf\"}, {\"n\": \"Kick Forward\", \"o\": \"Off → On\", \"p\": \"kick-forward-prism-off-on.mp3\", \"d\": 11.06, \"w\": \"n5n5o22b2cmkoo88m6n6n22b2ajkom9awaxbz45s7rywxxlpyfygy46x5uuuxwkp\"}, {\"n\": \"Long Exposure\", \"o\": \"Off → On\", \"p\": \"long-exposure-prism-off-on.mp3\", \"d\": 13.75, \"w\": \"d35dm5q74bg6o5m8d6ode6j847l5m697tbfrzdzjdrthzdxjxjzptgzkcdygzgkj\"}, {\"n\": \"Mastering Bench\", \"o\": \"Off → On\", \"p\": \"mastering-bench-prism-off-on.mp3\", \"d\": 10.46, \"w\": \"l4l9jla3l41l5lj312l2kf72l42fl3hiy8wczwf4x62y7wt714y4xpb3y73qz6xs\"}, {\"n\": \"Pinhole\", \"o\": \"On → Off\", \"p\": \"pinhole-prism-on-off.mp3\", \"d\": 10.25, \"w\": \"q5yo82xa30yd4mxaq5yk92zb60zc9ysvycwxk2x410v52vv6xczxk2x520x75vxt\"}, {\"n\": \"Scratched Film\", \"o\": \"Off → On\", \"p\": \"scratched-film-prism-off-on.mp3\", \"d\": 9.26, \"w\": \"vjw4wc5c5lv6sc6owjv4wc4c5kv7tb6pwhp6yh9ubzr8xkczohq6zg8razr8zkez\"}, {\"n\": \"Tape Bloom\", \"o\": \"Off → On\", \"p\": \"tape-bloom-prism-off-on.mp3\", \"d\": 8.93, \"w\": \"qd868727nc87pa79od658526nd68uaadyngfjd4hxphfvhegyphdhe4eypeezljn\"}];\nfor(var si=DATA.length-1;si\u003e0;si--){var sj=Math.floor(Math.random()*(si+1)),st=DATA[si];DATA[si]=DATA[sj];DATA[sj]=st}\nvar list=root.querySelector('.yrv-list'),now=root.querySelector('.yrv-now'),btnAll=root.querySelector('.yrv-playall');\nvar audio=new Audio();audio.preload='none';\n(window.yrAudio=window.yrAudio||[]).push(audio);audio.addEventListener('play',function(){window.yrAudio.forEach(function(a){if(a!==audio)a.pause()})});\nvar cur=-1,playAll=false,rows=[],canv=[];\nvar PLAY='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M3 1.5l7.5 4.5L3 10.5z\"\/\u003e\u003c\/svg\u003e',PAUSE='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2.5 1.5h2.5v9H2.5zM7 1.5h2.5v9H7z\"\/\u003e\u003c\/svg\u003e';\nfunction fmt(s){s=Math.round(s);return Math.floor(s\/60)+':'+('0'+s%60).slice(-2)}\nfunction peaks(w){var a=[];for(var i=0;i\u003cw.length;i++)a.push(parseInt(w[i],36)\/35);return a}\nfunction draw(i,prog){var c=canv[i];if(!c||!c.offsetWidth)return;var dpr=window.devicePixelRatio||1,W=c.offsetWidth,H=c.offsetHeight;if(c.width!==W*dpr){c.width=W*dpr;c.height=H*dpr}var x=c.getContext('2d');x.setTransform(dpr,0,0,dpr,0,0);x.clearRect(0,0,W,H);var p=DATA[i].pk,n=p.length,bw=W\/n;for(var k=0;k\u003cn;k++){var h=Math.max(2,p[k]*H*.92);x.fillStyle=(k\/n\u003cprog)?'#e0a43b':'rgba(237,230,218,.38)';x.fillRect(k*bw+bw*.18,(H-h)\/2,Math.max(1,bw*.64),h)}}\nfunction drawAll(){for(var i=0;i\u003cDATA.length;i++)draw(i,i===cur\u0026\u0026audio.duration?audio.currentTime\/audio.duration:0)}\nDATA.forEach(function(d,i){d.pk=peaks(d.w);var r=document.createElement('div');r.className='yrv-row';r.setAttribute('role','listitem');\nr.innerHTML='\u003cbutton type=\"button\" class=\"yrv-play\" aria-label=\"Play '+d.n+'\"\u003e'+PLAY+'\u003c\/button\u003e\u003cimg class=\"yrv-art\" alt=\"\" loading=\"lazy\" src=\"'+ART+'\"\u003e\u003cspan class=\"yrv-meta\"\u003e\u003cspan class=\"yrv-name\"\u003e'+d.n+'\u003c\/span\u003e\u003cspan class=\"yrv-by\"\u003ePRISM preset \u003cem\u003e\u0026middot;\u003c\/em\u003e '+(d.o.indexOf('Off')===0?'dry first, then PRISM':'PRISM first, then dry')+'\u003c\/span\u003e\u003c\/span\u003e\u003ccanvas class=\"yrv-wave\"\u003e\u003c\/canvas\u003e\u003cspan class=\"yrv-tag\"\u003e\u003cb\u003e'+d.o+'\u003c\/b\u003e'+fmt(d.d)+'\u003c\/span\u003e';\nlist.appendChild(r);rows.push(r);canv.push(r.querySelector('canvas'));\nr.addEventListener('click',function(e){if(e.target.tagName==='CANVAS')return;playAll=false;toggle(i)});\nr.querySelector('canvas').addEventListener('click',function(e){var b=this.getBoundingClientRect(),f=(e.clientX-b.left)\/b.width;if(cur!==i){playAll=false;play(i,f)}else if(audio.duration){audio.currentTime=f*audio.duration;if(audio.paused)audio.play()}});});\nfunction setUI(){rows.forEach(function(r,i){var on=i===cur;r.classList.toggle('is-active',on);r.querySelector('.yrv-play').innerHTML=(on\u0026\u0026!audio.paused)?PAUSE:PLAY});now.textContent=cur\u003c0?'Nothing playing':(audio.paused?'Paused: ':'Now playing: ')+DATA[cur].n}\nfunction play(i,f){if(cur!==i){var old=cur;cur=i;audio.src=BASE+DATA[i].p;if(old\u003e=0)draw(old,0);audio.addEventListener('loadedmetadata',function h(){audio.removeEventListener('loadedmetadata',h);if(f)audio.currentTime=f*audio.duration},{once:true})}var pr=audio.play();if(pr\u0026\u0026pr.catch)pr.catch(function(){});setUI()}\nfunction toggle(i){if(cur===i\u0026\u0026!audio.paused){audio.pause()}else play(i)}\naudio.addEventListener('play',setUI);audio.addEventListener('pause',setUI);\naudio.addEventListener('timeupdate',function(){if(cur\u003e=0\u0026\u0026audio.duration)draw(cur,audio.currentTime\/audio.duration)});\naudio.addEventListener('ended',function(){draw(cur,0);if(playAll\u0026\u0026cur\u003cDATA.length-1){var n=cur+1;play(n);var r=rows[n];list.scrollTop=r.offsetTop-list.offsetTop-list.clientHeight\/2+r.offsetHeight\/2}else{playAll=false;setUI()}});\nbtnAll.addEventListener('click',function(){if(playAll\u0026\u0026!audio.paused){audio.pause();return}playAll=true;play(cur\u003c0?0:cur)});\nif(window.ResizeObserver)new ResizeObserver(drawAll).observe(list);else window.addEventListener('resize',drawAll);\ndrawAll();setTimeout(drawAll,300);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003ch3\u003eWhat PRISM does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFour bands, one kit\u003c\/strong\u003e — Sub, Body, Crack and Air, with phase-matched crossovers you can drag anywhere on the live spectrum\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eA chain on every band\u003c\/strong\u003e — Glow saturation, Punch, a tempo-synced Echo and a send to one shared room, each with its own switch\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDISPERSION\u003c\/strong\u003e — fans the bands across the stereo field while the Sub stays locked dead center, so your low end never smears\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eREFRACT\u003c\/strong\u003e — each band arrives a little later than the one below it, up to 24 ms in total, turning a single hit into a spectral flam\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e200 presets in ten categories\u003c\/strong\u003e — all level-matched, so stepping through them compares sounds, not loudness, with zero latency throughout\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, the four bands, Glow, Punch, Echo and Space, DISPERSION, REFRACT and Glue, and the presets: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/prism\/\" title=\"PRISM Manual\"\u003eread the PRISM Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eCARTRIDGE — Console Era Drum FX Plug-In\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eRun your drums through four generations of game consoles.\u003c\/strong\u003e Most bitcrushers sound like a bitcrusher. CARTRIDGE models the sound chips themselves, as four cartridges you plug in: a 4-bit handheld, a 7-bit home console, a 16-bit system with its famous echo, and a 32-bit CD-ROM machine. Insert one and everything follows it, from the bit depth, sample rate and DAC filter to the console's own quirks, right down to the resolution and palette of the screen.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\" style=\"--c: #c0518f; --t: #ffffff;\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003eThe demo is the whole plug-in.\u003c\/strong\u003e Every cartridge, every control, all 300 presets, on your own drums, for as long as you like. The output mutes for a moment every 45 seconds until you activate.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/cartridge\"\u003eDownload CARTRIDGE for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 11+ (Intel \u0026amp; Apple Silicon) · Windows 10+\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1237070314?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"CARTRIDGE - Console Era Drum FX Plug-In\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003ch3\u003eWhat CARTRIDGE does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFour cartridges, four quirks\u003c\/strong\u003e — POCKET 4, HOME 8, SUPER 16 and DISC 32 each bring a console's own converter, filter and character control. Swap carts and the whole era changes with it\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCRUNCH\u003c\/strong\u003e — push past the console's native spec, all the way down to 2 bits and three octaves below its sample rate\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eChip and Noise\u003c\/strong\u003e — square-wave fuzz plus a noise channel keyed from your hats or snare, both crushed right along with the drums\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEcho and DAC\u003c\/strong\u003e — repeats drop a generation with every pass, then up to 24 dB of drive into Soft, Hard or Wrap clipping\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e300 presets in twelve folders\u003c\/strong\u003e — more than half leave the drums clean and build layers around them, all level-matched, with zero latency\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, the four cartridges, the Console and Circuit views, Crush, Chip, Noise, Echo and DAC, and the presets: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/cartridge\/\" title=\"CARTRIDGE Manual\"\u003eread the CARTRIDGE Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eDECADE — The Sonic Time Machine Plug-In\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eChoose a year. Hear your drums age.\u003c\/strong\u003e DECADE puts eight decades of drum sound on a single timeline. Move the puck from 1950 to now and the whole chain follows — the console, the room, and the format the record was heard on. This isn't a preset browser with era names on it. The year is the instrument.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003eThe demo is the whole plug-in.\u003c\/strong\u003e Every decade, every preset, on your own drums, for as long as you like — the output mutes for a moment every 45 seconds until you activate.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/decade\"\u003eDownload DECADE for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 11+ (Intel \u0026amp; Apple Silicon) · Windows 10+\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1228211962?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"DECADE - Sonic Time Machine Plug-In\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003cstyle\u003e\n#yrd{--d-bg:#0b0d12;--d-panel:#11141b;--d-panel2:#171b24;--d-text:#ede6da;--d-muted:rgba(237,230,218,.58);--d-faint:rgba(237,230,218,.32);--d-hair:rgba(237,230,218,.12);--d-gold:#e0a43b;--d-era:#e0a43b;--d-row:76px;display:block;box-sizing:border-box;width:100%;max-width:920px;margin:24px auto;background:var(--d-bg);color:var(--d-text);font-family:Archivo,\"Helvetica Neue\",Helvetica,Arial,system-ui,sans-serif;font-size:15px;line-height:1.35;-webkit-font-smoothing:antialiased;border:1px solid var(--d-hair);border-radius:3px;overflow:hidden;text-align:left}\n#yrd *,#yrd *::before,#yrd *::after{box-sizing:border-box;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;box-shadow:none;outline:0;float:none;transform:none;line-height:1.35;max-width:none;min-width:0;min-height:0;margin:0}\n#yrd button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-appearance:none;appearance:none}\n#yrd .d-head{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--d-hair);background:var(--d-panel)}\n#yrd .d-hart{flex:none;width:44px;height:44px;border-radius:2px;object-fit:cover;display:block;border:1px solid var(--d-hair)}\n#yrd .d-htext{min-width:0}\n#yrd .d-title{font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;letter-spacing:.02em;text-transform:uppercase;font-size:15px;margin:0;color:var(--d-text)}\n#yrd .d-sub{display:block;font-size:12px;color:var(--d-muted);margin-top:2px}\n#yrd .d-playall{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none;padding:8px 14px;border:1px solid var(--d-gold);color:var(--d-gold);border-radius:2px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .15s,color .15s}\n#yrd .d-playall span{text-transform:uppercase;letter-spacing:.08em}\n#yrd .d-playall:hover{background:var(--d-gold);color:#1a140a}\n#yrd .d-playall svg{display:block}\n\/* now hearing: the year flips at the clip's midpoint *\/\n#yrd .d-tm{display:flex;align-items:center;gap:14px;padding:12px 18px;background:var(--d-panel2);border-bottom:1px solid var(--d-hair)}\n#yrd .d-lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--d-faint);white-space:nowrap}\n#yrd .d-year{font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;font-size:34px;line-height:1;color:var(--d-era);min-width:4ch;letter-spacing:.01em;transition:color .25s;font-variant-numeric:tabular-nums}\n#yrd .d-year.flip{animation:yrdflip .45s ease-out}\n@keyframes yrdflip{0%{transform:translateY(-6px);opacity:.2}100%{transform:none;opacity:1}}\n#yrd .d-era{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-era);transition:color .25s}\n#yrd .d-trip{margin-left:auto;font-size:11.5px;color:var(--d-muted);white-space:nowrap;text-align:right}\n#yrd .d-trip b{color:var(--d-text);font-weight:600}\n#yrd.is-narrow .d-wave,#yrd.is-narrow .d-tag{display:none}\n#yrd.is-narrow .d-years{width:104px;font-size:14px}\n#yrd.is-narrow .d-sub{display:none}\n#yrd.is-narrow .d-trip{display:none}\n#yrd .d-list{height:calc(var(--d-row) * 5);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(224,164,59,.45) transparent;margin:0;padding:0}\n#yrd .d-list::-webkit-scrollbar{width:9px}\n#yrd .d-list::-webkit-scrollbar-track{background:var(--d-panel)}\n#yrd .d-list::-webkit-scrollbar-thumb{background:rgba(224,164,59,.45);border-radius:9px}\n#yrd .d-list::-webkit-scrollbar-thumb:hover{background:var(--d-gold)}\n#yrd .d-row{display:flex;align-items:center;gap:12px;width:100%;height:var(--d-row);padding:0 18px;text-align:left;border-bottom:1px solid var(--d-hair);transition:background .15s;cursor:pointer}\n#yrd .d-row:hover{background:var(--d-panel)}\n#yrd .d-row.is-active{background:var(--d-panel2)}\n#yrd .d-row.is-active .d-name{color:var(--d-gold)}\n#yrd .d-play{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--d-hair);display:grid;place-items:center;color:var(--d-text);transition:.15s}\n#yrd .d-row:hover .d-play{border-color:var(--d-gold);color:var(--d-gold)}\n#yrd .d-row.is-active .d-play{background:var(--d-gold);border-color:var(--d-gold);color:#1a140a}\n#yrd .d-play svg{display:block;width:13px;height:13px}\n#yrd .d-years{flex:none;width:118px;display:flex;align-items:center;gap:6px;font-family:\"Archivo Black\",Archivo,system-ui,sans-serif;font-weight:900;font-size:15px;letter-spacing:.01em;font-variant-numeric:tabular-nums}\n#yrd .d-years b{font-weight:900;transition:opacity .25s}\n#yrd .d-row.is-active .d-years b{opacity:.32}\n#yrd .d-row.is-active .d-years b.on{opacity:1}\n#yrd .d-years em{font-style:normal;color:var(--d-faint);font-family:Archivo,system-ui,sans-serif;font-weight:400}\n#yrd .d-meta{min-width:0;flex:1 1 40%;display:flex;flex-direction:column;justify-content:center}\n#yrd .d-name{display:block;font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;color:var(--d-text)}\n#yrd .d-by{display:block;font-size:11.5px;color:var(--d-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}\n#yrd .d-wave{flex:1 1 26%;height:36px;min-width:70px;cursor:pointer;display:block}\n#yrd .d-tag{flex:none;width:52px;display:block;text-align:right;font-size:11px;color:var(--d-muted);letter-spacing:.02em;white-space:nowrap}\n#yrd .d-foot{display:flex;align-items:center;gap:8px;padding:11px 18px;background:var(--d-panel);border-top:1px solid var(--d-hair);font-size:11.5px;color:var(--d-faint)}\n#yrd .d-foot .d-now{color:var(--d-muted);margin-left:auto;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n@media (max-width:640px){#yrd{--d-row:70px;font-size:14px}#yrd .d-row{padding:0 12px;gap:10px}#yrd .d-head{padding:13px 12px}#yrd .d-hart{display:none}#yrd .d-wave{display:none}#yrd .d-years{width:104px;font-size:14px}#yrd .d-playall span{display:none}#yrd .d-playall{padding:9px 11px}#yrd .d-tm{padding:10px 12px}#yrd .d-year{font-size:28px}#yrd .d-trip{display:none}}\n@media (prefers-reduced-motion:reduce){#yrd *{transition:none !important;animation:none !important}}\n\u003c\/style\u003e\n\u003cdiv id=\"yrd\" data-yrd-player=\"decade\"\u003e\n\u003cdiv class=\"d-head\"\u003e\n\u003cimg class=\"d-hart\" alt=\"DECADE\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0510\/4363\/1276\/files\/DECADE.jpg?v=1789662960\u0026amp;width=120\"\u003e\n\u003cdiv class=\"d-htext\"\u003e\n\u003ch3 class=\"d-title\"\u003eHear DECADE\u003c\/h3\u003e\n\u003cspan class=\"d-sub\"\u003eEach preview plays the same loop twice: first in one year, then in another — same drums, different decade\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"d-playall\"\u003e\u003csvg width=\"11\" height=\"11\" viewbox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2 1l9 5-9 5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003ePlay All\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"d-tm\"\u003e\n\u003cspan class=\"d-lbl\"\u003eNow hearing\u003c\/span\u003e\u003cspan class=\"d-year\"\u003e—\u003c\/span\u003e\u003cspan class=\"d-era\"\u003e\u003c\/span\u003e\u003cspan class=\"d-trip\"\u003ePress play\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"d-list\" role=\"list\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"d-foot\"\u003e\n\u003cspan\u003e10 previews · scroll for more ↓\u003c\/span\u003e\u003cspan class=\"d-now\"\u003eNothing playing\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\nvar root=document.getElementById('yrd');if(!root||root.getAttribute('data-ready'))return;root.setAttribute('data-ready','1');\nvar BASE='https:\/\/pub-ce7191143c1846959ab46ad717da6fed.r2.dev\/previews\/decade-sonic-time-machine-plug-in\/';\nvar DATA=[{\"from\":1952,\"to\":1988,\"p\":\"decade-1952-1988.mp3\",\"d\":12.82,\"w\":\"f643j34ch6c7jf5ch555k25cl5b3ke4cve75v7awuhpbvqazuf89u6fxzcmawr9z\"},{\"from\":1954,\"to\":2021,\"p\":\"decade-1954-2021.mp3\",\"d\":9.62,\"w\":\"b6e4vi3151e2zk49c4e4uk3151e3vh78ugtjn83181ugo94orfojm93181thnnhn\"},{\"from\":1955,\"to\":2015,\"p\":\"decade-1955-2015.mp3\",\"d\":10.25,\"w\":\"d14dx44c47d1z547a1d1z438bv5buc88yi9xo87sjwr7j45tqbyik55xrn9umtfw\"},{\"from\":1956,\"to\":1985,\"p\":\"decade-1956-1985.mp3\",\"d\":11.33,\"w\":\"9331l9439331me539331md69fkhighgfz531o522y631n832x531n739vgddcdbb\"},{\"from\":1958,\"to\":2024,\"p\":\"decade-1958-2024.mp3\",\"d\":9,\"w\":\"l7a2uh8e6ee3zndmi5a3xobf7gg7vnbizcb3rb7f7fd6qcdus9a3qc7f8gf7od7u\"},{\"from\":1960,\"to\":2023,\"p\":\"decade-1960-2023.mp3\",\"d\":13.75,\"w\":\"yeigi9g7f7gcf9e7g7djnlf9ffhdhdhkzhhpgkmbg8limhh7lbftupecephhmimt\"},{\"from\":1965,\"to\":1984,\"p\":\"decade-1965-1984.mp3\",\"d\":8.45,\"w\":\"j996k7mfi8a7ma96ibb9iblhh7h6kah5ycd9yauluedaxefbyghgzhsmwbuarfx9\"},{\"from\":1966,\"to\":2005,\"p\":\"decade-1966-2005.mp3\",\"d\":19.63,\"w\":\"yxxjttltswwjsufksxxospnrtwxswxisxxyjvnlpuxwjsqghuzwksooovwxrtqlm\"},{\"from\":1975,\"to\":2026,\"p\":\"decade-1975-2026.mp3\",\"d\":11.59,\"w\":\"vc43m73s69qjl622u5l5pemk6mmmljnhzg64j84tb9umh422w7g4meji8jijjili\"},{\"from\":1975,\"to\":2028,\"p\":\"decade-1975-2028.mp3\",\"d\":12.02,\"w\":\"i52i81i62111812gh51i81i520j47131ve4xd4tc4221g95zn82xd5we52xb8231\"}];\n\/* a fresh order on every load: nobody should hear 1952 first forever *\/\nfor(var si=DATA.length-1;si\u003e0;si--){var sj=Math.floor(Math.random()*(si+1)),st=DATA[si];DATA[si]=DATA[sj];DATA[sj]=st}\nvar Y0=1950;\nvar ERA=[['Shellac','#A8783F'],['Tungsten','#D2903A'],['Console','#C46B3C'],['Neon','#C93F7E'],['Dust','#A65240'],['Digital','#6E7FB5'],['Teal','#5FA3B5'],['Ice','#C9D3DF']];\nfunction era(y){return ERA[Math.max(0,Math.min(7,Math.floor((y-Y0)\/10)))]}\nvar list=root.querySelector('.d-list'),now=root.querySelector('.d-now'),btnAll=root.querySelector('.d-playall');\nvar yearEl=root.querySelector('.d-year'),eraEl=root.querySelector('.d-era'),tripEl=root.querySelector('.d-trip');\nvar audio=new Audio();audio.preload='none';\n(window.yrAudio=window.yrAudio||[]).push(audio);audio.addEventListener('play',function(){window.yrAudio.forEach(function(a){if(a!==audio)a.pause()})});\nvar cur=-1,playAll=false,rows=[],canv=[],half=-1;\nvar PLAY='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M3 1.5l7.5 4.5L3 10.5z\"\/\u003e\u003c\/svg\u003e',PAUSE='\u003csvg viewBox=\"0 0 12 12\" fill=\"currentColor\"\u003e\u003cpath d=\"M2.5 1.5h2.5v9H2.5zM7 1.5h2.5v9H7z\"\/\u003e\u003c\/svg\u003e';\nfunction fmt(s){s=Math.round(s);return Math.floor(s\/60)+':'+('0'+s%60).slice(-2)}\nfunction peaks(w){var a=[];for(var i=0;i\u003cw.length;i++)a.push(parseInt(w[i],36)\/35);return a}\n\/* the waveform wears both eras: first half in the earlier year's colour, second half in the later's; the line is the shift *\/\nfunction draw(i,prog){var c=canv[i];if(!c||!c.offsetWidth)return;var d=DATA[i],dpr=window.devicePixelRatio||1,W=c.offsetWidth,H=c.offsetHeight;if(c.width!==W*dpr){c.width=W*dpr;c.height=H*dpr}var x=c.getContext('2d');x.setTransform(dpr,0,0,dpr,0,0);x.clearRect(0,0,W,H);var p=d.pk,n=p.length,bw=W\/n;for(var k=0;k\u003cn;k++){var h=Math.max(2,p[k]*H*.92),f=k\/n,past=f\u003cprog;x.globalAlpha=past?1:.42;x.fillStyle=past?'#e0a43b':(f\u003c.5?era(d.from)[1]:era(d.to)[1]);x.fillRect(k*bw+bw*.18,(H-h)\/2,Math.max(1,bw*.64),h)}x.globalAlpha=1;x.fillStyle='rgba(237,230,218,.55)';x.fillRect(Math.round(W\/2)-.5,2,1,H-4)}\nfunction drawAll(){for(var i=0;i\u003cDATA.length;i++)draw(i,i===cur\u0026\u0026audio.duration?audio.currentTime\/audio.duration:0)}\nfunction setYear(y,flip){var e=era(y);root.style.setProperty('--d-era',e[1]);yearEl.textContent=String(y);eraEl.textContent=e[0];if(flip){yearEl.classList.remove('flip');void yearEl.offsetWidth;yearEl.classList.add('flip')}}\nfunction tick(){if(cur\u003c0)return;var d=DATA[cur],f=audio.duration?audio.currentTime\/audio.duration:0,h=f\u003c.5?0:1;if(h!==half){half=h;setYear(h?d.to:d.from,true);var ys=rows[cur].querySelectorAll('.d-years b');ys[0].className=h?'':'on';ys[1].className=h?'on':''}tripEl.innerHTML=h?'\u003cb\u003e'+d.to+'\u003c\/b\u003e · the same drums, '+Math.abs(d.to-d.from)+' years on':'\u003cb\u003e'+d.from+'\u003c\/b\u003e · flips to '+d.to+' halfway'}\nDATA.forEach(function(d,i){d.pk=peaks(d.w);var ea=era(d.from),eb=era(d.to);var r=document.createElement('div');r.className='d-row';r.setAttribute('role','listitem');\nr.innerHTML='\u003cbutton type=\"button\" class=\"d-play\" aria-label=\"Play '+d.from+' then '+d.to+'\"\u003e'+PLAY+'\u003c\/button\u003e\u003cspan class=\"d-years\"\u003e\u003cb style=\"color:'+ea[1]+'\"\u003e'+d.from+'\u003c\/b\u003e\u003cem\u003e→\u003c\/em\u003e\u003cb style=\"color:'+eb[1]+'\"\u003e'+d.to+'\u003c\/b\u003e\u003c\/span\u003e\u003cspan class=\"d-meta\"\u003e\u003cspan class=\"d-name\"\u003e'+ea[0]+' → '+eb[0]+'\u003c\/span\u003e\u003cspan class=\"d-by\"\u003efirst '+d.from+', then '+d.to+' · '+Math.abs(d.to-d.from)+' years apart\u003c\/span\u003e\u003c\/span\u003e\u003ccanvas class=\"d-wave\"\u003e\u003c\/canvas\u003e\u003cspan class=\"d-tag\"\u003e'+fmt(d.d)+'\u003c\/span\u003e';\nlist.appendChild(r);rows.push(r);canv.push(r.querySelector('canvas'));\nr.addEventListener('click',function(e){if(e.target.tagName==='CANVAS')return;playAll=false;toggle(i)});\nr.querySelector('canvas').addEventListener('click',function(e){var b=this.getBoundingClientRect(),f=(e.clientX-b.left)\/b.width;if(cur!==i){playAll=false;play(i,f)}else if(audio.duration){audio.currentTime=f*audio.duration;if(audio.paused)audio.play()}});});\nfunction setUI(){rows.forEach(function(r,i){var on=i===cur;r.classList.toggle('is-active',on);r.querySelector('.d-play').innerHTML=(on\u0026\u0026!audio.paused)?PAUSE:PLAY;if(!on){var ys=r.querySelectorAll('.d-years b');ys[0].className='';ys[1].className=''}});now.textContent=cur\u003c0?'Nothing playing':(audio.paused?'Paused: ':'Now playing: ')+DATA[cur].from+' → '+DATA[cur].to;tick()}\nfunction play(i,f){if(cur!==i){var old=cur;cur=i;half=-1;audio.src=BASE+DATA[i].p;if(old\u003e=0)draw(old,0);audio.addEventListener('loadedmetadata',function h(){audio.removeEventListener('loadedmetadata',h);if(f)audio.currentTime=f*audio.duration},{once:true})}var pr=audio.play();if(pr\u0026\u0026pr.catch)pr.catch(function(){});setUI()}\nfunction toggle(i){if(cur===i\u0026\u0026!audio.paused){audio.pause()}else play(i)}\naudio.addEventListener('play',setUI);audio.addEventListener('pause',setUI);\nvar raf=null;function loop(){if(cur\u003e=0\u0026\u0026!audio.paused){draw(cur,audio.duration?audio.currentTime\/audio.duration:0);tick();raf=requestAnimationFrame(loop)}else raf=null}\naudio.addEventListener('playing',function(){if(!raf)raf=requestAnimationFrame(loop)});\naudio.addEventListener('ended',function(){draw(cur,0);if(playAll\u0026\u0026cur\u003cDATA.length-1){var n=cur+1;play(n);var r=rows[n];list.scrollTop=r.offsetTop-list.offsetTop-list.clientHeight\/2+r.offsetHeight\/2}else{playAll=false;setUI()}});\nbtnAll.addEventListener('click',function(){if(playAll\u0026\u0026!audio.paused){audio.pause();return}playAll=true;play(cur\u003c0?0:cur)});\nfunction fit(){root.classList.toggle('is-narrow',root.offsetWidth\u003c560);drawAll()}\nif(window.ResizeObserver)new ResizeObserver(fit).observe(root);else window.addEventListener('resize',fit);\nfit();drawAll();setTimeout(drawAll,300);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003ch3\u003eWhat DECADE does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003ePick a year\u003c\/strong\u003e — drag along the timeline and tone, saturation, filtering, compression, transient shaping and room all move together to what that year actually did. 1974 and 1979 are genuinely different, not the same \"seventies\" patch\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSet the room\u003c\/strong\u003e — drag up and down: dead and close at the bottom, big at the top. The bottom of 1980 is a small gated room; the top is the full cathedral\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThe medium\u003c\/strong\u003e — the format the listener actually heard: acetate and tube radio, vinyl, cassette, CD, MP3, streaming. It follows the year by default, or lock it and put a modern kit on 1967 vinyl\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eA real rack\u003c\/strong\u003e — eight console modules in studio order, every value drivable by hand and re-orderable by dragging\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e120 presets across eight decades\u003c\/strong\u003e — each one sits on the map where it belongs, so you can see the era before you hear it\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, the timeline, the room axis, the medium layer, the rack, and the full preset list: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/decade\/\" title=\"DECADE Manual\"\u003eread the DECADE Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003ePick Pocket — Audio to MIDI Drum Plug-In\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSteal the pocket from any drum groove.\u003c\/strong\u003e Pick Pocket listens to a beat — a Vault loop, your own audio, or whatever's playing on a track in your DAW — and hands you its feel as MIDI: every hit's timing and velocity, unquantized. The feel stays. The sounds become yours.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003eSteal the feel before you spend a dime.\u003c\/strong\u003e The free download runs the full analyzer and groove editor on the included starter grooves and your own loops — only exporting requires activation.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/pick-pocket\"\u003eDownload Pick Pocket for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 11+ (Intel \u0026amp; Apple Silicon) · Windows 10+\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1222380455?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"Pick Pocket - Audio To MIDI Drum Convertor\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003ch3\u003eWhat Pick Pocket does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapture from track\u003c\/strong\u003e — record any DAW track through the plug-in, with automatic loop detection (finds the clean 2, 4, or 8 bars and cuts them click-free)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSee the pocket\u003c\/strong\u003e — every hit detected and classified — kick, snare, hat — with swing, push\/drag, and tightness measured to the millisecond\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eA real groove editor\u003c\/strong\u003e — re-assign voices, drag velocities, reshape timing dot-by-dot, mute steps, add\/move\/delete MIDI notes with full multi-select\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAudition engine\u003c\/strong\u003e — hear the extracted MIDI through a Yurt Rock kit, layered in lockstep with the original: if it sounds doubled, the pocket transferred\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDrag it out\u003c\/strong\u003e — unquantized MIDI straight onto your timeline, pre-mapped for Superior\/EZdrummer, BFD3, Groove Agent (Cubase), Slate SSD5, Addictive Drums 2, General MIDI — or as an Ableton .agr groove file\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, the groove editor, exporting, and troubleshooting: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/pick-pocket\/\" title=\"Pick Pocket Manual\"\u003eread the Pick Pocket Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eDr. Fill — The Drum Fill Creator Plug-In\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEvery phrase deserves an answer.\u003c\/strong\u003e Drop in a bar and Dr. Fill writes the fill — built entirely from the sounds of your own loop. Same kit, same room, same hands. Nothing foreign gets added. Infinite ways to answer the bar you already have.\u003c\/p\u003e\n\u003cdiv class=\"yrb-box\"\u003e\n\u003cp class=\"yrb-label\"\u003eFree to try\u003c\/p\u003e\n\u003cp class=\"yrb-lead\"\u003e\u003cstrong\u003eHear infinite fills on your own groove.\u003c\/strong\u003e The free download builds and auditions every fill from your loop — export unlocks with a license or Vault membership.\u003c\/p\u003e\n\u003cp class=\"yrb-btns\"\u003e\u003ca class=\"yrb-btn\" href=\"https:\/\/vault.yurtrock.com\/register\/dr-fill\"\u003eDownload Dr. Fill for Mac \u0026amp; Windows\u003c\/a\u003e\u003c\/p\u003e\n\u003cp class=\"yrb-fine\"\u003eAU, VST3, AAX \u0026amp; Standalone · macOS 12+ (Intel \u0026amp; Apple Silicon) · Windows 10–11\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"yrb-video\"\u003e\u003ciframe src=\"https:\/\/player.vimeo.com\/video\/1218413319?badge=0\u0026amp;autopause=0\u0026amp;player_id=0\u0026amp;app_id=58479\" title=\"Introducing Dr. Fill - Drum Fill Creator Plug-In\"\u003e\u003c\/iframe\u003e\u003c\/div\u003e\n\u003ch3\u003eWhat Dr. Fill does\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapture from track\u003c\/strong\u003e — record any DAW track through the plug-in, with automatic loop detection (finds the clean bar and cuts it click-free)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGet the diagnosis\u003c\/strong\u003e — Dr. Fill reads tempo, feel, and swing, then cuts your loop into its voices — kick, snare, hat, and everything else in there\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThe formulary\u003c\/strong\u003e — four families of fills: Drummer, Producer, Legends and Dice Roll, plus describe your own fill to create infinite options in seconds\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNothing foreign gets added\u003c\/strong\u003e — every hit in every fill is cut from your loop, so the fill sounds like the track it's going into, not like a sample pack dropped on top\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDrag it out\u003c\/strong\u003e — WAV straight onto your timeline at 44.1, 48, 88.2, or 96 kHz — or export MIDI mapped for Superior Drummer, Groove Agent (Cubase), Addictive Drums 2, Slate Drums, BFD, General MIDI, and more\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull guide — installation, activation, the unlimited fills, exporting WAV and MIDI, and troubleshooting: \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/dr-fill\/\" title=\"Dr. Fill Manual\"\u003eread the Dr. Fill Manual\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch2\u003eAll six plug-ins share\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eEvery format\u003c\/strong\u003e — AU, VST3, AAX and Standalone, so they run in Pro Tools, Logic, Ableton and everything else, or on their own with no DAW at all\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBuilt for the Vault\u003c\/strong\u003e — pair any of them with the full Yurt Rock catalog: flip a session drummer's performance into something they never played, split it into light, crush it through a handheld, age it into any era, pull its pocket out as MIDI, or write fills from it\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLicensing that stays out of the way\u003c\/strong\u003e — no dongles, no iLok, and each plug-in runs on up to 3 machines\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eFree for Vault members\u003c\/h2\u003e\n\u003cp\u003eHave \u003ca href=\"https:\/\/yurtrock.com\/products\/the-vault\" title=\"The Vault\"\u003ea Vault membership\u003c\/a\u003e? All six plug-ins are already included — just sign in inside each one. Members also unlock groove extraction and fill generation from the entire catalog: hundreds of packs of session-drummer feel, one drag away.\u003c\/p\u003e\n\u003ch2\u003eCompatibility\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormats:\u003c\/strong\u003e AU, VST3, AAX and Standalone for all six (Pro Tools, Ableton Live, Logic Pro, FL Studio, Cubase, Studio One, Reaper, and more)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003emacOS:\u003c\/strong\u003e macOS 12 or later to run all six (Dr. Fill requires 12+; the other five support macOS 11+) — Intel and Apple Silicon native\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWindows:\u003c\/strong\u003e Windows 10 or 11, 64-bit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eJUGGLE:\u003c\/strong\u003e an effect that also takes MIDI, with drag-to-DAW and WAV export. It also runs in your browser at \u003ca href=\"https:\/\/vault.yurtrock.com\/labs\/juggle\" title=\"JUGGLE at The Vault Labs\"\u003eThe Vault Labs\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePRISM, CARTRIDGE and DECADE:\u003c\/strong\u003e use them on a drum bus, a single drum, a loop, or a full mix\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePick Pocket exports:\u003c\/strong\u003e Standard MIDI (.mid) with sampler keymaps, Ableton groove files (.agr)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDr. Fill exports:\u003c\/strong\u003e WAV at 44.1, 48, 88.2, or 96 kHz, plus MIDI with mapping for all major drum software\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eFAQ\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eWhat exactly do I get?\u003c\/strong\u003e Six separate lifetime licenses — JUGGLE, PRISM, CARTRIDGE, DECADE, Pick Pocket and Dr. Fill — for $99 total, a $294 value.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDo they work in Pro Tools?\u003c\/strong\u003e Yes. All six ship as AAX alongside AU, VST3 and Standalone.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDo they work offline?\u003c\/strong\u003e PRISM, CARTRIDGE, DECADE, Pick Pocket and Dr. Fill do. Activate each once, then they never need the internet to run. No dongles, no iLok.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow many machines?\u003c\/strong\u003e Three per plug-in.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDo I need a Vault membership?\u003c\/strong\u003e No — all six licenses are yours forever. Membership adds the full catalog (and includes all six plug-ins).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCan I try them first?\u003c\/strong\u003e Yes — all six free downloads above run on your own audio. PRISM, CARTRIDGE and DECADE are the complete plug-ins with no time limit; their output mutes briefly every 45 seconds until you activate. JUGGLE, Pick Pocket and Dr. Fill are fully playable, with only exporting requiring activation.\u003c\/p\u003e\n\u003ch2\u003eManuals \u0026amp; support\u003c\/h2\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/vault.yurtrock.com\/support\/juggle\/\" title=\"JUGGLE Manual\"\u003eJUGGLE Manual\u003c\/a\u003e · \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/prism\/\" title=\"PRISM Manual\"\u003ePRISM Manual\u003c\/a\u003e · \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/cartridge\/\" title=\"CARTRIDGE Manual\"\u003eCARTRIDGE Manual\u003c\/a\u003e · \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/decade\/\" title=\"DECADE Manual\"\u003eDECADE Manual\u003c\/a\u003e · \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/pick-pocket\/\" title=\"Pick Pocket Manual\"\u003ePick Pocket Manual\u003c\/a\u003e · \u003ca href=\"https:\/\/vault.yurtrock.com\/support\/dr-fill\/\" title=\"Dr. Fill Manual\"\u003eDr. Fill Manual\u003c\/a\u003e\u003cbr\u003e\u003cbr\u003eHave any feedback, suggestions, questions or bugs to report? \u003ca href=\"https:\/\/yurtrock.com\/pages\/plugin-feedback\" title=\"Plug-In Feedback\"\u003ePlease contact us here\u003c\/a\u003e and we'll follow up with you ASAP!\u003c\/p\u003e","brand":"Yurt Rock","offers":[{"title":"Default Title","offer_id":48266478616806,"sku":"LL_PLUGINBNDLE","price":99.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0510\/4363\/1276\/files\/ThePlugInBundle_Cover.jpg?v=1793829387","url":"https:\/\/yurtrock.com\/products\/plug-in-bundle","provider":"Yurt Rock","version":"1.0","type":"link"}