{"id":182465,"date":"2026-10-21T19:52:30","date_gmt":"2026-10-21T18:52:30","guid":{"rendered":"https:\/\/beatsurfing.com\/support\/druw\/"},"modified":"2026-10-21T19:53:47","modified_gmt":"2026-10-21T18:53:47","slug":"druw","status":"publish","type":"page","link":"https:\/\/beatsurfing.com\/es\/support\/druw\/","title":{"rendered":"Gu\u00eda de usuario de DRUW"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"182465\" class=\"elementor elementor-182465\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-bac599a e-flex e-con-boxed e-con e-parent\" data-id=\"bac599a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a2a3f6c elementor-widget elementor-widget-html\" data-id=\"a2a3f6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- BS DRUW GUIDE v1.0 : user guide DRUW (export team dev v1.0.1), fonts Barlow, images m\u00e9diath\u00e8que -->\n<style>\n.druwg{--canvas: #0f0f10;\n  --surface: #18181a;\n  --raised: #212124;\n  --raisedHi: #2a2a2e;\n  --control: #212124;\n  --line: #2c2c30;\n  --ink: #f3f3f5;\n  --inkSoft: #e2e2e6;\n  --inkDim: #cdcdd3;\n  --accent: #ededef;\n  --danger: #e5484d;\n  --tentative: #3bc9db;\n  --device: #2885ff;\n  --scrollbar: #3c3c42;\n  --pick: #3a3a40;\n  --t1: 22px;\n  --t2: 14px;\n  --t3: 12px;\n  --t4: 10px;\n  --t5: 11px;\n  --radius: 6px;\n  --radius-l: 10px;\n  --c1: #fd004b;\n  --c2: #fc6c00;\n  --c3: #ffa900;\n  --c4: #fae000;\n  --c5: #abfa00;\n  --c6: #0fff9a;\n  --c7: #00fce6;\n  --c8: #00dffe;\n  --c9: #00acfc;\n  --c10: #4f79ff;\n  --c11: #955bff;\n  --c12: #e400fc;\n  --c13: #ff04a9;\n  --c14: #80004f;\n  --c15: #ffffff;\n  --c16: #c2c8d4;\n  --c17: #4b5563;}\n.druwg{--bg:var(--canvas);     \n  --surf:var(--surface);  \n  --frame:var(--line);    \n  --rule:#3a3a40;         \n  --muted:#8a8a93;        \n  --soft:var(--inkSoft);  \n  --fg:var(--ink);        \n  \n  color-scheme:dark;}\n.druwg *{box-sizing:border-box}\n.druwg [hidden]{display:none!important}\nhtml{scroll-padding-top:calc(var(--dg-top,90px) + 24px)}\n.druwg{margin:0;background:var(--bg);color:var(--soft);font:17.5px\/1.65 var(--f);-webkit-font-smoothing:antialiased}\n.druwg a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}\n.druwg a:hover{color:var(--accent)}\n.druwg :focus-visible{outline:2px solid var(--accent);outline-offset:2px}\n.druwg button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}\n.druwg .ver{font:500 12.5px\/1 var(--f);letter-spacing:.04em;color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:4px 6px}\n.druwg .search{position:relative;width:min(300px,34vw)}\n.druwg .search input{width:100%;height:36px;background:var(--surf);border:1px solid var(--frame);border-radius:var(--radius);color:var(--fg);padding:0 52px 0 34px;font:15.5px var(--f)}\n.druwg .search input::placeholder{color:var(--muted)}\n.druwg .search input:focus{outline:none;border-color:var(--fg)}\n.druwg .search svg{position:absolute;left:11px;top:11px;width:14px;height:14px;stroke:var(--muted)}\n.druwg .search kbd{position:absolute;right:8px;top:8px}\n.druwg kbd{font:500 11.5px\/1 var(--f);letter-spacing:.06em;color:var(--soft);border:1px solid var(--rule);border-bottom-width:2px;border-radius:4px;padding:3px 6px;background:var(--surf);white-space:nowrap}\n.druwg .results{position:absolute;top:42px;right:0;width:min(440px,calc(100vw - 32px));background:var(--surf);border:1px solid var(--rule);border-radius:var(--radius-l);padding:6px;max-height:60vh;overflow:auto;box-shadow:0 16px 40px rgba(0,0,0,.6)}\n.druwg .results a{display:block;text-decoration:none;padding:10px 12px;border-radius:var(--radius);color:var(--soft)}\n.druwg .results a:hover,.druwg .results a.on{background:var(--raised);color:var(--fg)}\n.druwg .results .rt{font:700 15.5px\/1.3 var(--f);color:var(--fg)}\n.druwg .results .rp{font:500 11.5px\/1.3 var(--f);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-top:2px}\n.druwg .results .rs{font-size:14.5px;line-height:1.45;color:var(--muted);margin-top:4px}\n.druwg .results mark{background:none;color:var(--fg);font-weight:600;text-decoration:underline}\n.druwg .results .none{padding:12px;color:var(--muted);font-size:15.5px}\n.druwg .shell{display:grid;grid-template-columns:272px minmax(0,1fr) 220px;margin:0}\n.druwg .side{position:sticky;top:var(--dg-top,90px);height:calc(100vh - var(--dg-top,90px));overflow:auto;border-right:1px solid var(--frame);padding:24px 14px 40px 20px}\n.druwg .side h4{font:700 11.5px\/1 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:22px 8px 8px;display:flex;align-items:center;gap:8px}\n.druwg .side h4.on{color:var(--fg)}\n.druwg .side h4.on::before{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--accent)}\n.druwg .side h4:first-child{margin-top:0}\n.druwg .side ul{list-style:none;margin:0;padding:0}\n.druwg .side a{display:flex;gap:10px;align-items:baseline;text-decoration:none;color:var(--soft);font:500 13px\/1.4 var(--f);text-transform:uppercase;letter-spacing:.08em;padding:7px 10px;border-radius:5px}\n.druwg .side a .num{flex:0 0 18px;color:var(--c);font-weight:700}\n.druwg .side a:hover{color:var(--fg);background:var(--surf)}\n.druwg .side a.on{color:var(--fg);background:var(--surf);box-shadow:inset 3px 0 0 var(--accent);font-weight:700}\n.druwg .side .sub{margin:4px 0 10px 13px;border-left:1px solid var(--rule)}\n.druwg .side .sub a{display:block;font:400 15px\/1.35 var(--f);text-transform:none;letter-spacing:0;color:var(--muted);padding:5px 10px 5px 12px;margin-left:-1px;border-left:1px solid transparent;border-radius:0}\n.druwg .side .sub a:hover{background:none;color:var(--fg)}\n.druwg .side .sub a.cur{color:var(--fg);border-left-color:var(--fg)}\n.druwg .side a.ext::after{content:\" \u2197\";color:var(--muted)}\n.druwg .side .pdf{margin-top:26px;padding-top:18px;border-top:1px solid var(--frame)}\n.druwg .dg-main{min-width:0;padding:32px clamp(16px,4vw,56px) 72px}\n.druwg .doc{max-width:760px;margin:0 auto}\n.druwg.js .page{display:none}\n.druwg.js .page.on{display:block}\n.druwg .page:not(:first-child){margin-top:64px}\n.druwg.js .page.on{margin-top:0}\n.druwg .crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font:500 14.5px\/1.4 var(--f);color:var(--muted);margin-bottom:18px}\n.druwg .crumbs a{color:var(--muted);text-decoration:none}\n.druwg .crumbs a:hover{color:var(--fg)}\n.druwg .crumbs i{font-style:normal;color:var(--rule)}\n.druwg .doc h1{font:700 clamp(27px,3.8vw,38px)\/1.12 var(--f);color:var(--fg);text-transform:uppercase;letter-spacing:.07em;margin:0 0 16px;text-wrap:balance}\n.druwg .doc h1 .num{display:block;font-size:14.5px;letter-spacing:.18em;color:var(--accent);margin-bottom:8px}\n.druwg .hero{padding:8px 0 20px}\n.druwg .hero .logo{height:58px;width:auto;color:var(--fg)}\n.druwg .hero .kicker{font:700 12.5px\/1 var(--f);letter-spacing:.22em;color:var(--muted);margin:16px 0 0}\n.druwg .lede{font-size:20px;line-height:1.6;color:var(--soft);margin:0 0 8px}\n.druwg .doc h2{display:flex;align-items:center;gap:16px;font:700 17px\/1.25 var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);margin:48px 0 16px;text-wrap:balance}\n.druwg .doc h2::after{content:\"\";flex:1;height:1px;background:var(--rule);min-width:24px}\n.druwg .doc h3{font:700 17.5px\/1.3 var(--f);color:var(--fg);margin:28px 0 8px}\n.druwg .doc p{margin:0 0 14px}\n.druwg .doc strong{color:var(--fg);font-weight:600}\n.druwg .doc strong.ui,.druwg .doc dt.ui{font-family:var(--f);font-weight:700;font-size:.82em;letter-spacing:.08em}\n.druwg .doc code{font:500 14px\/1 var(--f);color:var(--fg);background:var(--surf);border:1px solid var(--frame);border-radius:4px;padding:3px 6px;overflow-wrap:anywhere}\n.druwg .doc ul,.druwg .doc ol{margin:0 0 16px;padding-left:22px}\n.druwg .doc li{margin:0 0 8px;padding-left:4px}\n.druwg .doc ul li::marker{color:var(--accent)}\n.druwg .doc ol li::marker{color:var(--muted);font:500 15px var(--f)}\n.druwg .doc li>ul,.druwg .doc li>ol{margin:8px 0 0}\n.druwg .doc dl{margin:0 0 18px;display:grid;gap:0;border-top:1px solid var(--frame)}\n.druwg .doc dl>div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--frame)}\n.druwg .doc dt{font:700 16.5px\/1.5 var(--f);color:var(--fg)}\n.druwg .doc dt.ui{font-size:13.5px;letter-spacing:.08em;line-height:1.75}\n.druwg .doc dd{margin:0}\n.druwg.druwg figure{margin:18px 0 22px}\n.druwg figure img{display:block;width:calc(var(--w,9999) * 1px);max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--frame);cursor:zoom-in;background:var(--surf)}\n.druwg figcaption{font-style:normal;font-size:14.5px;color:var(--muted);margin-top:8px}\n.druwg figure.shot img{margin-inline:auto}\n.druwg figure.shot figcaption{text-align:center}\n.druwg figure.missing .todo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:16\/9;border:1px dashed var(--rule);border-radius:var(--radius);background:var(--surf);font:700 12.5px var(--f);letter-spacing:.18em;color:var(--muted)}\n.druwg figure.missing .todo,.druwg figure.demo-print .todo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:16\/9;border:1px dashed var(--rule);border-radius:var(--radius);background:var(--surf);font:700 12.5px var(--f);letter-spacing:.18em;color:var(--muted)}\n.druwg ol.legend{list-style:none;padding:0;counter-reset:c}\n.druwg ol.legend li{counter-increment:c;display:flex;gap:10px;padding:0}\n.druwg ol.legend li::before{content:counter(c);flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 11.5px var(--f);color:var(--canvas);background:var(--accent)}\n.druwg .callout{border:1px solid var(--frame);background:var(--surf);border-radius:var(--radius-l);padding:14px 18px;margin:18px 0 22px}\n.druwg .callout b{display:block;font:700 11.5px\/1 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}\n.druwg .callout p:last-child,.druwg .callout ul:last-child{margin:0}\n.druwg .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin:18px 0 8px}\n.druwg .cards a{display:block;text-decoration:none;background:var(--surf);border:1px solid var(--frame);border-top:2px solid var(--c);border-radius:var(--radius-l);padding:16px 18px;color:var(--soft);font-size:15.5px;line-height:1.5}\n.druwg .cards a:hover{border-color:var(--c)}\n.druwg .cards a span{display:block;font:700 15.5px\/1.3 var(--f);color:var(--fg);margin-bottom:6px}\n.druwg .pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px;padding-top:28px;border-top:1px solid var(--frame)}\n.druwg .pager a{display:block;text-decoration:none;border:1px solid var(--frame);border-radius:var(--radius-l);padding:14px 18px;background:var(--surf)}\n.druwg .pager a:hover{border-color:var(--accent)}\n.druwg .pager small{display:block;font:600 11.5px\/1 var(--f);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}\n.druwg .pager span{font:700 14.5px\/1.3 var(--f);text-transform:uppercase;letter-spacing:.06em;color:var(--fg)}\n.druwg .pager .next{text-align:right;grid-column:2}\n.druwg .toc{position:sticky;top:var(--dg-top,90px);height:calc(100vh - var(--dg-top,90px));overflow:auto;padding:32px 20px 40px 8px}\n.druwg .toc h5{font:700 11.5px\/1 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}\n.druwg .toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--frame)}\n.druwg .toc a{display:block;text-decoration:none;color:var(--muted);font-size:15px;line-height:1.4;padding:5px 0 5px 12px;margin-left:-1px;border-left:1px solid transparent}\n.druwg .toc a:hover{color:var(--fg)}\n.druwg .toc a.on{color:var(--fg);border-left-color:var(--accent)}\n.druwg .lb{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}\n.druwg .lb img{max-width:100%;max-height:100%;border-radius:var(--radius)}\n.druwg .scrim{position:fixed;inset:0;z-index:9990;background:rgba(0,0,0,.7)}\n.druwg .mbar{display:none}\n@media (max-width:1799px){\n.druwg .shell{grid-template-columns:260px minmax(0,1fr)}\n.druwg .toc{display:none}\n}\n@media (max-width:1023px){\n.druwg .shell{display:block}\n.druwg .mbar{display:flex;align-items:center;gap:10px;position:sticky;z-index:29;top:var(--dg-top,90px);width:100%;min-height:48px;padding:8px 16px;background:var(--surf);border-bottom:1px solid var(--frame);text-align:left;font:500 15.5px\/1.3 var(--f);color:var(--soft)}\n.druwg .mbar .ic{flex:none;width:18px;height:12px;border-block:2px solid var(--fg);position:relative}\n.druwg .mbar .ic::after{content:\"\";position:absolute;left:0;right:0;top:3px;height:2px;background:var(--fg)}\n.druwg .mbar .g{color:var(--muted);white-space:nowrap}\n.druwg .mbar .g::after{content:\" \/\";color:var(--rule)}\n.druwg .mbar .p{color:var(--fg);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.druwg .side{position:fixed;z-index:9991;left:0;top:var(--dg-top,90px);width:min(300px,86vw);height:calc(100% - var(--dg-top,90px));background:var(--bg);transform:translateX(-102%);transition:transform .2s ease}\n.druwg .side.open{transform:none}\n.druwg .side a{padding:10px 12px}\n.druwg .side .sub a{padding:8px 12px}\nhtml{scroll-padding-top:calc(var(--dg-top,90px) + 72px)}\n.druwg .crumbs{display:none}\n.druwg .doc dl>div{grid-template-columns:minmax(0,1fr);gap:2px}\n}\n@media (max-width:600px){\n.druwg .search{width:auto;flex:1;min-width:0}\n.druwg .search kbd{display:none}\n.druwg .search input{padding-right:10px}\n.druwg .dg-main{padding-top:24px}\n.druwg .doc h2::after{display:none}\n.druwg .pager{gap:8px}\n.druwg .pager a{padding:12px 12px}\n.druwg .pager span{font-size:12.5px;overflow-wrap:anywhere}\n}\n@media (prefers-reduced-motion:reduce){\n.druwg *{transition:none!important;scroll-behavior:auto!important}\n}\n.druwg .cols{display:grid;gap:28px;align-items:start;margin:4px 0 8px}\n.druwg .cols>.col{min-width:0}\n.druwg.druwg .cols figure{margin:4px 0 14px}\n.druwg .cols .col>:last-child{margin-bottom:0}\n@media (max-width:1023px){\n.druwg .cols{grid-template-columns:minmax(0,1fr)!important;gap:4px}\n}\n.druwg .cols dl>div{grid-template-columns:minmax(0,1fr);gap:2px}\n.druwg figure.video video{display:block;width:100%;max-width:100%;max-height:min(70vh,430px);height:auto;aspect-ratio:16\/9;object-fit:contain;background:#000;border-radius:var(--radius);border:1px solid var(--frame)}\n.druwg figure.demo{margin:1.4em 0}\n.druwg figure.demo .demo-frame{border:1px solid var(--frame);border-radius:var(--radius);overflow:hidden;background:var(--bg)}\n.druwg figure.demo iframe{display:block;width:100%;height:460px;border:0}\n.druwg figure.demo .demo-open{margin:.4em 0 0;font-size:.85em}\n\/* BS DRUW GUIDE v1.0 : guide DRUW de la team dev, int\u00e9gr\u00e9 au site (voir claude\/druw-user-guide-web.md) *\/\n.druwg{--f:Barlow,sans-serif;position:relative}\n.druwg .dg-main{padding-top:8px}\n.druwg .side{padding-top:0}\n.druwg .dg-head{position:sticky;top:0;z-index:2;background:var(--bg);padding:20px 0 14px;margin:0 0 6px;border-bottom:1px solid var(--frame)}\n.druwg .dg-title{margin:0 8px 12px;font:500 15.5px\/1.2 var(--f);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.druwg .dg-title b{color:var(--fg);font-weight:700}\n.druwg .dg-title .ver{text-transform:none;letter-spacing:.04em}\n.druwg .search{position:relative;width:auto}\n.druwg .search input{width:100%;height:36px;background:var(--surf);border:1px solid var(--frame);border-radius:var(--radius);color:var(--fg);padding:0 52px 0 34px;box-shadow:none;margin:0}\n.druwg .search svg{position:absolute;left:11px;top:11px;width:14px;height:14px;stroke:var(--muted)}\n.druwg .search kbd{position:absolute;right:8px;top:8px}\n.druwg .results{left:0;right:0;width:auto}\n.druwg .dg-links{display:flex;gap:16px;margin:12px 8px 0;font:500 14px\/1.3 var(--f)}\n.druwg .side .dg-links a{display:inline;padding:0;border-radius:0;background:none;color:var(--soft);text-decoration:none;text-transform:none;letter-spacing:.01em;font:500 14.5px\/1.3 var(--f);white-space:nowrap}\n.druwg .side .dg-links a:hover{color:var(--fg);background:none}\n.druwg .dg-links a::after{content:\" \u2197\";color:var(--muted)}\n.druwg .side h4:first-of-type{margin-top:8px}\n.druwg h1,.druwg h2,.druwg h3,.druwg h4,.druwg h5{text-shadow:none}\n.druwg img{max-width:100%}\n@media (max-width:1023px){.druwg .dg-head{padding-top:16px}.druwg .search kbd{display:none}.druwg .search input{padding-right:10px}}\n<\/style>\n<div class=\"druwg\" id=\"druwg\"><div class=\"dg-i18n\" hidden><span data-k=\"toc\">On this page<\/span><span data-k=\"none\">No results for<\/span><\/div><button class=\"mbar\" id=\"mbar\" aria-label=\"Open guide menu\" aria-expanded=\"false\" aria-controls=\"side\"><span class=\"ic\" aria-hidden=\"true\"><\/span><span class=\"g\" id=\"mbar-g\"><\/span><span class=\"p\" id=\"mbar-p\"><\/span><\/button>\n<div class=\"shell\">\n  <nav class=\"side\" id=\"side\" aria-label=\"Guide sections\"><div class=\"dg-head\"><p class=\"dg-title\"><b>DRUW<\/b> User Guide <span class=\"ver\" title=\"Guide version\">v1.0.1<\/span><\/p><div class=\"search\"><svg viewBox=\"0 0 16 16\" fill=\"none\" stroke-width=\"2\" aria-hidden=\"true\"><circle cx=\"7\" cy=\"7\" r=\"5\"\/><path d=\"M11 11l4 4\"\/><\/svg><input id=\"q\" type=\"search\" placeholder=\"Search the guide\" autocomplete=\"off\" aria-label=\"Search the guide\"><kbd>Ctrl K<\/kbd><div class=\"results\" id=\"results\" hidden><\/div><\/div><p class=\"dg-links\"><a href=\"\/druw\/\">DRUW plugin page<\/a><a href=\"https:\/\/beatsurfing-pluginstallers.s3.eu-north-1.amazonaws.com\/DRUW_userGuide.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a><\/p><\/div><h4 data-g=\"Welcome\">Welcome<\/h4><ul><li><a href=\"#welcome\" data-id=\"welcome\"><span class=\"t\">Introduction<\/span><\/a><\/li><\/ul><h4 data-g=\"Getting started\">Getting started<\/h4><ul><li><a href=\"#quick-start\" data-id=\"quick-start\"><span class=\"t\">QUICK START<\/span><\/a><\/li><li><a href=\"#meet-druw\" data-id=\"meet-druw\"><span class=\"num\" style=\"--c:#fd004b\">01<\/span><span class=\"t\">MEET DRUW<\/span><\/a><\/li><li><a href=\"#connect-your-phone-or-tablet\" data-id=\"connect-your-phone-or-tablet\"><span class=\"num\" style=\"--c:#fc6c00\">02<\/span><span class=\"t\">CONNECT YOUR PHONE OR TABLET<\/span><\/a><\/li><\/ul><h4 data-g=\"Using DRUW\">Using DRUW<\/h4><ul><li><a href=\"#play\" data-id=\"play\"><span class=\"num\" style=\"--c:#ffa900\">03<\/span><span class=\"t\">PLAY<\/span><\/a><\/li><li><a href=\"#roll-the-dice\" data-id=\"roll-the-dice\"><span class=\"num\" style=\"--c:#fae000\">04<\/span><span class=\"t\">ROLL THE DICE<\/span><\/a><\/li><li><a href=\"#build-your-playground\" data-id=\"build-your-playground\"><span class=\"num\" style=\"--c:#abfa00\">05<\/span><span class=\"t\">BUILD YOUR PLAYGROUND<\/span><\/a><\/li><li><a href=\"#shape-an-instrument\" data-id=\"shape-an-instrument\"><span class=\"num\" style=\"--c:#0fff9a\">06<\/span><span class=\"t\">SHAPE AN INSTRUMENT<\/span><\/a><\/li><li><a href=\"#pads-and-gestures\" data-id=\"pads-and-gestures\"><span class=\"num\" style=\"--c:#00fce6\">07<\/span><span class=\"t\">PADS AND GESTURES<\/span><\/a><\/li><li><a href=\"#shape-a-sound\" data-id=\"shape-a-sound\"><span class=\"num\" style=\"--c:#00dffe\">08<\/span><span class=\"t\">SHAPE A SOUND<\/span><\/a><\/li><li><a href=\"#chokes\" data-id=\"chokes\"><span class=\"num\" style=\"--c:#00acfc\">09<\/span><span class=\"t\">CHOKES<\/span><\/a><\/li><li><a href=\"#several-devices-several-druws-several-people\" data-id=\"several-devices-several-druws-several-people\"><span class=\"num\" style=\"--c:#4f79ff\">10<\/span><span class=\"t\">SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE<\/span><\/a><\/li><li><a href=\"#save-your-work\" data-id=\"save-your-work\"><span class=\"num\" style=\"--c:#955bff\">11<\/span><span class=\"t\">SAVE YOUR WORK<\/span><\/a><\/li><li><a href=\"#settings\" data-id=\"settings\"><span class=\"num\" style=\"--c:#e400fc\">12<\/span><span class=\"t\">SETTINGS<\/span><\/a><\/li><\/ul><h4 data-g=\"Reference\">Reference<\/h4><ul><li><a href=\"#system-requirements\" data-id=\"system-requirements\"><span class=\"num\" style=\"--c:#ff04a9\">13<\/span><span class=\"t\">SYSTEM REQUIREMENTS<\/span><\/a><\/li><li><a href=\"#installation-instructions\" data-id=\"installation-instructions\"><span class=\"num\" style=\"--c:#fd004b\">14<\/span><span class=\"t\">INSTALLATION INSTRUCTIONS<\/span><\/a><\/li><li><a href=\"#activating-deactivating-the-licence\" data-id=\"activating-deactivating-the-licence\"><span class=\"num\" style=\"--c:#fc6c00\">15<\/span><span class=\"t\">ACTIVATING &amp; DEACTIVATING THE LICENCE<\/span><\/a><\/li><li><a href=\"#support-troubleshooting\" data-id=\"support-troubleshooting\"><span class=\"num\" style=\"--c:#ffa900\">16<\/span><span class=\"t\">SUPPORT &amp; TROUBLESHOOTING<\/span><\/a><\/li><\/ul><div class=\"pdf\"><ul><li><a class=\"ext\" href=\"https:\/\/beatsurfing-pluginstallers.s3.eu-north-1.amazonaws.com\/DRUW_userGuide.pdf\" target=\"_blank\" rel=\"noopener\">Download PDF manual<\/a><\/li><\/ul><\/div><\/nav>\n  <div class=\"dg-main\" id=\"dg-main\"><article class=\"doc\" id=\"doc\"><section class=\"page\" id=\"welcome\" data-group=\"Welcome\" data-title=\"Introduction\" style=\"--accent:#ededef\"><div class=\"hero\"><svg class=\"logo\" fill=\"currentColor\" aria-hidden=\"true\" id=\"Layer_2\" data-name=\"Layer 2\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 688 232\">\n  <g id=\"Layer_7\" data-name=\"Layer 7\">\n    <path d=\"M78.0394897.2723999c-.6522217-.171814-1.333313-.2723999-2.0394897-.2723999h-44C14.3549805,0,0,14.3554688,0,32v192c0,4.4179688,3.581543,8,8,8s8-3.5820312,8-8V32c0-8.8222656,7.1777344-16,16-16h40c30.878418,0,56,25.1210938,56,56v88c0,30.8789062-25.121582,56-56,56h-40c-4.418457,0-8,3.5820312-8,8s3.581543,8,8,8h40c39.7011719,0,72-32.2988281,72-72v-88C144,34.3345337,114.9226685,3.3527222,78.0394897.2723999Z\"\/>\n    <path d=\"M456,0c-4.4179688,0-8,3.5820312-8,8v152c0,30.8789062-25.121582,56-56,56s-56-25.1210938-56-56V8c0-4.4179688-3.581543-8-8-8s-8,3.5820312-8,8v152c0,39.7011719,32.2988281,72,72,72s72-32.2988281,72-72V8c0-4.4179688-3.5820312-8-8-8Z\"\/>\n  <\/g>\n  <g id=\"Layer_9\" data-name=\"Layer 9\">\n    <path d=\"M663.8476562,231.9993706c-6.1787109,0-12.1669922-2.4394531-16.8183594-7.0898438l-57.3730469-57.3730469c-3.1191406-3.1191406-8.1933594-3.1191406-11.3125,0l-57.3730469,57.3730469c-6.9951172,6.9941406-17.015625,8.9882812-26.1552734,5.2021484-9.1386719-3.7851562-14.8154297-12.28125-14.8154297-22.1728516V8c0-4.418457,3.5820312-8,8-8s8,3.581543,8,8v199.9388237c0,4.9599609,3.7802734,6.9111328,4.9384766,7.390625,1.1591797.4794922,5.2119141,1.7724609,8.7177734-1.734375l57.3730469-57.3730469c9.3574219-9.3564453,24.5839844-9.3564453,33.9414062,0l57.3730469,57.3730469c3.5039062,3.5058594,7.5585938,2.2128906,8.7177734,1.734375,1.1582031-.4794922,4.9384766-2.4306641,4.9384766-7.390625V8c0-4.418457,3.5820312-8,8-8s8,3.581543,8,8v199.9388237c0,9.8916016-5.6767578,18.3876953-14.8154297,22.1728516-3.0615234,1.2675781-6.2246094,1.8876953-9.3369141,1.8876953Z\"\/>\n    <path d=\"M264.9212036,136c23.1831055-11.9741211,39.0787964-36.1577759,39.0787964-64C304,32.2988281,271.7011719,0,232,0h-40c-17.6450195,0-32,14.3554688-32,32v192c0,4.4179688,3.581543,8,8,8s8-3.5820312,8-8V32c0-8.8222656,7.1777344-16,16-16h40c30.878418,0,56,25.1210938,56,56s-25.121582,56-56,56c-4.418457,0-8,3.5820312-8,8s3.581543,8,8,8c30.878418,0,56,25.1210938,56,56v24c0,4.4179688,3.581543,8,8,8s8-3.5820312,8-8v-24c0-27.8422241-15.8956909-52.0258789-39.0787964-64Z\"\/>\n  <\/g>\n<\/svg><p class=\"kicker\">USER GUIDE<\/p><\/div><p class=\"lede\"><strong>Ready to play.<\/strong><\/p>\n<p>DRUW is a drum instrument that you perform. It runs as an instrument plugin inside your DAW, and the phone or tablet you already own becomes its playing surface, through the free BEATSURFING Performer app. Tap, slide and shake expressive pads, then record your performance as MIDI, straight into your project.<\/p>\n<p>DRUW does not write the beat for you. It creates playable possibilities that invite you to move, react and perform.<\/p>\n<figure class=\"shot\" data-name=\"druw-plugin\" style=\"--w:2950;--pw:138.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-plugin.webp\" alt=\"DRUW plugin view\" width=\"1600\" height=\"924\" loading=\"lazy\" decoding=\"async\"><figcaption>DRUW plugin view<\/figcaption><\/figure>\n\n<h2 id=\"welcome--global-key-features\">Global Key Features<\/h2>\n<dl><div><dt>Roll<\/dt><dd>roll a complete, playable playground in one click, then roll it again, or roll a single instrument, until it feels right.<\/dd><\/div><div><dt>Customize<\/dt><dd>rearrange the pads to fit your hands, pick from the included instruments and kits, or load your own samples.<\/dd><\/div><div><dt>Play<\/dt><dd>perform in real time from your phone or tablet, over Wi-Fi or with a USB cable.<\/dd><\/div><div><dt>Expressive pads<\/dt><dd>each pad responds to touch, to slides across its edges and to shakes, and the position of your finger can shape the sound while you play.<\/dd><\/div><div><dt>Sound design<\/dt><dd>shape every sample with its start and end, amp, pitch and filter envelopes, chokes, and 8 macros per instrument.<\/dd><\/div><div><dt>Your timing, your choice<\/dt><dd>quantize to your DAW's grid, with straight, triplet and quintuplet divisions, or turn it off for a loose, human feel.<\/dd><\/div><div><dt>Record<\/dt><dd>capture what you play as MIDI in your DAW.<\/dd><\/div><\/dl>\n<h2 id=\"welcome--why-druw\">Why DRUW?<\/h2>\n<dl><div><dt>Playable instruments, not programmed ones<\/dt><dd>every take is a performance, with the feel of a live take.<\/dd><\/div><div><dt>Frictionless<\/dt><dd>from installation to your first groove in a few minutes.<\/dd><\/div><div><dt>Built for the studio and the stage<\/dt><dd>write in your DAW, or play live.<\/dd><\/div><\/dl><h2 id=\"welcome--where-to-start\">Where to start<\/h2><div class=\"cards\"><a href=\"#quick-start\" style=\"--c:#ededef\"><span>Quick start<\/span>4.<\/a><a href=\"#connect-your-phone-or-tablet\" style=\"--c:#fc6c00\"><span>Connect your phone or tablet<\/span>Click the DEVICES tab at the top of the right column.<\/a><a href=\"#roll-the-dice\" style=\"--c:#fae000\"><span>Roll the dice<\/span>Click the dice next to INSTRUMENTS, below the playground, with Instruments and sounds selected in the dropdown beside it.<\/a><a href=\"#build-your-playground\" style=\"--c:#abfa00\"><span>Build your playground<\/span>Unlock the playground first: click the padlock at its top right.<\/a><\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"next\" href=\"#quick-start\"><small>Next<\/small><span>QUICK START<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"quick-start\" data-group=\"Getting started\" data-title=\"QUICK START\" style=\"--accent:#ededef\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Getting started<\/span><\/div><h1>QUICK START<\/h1><p class=\"lede\">Five minutes from installation to your first groove.<\/p>\n<figure class=\"video\" data-name=\"druw-overview\"><video controls preload=\"metadata\" playsinline src=\"https:\/\/cdn.beatsurfing.com\/wp-content\/uploads\/2026\/10\/druw-overview.mp4\" poster=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-overview.webp\"><\/video><figcaption>DRUW in 4 minutes<\/figcaption><\/figure>\n\n<ol>\n<li><strong>Install DRUW.<\/strong> Run the installer. It installs the DRUW plugin and the BEATSURFING bridge, which runs in the background to allow MIDI recording.<\/li>\n<li><strong>Open DRUW in your DAW.<\/strong> Load it on an instrument (MIDI) track and open its window. The first time, enter your licence code.<\/li>\n<li><strong>Connect your phone or tablet.<\/strong> Click the <strong class=\"ui\">DEVICES<\/strong> tab at the top of the right column and scan the QR code for your device to install the free <strong>BEATSURFING Performer<\/strong> app. Put the device on the same Wi-Fi network as your computer and open the app: it joins DRUW on its own and appears in the list.<\/li>\n<\/ol>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,15.62fr) minmax(0,42.19fr) minmax(0,42.19fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"beatsurfing-performer-app\" style=\"--w:395;--pw:79.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-beatsurfing-performer-app.webp\" alt=\"BEATSURFING Performer app\" width=\"395\" height=\"399\" loading=\"lazy\" decoding=\"async\"><figcaption>BEATSURFING Performer app<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-panel-no-device\" style=\"--w:914;--pw:89.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-panel-no-device.webp\" alt=\"Connect a device\" width=\"914\" height=\"818\" loading=\"lazy\" decoding=\"async\"><figcaption>Connect a device<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-panel-connected\" style=\"--w:922;--pw:91.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-panel-connected.webp\" alt=\"Device connected\" width=\"922\" height=\"807\" loading=\"lazy\" decoding=\"async\"><figcaption>Device connected<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong class=\"ui\">4.<\/strong> <strong>Roll a playground.<\/strong> A new DRUW opens on the <strong>Welcome<\/strong> preset, ready to play. Click the <strong>dice<\/strong> next to <strong class=\"ui\">INSTRUMENTS<\/strong>, below the playground: every instrument is replaced by another one of the same type, with new sounds. The dropdown beside the dice lets you re-roll only the sounds. The new sounds are drawn from the sample folders marked in the <strong class=\"ui\">SAMPLES<\/strong> tab of the browser. Click the dice again for another playground.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instruments-dice-all\" style=\"--w:622;--pw:142.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-dice-all.webp\" alt=\"Roll everything\" width=\"622\" height=\"82\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll everything<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instruments-dice-sounds\" style=\"--w:630;--pw:144.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-dice-sounds.webp\" alt=\"Roll sounds only\" width=\"630\" height=\"86\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll sounds only<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p><strong class=\"ui\">6.<\/strong> <strong>Record it in your DAW.<\/strong> The <strong class=\"ui\">DIRECT | DAW REC<\/strong> switch in the header chooses where your pads go. <strong class=\"ui\">DIRECT<\/strong> plays them straight in DRUW. <strong class=\"ui\">DAW REC<\/strong> sends them through the BEATSURFING bridge to your DAW, as MIDI: set the track's <strong>MIDI input<\/strong> to <strong class=\"ui\">BEATSURFING<\/strong>, arm it and play. Your DAW records the notes and sends them back to DRUW, which plays them.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-header-right\" style=\"--w:378;--pw:86.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-right.webp\" alt=\"DIRECT\/DAW REC\" width=\"378\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>DIRECT\/DAW REC<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p><strong class=\"ui\">5.<\/strong> <strong>Play.<\/strong> Slide your finger across the pads on your device. No device at hand? Make sure the padlock at the top right of the playground is closed, and click or drag on the pads with your mouse.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-locked\" style=\"--w:1494;--pw:156.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-locked.webp\" alt=\"Playground locked\" width=\"1494\" height=\"764\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground locked<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p><strong class=\"ui\">7.<\/strong> <strong>Keep it in time.<\/strong> <strong>Quantize<\/strong>, at the right of the INSTRUMENTS header, snaps your hits to the beat of your DAW. Pick a grid, from <strong class=\"ui\">1\/4<\/strong> to <strong class=\"ui\">1\/32<\/strong> (T for triplets, Q for quintuplets), or <strong>Off<\/strong> to play free. It sets the whole playground (<strong class=\"ui\">1\/16<\/strong> by default): every instrument follows it unless you give it its own.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instru-quantize\" style=\"--w:512;--pw:117.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instru-quantize.webp\" alt=\"Quantize\" width=\"512\" height=\"68\" loading=\"lazy\" decoding=\"async\"><figcaption>Quantize<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>The first time you open DRUW, a <strong>Quick tour<\/strong> shows you around. For step-by-step help, click <strong class=\"ui\">?<\/strong> in the header: HELP walks you through each step on DRUW itself.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-header-left\" style=\"--w:448;--pw:102.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-left.webp\" alt=\"Help button in header\" width=\"448\" height=\"116\" loading=\"lazy\" decoding=\"async\"><figcaption>Help button in header<\/figcaption><\/figure>\n<\/div>\n<\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#welcome\"><small>Previous<\/small><span>Introduction<\/span><\/a><a class=\"next\" href=\"#meet-druw\"><small>Next<\/small><span>MEET DRUW<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"meet-druw\" data-group=\"Getting started\" data-title=\"MEET DRUW\" style=\"--accent:#fd004b\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Getting started<\/span><\/div><h1><span class=\"num\">01<\/span>MEET DRUW<\/h1><h2 id=\"meet-druw--open-druw-in-your-daw\">Open DRUW in your DAW<\/h2>\n<p>DRUW is an instrument plugin. Load it on an instrument (MIDI) track in your DAW, like any virtual instrument, and open its window. The very first time, DRUW asks you to enter your licence.<\/p>\n<h2 id=\"meet-druw--help\">HELP<\/h2>\n<p>The first time you open DRUW, a <strong>Quick tour<\/strong> shows you around. Replay it from <strong class=\"ui\">HELP<\/strong>.<\/p>\n<p>Click <strong class=\"ui\">?<\/strong> in the header to open HELP. It holds five short chapters:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<dl><div><dt>Quick tour<\/dt><dd>a look around DRUW: the playground and its instruments, the browser, the panels, and where to find more help.<\/dd><\/div><div><dt>Roll the dice and play<\/dt><dd>roll the dice: DRUW hands you a new playground, ready to play.<\/dd><\/div><div><dt>Shape your playground<\/dt><dd>unlock the playground to make it yours: its pads, its instruments and their sounds.<\/dd><\/div><div><dt>Connect a Performer device<\/dt><dd>play DRUW with your fingers: the free BEATSURFING Performer app turns your phone or tablet into its playing surface.<\/dd><\/div><div><dt>Record MIDI<\/dt><dd>record what you play as MIDI in your DAW, to edit it and play it back.<\/dd><\/div><\/dl>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-header-left\" style=\"--w:448;--pw:102.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-left.webp\" alt=\"Help button in header\" width=\"448\" height=\"116\" loading=\"lazy\" decoding=\"async\"><figcaption>Help button in header<\/figcaption><\/figure>\n<figure class=\"shot\" data-name=\"druw-help-section\" style=\"--w:512;--pw:73.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-help-section.webp\" alt=\"Help section\" width=\"512\" height=\"556\" loading=\"lazy\" decoding=\"async\"><figcaption>Help section<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"meet-druw--the-main-window\">The main window<\/h2>\n<p><strong>The header<\/strong>, at the top:<\/p>\n<figure class=\"shot\" data-name=\"druw-header\" style=\"--w:2940;--pw:673.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header.webp\" alt=\"DRUW Header\" width=\"1600\" height=\"63\" loading=\"lazy\" decoding=\"async\"><figcaption>DRUW Header<\/figcaption><\/figure>\n\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>On the left: <strong>Settings<\/strong>, <strong>Undo<\/strong> and <strong>Redo<\/strong>, and <strong class=\"ui\">?<\/strong> (HELP).<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-header-left\" style=\"--w:448;--pw:102.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-left.webp\" alt=\"Header Left\" width=\"448\" height=\"116\" loading=\"lazy\" decoding=\"async\"><figcaption>Header Left<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<ul>\n<li>In the middle: the <strong>preset<\/strong> you're playing. Click its name to browse the presets, use <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> to load the previous or next one, and the save icon to save your own.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-header-middle\" style=\"--w:606;--pw:138.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-middle.webp\" alt=\"Presets\" width=\"606\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>Presets<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>In the middle: the <strong>preset<\/strong> you're playing. Click its name to browse the presets, use <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> to load the previous or next one, and the save icon to save your own.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-header-middle\" style=\"--w:606;--pw:138.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-middle.webp\" alt=\"Presets\" width=\"606\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>Presets<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<ul>\n<li>On the right:<dl><div><dt class=\"ui\">DIRECT | DAW REC<\/dt><dd>play DRUW directly, or through your DAW to record MIDI.<\/dd><\/div><div><dt>Fill screen<\/dt><dd>make the window as big as your screen. <strong class=\"ui\">RESTORE<\/strong> brings it back to a small size.<\/dd><\/div><\/dl>\n<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-header-right\" style=\"--w:378;--pw:86.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-right.webp\" alt=\"Midi and display\" width=\"378\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>Midi and display<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong>The browser<\/strong>, on the far left: the <strong class=\"ui\">SAMPLES<\/strong> and <strong class=\"ui\">INSTRUMENTS<\/strong> libraries. Click a tab icon to open it; click the chevron to fold it.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-samples\" style=\"--w:600;--pw:27.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-samples.webp\" alt=\"Samples browser\" width=\"600\" height=\"1764\" loading=\"lazy\" decoding=\"async\"><figcaption>Samples browser<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-instruments\" style=\"--w:596;--pw:26.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-instruments.webp\" alt=\"Instruments browser\" width=\"596\" height=\"1770\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments browser<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong>The playground<\/strong>, in the middle: every pad of your instruments, laid out as they appear on your device.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-locked\" style=\"--w:1494;--pw:156.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-locked.webp\" alt=\"Playground locked\" width=\"1494\" height=\"764\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground locked<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-unlocked\" style=\"--w:1490;--pw:157.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-unlocked.webp\" alt=\"Playground unlocked\" width=\"1490\" height=\"758\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground unlocked<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Its tools sit in its corners:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>Top right: the <strong>padlock<\/strong>, to lock the playground and play it, or unlock it and edit it; <strong>full size button<\/strong>, to hide everything but the playground; and <strong>Gesture markers<\/strong>, to show or hide the gesture marks on your devices.<\/li>\n<li>The clock follows your local time and changes how the playground looks. You can drag it as you would a slider to move in the future or the past (Shift-drag lets you fast time-travel). Each day looks slightly different but the same date and time will look the same for all DRUW users.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-top-right-settings\" style=\"--w:276;--pw:63.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-top-right-settings.webp\" alt=\"Playground settings\" width=\"276\" height=\"90\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground settings<br><\/figcaption><\/figure>\n<figure class=\"shot\" data-name=\"druw-playground-top-right-settings-clock-details\" style=\"--w:342;--pw:78.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-top-right-settings-clock-details.webp\" alt=\"Playground settings\" width=\"342\" height=\"120\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground settings<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<ul>\n<li>When the time is changed, the clock will have a little padlock meaning it is frozen. One click on the clock and it will bring you back to the present, unfrozen. When no padlock is present, time will advance and the playground look will change. Time-travel, find a look you like, freeze it and it will be saved in the preset.<\/li>\n<li>Hovering the clock will reveal some graphics option for the playground look.A slider to the left that changes how far light reaches: This setting influences the amount of light emmitted by the pads when idle, when trigged, and also by the mouse pointer. On the right of this slider is a toggle for the \u201cClassic look\u201d: a plain black playground without the bells and whistles which can be desirable for readability or better performance<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>Bottom right: the <strong>zoom<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-zoom-settings\" style=\"--w:348;--pw:79.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-zoom-settings.webp\" alt=\"Playground zoom settings\" width=\"348\" height=\"88\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground zoom settings<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>Bottom left, when the playground is unlocked: the <strong>grid<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-grid-settings\" style=\"--w:284;--pw:65.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-grid-settings.webp\" alt=\"Playground grid settings\" width=\"284\" height=\"86\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground grid settings<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong class=\"ui\">INSTRUMENTS<\/strong>, below the playground: one row per instrument, with its pads and their gestures.<\/p>\n<figure class=\"shot\" data-name=\"druw-instruments-panel\" style=\"--w:2266;--pw:217.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-panel.webp\" alt=\"Instruments panel\" width=\"1600\" height=\"589\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments panel<\/figcaption><\/figure>\n\n<p>Its header holds the <strong>dice<\/strong> and its dropdown, <strong class=\"ui\">AUTO<\/strong>, the <strong class=\"ui\">GESTURE | CHOKES<\/strong> switch, <strong class=\"ui\">FOLD ALL<\/strong>, the playground's <strong>Quantize<\/strong> and <strong class=\"ui\">CLEAR MAP<\/strong>. Drag the bar between the playground and INSTRUMENTS to give more room to one or the other.<\/p>\n<figure class=\"shot\" data-name=\"druw-instruments-panel-header\" style=\"--w:1902;--pw:435.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-panel-header.webp\" alt=\"Instruments panel header\" width=\"1600\" height=\"77\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments panel header<\/figcaption><\/figure>\n\n<p><strong>The right column<\/strong>: two tabs at its top, <strong class=\"ui\">EDIT<\/strong> and <strong class=\"ui\">DEVICES<\/strong>, and a third, <strong class=\"ui\">ROOMS<\/strong>, when session rooms are turned on.<\/p>\n<dl><div><dt class=\"ui\">EDIT<\/dt><dd>the settings of the instrument or the pad you selected. With nothing selected, it reads \u00ab Pick an instrument on the left to edit it. \u00bb<\/dd><\/div><div><dt class=\"ui\">DEVICES<\/dt><dd>your phones and tablets.<\/dd><\/div><div><dt class=\"ui\">ROOMS<\/dt><dd>the room this DRUW plays in, with its number on the tab. It only shows when session rooms are turned on, in <strong class=\"ui\">SETTINGS \u203a SESSION<\/strong> (<a href=\"#several-devices-several-druws-several-people\">see chapter 10<\/a>).<\/dd><\/div><\/dl>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,33.33fr) minmax(0,33.33fr) minmax(0,33.33fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-edit-panel\" style=\"--w:930;--pw:51.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-edit-panel.webp\" alt=\"Edit panel\" width=\"930\" height=\"1450\" loading=\"lazy\" decoding=\"async\"><figcaption>Edit panel<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-panel\" style=\"--w:920;--pw:50.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-panel.webp\" alt=\"Devices panel\" width=\"920\" height=\"1450\" loading=\"lazy\" decoding=\"async\"><figcaption>Devices panel<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-rooms-panel\" style=\"--w:918;--pw:50.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-rooms-panel.webp\" alt=\"Rooms panel\" width=\"918\" height=\"1450\" loading=\"lazy\" decoding=\"async\"><figcaption>Rooms panel<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong>The footer<\/strong>, at the bottom: hover over any element to read what it does. When nothing is hovered, it shows how many MIDI notes and CCs your playground uses (\u00ab NOTES 24\/128 \u00b7 CC 6\/119 \u00bb).<\/p>\n<h2 id=\"meet-druw--key-concepts\">Key concepts<\/h2>\n<dl><div><dt>Playground<\/dt><dd>all the pads of your instruments, laid out together, as they appear on your devices. You see, play and edit it in the middle of DRUW. It is shared by your devices and by every DRUW in the same room, and saved with your DAW project.<\/dd><\/div><div><dt>Instrument<\/dt><dd>a group of pads that play together, for example a kick, a hat or a perc. Each instrument has a <strong>type<\/strong> (KICK, SNARE, HAT\u2026). DRUW comes with a library of instruments, and you can save your own.<\/dd><\/div><div><dt>Pad<\/dt><dd>a touch area of the playground.<\/dd><\/div><div><dt>Gesture<\/dt><dd>what you do on a pad: touch it, slide into it across one of its edges, or shake your finger on it. Each gesture plays its own sample.<\/dd><\/div><div><dt>Kit<\/dt><dd>the set of samples an instrument's pads play. An instrument can hold several kits: switch kit, and the same pads play other samples.<\/dd><\/div><div><dt>Macro<\/dt><dd>a control that moves several sound settings of an instrument at once. The position of your finger on a pad can turn macros while you play.<\/dd><\/div><div><dt>Preset<\/dt><dd>all the instruments of one DRUW, saved together.<\/dd><\/div><\/dl><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#quick-start\"><small>Previous<\/small><span>QUICK START<\/span><\/a><a class=\"next\" href=\"#connect-your-phone-or-tablet\"><small>Next<\/small><span>CONNECT YOUR PHONE OR TABLET<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"connect-your-phone-or-tablet\" data-group=\"Getting started\" data-title=\"CONNECT YOUR PHONE OR TABLET\" style=\"--accent:#fc6c00\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Getting started<\/span><\/div><h1><span class=\"num\">02<\/span>CONNECT YOUR PHONE OR TABLET<\/h1><p class=\"lede\">DRUW is played from a touch device. Your phone or tablet connects to DRUW through the free <strong>BEATSURFING Performer<\/strong> app, over your Wi-Fi network or with a USB cable.<\/p>\n<h2 id=\"connect-your-phone-or-tablet--install-the-performer-app\">Install the Performer app<\/h2>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,15.62fr) minmax(0,42.19fr) minmax(0,42.19fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"beatsurfing-performer-app\" style=\"--w:395;--pw:79.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-beatsurfing-performer-app.webp\" alt=\"BEATSURFING Performer app\" width=\"395\" height=\"399\" loading=\"lazy\" decoding=\"async\"><figcaption>BEATSURFING Performer app<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-panel-no-device\" style=\"--w:914;--pw:89.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-panel-no-device.webp\" alt=\"Connect a device\" width=\"914\" height=\"818\" loading=\"lazy\" decoding=\"async\"><figcaption>Connect a device<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-panel-connected\" style=\"--w:922;--pw:91.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-panel-connected.webp\" alt=\"Device connected\" width=\"922\" height=\"807\" loading=\"lazy\" decoding=\"async\"><figcaption>Device connected<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Click the <strong class=\"ui\">DEVICES<\/strong> tab at the top of the right column. If no device has joined DRUW yet, it shows two QR codes: scan the one for your device to install the Performer app from the <strong>App Store<\/strong> (iPhone, iPad) or <strong>Google Play<\/strong> (Android).<\/p>\n<h2 id=\"connect-your-phone-or-tablet--join-druw\">Join DRUW<\/h2>\n<ol>\n<li>Put your device on the <strong>same Wi-Fi network<\/strong> as your computer, or plug it into your computer with a USB cable.<\/li>\n<li>Open the Performer app.<\/li>\n<li>Your device finds DRUW on its own: no pairing code, no setup. It appears under <strong class=\"ui\">PERFORMER DEVICES<\/strong>.<\/li>\n<\/ol>\n<p>DRUW uses the USB cable when there is one, and Wi-Fi otherwise. Click a device in the list to see how it is connected. To remove a device you no longer use, click it, then click <strong class=\"ui\">FORGET<\/strong> (or right-click it).<\/p>\n<h2 id=\"connect-your-phone-or-tablet--what-your-device-shows\">What your device shows<\/h2>\n<p>Each device shows its own <strong>frame<\/strong> of the playground: when you pick a device in DEVICES, its frame appears on the playground, labelled with the device's name.<\/p>\n<ul>\n<li><strong>Drag<\/strong> the frame to choose which part of the playground the device shows.<\/li>\n<li><strong>Drag a corner<\/strong> to make it bigger or smaller. The frame always keeps the shape of the device's screen, so the pads are never stretched.<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-frame-full\" style=\"--w:1247;--pw:159.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-frame-full.webp\" alt=\"Devices frame\" width=\"1247\" height=\"624\" loading=\"lazy\" decoding=\"async\"><figcaption>Devices frame<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-devices-frame-part\" style=\"--w:1251;--pw:159.1mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-frame-part.webp\" alt=\"Devices frame resize and move\" width=\"1251\" height=\"629\" loading=\"lazy\" decoding=\"async\"><figcaption>Devices frame resize and move<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>While DEVICES is open, the playground is unlocked and its pads can't be clicked: the playground belongs to the frames.<\/p>\n<p>If session rooms are on, your device only finds the DRUWs in its own room (<a href=\"\/p\/3f8963ec7da6815b967cd21b8ec41663?pvs=25#a639a2f623da46f2902b8c0bc9c8ff7e\">see chapter 10<\/a>).<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#meet-druw\"><small>Previous<\/small><span>MEET DRUW<\/span><\/a><a class=\"next\" href=\"#play\"><small>Next<\/small><span>PLAY<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"play\" data-group=\"Using DRUW\" data-title=\"PLAY\" style=\"--accent:#ffa900\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">03<\/span>PLAY<\/h1><p class=\"lede\">Once your device has joined DRUW, it shows the playground: every pad of your instruments, in their colors. Everything you play on it is heard in DRUW, in your DAW.<\/p>\n<figure class=\"shot\" data-name=\"druw-playground-locked\" style=\"--w:1494;--pw:156.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-locked.webp\" alt=\"Playground\" width=\"1494\" height=\"764\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground<\/figcaption><\/figure>\n\n<h2 id=\"play--slide-don-t-just-tap\">Slide, don't just tap<\/h2>\n<p>DRUW is played with movement. <strong>Slide your finger across the pads<\/strong>: every time your finger enters a pad, it plays. A single stroke across several pads plays a whole phrase, and the speed of your movement becomes the rhythm.<\/p>\n<p>Each pad can answer to several gestures, and each gesture plays its own sample:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,62.5fr) minmax(0,37.5fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Touch<\/strong>: put your finger down on the pad.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-pad-touch\" style=\"--w:326;--pw:74.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-touch.webp\" alt=\"Touch\" width=\"326\" height=\"292\" loading=\"lazy\" decoding=\"async\"><figcaption>Touch<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,62.5fr) minmax(0,37.5fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Slide in<\/strong>: enter the pad across its left, right, top or bottom edge. Entering the same pad from the left or from the right can play two different samples.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-pad-slide\" style=\"--w:326;--pw:74.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-slide.webp\" alt=\"Slide in\" width=\"326\" height=\"292\" loading=\"lazy\" decoding=\"async\"><figcaption>Slide in<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,62.5fr) minmax(0,37.5fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Shake<\/strong>: keep your finger on the pad and move it back and forth, left and right or up and down. Each change of direction plays.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-pad-shake\" style=\"--w:326;--pw:74.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-shake.webp\" alt=\"Shake\" width=\"326\" height=\"292\" loading=\"lazy\" decoding=\"async\"><figcaption>Shake<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>The instruments of the library come with their gestures already set. You can change what each pad answers to and what it plays.<\/p>\n<h2 id=\"play--lock-and-unlock-the-playground\">Lock and unlock the playground<\/h2>\n<p>The <strong>padlock<\/strong> at the top right of the playground switches between playing and editing:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Locked<\/strong>: the playground plays. Click and drag on the pads with your mouse to play them, as you would with your finger.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-padlock-locked\" style=\"--w:270;--pw:61.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-padlock-locked.webp\" alt=\"Locked\" width=\"270\" height=\"82\" loading=\"lazy\" decoding=\"async\"><figcaption>Locked<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<ul>\n<li><strong>Unlocked<\/strong>: the playground is ready to edit. Clicks select, move and resize pads.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-padlock-unlocked\" style=\"--w:202;--pw:46.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-padlock-unlocked.webp\" alt=\"Unlocked\" width=\"202\" height=\"74\" loading=\"lazy\" decoding=\"async\"><figcaption>Unlocked<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Shortcuts: <strong>Caps Lock<\/strong> toggles the padlock, and holding <strong>Shift<\/strong> locks the playground for as long as you hold it, so you can play a pad while editing.<\/p>\n<h2 id=\"play--quantize\">Quantize<\/h2>\n<p>Quantize moves each hit to the nearest division of your DAW's grid. Use it to keep your performance tight, or turn it off for a loose, human feel.<\/p>\n<p>Quantize is set at three levels, each one following the level above until you change it:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Playground<\/strong>: the <strong>Quantize<\/strong> menu at the right of the INSTRUMENTS header. <strong class=\"ui\">1\/16<\/strong> by default.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-quantize-map\" style=\"--w:1486;--pw:140.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-quantize-map.webp\" alt=\"Map quantize\" width=\"1486\" height=\"848\" loading=\"lazy\" decoding=\"async\"><figcaption>Map quantize<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<ul>\n<li><strong>Instrument<\/strong>: <strong class=\"ui\">QUANTIZE<\/strong> in the EDIT tab. By default it shows \u00ab playground \u00bb and the playground's value, for example \u00ab playground (1\/16) \u00bb.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-quantize-instrument\" style=\"--w:908;--pw:145.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-quantize-instrument.webp\" alt=\"Instrument quantize\" width=\"908\" height=\"500\" loading=\"lazy\" decoding=\"async\"><figcaption>Instrument quantize<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Pad<\/strong>: the quantize menu of the pad, at the top of its sample editor. By default it shows \u00ab instrument \u00bb and the instrument's value.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-quantize-pad\" style=\"--w:896;--pw:154.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-quantize-pad.webp\" alt=\"Pad quantize\" width=\"896\" height=\"464\" loading=\"lazy\" decoding=\"async\"><figcaption>Pad quantize<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<p>Available values: <strong>Off<\/strong>; straight <strong class=\"ui\">1\/4<\/strong>, <strong class=\"ui\">1\/8<\/strong>, <strong class=\"ui\">1\/16<\/strong>, <strong class=\"ui\">1\/32<\/strong>; triplets <strong class=\"ui\">1\/4T<\/strong> to <strong class=\"ui\">1\/32T<\/strong>; quintuplets <strong class=\"ui\">1\/8Q<\/strong> to <strong class=\"ui\">1\/32Q<\/strong>.<\/p>\n<p>Available values: <strong>Off<\/strong>; straight <strong class=\"ui\">1\/4<\/strong>, <strong class=\"ui\">1\/8<\/strong>, <strong class=\"ui\">1\/16<\/strong>, <strong class=\"ui\">1\/32<\/strong>; triplets <strong class=\"ui\">1\/4T<\/strong> to <strong class=\"ui\">1\/32T<\/strong>; quintuplets <strong class=\"ui\">1\/8Q<\/strong> to <strong class=\"ui\">1\/32Q<\/strong>.<\/p>\n<\/div>\n<\/div>\n<p>Two more controls sit with the playground's Quantize:<\/p>\n<ul>\n<li><strong>\/2 | x1 | x2<\/strong>: play every grid of every instrument at half speed, as set, or at double speed. With \/2, a 1\/16 plays as 1\/8; with x2, as 1\/32.<\/li>\n<li><strong>Force off<\/strong>, in the playground's menu: turns quantize off everywhere, whatever each instrument and pad says. Choose a value again and every level gets back its own setting.<\/li>\n<\/ul>\n<h2 id=\"play--auto\">AUTO<\/h2>\n<p>Turn on <strong class=\"ui\">AUTO<\/strong> in the INSTRUMENTS header: each pad you play, from any device, is selected, and the EDIT tab shows it with the sample it played. It's the quickest way to find the pad or the sample you want to change. While you hold a knob in the EDIT tab, the selection waits until you let go.<\/p>\n<figure class=\"shot\" data-name=\"druw-auto\" style=\"--w:960;--pw:219.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-auto.webp\" alt=\"Auto select\" width=\"960\" height=\"90\" loading=\"lazy\" decoding=\"async\"><figcaption>Auto select<\/figcaption><\/figure>\n\n<h2 id=\"play--record-your-performance-direct-daw-rec\">Record your performance: DIRECT | DAW REC<\/h2>\n<p>The <strong class=\"ui\">DIRECT | DAW REC<\/strong> switch in the header sets the route your pads take:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,56.25fr) minmax(0,43.75fr)\">\n<div class=\"col\">\n<ul>\n<li><strong class=\"ui\">DIRECT<\/strong> (default): your pads play DRUW straight away. You hear them, but your DAW receives no MIDI.<\/li>\n<li><strong class=\"ui\">DAW REC<\/strong>: your pads go through the BEATSURFING bridge to your DAW, as MIDI. Your DAW records them and sends them back to DRUW, which plays them.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-header-right-direct-daw-rec\" style=\"--w:378;--pw:86.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-right-direct-daw-rec.webp\" alt=\"Direct and DAW rec\" width=\"378\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>Direct and DAW rec<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>To record:<\/p>\n<ol>\n<li>Set the switch to <strong class=\"ui\">DAW REC<\/strong>.<\/li>\n<li>Open <strong class=\"ui\">DEVICES<\/strong>: the top of the panel shows this DRUW's MIDI channel: \u00ab DAW REC: In your DAW, set this track's MIDI input to BEATSURFING, channel 1. \u00bb<\/li>\n<li>In your DAW, enable the <strong class=\"ui\">BEATSURFING<\/strong> MIDI port as an input if needed (see your DAW's manual). Set the DRUW track's <strong>MIDI input<\/strong> to <strong class=\"ui\">BEATSURFING<\/strong>, on <strong>that channel<\/strong>.<\/li>\n<li>Arm the track, or turn on its input monitoring, and record as usual. When you play the clip back, DRUW plays the recorded pads.<\/li>\n<\/ol>\n<div class=\"callout\"><b>Good to know<\/b><ul>\n<li>In DAW REC, DRUW only hears what comes back from your DAW: if the track is neither armed nor monitoring its input, you won't hear anything.<\/li>\n<li>Each DRUW has its own MIDI channel. If you use several DRUWs, set each track to its own channel, or every track will play every DRUW's pads.<\/li>\n<li>DAW REC needs the BEATSURFING bridge running on this computer. It is installed with DRUW and starts when you log in. If it isn't running, DAW REC is faded: click it, then <strong>START BEATSURFING bridge<\/strong>.<\/li>\n<li>The switch applies to every DRUW in the same room.<\/li>\n<\/ul><\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#connect-your-phone-or-tablet\"><small>Previous<\/small><span>CONNECT YOUR PHONE OR TABLET<\/span><\/a><a class=\"next\" href=\"#roll-the-dice\"><small>Next<\/small><span>ROLL THE DICE<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"roll-the-dice\" data-group=\"Using DRUW\" data-title=\"ROLL THE DICE\" style=\"--accent:#fae000\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">04<\/span>ROLL THE DICE<\/h1><p class=\"lede\">You don't need to build a playground from scratch to start playing. Roll one, play it, and roll again until it feels right.<\/p>\n<figure class=\"shot\" data-name=\"druw-instruments-panel\" style=\"--w:2266;--pw:217.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-panel.webp\" alt=\"Instruments panel\" width=\"1600\" height=\"589\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments panel<\/figcaption><\/figure>\n\n<h2 id=\"roll-the-dice--roll-the-whole-playground\">Roll the whole playground<\/h2>\n<p>Click the <strong>dice<\/strong> next to <strong class=\"ui\">INSTRUMENTS<\/strong>, below the playground, with <strong>Instruments and sounds<\/strong> selected in the dropdown beside it.<\/p>\n<figure class=\"shot\" data-name=\"druw-instruments-dice-all\" style=\"--w:622;--pw:142.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-dice-all.webp\" alt=\"Roll everything\" width=\"622\" height=\"82\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll everything<\/figcaption><\/figure>\n\n<ul>\n<li>On an <strong>empty playground<\/strong>, DRUW picks one of the factory presets at random and rolls it, as the dropdown beside the dice says. The header shows an invented name, for example \u00ab ROLLING_SWELL* \u00bb: save it as a preset if you like it.<\/li>\n<li>When the playground <strong>has instruments<\/strong>, each one is replaced by another instrument of the <strong>same type<\/strong>, in its place and at its size, with a random kit. A kick stays a kick, a hat stays a hat. An instrument with one pad becomes another one-pad instrument; an instrument with several pads becomes another one with several pads.<\/li>\n<\/ul>\n<p>Your device shows the new playground right away, so you can keep playing while you roll.<\/p>\n<p>Instruments without a type (for example the ones you made from your own samples, until you give them a type) are never rolled.<\/p>\n<h2 id=\"roll-the-dice--what-a-roll-changes\">What a roll changes<\/h2>\n<p>A small <strong>dropdown<\/strong> sits beside the dice. Click it, or right-click the dice, to choose what a roll changes:<\/p>\n<dl><div><dt>Instruments and sounds<\/dt><dd>each instrument is replaced by another of its type, with its own sounds.<\/dd><\/div><div><dt>Sounds only<\/dt><dd>the instruments stay, with their pads, gestures and place on the playground, and only their sounds are drawn again.<\/dd><\/div><\/dl>\n<p>The dice of each instrument follow the same choice.<\/p>\n<h2 id=\"roll-the-dice--where-the-sounds-come-from\">Where the sounds come from<\/h2>\n<p>The dice draws its sounds from the sample folders you mark in the <strong class=\"ui\">SAMPLES<\/strong> tab of the browser:<\/p>\n<ul>\n<li>With no folder marked, each instrument keeps to the kits it already has.<\/li>\n<li>With folders marked, the dice builds a kit from the samples of those folders, picking a sample of the right type for each sound.<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-samples-no-mark\" style=\"--w:604;--pw:46.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-samples-no-mark.webp\" alt=\"No folder marked\" width=\"604\" height=\"1050\" loading=\"lazy\" decoding=\"async\"><figcaption>No folder marked<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-samples-marks\" style=\"--w:596;--pw:45.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-samples-marks.webp\" alt=\"Folders marked\" width=\"596\" height=\"1042\" loading=\"lazy\" decoding=\"async\"><figcaption>Folders marked<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Each folder has a mark: click it to include the folder and its subfolders, click it again to leave them out. A solid dice means all of the folder is used, an outline that part of it is, an empty square that none of it is. <strong class=\"ui\">CLEAR SELECTION<\/strong> unticks every folder, and the dice goes back to the kits. By default, the factory samples and yours are all selected.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,33.33fr) minmax(0,33.33fr) minmax(0,33.33fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-samplebrowser-folder-all\" style=\"--w:282;--pw:64.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-samplebrowser-folder-all.webp\" alt=\"Include all subfolders\" width=\"282\" height=\"141\" loading=\"lazy\" decoding=\"async\"><figcaption>Include all subfolders<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-samplebrowser-folder-part\" style=\"--w:282;--pw:64.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-samplebrowser-folder-part.webp\" alt=\"Include part of subfolders\" width=\"282\" height=\"140\" loading=\"lazy\" decoding=\"async\"><figcaption>Include part of subfolders<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-samplebrowser-folder-none\" style=\"--w:286;--pw:65.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-samplebrowser-folder-none.webp\" alt=\"Folder not included\" width=\"286\" height=\"142\" loading=\"lazy\" decoding=\"async\"><figcaption>Folder not included<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>Only samples that have a type are drawn. DRUW reads the type from the name of the sample or of its folder; right-click a sample to set it yourself. If the chosen folders hold no sample of the type a sound asks for, that sound stays as it is.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-samplebrowser-set-type\" style=\"--w:850;--pw:78.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-samplebrowser-set-type.webp\" alt=\"Set the type manually\" width=\"850\" height=\"870\" loading=\"lazy\" decoding=\"async\"><figcaption>Set the type manually<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>A sound that has no sample, or whose sample file is gone, plays nothing: a pad that plays only such sounds is darkened on the playground, and its instrument wears a mark. Drop a sample on the sound to fill it. The dice never empties a sound.<\/p>\n<p>After a roll from samples, the kit is named after its type and a number, for example \u00ab Kick 1 \u00bb, until you save it.<\/p>\n<figure class=\"shot\" data-name=\"druw-instru-unsaved-kit\" style=\"--w:906;--pw:207.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instru-unsaved-kit.webp\" alt=\"Unsaved kit\" width=\"906\" height=\"178\" loading=\"lazy\" decoding=\"async\"><figcaption>Unsaved kit<\/figcaption><\/figure>\n\n<h2 id=\"roll-the-dice--start-from-an-empty-playground\">Start from an empty playground<\/h2>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,43.75fr) minmax(0,56.25fr)\">\n<div class=\"col\">\n<p>Click <strong class=\"ui\">CLEAR MAP<\/strong>, at the right end of the INSTRUMENTS header, to take every instrument off the playground at once. Undo brings them back.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-clear-map\" style=\"--w:792;--pw:181.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-clear-map.webp\" alt=\"Clear map\" width=\"792\" height=\"74\" loading=\"lazy\" decoding=\"async\"><figcaption>Clear map<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"roll-the-dice--roll-a-single-instrument\">Roll a single instrument<\/h2>\n<p>When you like most of your playground but not one instrument, roll only that one:<\/p>\n<ul>\n<li>Click the <strong>dice<\/strong> in the corner of its row, in INSTRUMENTS.<\/li>\n<li>Or open the instrument and use <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> around its name to step through the instruments of the same type, or its dice to pick one at random.<\/li>\n<\/ul>\n<p>What an instrument's dice does follows the dropdown beside the main dice: with <strong>Instruments and sounds<\/strong>, the instrument is replaced by another of its type; with <strong>Sounds only<\/strong>, it stays and only its sounds are drawn again. The <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> around its name always step through the instruments of the same type.<\/p>\n<p>A new instrument takes the old one's place on the playground, with its chokes and its output.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,25fr) minmax(0,75fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instrument-dice\" style=\"--w:266;--pw:60.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-dice.webp\" alt=\"Roll an instrument\" width=\"266\" height=\"212\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll an instrument<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instrument-panel-dice\" style=\"--w:912;--pw:208.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-panel-dice.webp\" alt=\"Roll an instrument\" width=\"912\" height=\"104\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll an instrument<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"roll-the-dice--roll-a-kit\">Roll a kit<\/h2>\n<p>To keep an instrument but hear it with other samples, use its <strong class=\"ui\">KIT<\/strong> line: <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> step through its kits, and its dice draws a new one: a kit built from the samples of the folders you marked in the <strong class=\"ui\">SAMPLES<\/strong> tab or, with no folder marked, one of the instrument's other kits.<\/p>\n<figure class=\"shot\" data-name=\"druw-instrument-panel-kit-roll\" style=\"--w:912;--pw:208.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-panel-kit-roll.webp\" alt=\"Roll a kit\" width=\"912\" height=\"78\" loading=\"lazy\" decoding=\"async\"><figcaption>Roll a kit<\/figcaption><\/figure>\n\n<h2 id=\"roll-the-dice--undo\">Undo<\/h2>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>Rolling replaces instruments completely, including any change you made to them. If you go too far, click <strong>Undo<\/strong> in the header: a whole roll, or a CLEAR MAP, is undone in one step.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-header-undo\" style=\"--w:360;--pw:82.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-undo.webp\" alt=\"Undo button\" width=\"360\" height=\"94\" loading=\"lazy\" decoding=\"async\"><figcaption>Undo button<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"callout\"><b>Tip<\/b><p>when an instrument sounds just right, save it to your library before rolling again.<\/p><\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#play\"><small>Previous<\/small><span>PLAY<\/span><\/a><a class=\"next\" href=\"#build-your-playground\"><small>Next<\/small><span>BUILD YOUR PLAYGROUND<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"build-your-playground\" data-group=\"Using DRUW\" data-title=\"BUILD YOUR PLAYGROUND\" style=\"--accent:#abfa00\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">05<\/span>BUILD YOUR PLAYGROUND<\/h1><p class=\"lede\">Rolling gives you a playground in one click. To go further, build it yourself: add instruments from the library or from your own samples, then place and size every pad the way you like to play.<\/p>\n<p><strong>Unlock the playground first<\/strong>: click the padlock at its top right. Lock it again to play.<\/p>\n<h2 id=\"build-your-playground--the-browser\">The browser<\/h2>\n<p>The browser, on the far left, has two tabs:<\/p>\n<dl><div><dt class=\"ui\">SAMPLES<\/dt><dd>audio files, to make new pads or to change what a pad plays.<\/dd><\/div><div><dt class=\"ui\">INSTRUMENTS<\/dt><dd>ready-to-play instruments, with their pads, gestures and kits.<\/dd><\/div><\/dl>\n<p>Click a tab icon to open the browser; click the chevron to fold it.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-samples\" style=\"--w:600;--pw:27.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-samples.webp\" alt=\"Samples browser\" width=\"600\" height=\"1764\" loading=\"lazy\" decoding=\"async\"><figcaption>Samples browser<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-instruments\" style=\"--w:596;--pw:26.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-instruments.webp\" alt=\"Instruments browser\" width=\"596\" height=\"1770\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments browser<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"build-your-playground--add-an-instrument\">Add an instrument<\/h2>\n<ol>\n<li>Open the <strong class=\"ui\">INSTRUMENTS<\/strong> tab. Choose <strong class=\"ui\">FACTORY<\/strong> for DRUW's instruments, or <strong class=\"ui\">USER<\/strong> for the ones you saved.<\/li>\n<li>Click a type to show only those instruments: <strong class=\"ui\">KICK<\/strong>, <strong class=\"ui\">SNARE<\/strong>, <strong class=\"ui\">HAT<\/strong>, <strong class=\"ui\">CLAP<\/strong>, <strong class=\"ui\">TOM<\/strong>, <strong class=\"ui\">CYMBAL<\/strong>, <strong class=\"ui\">RIDE<\/strong>, <strong class=\"ui\">PERC<\/strong>, <strong class=\"ui\">SHAKER<\/strong>, <strong class=\"ui\">BASS<\/strong>, <strong class=\"ui\">FX<\/strong>\u2026 or <strong class=\"ui\">ALL<\/strong>.<\/li>\n<\/ol>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p><strong class=\"ui\">3.<\/strong> <strong>Audition<\/strong>: click an instrument. It appears in a thumbnail, at the top of the browser: click its pads to hear them, or drag across them. Use <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> to step through the list.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-instruments-playable-thumbnail\" style=\"--w:511;--pw:111.1mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-instruments-playable-thumbnail.webp\" alt=\"Playable thumbnail\" width=\"511\" height=\"368\" loading=\"lazy\" decoding=\"async\"><figcaption>Playable thumbnail<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p><strong class=\"ui\">4.<\/strong> <strong>Add it<\/strong>: drag it onto the playground, where you want it, from the list or by the <strong>grip<\/strong> (six dots) in the corner of the audition area. Or double-click it: it lands in the middle of the part of the playground you're looking at.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,31.25fr) minmax(0,68.75fr)\">\n<div class=\"col\">\n<p>Dropping an instrument on a row in INSTRUMENTS replaces that instrument.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-drop-instrument-on-instrument\" style=\"--w:1976;--pw:142.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-drop-instrument-on-instrument.webp\" alt=\"Replace an instrument by another one you drop on it\" width=\"1600\" height=\"900\" loading=\"lazy\" decoding=\"async\"><figcaption>Replace an instrument by another one you drop on it<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>To delete one of your own instruments from the library, right-click it.<\/p>\n<h2 id=\"build-your-playground--add-your-own-samples\">Add your own samples<\/h2>\n<p>Accepted file types: WAV, AIF\/AIFF, FLAC, OGG, MP3, M4A.<\/p>\n<p>In the <strong class=\"ui\">SAMPLES<\/strong> tab:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>Click <strong class=\"ui\">HOME<\/strong>, at the left of the path, to see <strong class=\"ui\">FACTORY<\/strong>, DRUW's samples, and <strong class=\"ui\">USER<\/strong>, yours. Open a folder to see its samples; the up arrow goes back.<\/li>\n<li>To add your own folders, click the <strong class=\"ui\">+<\/strong> tile (<strong class=\"ui\">ADD OR DROP SOUNDFILES<\/strong>) at the foot of the list, or drop a folder on it. Drop sound files on it and DRUW copies them to a new folder, <strong>Dropped samples<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-browser-samples-tabs\" style=\"--w:520;--pw:119.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-browser-samples-tabs.webp\" alt=\"Samples browser tabs\" width=\"520\" height=\"334\" loading=\"lazy\" decoding=\"async\"><figcaption>Samples browser tabs<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<ul>\n<li>Click a sample to hear it. Use the search field to find one by name.<\/li>\n<li>Right-click a sample to set its type, or to show it in the Finder (Mac) or the Explorer (Windows).<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>Drag samples onto the playground, from the browser or straight from your computer:<\/p>\n<ul>\n<li>with <strong>no instrument selected<\/strong>, they make a <strong>new instrument<\/strong>, with one pad per sample;<\/li>\n<li>with an <strong>instrument selected<\/strong>, they are added to it, one new pad per sample.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-drop-sample-onto-playground\" style=\"--w:862;--pw:182.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-drop-sample-onto-playground.webp\" alt=\"Drop a sample onto playground\" width=\"862\" height=\"379\" loading=\"lazy\" decoding=\"async\"><figcaption>Drop a sample onto playground<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>You can also drop a sample in INSTRUMENTS: below the last row or between two rows to make a new instrument there, at the end of a row to add a pad to that instrument, or onto a gesture to change what it plays.<\/p>\n<figure class=\"shot\" data-name=\"druw-drop-sample-outside-row\" style=\"--w:1457;--pw:333.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-drop-sample-outside-row.webp\" alt=\"Drop a sample outside a row creates an instrument\" width=\"1457\" height=\"261\" loading=\"lazy\" decoding=\"async\"><figcaption>Drop a sample outside a row creates an instrument<\/figcaption><\/figure>\n\n<figure class=\"shot\" data-name=\"druw-drop-sample-in-instrument\" style=\"--w:1453;--pw:332.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-drop-sample-in-instrument.webp\" alt=\"Drop a sample inside a row creates a pad\" width=\"1453\" height=\"202\" loading=\"lazy\" decoding=\"async\"><figcaption>Drop a sample inside a row creates a pad<\/figcaption><\/figure>\n\n<p>Drop up to 16 files at a time.<\/p>\n<h2 id=\"build-your-playground--select-instruments-and-pads\">Select instruments and pads<\/h2>\n<p>On the unlocked playground:<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,100fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Click<\/strong> a pad to select its whole <strong>instrument<\/strong>; click it again to select only that <strong>pad<\/strong>. Double-click a pad to go back to the whole instrument.<\/li>\n<li><strong>Drag on an empty area<\/strong> to draw a selection rectangle: it takes the pads it touches, even from different instruments.<\/li>\n<li>Click an empty area to deselect.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instrument-header\" style=\"--w:209;--pw:47.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-header.webp\" alt=\"Select the header of an instrument\" width=\"209\" height=\"171\" loading=\"lazy\" decoding=\"async\"><figcaption>Select the header of an instrument<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,56.25fr) minmax(0,43.75fr)\">\n<div class=\"col\">\n<p>In INSTRUMENTS:<\/p>\n<ul>\n<li><strong>Click<\/strong> an instrument's header, or an empty area of its row, to select the whole <strong>instrument<\/strong>.<\/li>\n<li><strong>Click<\/strong> one of its pads to select that <strong>pad<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-select-several-pads\" style=\"--w:1024;--pw:142.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-select-several-pads.webp\" alt=\"Select several pads by drawing a selection rectangle\" width=\"1024\" height=\"574\" loading=\"lazy\" decoding=\"async\"><figcaption>Select several pads by drawing a selection rectangle<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"build-your-playground--move-and-resize\">Move and resize<\/h2>\n<dl><div><dt>Move<\/dt><dd>drag the selection, or nudge it with the <strong>arrow keys<\/strong> (<strong>Shift+arrow<\/strong> moves it further).<\/dd><\/div><div><dt>Resize<\/dt><dd>drag a corner of the selection.<\/dd><\/div><div><dt>Grid<\/dt><dd>the grid at the bottom left of the playground makes pads snap to it. Turn it on or off with its icon, and use <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> to make it finer or coarser: its size reads as a percentage of the playground, from 1.25 to 80 (2.5 by default). Hold <strong>Alt<\/strong> while you drag to place freely. Press <strong class=\"ui\">G<\/strong> to snap the selected pads to the grid.<\/dd><\/div><\/dl>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,62.5fr) minmax(0,37.5fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-resize-pads\" style=\"--w:870;--pw:132.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-resize-pads.webp\" alt=\"Resize pads\" width=\"870\" height=\"526\" loading=\"lazy\" decoding=\"async\"><figcaption>Resize pads<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-grid-a\" style=\"--w:324;--pw:74.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-grid-a.webp\" alt=\"Grid options\" width=\"324\" height=\"156\" loading=\"lazy\" decoding=\"async\"><figcaption>Grid options<\/figcaption><\/figure>\n<figure class=\"shot\" data-name=\"druw-grid-b\" style=\"--w:326;--pw:74.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-grid-b.webp\" alt=\"Grid options\" width=\"326\" height=\"142\" loading=\"lazy\" decoding=\"async\"><figcaption>Grid options<\/figcaption><\/figure>\n<figure class=\"shot\" data-name=\"druw-grid-c\" style=\"--w:326;--pw:74.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-grid-c.webp\" alt=\"Grid options\" width=\"326\" height=\"144\" loading=\"lazy\" decoding=\"async\"><figcaption>Grid options<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Pads can overlap: when your finger is on several pads at once, they all play.<\/p>\n<h2 id=\"build-your-playground--organize-your-instruments\">Organize your instruments<\/h2>\n<dl><div><dt>Duplicate<\/dt><dd><strong>Cmd+D<\/strong> (Mac) \/ <strong>Ctrl+D<\/strong> (Windows), or right-click \u203a <strong>Duplicate<\/strong>.<\/dd><\/div><div><dt>Delete<\/dt><dd><strong>Delete<\/strong> or <strong>Backspace<\/strong>, or right-click \u203a <strong>Delete<\/strong>.<\/dd><\/div><div><dt>Group into one instrument<\/dt><dd>select pads of several instruments, then click <strong class=\"ui\">+ GROUP INTO INSTRUMENT<\/strong> in the EDIT tab.<\/dd><\/div><\/dl>\n<figure class=\"shot\" data-name=\"druw-group-pads\" style=\"--w:2000;--pw:344.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-group-pads.webp\" alt=\"Group into one instrument\" width=\"1600\" height=\"371\" loading=\"lazy\" decoding=\"async\"><figcaption>Group into one instrument<\/figcaption><\/figure>\n\n<dl><div><dt>Stacking<\/dt><dd>when instruments overlap, bring one to the front or send it to the back from its <strong class=\"ui\">\u22ef<\/strong> menu, or drag its row up or down in INSTRUMENTS.<\/dd><\/div><div><dt>Hide<\/dt><dd>click the eye of an instrument. A hidden instrument doesn't show or play on your devices.<\/dd><\/div><\/dl>\n<h2 id=\"build-your-playground--navigate-the-playground\">Navigate the playground<\/h2>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,68.75fr) minmax(0,31.25fr)\">\n<div class=\"col\">\n<dl><div><dt>Zoom<\/dt><dd>use the mouse wheel, or the <strong class=\"ui\">\u2212<\/strong> and <strong class=\"ui\">+<\/strong> buttons at the bottom right of the playground. Pinch on a trackpad.<\/dd><\/div><div><dt>See the whole playground<\/dt><dd>click the zoom percentage.<\/dd><\/div><div><dt>Pan<\/dt><dd>hold <strong>Space<\/strong> and drag, drag with the middle mouse button, scroll with two fingers on a trackpad, or drag the grip next to the zoom.<\/dd><\/div><div><dt>Full size<\/dt><dd>the button at the top right hides everything but the playground; click it again to come back.<\/dd><\/div><\/dl>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-playground-zoom-settings\" style=\"--w:348;--pw:79.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-playground-zoom-settings.webp\" alt=\"Playground zoom settings\" width=\"348\" height=\"88\" loading=\"lazy\" decoding=\"async\"><figcaption>Playground zoom settings<\/figcaption><\/figure>\n<\/div>\n<\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#roll-the-dice\"><small>Previous<\/small><span>ROLL THE DICE<\/span><\/a><a class=\"next\" href=\"#shape-an-instrument\"><small>Next<\/small><span>SHAPE AN INSTRUMENT<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"shape-an-instrument\" data-group=\"Using DRUW\" data-title=\"SHAPE AN INSTRUMENT\" style=\"--accent:#0fff9a\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">06<\/span>SHAPE AN INSTRUMENT<\/h1><h2 id=\"shape-an-instrument--instruments\">INSTRUMENTS<\/h2>\n<figure class=\"shot\" data-name=\"druw-instruments-panel\" style=\"--w:2266;--pw:217.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-panel.webp\" alt=\"Instruments panel\" width=\"1600\" height=\"589\" loading=\"lazy\" decoding=\"async\"><figcaption>Instruments panel<\/figcaption><\/figure>\n\n<p>Below the playground, <strong class=\"ui\">INSTRUMENTS<\/strong> shows one row per instrument. On the left of each row, a level meter and the instrument's <strong>chip<\/strong>: its name and a small preview of its pads, with its dice in the corner. Then come its pads, each with its gestures.<\/p>\n<ul>\n<li>Click a chip to open the instrument in the EDIT tab. Double-click it to open or fold all its pads.<\/li>\n<li>Drag a row up or down to change the stacking order. Hold <strong>Alt<\/strong> to drag a copy.<\/li>\n<li>Right-click a chip to duplicate or delete the instrument, or to change its stacking order.<\/li>\n<li><strong class=\"ui\">FOLD ALL<\/strong> folds every pad, to get an overview.<\/li>\n<\/ul>\n<h2 id=\"shape-an-instrument--the-edit-tab\">The EDIT tab<\/h2>\n<p>The top of the EDIT tab holds the instrument's settings:<\/p>\n<figure class=\"shot\" data-name=\"druw-instrument-settings\" style=\"--w:924;--pw:120.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-settings.webp\" alt=\"Instrument\u2019s settings\" width=\"924\" height=\"612\" loading=\"lazy\" decoding=\"async\"><figcaption>Instrument\u2019s settings<\/figcaption><\/figure>\n\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong>Chip<\/strong>: click it to choose the color of the instrument and its pads.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instrument-color\" style=\"--w:84;--pw:19.2mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-color.webp\" alt=\"Click to change instrument\u2019s color\" width=\"84\" height=\"74\" loading=\"lazy\" decoding=\"async\"><figcaption>Click to change instrument\u2019s color<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<ul>\n<li><strong>Name<\/strong>: type to rename it. <strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong> around it swap the instrument for the previous or next one of the same type.<\/li>\n<li><strong>Type<\/strong>: KICK, HAT\u2026 Click it to change the type, or to create your own.<\/li>\n<li><strong>Dice<\/strong>: swap the instrument for a random one of the same type.<\/li>\n<li><strong>Save<\/strong>: save the instrument to your library. A white dot on the icon shows that you have changes to save.<\/li>\n<li><strong class=\"ui\">\u22ef<\/strong>: stacking on the playground (<strong>Bring to front<\/strong>, <strong>Bring forward<\/strong>, <strong>Send backward<\/strong>, <strong>Send to back<\/strong>) and <strong>Delete this instrument<\/strong>.<\/li>\n<li><strong class=\"ui\">KIT<\/strong>: the instrument's kits (see below).<\/li>\n<li><strong class=\"ui\">PITCH<\/strong>, <strong class=\"ui\">PAN<\/strong>, <strong class=\"ui\">VOLUME<\/strong>: for the whole instrument, on top of each sample's own settings. Drag them up or down; double-click to reset.<\/li>\n<li><strong>Eye<\/strong>: show or hide the instrument on your devices. <strong class=\"ui\">M<\/strong> mutes it, <strong class=\"ui\">S<\/strong> solos it.<\/li>\n<li><strong class=\"ui\">QUANTIZE<\/strong>: \u00ab playground \u00bb by default (the playground's value), or its own value.<\/li>\n<li><strong class=\"ui\">OUT<\/strong>: the DRUW output it plays on: <strong class=\"ui\">MAIN 1\/2<\/strong>, or <strong class=\"ui\">3\/4<\/strong> to <strong class=\"ui\">9\/10<\/strong>. Use separate outputs to mix your instruments on separate channels in your DAW.<\/li>\n<\/ul>\n<h2 id=\"shape-an-instrument--kits\">Kits<\/h2>\n<figure class=\"shot\" data-name=\"druw-instrument-panel-kit-roll\" style=\"--w:912;--pw:208.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-panel-kit-roll.webp\" alt=\"Kit\u2019s options\" width=\"912\" height=\"78\" loading=\"lazy\" decoding=\"async\"><figcaption>Kit\u2019s options<\/figcaption><\/figure>\n\n<p>An instrument can hold several <strong>kits<\/strong>: each one is a set of samples for its pads. Switch kit, and the same pads play other samples, with the same settings.<\/p>\n<p>The <strong class=\"ui\">KIT<\/strong> line shows the current kit, with its number (for example 2\/5):<\/p>\n<ul>\n<li><strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong>: the previous or next kit.<\/li>\n<li><strong>Dice<\/strong>: a kit at random.<\/li>\n<li><strong>Save<\/strong>: keep what the pads play now as a kit. Type a new name to add a kit, or keep the name to update it. An asterisk (*) shows that the current kit has changed.<\/li>\n<li><strong class=\"ui\">\u22ef<\/strong>: every kit of the instrument, sorted by tag, with <strong>Rename<\/strong>, <strong>Tags<\/strong> and <strong>Delete<\/strong>. Tags (VINTAGE, PUNCHY, LO-FI\u2026) help you find the kit you want.<\/li>\n<\/ul>\n<p>Kits are saved with the instrument.<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#build-your-playground\"><small>Previous<\/small><span>BUILD YOUR PLAYGROUND<\/span><\/a><a class=\"next\" href=\"#pads-and-gestures\"><small>Next<\/small><span>PADS AND GESTURES<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"pads-and-gestures\" data-group=\"Using DRUW\" data-title=\"PADS AND GESTURES\" style=\"--accent:#00fce6\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">07<\/span>PADS AND GESTURES<\/h1><h2 id=\"pads-and-gestures--pads\">Pads<\/h2>\n<p>In INSTRUMENTS, each pad of an instrument is shown in its row, with its gestures.<\/p>\n<figure class=\"shot\" data-name=\"druw-instrument-row-pad-gestures\" style=\"--w:1450;--pw:331.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-row-pad-gestures.webp\" alt=\"A pad with gestures\" width=\"1450\" height=\"204\" loading=\"lazy\" decoding=\"async\"><figcaption>A pad with gestures<\/figcaption><\/figure>\n\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,56.25fr) minmax(0,43.75fr)\">\n<div class=\"col\">\n<ul>\n<li>Click a pad to select it. Press it to hear it.<\/li>\n<li>Click the arrow of a folded pad to open it.<\/li>\n<li>Drag a pad along the row to reorder the pads. Hold <strong>Alt<\/strong> to drag a copy. Drop it on another instrument to move it there.<\/li>\n<li>Right-click a pad to duplicate or delete it.<\/li>\n<li>Click the dashed <strong class=\"ui\">+<\/strong> at the end of the row to add a pad. You can also drop samples on it: one new pad per sample.<\/li>\n<\/ul>\n<p>To name a pad, double-click \u00ab PAD \u00bb at the top of its sample editor.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-pad-sample-editor-a\" style=\"--w:890;--pw:91.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-sample-editor-a.webp\" alt=\"Pad\u2019s sample editor\" width=\"890\" height=\"778\" loading=\"lazy\" decoding=\"async\"><figcaption>Pad\u2019s sample editor<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"pads-and-gestures--gestures\">Gestures<\/h2>\n<p>Each pad shows the gestures it answers to, grouped in four families:<\/p>\n<ul>\n<li><strong class=\"ui\">TOUCH<\/strong>: put your finger down on the pad.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-pad-gesture-touch\" style=\"--w:190;--pw:43.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-gesture-touch.webp\" alt=\"Touch\" width=\"190\" height=\"136\" loading=\"lazy\" decoding=\"async\"><figcaption>Touch<\/figcaption><\/figure>\n\n<ul>\n<li>\n<p><strong class=\"ui\">SLIDE<\/strong>: enter the pad across its <strong>left<\/strong>, <strong>right<\/strong>, <strong>top<\/strong> or <strong>bottom<\/strong> edge.<\/p>\n<p><figure class=\"shot\" data-name=\"druw-pad-gesture-slide\" style=\"--w:688;--pw:157.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-gesture-slide.webp\" alt=\"Slide\" width=\"688\" height=\"138\" loading=\"lazy\" decoding=\"async\"><figcaption>Slide<\/figcaption><\/figure><\/p>\n<\/li>\n<li>\n<p><strong class=\"ui\">SHAKE<\/strong>: move your finger back and forth on the pad: <strong>left<\/strong>, <strong>right<\/strong>, <strong>up<\/strong> or <strong>down<\/strong>.<\/p>\n<p><figure class=\"shot\" data-name=\"druw-pad-gesture-shake\" style=\"--w:682;--pw:156.1mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-gesture-shake.webp\" alt=\"Shake\" width=\"682\" height=\"128\" loading=\"lazy\" decoding=\"async\"><figcaption>Shake<\/figcaption><\/figure><\/p>\n<\/li>\n<li>\n<p><strong class=\"ui\">MAP<\/strong>: the position of your finger on the pad, along <strong class=\"ui\">X<\/strong> (left to right) and <strong class=\"ui\">Y<\/strong> (bottom to top), turns the instrument's macros. X and Y come with a macro: a pad shows them once the instrument has a macro for them to turn.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-pad-gesture-map\" style=\"--w:194;--pw:44.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-pad-gesture-map.webp\" alt=\"Map\" width=\"194\" height=\"136\" loading=\"lazy\" decoding=\"async\"><figcaption>Map<\/figcaption><\/figure>\n\n<p>Each gesture has its own slot, with the waveform of the sample it plays.<\/p>\n<ul>\n<li><strong>Click<\/strong> a slot to edit its sample in the EDIT tab. Press it to hear it.<\/li>\n<li><strong>Drag a sample<\/strong> from the browser onto a slot to change what it plays (<strong class=\"ui\">REPLACE<\/strong>), or just below it to add a second sample that plays with it (<strong class=\"ui\">+ LAYER<\/strong>). A gesture can play up to two samples.<\/li>\n<li><strong>Drag<\/strong> a slot onto another to swap them. Hold <strong>Alt<\/strong> to copy.<\/li>\n<li><strong>Drop a sample on a pad<\/strong>: on its <strong class=\"ui\">+<\/strong> in INSTRUMENTS or on the pad on the playground, let go of the sample there. A small copy of the pad opens, showing TOUCH, SLIDE and SHAKE with two rows each, <strong class=\"ui\">L1<\/strong> and <strong class=\"ui\">L2<\/strong>; the dashed cases are gestures the pad doesn't have yet. Click one to put the sample there: the gesture is added if needed, and the pad opens on it. A slot dragged onto a pad's <strong class=\"ui\">+<\/strong> opens the same choice, and moves the slot there; hold <strong>Alt<\/strong> as you drop it to copy it instead.<\/li>\n<li><strong>Drop several samples on a pad<\/strong>, and click a SLIDE or SHAKE slot: they fill its row, one per direction, starting from that slot. Directions the pad doesn't have yet are added. On TOUCH, they stack as layers.<\/li>\n<li><strong>Right-click<\/strong> a slot to remove its sample or the gesture itself.<\/li>\n<li>Press <strong>Delete<\/strong> or <strong>Backspace<\/strong> once to empty the selected slot, and again to remove it.<\/li>\n<\/ul>\n<figure class=\"demo\" data-name=\"gesture-pad\"><div class=\"demo-frame\"><iframe title=\"Try the gestures on a pad: tap, slide in, shake, and move your finger to turn macros.\" loading=\"lazy\" allow=\"autoplay\" data-demo=\"gesture-pad\"><\/iframe><\/div><figcaption>Try the gestures on a pad: tap, slide in, shake, and move your finger to turn macros.<\/figcaption><\/figure>\n<h2 id=\"pads-and-gestures--add-a-gesture\">Add a gesture<\/h2>\n<p>Click the <strong class=\"ui\">+<\/strong> after a pad's gestures: a small copy of the pad opens, showing every gesture it doesn't have yet. Click one to switch it on, empty, or drop a sample on it to give it a sound.<\/p>\n<figure class=\"shot\" data-name=\"druw-instruments-add-gesture\" style=\"--w:1328;--pw:117.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-add-gesture.webp\" alt=\"Add a gesture\" width=\"1328\" height=\"908\" loading=\"lazy\" decoding=\"async\"><figcaption>Add a gesture<\/figcaption><\/figure>\n\n<p><strong>Edges and touch<\/strong>: the link icon of an edge slot sets whether sliding in across that edge also plays the pad's Touch, or only the edge.<\/p>\n<div class=\"callout\"><b>Tip<\/b><p>give two edges of the same pad two different samples, and the direction of your slide chooses the sound.<\/p><\/div><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#shape-an-instrument\"><small>Previous<\/small><span>SHAPE AN INSTRUMENT<\/span><\/a><a class=\"next\" href=\"#shape-a-sound\"><small>Next<\/small><span>SHAPE A SOUND<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"shape-a-sound\" data-group=\"Using DRUW\" data-title=\"SHAPE A SOUND\" style=\"--accent:#00dffe\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">08<\/span>SHAPE A SOUND<\/h1><div class=\"cols\" style=\"grid-template-columns:minmax(0,43.75fr) minmax(0,56.25fr)\">\n<div class=\"col\">\n<p>Click a gesture slot to open its sample in the <strong>sample editor<\/strong>, in the EDIT tab. Drag the grip between the sample editor and <strong class=\"ui\">MACROS<\/strong> to give more room to one or the other; double-click it to go back to the automatic split.<\/p>\n<p>Its top shows the pad and the gesture, for example \u00ab PAD 3 [ TOUCH ] \u00bb, with the pad's <strong>Quantize<\/strong> and a folder button to pick another audio file.<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-sample-editor-and-macros\" style=\"--w:895;--pw:58.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-and-macros.webp\" alt=\"Sample editor and MACROS\" width=\"895\" height=\"1221\" loading=\"lazy\" decoding=\"async\"><figcaption>Sample editor and MACROS<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"shape-a-sound--the-sample\">The sample<\/h2>\n<figure class=\"shot\" data-name=\"druw-sample-editor-sample\" style=\"--w:880;--pw:183.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-sample.webp\" alt=\"Sample editor\" width=\"880\" height=\"384\" loading=\"lazy\" decoding=\"async\"><figcaption>Sample editor<\/figcaption><\/figure>\n\n<ul>\n<li><strong>Name<\/strong>: double-click to rename the sound.<\/li>\n<li><strong class=\"ui\">PITCH<\/strong> and <strong class=\"ui\">GAIN<\/strong>: trim the sample's pitch (in semitones) and level. Drag up or down; double-click to reset.<\/li>\n<li><strong class=\"ui\">CROP<\/strong>: cut the sample down to its start and end. DRUW makes a new file and leaves the original alone.<\/li>\n<li><strong>Waveform<\/strong>: drag its flags to choose where the sample starts and ends. Use the mouse wheel to zoom; double-click to fit the flags, and again to see the whole file. Right-click for more.<\/li>\n<li><strong class=\"ui\">START<\/strong>: where the sample starts.<\/li>\n<li>Drop an audio file on the sample editor to replace the sample.<\/li>\n<\/ul>\n<h2 id=\"shape-a-sound--amp-pitch-and-filter\">AMP, PITCH and FILTER<\/h2>\n<p>Three modules shape the sound, each on its own tab: AMP, PITCH and FILTER. Click a tab to open it.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong class=\"ui\">AMP<\/strong>: <strong class=\"ui\">LEVEL<\/strong> and <strong class=\"ui\">PAN<\/strong> of the sound, and its volume envelope.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-sample-editor-amp\" style=\"--w:878;--pw:140.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-amp.webp\" alt=\"AMP\" width=\"878\" height=\"500\" loading=\"lazy\" decoding=\"async\"><figcaption>AMP<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong class=\"ui\">PITCH<\/strong>: transpose the sound (<strong class=\"ui\">TRANSP<\/strong>), and how much its own envelope bends the pitch (<strong class=\"ui\">ENV<\/strong>).<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-sample-editor-pitch\" style=\"--w:872;--pw:140.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-pitch.webp\" alt=\"PITCH\" width=\"872\" height=\"496\" loading=\"lazy\" decoding=\"async\"><figcaption>PITCH<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li><strong class=\"ui\">FILTER<\/strong>: turn the filter on with <strong>Enable filter<\/strong>, at the top right of its panel (the dot on the FILTER tab is filled while it is on). Choose <strong class=\"ui\">LP<\/strong> (low-pass), <strong class=\"ui\">HP<\/strong> (high-pass) or <strong class=\"ui\">BP<\/strong> (band-pass), and set its <strong class=\"ui\">CUTOFF<\/strong>, its resonance (<strong class=\"ui\">RESO<\/strong>) and how much its envelope moves the cutoff (<strong class=\"ui\">ENV<\/strong>).<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-sample-editor-filter\" style=\"--w:876;--pw:108.1mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-filter.webp\" alt=\"FILTER\" width=\"876\" height=\"648\" loading=\"lazy\" decoding=\"async\"><figcaption>FILTER<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Each module has its envelope, with a graph and five knobs:<\/p>\n<dl><div><dt class=\"ui\">ATTACK<\/dt><dd>how long the envelope takes to rise to its maximum.<\/dd><\/div><div><dt class=\"ui\">DECAY<\/dt><dd>how long it takes to fall from the maximum to the sustain level.<\/dd><\/div><div><dt class=\"ui\">HOLD<\/dt><dd>how long the sustain stage lasts.<\/dd><\/div><div><dt class=\"ui\">SUSTAIN<\/dt><dd>the level of the sustain stage.<\/dd><\/div><div><dt class=\"ui\">RELEASE<\/dt><dd>how long it takes to fall from the sustain stage to the end.<\/dd><\/div><\/dl>\n<p>On the AMP tab, the envelope always rises to 100 %; on PITCH and FILTER, its <strong class=\"ui\">ENV<\/strong> knob sets how far it moves the pitch or the cutoff.<\/p>\n<p>Drag the points of the graph to change the times and the sustain; drag a segment to curve it, double-click it to straighten it.<\/p>\n<p><strong>One-shot or gated<\/strong>: click the word <strong class=\"ui\">HOLD<\/strong>. When it's lit, the sustain stage lasts the HOLD time, and the whole envelope plays at each hit (one-shot). When it's off, the sustain stage lasts as long as your finger stays on the pad (gated).<\/p>\n<p><strong>Knobs<\/strong>: drag to turn, double-click to reset, click the value to type it. Right-click a knob \u203a <strong>Copy value to<\/strong> to give the same value to the other gestures of the pad, to the whole pad, or to the whole instrument.<\/p>\n<h2 id=\"shape-a-sound--macros\">Macros<\/h2>\n<p>Each instrument has <strong>8 macros<\/strong>, shown below the sample editor. A macro moves several sound settings at once, by the amount you choose for each one.<\/p>\n<figure class=\"shot\" data-name=\"druw-sample-editor-macros\" style=\"--w:912;--pw:162.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-sample-editor-macros.webp\" alt=\"MACROS\" width=\"912\" height=\"448\" loading=\"lazy\" decoding=\"async\"><figcaption>MACROS<\/figcaption><\/figure>\n\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>To link a macro to a knob:<\/p>\n<ol>\n<li>Click the macro's <strong class=\"ui\">LINK<\/strong> icon.<\/li>\n<li>Drag any knob of the sample editor: you don't move the knob, you set <strong>how far the macro moves it<\/strong>, up or down.<\/li>\n<li>Repeat on other knobs, other gestures or other pads. Click LINK again when you're done.<\/li>\n<\/ol>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-edit-macro\" style=\"--w:882;--pw:91.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-edit-macro.webp\" alt=\"Edit a macro\" width=\"882\" height=\"772\" loading=\"lazy\" decoding=\"async\"><figcaption>Edit a macro<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<p>Now turn the macro: every linked setting moves together. A knob turned by macros shows one colored arc per macro. A setting can be turned by up to 4 macros.<\/p>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<ul>\n<li>Click a macro's name to rename it.<\/li>\n<li>Click the list icon to see every macro and what it moves. There, change each amount, or click <strong class=\"ui\">\u00d7<\/strong> to unlink a setting.<\/li>\n<li>Right-click a linked knob to copy its macros to the other gestures, the pad or the instrument, or to remove them.<\/li>\n<\/ul>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-edit-macro-amount\" style=\"--w:910;--pw:110.5mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-edit-macro-amount.webp\" alt=\"Edit a macro\u2019s amount\" width=\"910\" height=\"659\" loading=\"lazy\" decoding=\"async\"><figcaption>Edit a macro\u2019s amount<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<h2 id=\"shape-a-sound--play-the-macros-with-your-finger\">Play the macros with your finger<\/h2>\n<p>On a pad, the <strong class=\"ui\">X<\/strong> and <strong class=\"ui\">Y<\/strong> slots show the macros 1 to 8, dashed until a macro is on them. Click a macro's number to let that axis turn it; click it again to stop. An axis exists as long as it turns a macro. You can also drag a macro's number from <strong class=\"ui\">MACROS<\/strong> onto a slot. A hatched number is already turned by the pad's other axis.<\/p>\n<figure class=\"shot\" data-name=\"druw-xymapping-macro\" style=\"--w:874;--pw:200.1mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-xymapping-macro.webp\" alt=\"XY mapping\" width=\"874\" height=\"200\" loading=\"lazy\" decoding=\"async\"><figcaption>XY mapping<\/figcaption><\/figure>\n\n<p>For example, link macro 1 to the filter's cutoff, then let the Y axis of a pad turn it: the higher you touch the pad, the brighter it sounds.<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#pads-and-gestures\"><small>Previous<\/small><span>PADS AND GESTURES<\/span><\/a><a class=\"next\" href=\"#chokes\"><small>Next<\/small><span>CHOKES<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"chokes\" data-group=\"Using DRUW\" data-title=\"CHOKES\" style=\"--accent:#00acfc\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">09<\/span>CHOKES<\/h1><p class=\"lede\">A <strong>choke<\/strong> stops one sound when another starts, like an open hi-hat closed by the next hit.<\/p>\n<h2 id=\"chokes--automatic-chokes\">Automatic chokes<\/h2>\n<p>Inside a pad, DRUW chokes for you: a new touch stops the pad's previous touch, the shakes of a pad stop each other, and so do its edges.<\/p>\n<h2 id=\"chokes--set-your-own-chokes\">Set your own chokes<\/h2>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<p>Set the <strong class=\"ui\">GESTURE | CHOKES<\/strong> switch in the INSTRUMENTS header to <strong class=\"ui\">CHOKES<\/strong>. The rows now show the chokes instead of the gestures:<\/p>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-gesture-chokes-switch\" style=\"--w:278;--pw:63.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-gesture-chokes-switch.webp\" alt=\"Select chokes\" width=\"278\" height=\"68\" loading=\"lazy\" decoding=\"async\"><figcaption>Select chokes<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<figure class=\"shot\" data-name=\"druw-instruments-chokes\" style=\"--w:1932;--pw:181.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-chokes.webp\" alt=\"Chokes view\" width=\"1600\" height=\"707\" loading=\"lazy\" decoding=\"async\"><figcaption>Chokes view<\/figcaption><\/figure>\n\n<ul>\n<li><strong>Between instruments<\/strong>: each instrument shows one numbered tile per instrument of the playground; select an instrument\u2019s header to see each row's number, also shown on its pads on the playground. Click a number to turn its choke on or off: a lit number is an instrument this one chokes. A tile blinks each time its instrument plays. Click the arrow above an instrument's dice to show or fold its chokes. Right-click for quick choices: <strong>Cuts all<\/strong> <strong>the<\/strong> [instruments of its type], <strong>All<\/strong> [instruments of its type] <strong>cut it<\/strong>, [instruments of its type] <strong>one at a time<\/strong>, <strong>Cuts all the others<\/strong>, <strong>Cut by all the others<\/strong>, <strong>Clear chokes<\/strong>.<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,37.5fr) minmax(0,62.5fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instruments-chokes-header\" style=\"--w:360;--pw:82.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-chokes-header.webp\" alt=\"Instrument\u2019s header deployed showing chokes\" width=\"360\" height=\"170\" loading=\"lazy\" decoding=\"async\"><figcaption>Instrument\u2019s header deployed showing chokes<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-instruments-playground-numbers\" style=\"--w:1034;--pw:133.9mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-playground-numbers.webp\" alt=\"Instrument\u2019s numbers on playground\" width=\"1034\" height=\"618\" loading=\"lazy\" decoding=\"async\"><figcaption>Instrument\u2019s numbers on playground<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p><strong>Between pads<\/strong>: each pad shows one numbered tile per pad of its instrument; select a pad to see the pads' numbers on the row and on the playground. Click a number to turn its choke on or off: a lit number is a pad this one chokes. Right-click for quick choices: <strong>Chokes the others<\/strong>, <strong>Choked by the others<\/strong>, <strong>One at a time<\/strong>, <strong>Clear chokes<\/strong>.<\/p>\n<p><figure class=\"shot\" data-name=\"druw-instruments-pads-numbers\" style=\"--w:760;--pw:174.0mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instruments-pads-numbers.webp\" alt=\"Pads numbers\" width=\"760\" height=\"172\" loading=\"lazy\" decoding=\"async\"><figcaption>Pads numbers<\/figcaption><\/figure><\/p>\n<\/li>\n<\/ul>\n<p>A choke goes one way: for two sounds to stop each other, set it both ways.<\/p>\n<p>The switch only changes what you see: your chokes keep working when you go back to <strong class=\"ui\">GESTURE<\/strong>.<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#shape-a-sound\"><small>Previous<\/small><span>SHAPE A SOUND<\/span><\/a><a class=\"next\" href=\"#several-devices-several-druws-several-people\"><small>Next<\/small><span>SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"several-devices-several-druws-several-people\" data-group=\"Using DRUW\" data-title=\"SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE\" style=\"--accent:#4f79ff\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">10<\/span>SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE<\/h1><p class=\"lede\">One playground can be played from several devices at once, and shared by several DRUWs in your DAW project: for example drums on one track and a bass on another, all played from the same surface.<\/p>\n<h2 id=\"several-devices-several-druws-several-people--several-devices\">Several devices<\/h2>\n<p>Several phones and tablets can join DRUW: each one connects the same way, and appears in DEVICES with its own frame.<\/p>\n<ul>\n<li>Give each device <strong>its own part of the playground<\/strong>, for example to split a large playground across two tablets placed side by side, or to give each player their own instruments.<\/li>\n<li>Frames can <strong>overlap<\/strong>: two devices can share the same instruments, for example to play them four-handed.<\/li>\n<\/ul>\n<figure class=\"shot\" data-name=\"druw-devices-frames\" style=\"--w:1582;--pw:180.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-devices-frames.webp\" alt=\"Two devices sharing the same pads\" width=\"1582\" height=\"700\" loading=\"lazy\" decoding=\"async\"><figcaption>Two devices sharing the same pads<\/figcaption><\/figure>\n\n<h2 id=\"several-devices-several-druws-several-people--several-druws\">Several DRUWs<\/h2>\n<p>Load DRUW on as many tracks of your DAW as you like. Every DRUW in the same room shares <strong>the same playground<\/strong>: the instruments of every DRUW appear on it, and on your devices, side by side.<\/p>\n<ul>\n<li>Each DRUW plays <strong>on its own track<\/strong>: its sound goes to that track, so you can mix and process each part separately.<\/li>\n<li>\n<p>Each DRUW has its <strong>own MIDI channel<\/strong>. As soon as a second DRUW joins, tabs labelled <strong class=\"ui\">CH 1<\/strong>, <strong class=\"ui\">CH 2<\/strong>\u2026 appear on the top-left of the playground. Hover a tab to see its DAW track. A tab blinks when its DRUW plays.<\/p>\n<p><figure class=\"shot\" data-name=\"druw-play-multiple-druw\" style=\"--w:1528;--pw:140.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-play-multiple-druw.webp\" alt=\"Play multiple DRUW at the same place\" width=\"1528\" height=\"868\" loading=\"lazy\" decoding=\"async\"><figcaption>Play multiple DRUW at the same place<\/figcaption><\/figure><\/p>\n<\/li>\n<li>\n<p>In a DRUW window, you edit only that DRUW's instruments. The others are shown hatched. Click another DRUW's tab, or click <strong class=\"ui\">EDIT IN CH N WINDOW<\/strong>, to open its window.<\/p>\n<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-channel1\" style=\"--w:1982;--pw:176.6mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-channel1.webp\" alt=\"Pads of the DRUW on CH 1\" width=\"1600\" height=\"725\" loading=\"lazy\" decoding=\"async\"><figcaption>Pads of the DRUW on CH 1<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-channel2\" style=\"--w:1982;--pw:177.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-channel2.webp\" alt=\"Pads of the DRUW on CH 2\" width=\"1600\" height=\"720\" loading=\"lazy\" decoding=\"async\"><figcaption>Pads of the DRUW on CH 2<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<ul>\n<li><strong>Recording<\/strong>: with DAW REC, set each track's MIDI input to BEATSURFING on the channel of its own DRUW.<\/li>\n<\/ul>\n<h2 id=\"several-devices-several-druws-several-people--several-people-rooms\">Several people: rooms<\/h2>\n<p>Everything on the same network joins one session: every DRUW, every Performer app and every BEATSURFING bridge. When you work alone, that is what you want. But when several people use DRUW on the same Wi-Fi network (two producers in one studio, a class, a workshop), they all end up on one playground. Each person's instruments appear on the other people's screens and devices, and their phones play each other's pads.<\/p>\n<p><strong>Rooms<\/strong> keep them apart. A room is a separate session, with its own playground, its own devices and its own DRUWs. There are 16 rooms, a bit like MIDI channels. DRUWs and devices only see each other when they are in the <strong>same room<\/strong>.<\/p>\n<p><em>For example: two producers share a studio. The first one stays in Room 1 with their DRUWs and their tablet. The second one moves their DRUW and their phone to Room 2. Each one now has their own playground, and neither hears the other.<\/em><\/p>\n<h3 id=\"several-devices-several-druws-several-people--turn-rooms-on\">Turn rooms on<\/h3>\n<p>Rooms are <strong>off<\/strong> by default. To use them, turn on <strong>Enable session rooms<\/strong> in <strong class=\"ui\">SETTINGS \u203a SESSION<\/strong>. The setting applies to every DRUW on this computer. Turn it off, and everyone plays in Room 1 again.<\/p>\n<h3 id=\"several-devices-several-druws-several-people--change-rooms\">Change rooms<\/h3>\n<ul>\n<li><strong>In DRUW<\/strong>: click the <strong class=\"ui\">ROOMS<\/strong> tab at the top of the right column. All 16 rooms appear, showing who is in each one and a preview of its pads. Empty rooms read \u00ab EMPTY \u00bb. Click a room to move this DRUW into it. <strong>The DRUW takes its instruments with it<\/strong>: they join that room's playground.<\/li>\n<\/ul>\n<div class=\"cols\" style=\"grid-template-columns:minmax(0,50fr) minmax(0,50fr)\">\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-settings-rooms\" style=\"--w:1420;--pw:142.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-settings-rooms.webp\" alt=\"Enable session rooms in Settings\" width=\"1420\" height=\"796\" loading=\"lazy\" decoding=\"async\"><figcaption>Enable session rooms in Settings<\/figcaption><\/figure>\n<\/div>\n<div class=\"col\">\n<figure class=\"shot\" data-name=\"druw-rooms\" style=\"--w:908;--pw:84.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-rooms.webp\" alt=\"Rooms\" width=\"908\" height=\"858\" loading=\"lazy\" decoding=\"async\"><figcaption>Rooms<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<dl><div><dt>In the Performer app<\/dt><dd>move DRUW to its room first. The app's settings page then shows a <strong class=\"ui\">ROOM<\/strong> section: tap the same room. The device then shows that room's playground. (While everyone is in Room 1, the app shows no rooms.)<\/dd><\/div><div><dt>In the BEATSURFING bridge<\/dt><dd>choose the room from its menu or its window.<\/dd><\/div><\/dl>\n<h3 id=\"several-devices-several-druws-several-people--good-to-know\">Good to know<\/h3>\n<ul>\n<li><strong>Move everything that plays together.<\/strong> A DRUW, its devices and, if you record with DAW REC, the BEATSURFING bridge must all be in the same room.<\/li>\n<li>Each computer has one BEATSURFING bridge, and it is in one room at a time. On that computer, <strong class=\"ui\">DAW REC<\/strong> only works for the DRUWs in the bridge's room.<\/li>\n<li>A room holds up to 16 DRUWs, one per MIDI channel.<\/li>\n<li>Each DRUW saves its room with your DAW project. A new DRUW starts in the last room you picked on this computer.<\/li>\n<\/ul><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#chokes\"><small>Previous<\/small><span>CHOKES<\/span><\/a><a class=\"next\" href=\"#save-your-work\"><small>Next<\/small><span>SAVE YOUR WORK<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"save-your-work\" data-group=\"Using DRUW\" data-title=\"SAVE YOUR WORK\" style=\"--accent:#955bff\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">11<\/span>SAVE YOUR WORK<\/h1><p class=\"lede\"><strong class=\"ui\">DRUW<\/strong> saves your work at three levels: your DAW project keeps everything as it is, presets keep all the instruments of one DRUW, and instruments keep one instrument layout, with its kits, in your library.<\/p>\n<h2 id=\"save-your-work--your-daw-project\">Your DAW project<\/h2>\n<p>You don't need to do anything: when you save your DAW project, DRUW saves its whole state with it, including your own samples. When you reopen the project, even on another computer, you find your playground, your instruments and all their settings as you left them.<\/p>\n<p>Mute is saved with the project; solo only lasts for the current session.<\/p>\n<h2 id=\"save-your-work--presets\">Presets<\/h2>\n<p>A preset holds all the instruments of one DRUW, with their pads, kits and settings. The header shows the current preset; an asterisk (*) shows that you changed it.<\/p>\n<figure class=\"shot\" data-name=\"druw-header-middle\" style=\"--w:606;--pw:138.7mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-header-middle.webp\" alt=\"Presets\" width=\"606\" height=\"112\" loading=\"lazy\" decoding=\"async\"><figcaption>Presets<\/figcaption><\/figure>\n\n<ul>\n<li><strong class=\"ui\">&lt;<\/strong> and <strong class=\"ui\">&gt;<\/strong>: load the previous or next preset.<\/li>\n<li><strong>Save<\/strong> (the icon before the name): give your preset a name and click <strong class=\"ui\">SAVE<\/strong>. If the name is taken, the button reads <strong class=\"ui\">OVERWRITE<\/strong>.<\/li>\n<li>\n<p><strong>Browse<\/strong>: click the preset's name to open <strong class=\"ui\">PRESETS<\/strong>:<\/p>\n<p><figure class=\"shot\" data-name=\"druw-presets\" style=\"--w:2908;--pw:138.3mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-presets.webp\" alt=\"Presets library\" width=\"1600\" height=\"925\" loading=\"lazy\" decoding=\"async\"><figcaption>Presets library<\/figcaption><\/figure><\/p>\n<ul>\n<li><strong class=\"ui\">FACTORY<\/strong> shows DRUW's presets, <strong class=\"ui\">USER<\/strong>, yours.<\/li>\n<li>Search by name, and sort by name (<strong class=\"ui\">A-Z<\/strong>), date (<strong class=\"ui\">NEWEST<\/strong>) or rating (<strong class=\"ui\">LIKED<\/strong>). You can rate a preset with up to three stars.<\/li>\n<li>Click a preset to load it; double-click to load it and go back to DRUW. Use \u2191 and \u2193 to step through the list.<\/li>\n<li>The window on the right lets you preview the preset you clicked and play its instruments as you would on the main playground.<\/li>\n<li><strong class=\"ui\">CLOSE<\/strong> keeps what you loaded; <strong class=\"ui\">CANCEL<\/strong> (or Esc) brings you back to the main playground as you left it.<\/li>\n<li>To delete one of your presets, hover it, click its cross, then <strong class=\"ui\">DELETE<\/strong>.<\/li>\n<li>If you changed the loaded preset without saving, it is shown greyed out, its name preceded by an asterisk (*), and marked <strong class=\"ui\">UNSAVED CHANGES<\/strong>. Save it with the <strong class=\"ui\">SAVE<\/strong> button.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>If you loaded a preset by mistake, click <strong>Undo<\/strong> in the header.<\/p>\n<p>A preset points to your own samples where they are on your computer: if you move or delete one, the preset loses it.<br>To keep a preset with its samples, <strong class=\"ui\">EXPORT<\/strong> it.<\/p>\n<h2 id=\"save-your-work--presets-and-tempo\">Presets and tempo<\/h2>\n<p>A preset remembers the tempo it was made at: <strong class=\"ui\">PRESETS<\/strong> shows it as <strong class=\"ui\">ORIGINAL TEMPO<\/strong>, so you know what to set in your DAW.<br>While <strong class=\"ui\">PRESETS<\/strong> is open, the presets play at their own tempo (120 BPM for a preset saved without one).<\/p>\n<h2 id=\"save-your-work--share-a-preset\">Share a preset<\/h2>\n<p>In <strong class=\"ui\">PRESETS<\/strong>, click <strong class=\"ui\">EXPORT<\/strong> to save the loaded preset with its samples as a single .druwpreset file. On the other computer, click <strong class=\"ui\">IMPORT<\/strong> and pick that file: the preset joins your <strong class=\"ui\">USER<\/strong> presets, ready to play.<\/p>\n<h2 id=\"save-your-work--instruments\">Instruments<\/h2>\n<p>Save a single instrument to your library to use it again in any project: open it, check its name, and click its save icon. If the name is already in your library, DRUW asks before replacing it.<\/p>\n<figure class=\"shot\" data-name=\"druw-instrument-settings\" style=\"--w:924;--pw:120.8mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-instrument-settings.webp\" alt=\"Instrument\u2019s settings\" width=\"924\" height=\"612\" loading=\"lazy\" decoding=\"async\"><figcaption>Instrument\u2019s settings<\/figcaption><\/figure>\n\n<ul>\n<li>The instrument is saved with its pads, gestures, macros and all its kits.<\/li>\n<li>Its samples are copied into your library, so the instrument keeps working even if you move the original files.<\/li>\n<li>Your saved instruments show up in the browser's INSTRUMENTS tab under USER, and when you roll instruments of their type.<\/li>\n<li>Factory instruments are never changed. When you save an instrument, or one of its kits, that came from the factory library, DRUW saves it in the user library under a new name ending in \u00ab mod \u00bb (for example \u00ab Kick_Simple mod \u00bb, or \u00ab Kick_Simple mod 2 \u00bb if that one is taken).<\/li>\n<\/ul><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#several-devices-several-druws-several-people\"><small>Previous<\/small><span>SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE<\/span><\/a><a class=\"next\" href=\"#settings\"><small>Next<\/small><span>SETTINGS<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"settings\" data-group=\"Using DRUW\" data-title=\"SETTINGS\" style=\"--accent:#e400fc\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Using DRUW<\/span><\/div><h1><span class=\"num\">12<\/span>SETTINGS<\/h1><p class=\"lede\">Click the gear symbol at the top left of DRUW to open the <strong class=\"ui\">SETTINGS<\/strong>. It holds several sections: click one to expand it.<\/p>\n<figure class=\"shot\" data-name=\"druw-settings\" style=\"--w:2902;--pw:138.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-settings.webp\" alt=\"Settings\" width=\"1600\" height=\"925\" loading=\"lazy\" decoding=\"async\"><figcaption>Settings<\/figcaption><\/figure>\n\n<ul>\n<li><strong class=\"ui\">LICENCE<\/strong>: your licence details, and <strong class=\"ui\">DEACTIVATE<\/strong> to unlink this computer from your licence.<\/li>\n<li><strong class=\"ui\">UPDATES<\/strong>: whether DRUW is up to date. When a new version is out, <strong class=\"ui\">DOWNLOAD<\/strong> it and read what's new. Turn <strong>Check for updates every day<\/strong> <strong class=\"ui\">OFF<\/strong> if you don\u2019t want to see the update notification.<\/li>\n<li><strong class=\"ui\">DISPLAY<\/strong>: <strong>Draw the play surface with OpenGL<\/strong>. Turn it off if your graphics card misbehaves: the playground is then drawn without the GPU, a little slower. <strong>UI scale<\/strong> sets the size of the whole interface (50 to 125 %), and <strong>Gamma<\/strong> the brightness of its colours; a row of controls below shows the result.<\/li>\n<li><strong class=\"ui\">HELP<\/strong>: <strong class=\"ui\">USER GUIDE<\/strong> opens this guide; <strong class=\"ui\">QUICK TOUR<\/strong> replays the tour of the first launch, without touching your playground; <strong class=\"ui\">HELP TOPICS<\/strong> opens HELP and its chapters; <a href=\"http:\/\/BEATSURFING.COM\"><strong class=\"ui\">BEATSURFING.COM<\/strong><\/a> opens our website.<\/li>\n<li><strong class=\"ui\">DIAGNOSTICS<\/strong>: <strong>Keep a diagnostics log<\/strong> keeps a log on this computer. When something goes wrong, click <strong class=\"ui\">SAVE DIAGNOSTIC REPORT<\/strong> and email the file to us, with a few words on what happened. Nothing is ever sent without you.<\/li>\n<li><strong class=\"ui\">SESSION<\/strong>: <strong>Enable session rooms<\/strong> turns rooms on or off for every DRUW on this computer. When Off, everyone plays in Room 1.<\/li>\n<li><strong class=\"ui\">CREDITS<\/strong>.<\/li>\n<\/ul>\n<p>The version of DRUW is shown at the top of SETTINGS.<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#save-your-work\"><small>Previous<\/small><span>SAVE YOUR WORK<\/span><\/a><a class=\"next\" href=\"#system-requirements\"><small>Next<\/small><span>SYSTEM REQUIREMENTS<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"system-requirements\" data-group=\"Reference\" data-title=\"SYSTEM REQUIREMENTS\" style=\"--accent:#ff04a9\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Reference<\/span><\/div><h1><span class=\"num\">13<\/span>SYSTEM REQUIREMENTS<\/h1><h2 id=\"system-requirements--macos\">macOS<\/h2>\n<ul>\n<li>macOS 10.13 High Sierra or later<\/li>\n<li>Intel or Apple Silicon processor<\/li>\n<li>A 64-bit host that supports AU, VST2, VST3 or AAX<\/li>\n<li>Formats: AU, VST, VST3, AAX<\/li>\n<\/ul>\n<h2 id=\"system-requirements--windows\">Windows<\/h2>\n<ul>\n<li>Windows 10 or later<\/li>\n<li>A 64-bit host that supports VST2, VST3 or AAX<\/li>\n<li>Formats: VST, VST3, AAX<\/li>\n<\/ul>\n<h2 id=\"system-requirements--phone-or-tablet\">Phone or tablet<\/h2>\n<ul>\n<li>iPhone or iPad with iOS 13.0 or later, or Android device with Android 7.0 or later<\/li>\n<li>The free BEATSURFING Performer app<\/li>\n<li>A Wi-Fi network shared with your computer, or a USB cable<\/li>\n<\/ul><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#settings\"><small>Previous<\/small><span>SETTINGS<\/span><\/a><a class=\"next\" href=\"#installation-instructions\"><small>Next<\/small><span>INSTALLATION INSTRUCTIONS<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"installation-instructions\" data-group=\"Reference\" data-title=\"INSTALLATION INSTRUCTIONS\" style=\"--accent:#fd004b\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Reference<\/span><\/div><h1><span class=\"num\">14<\/span>INSTALLATION INSTRUCTIONS<\/h1><p class=\"lede\">The DRUW installer installs the <strong>DRUW plugin<\/strong>, its <strong>factory library<\/strong> (instruments, presets and samples), and the <strong>BEATSURFING bridge<\/strong>, a small background application that carries your pads to your DAW in DAW REC. The BEATSURFING bridge is installed with every copy of DRUW and starts when you log in.<\/p>\n<h2 id=\"installation-instructions--macos\">macOS<\/h2>\n<ol>\n<li>Download the DRUW installer (.pkg).<\/li>\n<li>Open it and follow the steps. The plugins are installed in <code>\/Library\/Audio\/Plug-Ins<\/code>, and the BEATSURFING bridge in <code>\/Applications<\/code>. The bridge starts when you log in; you can turn this off in System Settings \u203a General \u203a Login Items.<\/li>\n<li>Open DRUW in your DAW and enter your licence code*.<\/li>\n<\/ol>\n<h2 id=\"installation-instructions--windows\">Windows<\/h2>\n<ol>\n<li>Download the DRUW installer (.exe).<\/li>\n<li>Run it and follow the steps. The plugins are installed in your VST\/VST3 folder (\u201cC:\\Program Files\\Common Files\\\u201d by default, in a \u201cBeatsurfing\u201d subfolder, but you can define your own path in the installer) and in the Avid AAX folder. The BEATSURFING bridge is installed in <code>C:\\Program Files\\Beatsurfing\\BEATSURFING<\/code> and starts with Windows. The installer also installs the virtual MIDI driver that creates the BEATSURFING MIDI port.<\/li>\n<li>Open DRUW in your DAW and enter your licence code*.<\/li>\n<\/ol>\n<p>*After purchasing DRUW, your licence code appears on your licences page: <a href=\"https:\/\/vst.beatsurfing.com\/my-license\">vst.beatsurfing.com\/my-license<\/a><\/p>\n<h2 id=\"installation-instructions--where-druw-keeps-its-files\">Where DRUW keeps its files<\/h2>\n<ul>\n<li><strong>Factory library<\/strong>: <code>\/Library\/Application Support\/Beatsurfing\/DRUW\/<\/code> (macOS), <code>C:\\ProgramData\\Beatsurfing\\DRUW<\/code> (Windows): Factory Instruments, Factory Presets, Factory Samples.<\/li>\n<li><strong>Your library<\/strong>: <code>~\/Library\/Application Support\/Beatsurfing\/DRUW\/<\/code> (macOS), <code>%APPDATA%\\Beatsurfing\\DRUW<\/code> (Windows):<dl><div><dt>User Instruments<\/dt><dd>the instruments you save.<\/dd><\/div><div><dt>User Presets<\/dt><dd>the presets you save or import.<\/dd><\/div><div><dt>Imported Samples<\/dt><dd>copies of the samples used by your saved instruments and imported presets.<\/dd><\/div><div><dt>Session Samples<\/dt><dd>the samples your DAW projects carry, written back when you open a project. It is safe to empty.<\/dd><\/div><div><dt>Diagnostics<\/dt><dd>the diagnostics log.<\/dd><\/div><\/dl>\n<\/li>\n<\/ul><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#system-requirements\"><small>Previous<\/small><span>SYSTEM REQUIREMENTS<\/span><\/a><a class=\"next\" href=\"#activating-deactivating-the-licence\"><small>Next<\/small><span>ACTIVATING &amp; DEACTIVATING THE LICENCE<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"activating-deactivating-the-licence\" data-group=\"Reference\" data-title=\"ACTIVATING &amp; DEACTIVATING THE LICENCE\" style=\"--accent:#fc6c00\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Reference<\/span><\/div><h1><span class=\"num\">15<\/span>ACTIVATING &amp; DEACTIVATING THE LICENCE<\/h1><p class=\"lede\">On first launch, you\u2019ll see the SETTINGS screen and you will be prompted to enter your <strong class=\"ui\">LICENCE<\/strong>:<\/p>\n<ol>\n<li>Type or paste your licence code in the field, then press Return.<\/li>\n<li>Can't find it? Click <strong class=\"ui\">FIND MY LICENCE<\/strong> to open your licences page.<\/li>\n<\/ol>\n<p>You can activate your <strong class=\"ui\">LICENCE<\/strong> on 3 different computers. To move your DRUW activation to another computer, open <strong class=\"ui\">SETTINGS \u203a LICENCE<\/strong> on the current one and click <strong class=\"ui\">DEACTIVATE<\/strong> first. DRUW stops playing on this computer until a licence is entered again.<\/p>\n<figure class=\"shot\" data-name=\"druw-settings\" style=\"--w:2902;--pw:138.4mm\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/10\/druw-guide-druw-settings.webp\" alt=\"Settings\" width=\"1600\" height=\"925\" loading=\"lazy\" decoding=\"async\"><figcaption>Settings<\/figcaption><\/figure><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#installation-instructions\"><small>Previous<\/small><span>INSTALLATION INSTRUCTIONS<\/span><\/a><a class=\"next\" href=\"#support-troubleshooting\"><small>Next<\/small><span>SUPPORT &amp; TROUBLESHOOTING<\/span><\/a><\/nav><\/section><section class=\"page\" id=\"support-troubleshooting\" data-group=\"Reference\" data-title=\"SUPPORT &amp; TROUBLESHOOTING\" style=\"--accent:#ffa900\"><div class=\"crumbs\"><a href=\"#welcome\">DRUW<\/a><i>\/<\/i><span>Reference<\/span><\/div><h1><span class=\"num\">16<\/span>SUPPORT &amp; TROUBLESHOOTING<\/h1><h2 id=\"support-troubleshooting--my-device-doesn-t-find-druw\">My device doesn't find DRUW<\/h2>\n<ul>\n<li>Check that your device and your computer are on the <strong>same Wi-Fi network<\/strong>. Guest networks and some public or office networks keep devices from seeing each other: try your home network, your phone's hotspot, or a USB cable.<\/li>\n<li>Check that DRUW is open on a track in your DAW.<\/li>\n<li>If session rooms are on, check that your device and DRUW are in the <strong>same room<\/strong>.<\/li>\n<li>Close and reopen the Performer app.<\/li>\n<\/ul>\n<h2 id=\"support-troubleshooting--i-don-t-hear-anything\">I don't hear anything<\/h2>\n<ul>\n<li>Check that the instrument isn't muted, and that no other instrument is soloed.<\/li>\n<li>Check the DRUW track's volume and output in your DAW, and the instrument's <strong class=\"ui\">OUT<\/strong>.<\/li>\n<li>On your device, check that the pads are inside its frame.<\/li>\n<li>In <strong class=\"ui\">DAW REC<\/strong>, check that the track is armed or monitoring its input, with <strong class=\"ui\">BEATSURFING<\/strong> as its MIDI input, on the right channel (if you\u2019re not sure, switch back to <strong class=\"ui\">DIRECT<\/strong> mode and check if you hear anything).<\/li>\n<\/ul>\n<h2 id=\"support-troubleshooting--my-daw-doesn-t-record-anything\">My DAW doesn't record anything<\/h2>\n<ul>\n<li>Check that the switch is on <strong class=\"ui\">DAW REC<\/strong>, and that the track is armed.<\/li>\n<li>Check that the <strong class=\"ui\">BEATSURFING<\/strong> bridge is running and, if session rooms are on, in the same room as <strong class=\"ui\">DRUW<\/strong>. If <strong class=\"ui\">DAW REC<\/strong> is faded, click it, then <strong>START BEATSURFING bridge<\/strong>.<\/li>\n<\/ul>\n<h2 id=\"support-troubleshooting--a-sample-is-missing\">A sample is missing<\/h2>\n<p>If you move or delete a sample used by your playground, its sound plays nothing and the sample editor shows \u00ab sample not found \u00bb. With AUTO on, clicking its gesture also names the file in the footer. Put the file back where it was, or drop another sample on the gesture.<br>Your DAW projects carry their own samples, and saved instruments keep a copy of theirs. Presets don't: they point to your samples where they are. Save the instruments you care about to your library, and use EXPORT to keep a preset with its samples.<\/p>\n<h2 id=\"support-troubleshooting--i-hear-a-delay-in-logic-pro-or-reaper\">I hear a delay in Logic Pro or Reaper<\/h2>\n<ul>\n<li><strong>Logic Pro<\/strong> uses the buffer size you set in its audio preferences only for a track that is <strong>armed for recording<\/strong>. On any other track it uses a larger buffer, which adds delay to what you play. <strong>Arm the DRUW track<\/strong>, even if you don't want to record MIDI, to get the buffer size you set.<\/li>\n<li><strong>Reaper<\/strong> adds about 200 ms of delay to a track that is not armed. <strong>Arm the DRUW track<\/strong>, or turn off <strong>Anticipative FX processing<\/strong> in Reaper's preferences.<\/li>\n<\/ul>\n<h2 id=\"support-troubleshooting--something-else-went-wrong\">Something else went wrong<\/h2>\n<p>Open <strong class=\"ui\">SETTINGS \u203a DIAGNOSTICS<\/strong>, click <strong class=\"ui\">SAVE DIAGNOSTIC REPORT<\/strong>, and email the report to us with a few words on what you were doing.<\/p>\n<h2 id=\"support-troubleshooting--support\">Support<\/h2>\n<p>For additional support or updates, visit our website at <a href=\"http:\/\/beatsurfing.com\">beatsurfing.com<\/a> and explore our knowledge base at <a href=\"https:\/\/knowledge.beatsurfing.com\/audio-plugins-mac-os-x-or-windows\">https:\/\/knowledge.beatsurfing.com\/audio-plugins-mac-os-x-or-windows<\/a><\/p>\n<p>Thanks for supporting us, and please don't hesitate to reach out with any questions or ideas.<\/p>\n<p>\u2014 the BEATSURFING team<\/p><nav class=\"pager\" aria-label=\"Previous and next pages\"><a class=\"prev\" href=\"#activating-deactivating-the-licence\"><small>Previous<\/small><span>ACTIVATING &amp; DEACTIVATING THE LICENCE<\/span><\/a><\/nav><\/section><\/article><\/div>\n  <aside class=\"toc\" id=\"toc\" aria-label=\"On this page\"><\/aside>\n<\/div>\n<div class=\"scrim\" id=\"scrim\" hidden><\/div>\n<div class=\"lb\" id=\"lb\" hidden><img id=\"lbimg\" alt=\"\"><\/div><\/div>\n<script nowprocket>\n(function(){\n\nconst ROOT=document.getElementById(\"druwg\"); ROOT.classList.add(\"js\");\nconst BASE_TITLE=document.title;\nconst htext=e=>{const c=e.cloneNode(true);c.querySelectorAll(\".num\").forEach(n=>n.remove());return c.textContent.trim()};\nconst T=k=>{const e=ROOT.querySelector('.dg-i18n [data-k=\"'+k+'\"]');return e?e.textContent:k};\n\/* Height of the site's fixed header (+ admin bar) -> --dg-top *\/\nfunction top(){return parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--dg-top\"))||0}\nfunction measureTop(){\n  let b=0;const h=document.querySelector(\".elementor-location-header\");\n  if(h) h.querySelectorAll(\".e-con,.elementor-section\").forEach(e=>{const r=e.getBoundingClientRect(),p=getComputedStyle(e).position;\n    if(r.height>0&&r.top<200&&r.bottom>b&&(p===\"fixed\"||p===\"sticky\")) b=r.bottom});\n  const ab=document.getElementById(\"wpadminbar\"), abh=ab&&getComputedStyle(ab).position===\"fixed\"?ab.offsetHeight:0;\n  document.documentElement.style.setProperty(\"--dg-top\",Math.round(Math.max(b,abh,0))+\"px\");\n}\nfunction headH(){const h=ROOT.querySelector(\".dg-head\");return h?h.offsetHeight:0}\nfunction toGuideTop(){window.scrollTo(0,Math.max(0,ROOT.getBoundingClientRect().top+scrollY-top()))}\nmeasureTop(); addEventListener(\"resize\",measureTop); addEventListener(\"load\",measureTop);\n\/* Search index: one entry per chapter and per H2, read from the page *\/\nlet IDX=null;\nfunction index(){\n  if(IDX) return IDX; IDX=[];\n  document.querySelectorAll(\"#druwg section.page\").forEach(p=>{\n    const h1=p.querySelector(\"h1\"), pt=h1?htext(h1):p.dataset.title;\n    let cur={p:pt,s:pt,u:p.id,x:\"\"}; IDX.push(cur);\n    p.querySelectorAll(\":scope > *\").forEach(el=>{\n      if(el.matches(\"h2[id]\")){cur={p:pt,s:el.textContent.trim(),u:el.id,x:\"\"};IDX.push(cur)}\n      else if(!el.matches(\"h1,.crumbs,nav.pager,figure.demo\")) cur.x+=\" \"+el.textContent;\n    });\n  });\n  IDX.forEach(e=>e.x=e.x.replace(\/\\s+\/g,\" \").trim());\n  return IDX;\n}\n\/* Interactive demo: written into its frame when its chapter is shown (no folder on the server) *\/\nconst DEMO_B64=\"PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPjxzdHlsZT4vKkZPTlRTKi8vKiBGcm9tIHNyYy91aS9kZXNpZ24vVG9rZW5zLmggYW5kIHNyYy9saWIvSW5zdHJ1bWVudENvbG91ci5oICh0b29scy9idWlsZC5weSkuICovCjpyb290IHsKICAtLWNhbnZhczogIzBmMGYxMDsKICAtLXN1cmZhY2U6ICMxODE4MWE7CiAgLS1yYWlzZWQ6ICMyMTIxMjQ7CiAgLS1yYWlzZWRIaTogIzJhMmEyZTsKICAtLWNvbnRyb2w6ICMyMTIxMjQ7CiAgLS1saW5lOiAjMmMyYzMwOwogIC0taW5rOiAjZjNmM2Y1OwogIC0taW5rU29mdDogI2UyZTJlNjsKICAtLWlua0RpbTogI2NkY2RkMzsKICAtLWFjY2VudDogI2VkZWRlZjsKICAtLWRhbmdlcjogI2U1NDg0ZDsKICAtLXRlbnRhdGl2ZTogIzNiYzlkYjsKICAtLWRldmljZTogIzI4ODVmZjsKICAtLXNjcm9sbGJhcjogIzNjM2M0MjsKICAtLXBpY2s6ICMzYTNhNDA7CiAgLS10MTogMjJweDsKICAtLXQyOiAxNHB4OwogIC0tdDM6IDEycHg7CiAgLS10NDogMTBweDsKICAtLXQ1OiAxMXB4OwogIC0tcmFkaXVzOiA2cHg7CiAgLS1yYWRpdXMtbDogMTBweDsKICAtLWMxOiAjZmQwMDRiOwogIC0tYzI6ICNmYzZjMDA7CiAgLS1jMzogI2ZmYTkwMDsKICAtLWM0OiAjZmFlMDAwOwogIC0tYzU6ICNhYmZhMDA7CiAgLS1jNjogIzBmZmY5YTsKICAtLWM3OiAjMDBmY2U2OwogIC0tYzg6ICMwMGRmZmU7CiAgLS1jOTogIzAwYWNmYzsKICAtLWMxMDogIzRmNzlmZjsKICAtLWMxMTogIzk1NWJmZjsKICAtLWMxMjogI2U0MDBmYzsKICAtLWMxMzogI2ZmMDRhOTsKICAtLWMxNDogIzgwMDA0ZjsKICAtLWMxNTogI2ZmZmZmZjsKICAtLWMxNjogI2MyYzhkNDsKICAtLWMxNzogIzRiNTU2MzsKfQovKiBMb29rIG9mIHRoZSB1c2VyIGd1aWRlJ3MgZGVtb3MuIHRva2Vucy5jc3MgKHdyaXR0ZW4gYnkgdG9vbHMvYnVpbGQucHkgZnJvbSB0aGUgcGx1Z2luJ3MKICAgVG9rZW5zLmgpIGRlZmluZXMgLS1jYW52YXMsIC0tc3VyZmFjZSwgLS1yYWlzZWQsIC0tbGluZSwgLS1pbmssIC0tdGVudGF0aXZlLCAtLWRldmljZSAuLi4KICAgVGhlIGZhbGxiYWNrcyBtYWtlIGEgZGVtbyBvcGVuIG9uIGl0cyBvd24gd2hpbGUgaXQgaXMgYmVpbmcgd3JpdHRlbi4gKi8KOnJvb3QgewogIC0tY2FudmFzOiAjMGYwZjEwOyAtLXN1cmZhY2U6ICMxODE4MWE7IC0tcmFpc2VkOiAjMjEyMTI0OyAtLXJhaXNlZEhpOiAjMmEyYTJlOwogIC0tbGluZTogIzJjMmMzMDsgLS1pbms6ICNmM2YzZjU7IC0taW5rU29mdDogI2UyZTJlNjsgLS10ZW50YXRpdmU6ICMzYmM5ZGI7IC0tZGV2aWNlOiAjMjg4NWZmOwogIC0tcmFkaXVzOiA0cHg7IC0tcmFkaXVzLWw6IDhweDsKICAtLW1vbm86IEJhcmxvdywgc2Fucy1zZXJpZjsKICAtLWJvZHk6IEJhcmxvdywgc2Fucy1zZXJpZjsKfQoqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQpodG1sLCBib2R5IHsgbWFyZ2luOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1jYW52YXMpOyBjb2xvcjogdmFyKC0taW5rKTsgZm9udDogMTRweC8xLjQ1IHZhcigtLWJvZHkpOyB9CmJvZHkgeyBwYWRkaW5nOiAxNnB4OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9CmJ1dHRvbiB7IGZvbnQ6IGluaGVyaXQ7IGNvbG9yOiB2YXIoLS1pbmspOyB9Ci51aSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1tb25vKTsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyB9Ci5zdGVwIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgfQouc3RlcCBidXR0b24geyB3aWR0aDogNDBweDsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1yYWlzZWQpOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQ6IDcwMCAxNnB4IHZhcigtLW1vbm8pOyB9Ci5zdGVwIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXJhaXNlZEhpKTsgfQouc3RlcCBidXR0b246Zm9jdXMtdmlzaWJsZSwgLnNsb3QgYnV0dG9uOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tdGVudGF0aXZlKTsgb3V0bGluZS1vZmZzZXQ6IDFweDsgfQouc3RlcCAubGFiZWwgeyBtaW4td2lkdGg6IDEyMHB4OyBwYWRkaW5nOiA4cHggMTRweDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250OiA3MDAgMTRweCB2YXIoLS1tb25vKTsgfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgeyAqIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsgfSB9CgpbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfQoKLyogVGhlIHBhZCBzaXRzIGluIGEgbGFyZ2VyIGZpZWxkOiB0aGUgbWFyZ2luIGlzICJvdXRzaWRlIHRoZSBwYWQiLCB3aGVyZSBhIHNsaWRlIGJlZ2lucy4gKi8KLmRlbW8geyBtYXgtd2lkdGg6IDcyMHB4OyBtYXJnaW46IDAgYXV0bzsgfQouYmFyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyBmbGV4LXdyYXA6IHdyYXA7IG1hcmdpbi1ib3R0b206IDE0cHg7IH0KLnN0ZXAgLmxhYmVsLnEgeyBtaW4td2lkdGg6IDY0cHg7IH0KLnN0ZXAgLmxhYmVsLnRlbXBvIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IG1pbi13aWR0aDogMTAwcHg7IHBhZGRpbmc6IDAgMTBweDsgfQoudGVtcG8gaW5wdXQgeyB3aWR0aDogNDZweDsgYm9yZGVyOiAwOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWluayk7IGZvbnQ6IDcwMCAxNHB4IHZhcigtLW1vbm8pOwogIHRleHQtYWxpZ246IHJpZ2h0OyAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgfQoudGVtcG8gaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIC50ZW1wbyBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgbWFyZ2luOiAwOyB9Ci50ZW1wbyBpbnB1dDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRlbnRhdGl2ZSk7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH0KLnRlbXBvIHNwYW4geyBmb250LXNpemU6IDEycHg7IH0KLmhpbnQgeyBtYXJnaW46IDA7IGZsZXg6IDEgMSAxMDAlOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiB2YXIoLS1pbmspOyB9CgoucGxheSB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDM0MHB4KSBtaW5tYXgoMCwgMWZyKTsgZ2FwOiAyMHB4OyBhbGlnbi1pdGVtczogc3RhcnQ7IH0KQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KSB7IC5wbGF5IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTsgfSB9CgouZmllbGQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGFzcGVjdC1yYXRpbzogMTsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbCk7IHRvdWNoLWFjdGlvbjogbm9uZTsgdXNlci1zZWxlY3Q6IG5vbmU7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgfQoucGFkIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMjIlOyBiYWNrZ3JvdW5kOiAjMTcxMjBlOyBib3JkZXI6IDRweCBzb2xpZCAjZWI3NTJlOyBib3JkZXItcmFkaXVzOiAxNnB4OwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjEyczsgfQoucGFkLmRvd24geyBiYWNrZ3JvdW5kOiAjMmExYTBlOyB9Ci5zaGluZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJhY2tncm91bmQ6ICNmM2YzZjU7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9Ci5zaGluZS5oaXQgeyBhbmltYXRpb246IGhpdCAuMzVzIGVhc2Utb3V0OyB9CkBrZXlmcmFtZXMgaGl0IHsgZnJvbSB7IG9wYWNpdHk6IC4zOyB9IHRvIHsgb3BhY2l0eTogMDsgfSB9CiNncmFtbWFyIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0KLmZpbmdlciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgbWFyZ2luOiAtMTNweCAwIDAgLTEzcHg7IGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pbmspOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0KCi5rIHsgZGlzcGxheTogYmxvY2s7IGZvbnQ6IDcwMCAxMnB4IHZhcigtLW1vbm8pOyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IGNvbG9yOiB2YXIoLS1pbmspOyB9Ci52IHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6IHZhcigtLWluayk7IH0KLmxhc3QgeyBtYXJnaW46IDAgMCAxMnB4OyBwYWRkaW5nOiAxMHB4IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgfQovKiBUaGUgc2xvdHMsIGFzIHRoZSBwbHVnaW4gZHJhd3MgdGhlbTogYSB0aXRsZSBpbiBzcGFjZWQgY2FwaXRhbHMsIHRoZW4gYm94ZXMgaW4gdGhlIGluc3RydW1lbnQncyBjb2xvdXIgd2l0aCB0aGUKICAgc2FtcGxlJ3Mgd2F2ZWZvcm07IGEgU0xJREUgc2xvdCBjYXJyaWVzIGEgYmFyIG9uIHRoZSBlZGdlIGl0IGFuc3dlcnMgdG8sIGEgU0hBS0Ugc2xvdCBhIGRvdCBhbmQgYW4gYXJyb3csIE1BUAogICBhIGdyaWQgb2YgdGhlIGVpZ2h0IG1hY3Jvcy4gKi8KLnNsb3RzIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxNHB4OyAtLW9yYW5nZTogI2ViNzUyZTsgLS13YXZlOiAjN2M0MTE5OyAtLXBlYWNoOiAjZWZiYThmOyB9Ci5ncnAgaDMgeyBtYXJnaW46IDAgMCA2cHg7IGZvbnQ6IDcwMCAxM3B4IHZhcigtLW1vbm8pOyBsZXR0ZXItc3BhY2luZzogLjI4ZW07IGNvbG9yOiB2YXIoLS1pbmspOyB9Ci5yb3cgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgfQouc2xvdCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxleDogMSAxIDA7IG1pbi13aWR0aDogMDsgaGVpZ2h0OiA1NnB4OyBwYWRkaW5nOiAwOyBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1vcmFuZ2UpOwogIGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQ6IHZhcigtLWNhbnZhcyk7IGN1cnNvcjogcG9pbnRlcjsgb3ZlcmZsb3c6IGhpZGRlbjsgfQouc2xvdCBjYW52YXMgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBibG9jazsgfQouc2xvdDpob3ZlciB7IGJhY2tncm91bmQ6ICMxZjE0MGM7IH0KLnNsb3QubGl0IHsgYmFja2dyb3VuZDogIzNiMjQxMjsgYm9yZGVyLWNvbG9yOiB2YXIoLS1wZWFjaCk7IH0KLnNsb3Q6Zm9jdXMtdmlzaWJsZSwgLm1jZWxsOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tdGVudGF0aXZlKTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfQouZWRnZWJhciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYmFja2dyb3VuZDogdmFyKC0tcGVhY2gpOyBib3JkZXItcmFkaXVzOiAycHg7IH0KLmVkZ2ViYXIubGVmdCwgLmVkZ2ViYXIucmlnaHQgeyB0b3A6IDIyJTsgYm90dG9tOiAyMiU7IHdpZHRoOiA0cHg7IH0gLmVkZ2ViYXIubGVmdCB7IGxlZnQ6IDVweDsgfSAuZWRnZWJhci5yaWdodCB7IHJpZ2h0OiA1cHg7IH0KLmVkZ2ViYXIudG9wLCAuZWRnZWJhci5ib3R0b20geyBsZWZ0OiAyOCU7IHJpZ2h0OiAyOCU7IGhlaWdodDogNHB4OyB9IC5lZGdlYmFyLnRvcCB7IHRvcDogNXB4OyB9IC5lZGdlYmFyLmJvdHRvbSB7IGJvdHRvbTogNXB4OyB9Ci5kb3QgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgdG9wOiA1MCU7IHdpZHRoOiA5cHg7IGhlaWdodDogOXB4OyBtYXJnaW46IC00LjVweCAwIDAgLTQuNXB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLXBlYWNoKTsgfQoudHJpIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRvcDogNTAlOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBib3JkZXI6IDdweCBzb2xpZCB0cmFuc3BhcmVudDsgfQoudHJpLmxlZnQgeyBtYXJnaW46IC03cHggMCAwIC0yOXB4OyBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXBlYWNoKTsgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH0KLnRyaS5yaWdodCB7IG1hcmdpbjogLTdweCAwIDAgMTVweDsgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXBlYWNoKTsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOyB9Ci50cmkudXAgeyBtYXJnaW46IC0yN3B4IDAgMCAtN3B4OyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wZWFjaCk7IGJvcmRlci10b3Atd2lkdGg6IDA7IH0KLnRyaS5kb3duIHsgbWFyZ2luOiAxM3B4IDAgMCAtN3B4OyBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1wZWFjaCk7IGJvcmRlci1ib3R0b20td2lkdGg6IDA7IH0KLm1hcGJveCB7IGZsZXg6IDEgMSAwOyBwYWRkaW5nOiA4cHg7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW9yYW5nZSk7IGJvcmRlci1yYWRpdXM6IDEwcHg7IH0KLm1hcGJveCBoMyB7IG1hcmdpbjogMCAwIDZweDsgfQoubWdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyBnYXA6IDRweDsgfQoubWNlbGwgeyBoZWlnaHQ6IDI0cHg7IGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tb3JhbmdlKTsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWluayk7CiAgZm9udDogNzAwIDEycHggdmFyKC0tbW9ubyk7IHBhZGRpbmc6IDA7IGN1cnNvcjogZGVmYXVsdDsgfQoubWNlbGwub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1vcmFuZ2UpOyBjb2xvcjogIzBmMGYxMDsgfQoubWNlbGwudXNlZCB7IGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS13YXZlKSAwIDJweCwgdHJhbnNwYXJlbnQgMnB4IDVweCk7IH0KLm1jZWxsLmxpdCB7IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1wZWFjaCk7IH0KLm1hY3JvcyB7IG1hcmdpbi10b3A6IDEycHg7IGRpc3BsYXk6IGdyaWQ7IGdhcDogNnB4OyB9Ci5tYWNyb3MgcCB7IG1hcmdpbjogMDsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogYmFzZWxpbmU7IHBhZGRpbmc6IDhweCAxMnB4OwogIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgfQouc3RhdHVzIHsgbWFyZ2luOiAxMnB4IDAgMDsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0taW5rKTsgbWluLWhlaWdodDogMS40ZW07IH0KI2VudiB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDU2cHg7IGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IH0KPC9zdHlsZT48L2hlYWQ+PGJvZHk+CjxtYWluIGNsYXNzPSJkZW1vIj4KICA8aGVhZGVyIGNsYXNzPSJiYXIiPgogICAgPGRpdiBjbGFzcz0ic3RlcCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ikdlc3R1cmUgZmFtaWx5Ij4KICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBnZXN0dXJlIj4mbHQ7PC9idXR0b24+CiAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCIgaWQ9ImZhbWlseSIgYXJpYS1saXZlPSJwb2xpdGUiPlRPVUNIPC9zcGFuPgogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9Im5leHQiIGFyaWEtbGFiZWw9Ik5leHQgZ2VzdHVyZSI+Jmd0OzwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdGVwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iUXVhbnRpemUiPgogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InFwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBxdWFudGl6ZSB2YWx1ZSI+Jmx0OzwvYnV0dG9uPgogICAgICA8c3BhbiBjbGFzcz0ibGFiZWwgcSIgaWQ9InF1YW50IiBhcmlhLWxpdmU9InBvbGl0ZSI+MS8xNjwvc3Bhbj4KICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJxbmV4dCIgYXJpYS1sYWJlbD0iTmV4dCBxdWFudGl6ZSB2YWx1ZSI+Jmd0OzwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzdGVwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iVGVtcG8iPgogICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InRkb3duIiBhcmlhLWxhYmVsPSJTbG93ZXIiPiZsdDs8L2J1dHRvbj4KICAgICAgPGxhYmVsIGNsYXNzPSJsYWJlbCB0ZW1wbyI+PGlucHV0IGlkPSJicG0iIHR5cGU9Im51bWJlciIgaW5wdXRtb2RlPSJudW1lcmljIiBtaW49IjQwIiBtYXg9IjI0MCIgc3RlcD0iMSIgdmFsdWU9Ijg4IiBhcmlhLWxhYmVsPSJUZW1wbyBpbiBCUE0iPjxzcGFuIGNsYXNzPSJ1aSI+QlBNPC9zcGFuPjwvbGFiZWw+CiAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0idHVwIiBhcmlhLWxhYmVsPSJGYXN0ZXIiPiZndDs8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPHAgY2xhc3M9ImhpbnQiIGlkPSJoaW50Ij48L3A+CiAgPC9oZWFkZXI+CgogIDxzZWN0aW9uIGNsYXNzPSJwbGF5Ij4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIiBpZD0iZmllbGQiIGFyaWEtbGFiZWw9IlBsYXlncm91bmQ6IHB1dCBhIGZpbmdlciBvbiB0aGUgcGFkIj4KICAgICAgPGRpdiBjbGFzcz0icGFkIiBpZD0icGFkIj4KICAgICAgICA8c3BhbiBjbGFzcz0ic2hpbmUiPjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxjYW52YXMgaWQ9ImdyYW1tYXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2NhbnZhcz4KICAgICAgPHNwYW4gY2xhc3M9ImZpbmdlciIgaWQ9ImZpbmdlciIgaGlkZGVuPjwvc3Bhbj4KICAgIDwvZGl2PgoKICAgIDxhc2lkZSBjbGFzcz0ic2lkZSI+CiAgICAgIDxwIGNsYXNzPSJsYXN0IiBhcmlhLWxpdmU9InBvbGl0ZSI+PHNwYW4gY2xhc3M9ImsiPkxBU1QgR0VTVFVSRTwvc3Bhbj48c3BhbiBjbGFzcz0idiB1aSIgaWQ9Imxhc3QiPm5vbmUgeWV0PC9zcGFuPjwvcD4KICAgICAgPGRpdiBjbGFzcz0ic2xvdHMiIGlkPSJzbG90cyI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1hY3JvcyIgaWQ9Im1hY3JvcyIgaGlkZGVuPgogICAgICAgIDxwPjxzcGFuIGNsYXNzPSJrIj5YIOKGkiBDVVRPRkY8L3NwYW4+PHNwYW4gY2xhc3M9InYgdWkiIGlkPSJtLXgiPjA8L3NwYW4+PC9wPgogICAgICAgIDxwPjxzcGFuIGNsYXNzPSJrIj5ZIOKGkiBQSVRDSCBFTlYgQU1PVU5UPC9zcGFuPjxzcGFuIGNsYXNzPSJ2IHVpIiBpZD0ibS15Ij4wPC9zcGFuPjwvcD4KICAgICAgICA8Y2FudmFzIGlkPSJlbnYiIGFyaWEtbGFiZWw9IlBpdGNoIGVudmVsb3BlOiBmcm9tIHRoZSBhbW91bnQgZG93biB0byAwIGluIDg1IG1zIj48L2NhbnZhcz4KICAgICAgPC9kaXY+CiAgICA8L2FzaWRlPgogIDwvc2VjdGlvbj4KICA8cCBjbGFzcz0ic3RhdHVzIiBpZD0ic3RhdHVzIj5Mb2FkaW5nIHNvdW5kc+KApjwvcD4KPC9tYWluPgo8c2NyaXB0Pi8qIFNoYXJlZCBhdWRpbyBmb3IgdGhlIHVzZXIgZ3VpZGUncyBkZW1vczogbG9hZHMgYSBkZW1vJ3Mgc2FtcGxlcyAoT0dHIFZvcmJpcywgTTRBIHdoZXJlIHRoZQogICBicm93c2VyIGNhbid0IHJlYWQgT2dnKSBhbmQgcGxheXMgdGhlbSB0aHJvdWdoIFdlYiBBdWRpbywgd2l0aCB0aGUgc2FtZSB0aHJlZSBjb250cm9scyB0aGUKICAgcGx1Z2luJ3Mgc291bmQgaGFzIC0tIHBpdGNoLCBhIGxvdy1wYXNzIGZpbHRlciwgZ2Fpbi4gQSBjbGFzc2ljIHNjcmlwdCAobm8gbW9kdWxlcyk6IHRoZQogICB3ZWJzaXRlIGFsc28gb3BlbnMgZnJvbSBkaXNrLiAqLwooZnVuY3Rpb24gKCkgewogICJ1c2Ugc3RyaWN0IjsKCiAgY29uc3QgcHJvYmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpOwogIGNvbnN0IEVYVCA9IHByb2JlLmNhblBsYXlUeXBlKCdhdWRpby9vZ2c7IGNvZGVjcz0idm9yYmlzIicpID8gIm9nZyIgOiAibTRhIjsKCiAgbGV0IGN0eCA9IG51bGw7CiAgY29uc3QgYnVmZmVycyA9IHt9OwoKICBmdW5jdGlvbiBjb250ZXh0KCkgewogICAgaWYgKCFjdHgpIHsKICAgICAgY29uc3QgQUMgPSB3aW5kb3cuQXVkaW9Db250ZXh0IHx8IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7CiAgICAgIGN0eCA9IG5ldyBBQyh7IGxhdGVuY3lIaW50OiAiaW50ZXJhY3RpdmUiIH0pOwogICAgfQogICAgcmV0dXJuIGN0eDsKICB9CgogIC8qIEJyb3dzZXJzIHN0YXJ0IGF1ZGlvIG9ubHkgYWZ0ZXIgYSBnZXN0dXJlOiBjYWxsIGZyb20gYSBwb2ludGVyZG93bi4gKi8KICBmdW5jdGlvbiB1bmxvY2soKSB7CiAgICBjb25zdCBjID0gY29udGV4dCgpOwogICAgaWYgKGMuc3RhdGUgIT09ICJydW5uaW5nIikgYy5yZXN1bWUoKTsKICAgIHJldHVybiBjOwogIH0KCiAgYXN5bmMgZnVuY3Rpb24gZGVjb2RlKHVybCkgewogICAgY29uc3QgZGF0YSA9IGF3YWl0IChhd2FpdCBmZXRjaCh1cmwpKS5hcnJheUJ1ZmZlcigpOwogICAgcmV0dXJuIG5ldyBQcm9taXNlKChvaywgZmFpbCkgPT4gY29udGV4dCgpLmRlY29kZUF1ZGlvRGF0YShkYXRhLCBvaywgZmFpbCkpOwogIH0KCiAgLyogbG9hZCgic2FtcGxlcy8iLCBbImtpY2siLCAic25hcmUiXSkgLT4gcmVzb2x2ZXMgb25jZSBldmVyeSBzYW1wbGUgaXMgZGVjb2RlZC4gKi8KICBhc3luYyBmdW5jdGlvbiBsb2FkKGJhc2UsIG5hbWVzKSB7CiAgICBhd2FpdCBQcm9taXNlLmFsbChuYW1lcy5tYXAoYXN5bmMgKG4pID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBidWZmZXJzW25dID0gYXdhaXQgZGVjb2RlKGAke2Jhc2V9JHtufS4ke0VYVH1gKTsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGlmIChFWFQgPT09ICJvZ2ciKSBidWZmZXJzW25dID0gYXdhaXQgZGVjb2RlKGAke2Jhc2V9JHtufS5tNGFgKTsgLy8gZGVjb2RlIGZhaWxlZDogdGhlIG90aGVyIGZvcm1hdAogICAgICAgIGVsc2UgdGhyb3cgZTsKICAgICAgfQogICAgfSkpOwogIH0KCiAgLyogcGxheSgia2ljayIsIHsgc2VtaXRvbmVzLCBjdXRvZmYsIGdhaW4gfSkgLT4gYSB2b2ljZSB3aG9zZSBjdXRvZmYgY2FuIHN0aWxsIG1vdmUuICovCiAgZnVuY3Rpb24gcGxheShuYW1lLCBvID0ge30pIHsKICAgIGNvbnN0IGMgPSB1bmxvY2soKSwgYnVmID0gYnVmZmVyc1tuYW1lXTsKICAgIGlmICghYnVmKSByZXR1cm4gbnVsbDsKICAgIGNvbnN0IHNyYyA9IGMuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAgICBzcmMuYnVmZmVyID0gYnVmOwogICAgY29uc3QgYmFzZSA9IE1hdGgucG93KDIsIChvLnNlbWl0b25lcyB8fCAwKSAvIDEyKTsKICAgIHNyYy5wbGF5YmFja1JhdGUudmFsdWUgPSBiYXNlOwogICAgc3JjLmxvb3AgPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGEgb25lLXNob3QKICAgIGNvbnN0IHBlID0gby5waXRjaEVudjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHsgc2VtaXRvbmVzLCBtcywgcG93ZXIgfTogZnJvbSArc2VtaXRvbmVzIGRvd24gdG8gMAogICAgaWYgKHBlICYmIHBlLnNlbWl0b25lcyA+IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxvbmcgKDEgLSB0KV5wb3dlciwgYXMgdGhlIHBsdWdpbidzIGVudmVsb3BlCiAgICAgIGNvbnN0IG4gPSA5NiwgY3VydmUgPSBuZXcgRmxvYXQzMkFycmF5KG4pOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgY3VydmVbaV0gPSBiYXNlICogTWF0aC5wb3coMiwgcGUuc2VtaXRvbmVzICogTWF0aC5wb3coMSAtIGkgLyAobiAtIDEpLCBwZS5wb3dlciB8fCAyKSAvIDEyKTsKICAgICAgc3JjLnBsYXliYWNrUmF0ZS5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCBvLndoZW4gfHwgYy5jdXJyZW50VGltZSwgcGUubXMgLyAxMDAwKTsKICAgIH0KICAgIGNvbnN0IGxwID0gYy5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKICAgIGxwLnR5cGUgPSAibG93cGFzcyI7CiAgICBscC5RLnZhbHVlID0gMC43OwogICAgbHAuZnJlcXVlbmN5LnZhbHVlID0gby5jdXRvZmYgfHwgMjAwMDA7CiAgICBjb25zdCBnID0gYy5jcmVhdGVHYWluKCk7CiAgICBnLmdhaW4udmFsdWUgPSBvLmdhaW4gPT0gbnVsbCA\/IDEgOiBvLmdhaW47CiAgICBzcmMuY29ubmVjdChscCkuY29ubmVjdChnKS5jb25uZWN0KGMuZGVzdGluYXRpb24pOwogICAgc3JjLnN0YXJ0KG8ud2hlbiB8fCAwKTsKICAgIHJldHVybiB7CiAgICAgIHNldEN1dG9mZihoeikgeyBscC5mcmVxdWVuY3kuc2V0VGFyZ2V0QXRUaW1lKGh6LCBjLmN1cnJlbnRUaW1lLCAwLjAxNSk7IH0sCiAgICAgIHN0b3AoKSB7IHRyeSB7IHNyYy5zdG9wKCk7IH0gY2F0Y2ggKGUpIHsgLyogYWxyZWFkeSBlbmRlZCAqLyB9IH0sCiAgICB9OwogIH0KCiAgLyogVGhlIHNhbXBsZSdzIHBlYWsgZW52ZWxvcGUgb24gYSBjYW52YXMsIGFzIGEgc2xvdCBzaG93cyBpdHMgd2F2ZWZvcm0uICovCiAgZnVuY3Rpb24gd2F2ZWZvcm0oY2FudmFzLCBuYW1lLCBjb2xvdXIpIHsKICAgIGNvbnN0IGJ1ZiA9IGJ1ZmZlcnNbbmFtZV07CiAgICBpZiAoIWJ1ZikgcmV0dXJuOwogICAgY29uc3QgZHByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKICAgIGNvbnN0IHcgPSBjYW52YXMuY2xpZW50V2lkdGgsIGggPSBjYW52YXMuY2xpZW50SGVpZ2h0OwogICAgY2FudmFzLndpZHRoID0gTWF0aC5yb3VuZCh3ICogZHByKTsKICAgIGNhbnZhcy5oZWlnaHQgPSBNYXRoLnJvdW5kKGggKiBkcHIpOwogICAgY29uc3QgZyA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwogICAgZy5zY2FsZShkcHIsIGRwcik7CiAgICBnLmZpbGxTdHlsZSA9IGNvbG91cjsKICAgIGNvbnN0IGQgPSBidWYuZ2V0Q2hhbm5lbERhdGEoMCksIHN0ZXAgPSBNYXRoLm1heCgxLCBNYXRoLmZsb29yKGQubGVuZ3RoIC8gdykpOwogICAgZm9yIChsZXQgeCA9IDA7IHggPCB3OyB4KyspIHsKICAgICAgbGV0IHBlYWsgPSAwOwogICAgICBmb3IgKGxldCBpID0geCAqIHN0ZXA7IGkgPCAoeCArIDEpICogc3RlcCAmJiBpIDwgZC5sZW5ndGg7IGkrKykgcGVhayA9IE1hdGgubWF4KHBlYWssIE1hdGguYWJzKGRbaV0pKTsKICAgICAgY29uc3QgYmFyID0gTWF0aC5tYXgoMSwgcGVhayAqIGgpOwogICAgICBnLmZpbGxSZWN0KHgsIChoIC0gYmFyKSAvIDIsIDEsIGJhcik7CiAgICB9CiAgfQoKICAvKiBBIGdyaWQ6IGBicG1gIGFuZCBgZGl2aXNpb25gICg0ID0gc2l4dGVlbnRoIG5vdGVzKSBmcm9tIHRoZSBtb21lbnQgaXQgd2FzIHN0YXJ0ZWQuIGBuZXh0KClgIGlzIHRoZQogIGF1ZGlvLWNsb2NrIHRpbWUgb2YgdGhlIG5leHQgc3RlcCwgb3IgIm5vdyIgd2hlbiBvZmYuICovCiAgZnVuY3Rpb24gcXVhbnRpemVyKGJwbSwgZGl2aXNpb24pIHsKICAgIGxldCBvcmlnaW4gPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVhY2ggZ3JpZCBzdGFydHMgd2hlcmUgaXRzIGZpcnN0IGhpdCBmYWxscwogICAgcmV0dXJuIGZ1bmN0aW9uIG5leHQob2ZmKSB7CiAgICAgIGNvbnN0IGMgPSB1bmxvY2soKSwgbm93ID0gYy5jdXJyZW50VGltZTsKICAgICAgaWYgKG9mZikgcmV0dXJuIG5vdzsKICAgICAgaWYgKCFvcmlnaW4pIG9yaWdpbiA9IG5vdzsKICAgICAgY29uc3Qgc3RlcCA9IDYwIC8gYnBtIC8gZGl2aXNpb247CiAgICAgIHJldHVybiBvcmlnaW4gKyBNYXRoLmNlaWwoKG5vdyAtIG9yaWdpbikgLyBzdGVwIC0gMWUtNikgKiBzdGVwOwogICAgfTsKICB9CgogIHdpbmRvdy5EcnV3RGVtbyA9IHsgbG9hZCwgcGxheSwgdW5sb2NrLCB3YXZlZm9ybSwgcXVhbnRpemVyLCBmb3JtYXQ6IEVYVCB9Owp9KSgpOwoKLyogVGhlIHZpc3VhbCBncmFtbWFyIG9mIGEgRFJVVyBwYWQsIG9uIGEgY2FudmFzIGxhaWQgb3ZlciB0aGUgcGFkIC0tIGEgcG9ydCBvZiB3aGF0IHRoZSBwbHVnaW4gZHJhd3MKICAgKGJzX3RvdWNoZmllbGQsIHNyYy9QYWRHZW9tZXRyeS5oKSwgd2l0aCBpdHMgb3duIG51bWJlcnM6CgogICAtIFNMSURFICAgYSBsaW5lIGp1c3QgaW5zaWRlIGVhY2ggZWRnZSB0aGUgcGFkIGFuc3dlcnMgdG8sIHNob3J0IG9mIHRoZSBjb3JuZXJzOyBhIHNsaWRlLWluIHB1bmNoZXMKICAgICAgICAgICAgIHRoZSBlZGdlJ3MgbGluZSBpbnRvIHRoZSBwYWQsIHN3ZWxscyBpdCBhbmQgZmxhc2hlcyBpdCAoMC40NSBzLCBhIGRhbXBlZCBzcHJpbmcpLgogICAtIFNIQUtFICAgYSBkb3QgYW5kIGEgc29saWQgdHJpYW5nbGUgcGVyIGRpcmVjdGlvbiwgcG9pbnRpbmcgb3V0d2FyZC4gVGhlIGNsdXN0ZXIgZm9sbG93cyB0aGUgZmluZ2VyCiAgICAgICAgICAgICB3aGlsZSBpdCBpcyBoZWxkLCBhbmQgc3ByaW5ncyBiYWNrIHRvIHRoZSBjZW50cmUgd2hlbiBsZXQgZ28uIEEgc2hha2Uga2lja3MgaXRzIHRyaWFuZ2xlIG91dAogICAgICAgICAgICAgKDAuNDUgcykgYW5kIHNob290cyBhIGNvcHkgb2YgaXQgdGhyb3VnaCB0aGUgcGFkJ3MgZWRnZSBhbmQgYmV5b25kLCBmYWRpbmcgKDAuMyBzKS4KICAgLSBNQVAgICAgIGEgY3Jvc3NoYWlyIGF0IHRoZSBsYXN0IHBvc2l0aW9uIG9uIGVhY2ggYXhpczogdGhpY2sgd2hpbGUgcGxheWVkLCB0aGluIGF0IHJlc3QuCgogICBFdmVyeXRoaW5nIGlzIGluIHBpeGVscyBvZiB0aGUgZmllbGQ7IHRoZSBjYW52YXMgaXMgbGFyZ2VyIHRoYW4gdGhlIHBhZCBzbyBhIHNob3QgY2FuIGxlYXZlIGl0LiAqLwooZnVuY3Rpb24gKCkgewogICJ1c2Ugc3RyaWN0IjsKICBjb25zdCBUQVUgPSBNYXRoLlBJICogMjsKICBjb25zdCBjbGFtcCA9ICh2LCBhLCBiKSA9PiBNYXRoLm1pbihiLCBNYXRoLm1heChhLCB2KSk7CiAgY29uc3QgT1VUID0geyBsZWZ0OiBbLTEsIDBdLCByaWdodDogWzEsIDBdLCB0b3A6IFswLCAtMV0sIGJvdHRvbTogWzAsIDFdIH07CiAgY29uc3QgU0lERVMgPSBbInRvcCIsICJib3R0b20iLCAibGVmdCIsICJyaWdodCJdOwoKICAvKiAtLS0tIHRoZSBwbHVnaW4ncyBjdXJ2ZXMgKFBhZEdlb21ldHJ5LmgpICovCiAgZnVuY3Rpb24gc2xpZGVCdW1wQXQodCkgewogICAgaWYgKHQgPCAwIHx8IHQgPj0gMC40NSkgcmV0dXJuIG51bGw7CiAgICBjb25zdCBlYXNlID0gMSAtIHQgLyAwLjQ1OwogICAgcmV0dXJuIHsgcHVzaDogTWF0aC5leHAoLTkgKiB0KSAqIE1hdGguc2luKFRBVSAqIDIuNCAqIHQpICogZWFzZSwgc3dlbGw6IDEgKyAwLjM1ICogTWF0aC5leHAoLTEwICogdCkgKiBlYXNlLAogICAgICAgICAgICAgc3RyZXRjaDogMSArIDAuMDQgKiBNYXRoLmV4cCgtOSAqIHQpICogZWFzZSwgZmxhc2g6IE1hdGguZXhwKC0yMCAqIHQpICogZWFzZSB9OwogIH0KICBmdW5jdGlvbiBraWNrQXQodCkgewogICAgaWYgKHQgPCAwIHx8IHQgPj0gMC40NSkgcmV0dXJuIG51bGw7CiAgICBjb25zdCBlYXNlID0gMSAtIHQgLyAwLjQ1OwogICAgcmV0dXJuIHsgb3V0OiBNYXRoLmV4cCgtOSAqIHQpICogTWF0aC5zaW4oVEFVICogMi44ICogdCArIDAuNikgKiBlYXNlLCBmbGFzaDogTWF0aC5leHAoLTE0ICogdCkgKiBlYXNlIH07CiAgfQogIGZ1bmN0aW9uIHNob3RBdCh0KSB7CiAgICBpZiAodCA8IDAgfHwgdCA+PSAwLjMpIHJldHVybiBudWxsOwogICAgY29uc3QgbGVmdCA9IDEgLSB0IC8gMC4zOwogICAgcmV0dXJuIHsgdHJhdmVsOiAxIC0gbGVmdCAqIGxlZnQgKiBsZWZ0LCBhbHBoYTogbGVmdCAqIE1hdGguc3FydChsZWZ0KSB9OwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlKGNhbnZhcywgcGFkRWwsIGNvbG91cikgewogICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CiAgICBjb25zdCBiYXNlID0gY29sb3VyIHx8IFsyMzUsIDExNywgNDZdOyAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwYWQncyBib3JkZXIgY29sb3VyCiAgICBjb25zdCBtaXggPSAoZmxhc2gsIGFscGhhKSA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvd2FyZHMgd2hpdGUgYnkgMC43NSB4IGZsYXNoCiAgICAgIGNvbnN0IGsgPSAwLjc1ICogKGZsYXNoIHx8IDApOwogICAgICBjb25zdCBjID0gYmFzZS5tYXAoKHYpID0+IE1hdGgucm91bmQodiArICgyNTUgLSB2KSAqIGspKTsKICAgICAgcmV0dXJuIGByZ2JhKCR7Y1swXX0sJHtjWzFdfSwke2NbMl19LCR7YWxwaGEgPT0gbnVsbCA\/IDEgOiBhbHBoYX0pYDsKICAgIH07CgogICAgY29uc3QgUyA9IHsKICAgICAgaGFzOiB7fSwgYnVtcDogbnVsbCwga2ljazogbnVsbCwKICAgICAgZm9sbG93OiBudWxsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ge3gsIHl9IC0xLi4xIHdoaWxlIGEgZmluZ2VyIGhvbGRzIGEgc2hha2luZyBwYWQKICAgICAgcG9zOiB7IHg6IDAsIHk6IDAsIHZ4OiAwLCB2eTogMCB9LCAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgdGhlIGNsdXN0ZXIgaXMsIC0xLi4xCiAgICAgIGNyb3NzOiB7IHg6IDAuNSwgeTogMC41LCBhbW91bnQ6IDAsIGRvd246IGZhbHNlLCBzaW5jZTogMCB9LAogICAgfTsKICAgIGxldCBsYXN0ID0gcGVyZm9ybWFuY2Uubm93KCksIGRwciA9IDEsIFcgPSAwLCBIID0gMDsKCiAgICBmdW5jdGlvbiBmaXQoKSB7CiAgICAgIGNvbnN0IGYgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgIGNvbnN0IGQgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOwogICAgICBpZiAoZi53aWR0aCAhPT0gVyB8fCBmLmhlaWdodCAhPT0gSCB8fCBkICE9PSBkcHIpIHsKICAgICAgICBXID0gZi53aWR0aDsgSCA9IGYuaGVpZ2h0OyBkcHIgPSBkOwogICAgICAgIGNhbnZhcy53aWR0aCA9IE1hdGgucm91bmQoVyAqIGRwcik7IGNhbnZhcy5oZWlnaHQgPSBNYXRoLnJvdW5kKEggKiBkcHIpOwogICAgICB9CiAgICAgIGN0eC5zZXRUcmFuc2Zvcm0oZHByLCAwLCAwLCBkcHIsIDAsIDApOwogICAgfQogICAgZnVuY3Rpb24gcGFkUmVjdCgpIHsKICAgICAgY29uc3QgZiA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgcCA9IHBhZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICBjb25zdCBjcyA9IGdldENvbXB1dGVkU3R5bGUocGFkRWwpOwogICAgICByZXR1cm4geyB4OiBwLmxlZnQgLSBmLmxlZnQsIHk6IHAudG9wIC0gZi50b3AsIHc6IHAud2lkdGgsIGg6IHAuaGVpZ2h0LAogICAgICAgICAgICAgICBib3JkZXI6IHBhcnNlRmxvYXQoY3MuYm9yZGVyVG9wV2lkdGgpIHx8IDMsIGNvcm5lcjogcGFyc2VGbG9hdChjcy5ib3JkZXJUb3BMZWZ0UmFkaXVzKSB8fCAxMiB9OwogICAgfQoKICAgIC8qIC0tLS0gU0xJREU6IHRoZSBsaW5lcyBpbnNpZGUgdGhlIGJvcmRlciAoZWRnZU1hcmtlcnMsIGluc2lkZSA9IHRydWUpICovCiAgICBmdW5jdGlvbiBlZGdlTGluZXMocikgewogICAgICBjb25zdCB0aGljayA9IE1hdGgubWF4KDEuNSwgci5ib3JkZXIgKiAwLjYpOwogICAgICBjb25zdCBnYXAgPSBNYXRoLm1heCgxLjUsIHRoaWNrICogMS41KTsKICAgICAgY29uc3QgaW53YXJkID0gTWF0aC5taW4oci5ib3JkZXIgKyBnYXAgKyB0aGljayAvIDIsIE1hdGgubWluKHIudywgci5oKSAqIDAuMjUpOwogICAgICBjb25zdCBpbnNldCA9IChsZW4pID0+IE1hdGgubWluKGxlbiAqIDAuMiwgTWF0aC5tYXgoci5jb3JuZXIgKiAwLjgsIGxlbiAqIDAuMSkpOwogICAgICBjb25zdCBjbGVhciA9IGlud2FyZCAqIDI7CiAgICAgIGNvbnN0IGl4ID0gTWF0aC5tYXgoaW5zZXQoci53KSwgTWF0aC5taW4oY2xlYXIsIHIudyAqIDAuMykpLCBpeSA9IE1hdGgubWF4KGluc2V0KHIuaCksIE1hdGgubWluKGNsZWFyLCByLmggKiAwLjMpKTsKICAgICAgY29uc3QgTCA9IHt9OwogICAgICBpZiAoUy5oYXMuc2xpZGUpIHsKICAgICAgICBMLnRvcCA9IFtbci54ICsgaXgsIHIueSArIGlud2FyZF0sIFtyLnggKyByLncgLSBpeCwgci55ICsgaW53YXJkXV07CiAgICAgICAgTC5ib3R0b20gPSBbW3IueCArIGl4LCByLnkgKyByLmggLSBpbndhcmRdLCBbci54ICsgci53IC0gaXgsIHIueSArIHIuaCAtIGlud2FyZF1dOwogICAgICAgIEwubGVmdCA9IFtbci54ICsgaW53YXJkLCByLnkgKyBpeV0sIFtyLnggKyBpbndhcmQsIHIueSArIHIuaCAtIGl5XV07CiAgICAgICAgTC5yaWdodCA9IFtbci54ICsgci53IC0gaW53YXJkLCByLnkgKyBpeV0sIFtyLnggKyByLncgLSBpbndhcmQsIHIueSArIHIuaCAtIGl5XV07CiAgICAgIH0KICAgICAgcmV0dXJuIHsgTCwgdGhpY2sgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGRyYXdFZGdlcyhyLCBub3cpIHsKICAgICAgY29uc3QgeyBMLCB0aGljayB9ID0gZWRnZUxpbmVzKHIpOwogICAgICBjb25zdCBpbndhcmREaXIgPSB7IHRvcDogWzAsIDFdLCBib3R0b206IFswLCAtMV0sIGxlZnQ6IFsxLCAwXSwgcmlnaHQ6IFstMSwgMF0gfTsKICAgICAgZm9yIChjb25zdCBlZGdlIGluIEwpIHsKICAgICAgICBsZXQgW2EsIGJdID0gTFtlZGdlXSwgdGggPSB0aGljaywgZmxhc2ggPSAwOwogICAgICAgIGlmIChTLmJ1bXAgJiYgUy5idW1wLmVkZ2UgPT09IGVkZ2UpIHsKICAgICAgICAgIGNvbnN0IGsgPSBzbGlkZUJ1bXBBdCgobm93IC0gUy5idW1wLnQwKSAvIDEwMDApOwogICAgICAgICAgaWYgKGspIHsKICAgICAgICAgICAgY29uc3QgbWlkID0gWyhhWzBdICsgYlswXSkgLyAyICsgaW53YXJkRGlyW2VkZ2VdWzBdICogay5wdXNoICogMi41ICogci5ib3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAoYVsxXSArIGJbMV0pIC8gMiArIGlud2FyZERpcltlZGdlXVsxXSAqIGsucHVzaCAqIDIuNSAqIHIuYm9yZGVyXTsKICAgICAgICAgICAgY29uc3QgaGFsZiA9IFsoYlswXSAtIGFbMF0pIC8gMiAqIGsuc3RyZXRjaCwgKGJbMV0gLSBhWzFdKSAvIDIgKiBrLnN0cmV0Y2hdOwogICAgICAgICAgICBhID0gW21pZFswXSAtIGhhbGZbMF0sIG1pZFsxXSAtIGhhbGZbMV1dOyBiID0gW21pZFswXSArIGhhbGZbMF0sIG1pZFsxXSArIGhhbGZbMV1dOwogICAgICAgICAgICB0aCAqPSBrLnN3ZWxsOyBmbGFzaCA9IGsuZmxhc2g7CiAgICAgICAgICB9IGVsc2UgUy5idW1wID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gbWl4KGZsYXNoKTsgY3R4LmxpbmVXaWR0aCA9IHRoOyBjdHgubGluZUNhcCA9ICJyb3VuZCI7CiAgICAgICAgY3R4LmJlZ2luUGF0aCgpOyBjdHgubW92ZVRvKGFbMF0sIGFbMV0pOyBjdHgubGluZVRvKGJbMF0sIGJbMV0pOyBjdHguc3Ryb2tlKCk7CiAgICAgIH0KICAgIH0KCiAgICAvKiAtLS0tIE1BUDogdGhlIGNyb3NzaGFpciAqLwogICAgZnVuY3Rpb24gZHJhd0Nyb3NzKHIsIG5vdykgewogICAgICBjb25zdCBjID0gUy5jcm9zczsKICAgICAgaWYgKCFTLmhhcy5tYXApIHJldHVybjsKICAgICAgaWYgKCFjLmRvd24gJiYgYy5hbW91bnQgPiAwKSBjLmFtb3VudCA9IE1hdGgubWF4KDAsIDEgLSAobm93IC0gYy5zaW5jZSkgLyAyMDApOyAgIC8vIHRoZSByZWxlYXNlIGZhZGUKICAgICAgY29uc3QgdGhpY2sgPSAxLjIgKyAoTWF0aC5tYXgoMywgci5ib3JkZXIpIC0gMS4yKSAqIChjLmRvd24gPyAxIDogYy5hbW91bnQpOwogICAgICBjb25zdCBtID0gTWF0aC5tYXgoci5ib3JkZXIgKyAxLCByLmNvcm5lciAqIDAuNSk7CiAgICAgIGNvbnN0IHggPSByLnggKyBjbGFtcChjLngsIDAsIDEpICogci53LCB5ID0gci55ICsgY2xhbXAoYy55LCAwLCAxKSAqIHIuaDsKICAgICAgY3R4LnNhdmUoKTsKICAgICAgY3R4LmJlZ2luUGF0aCgpOwogICAgICBjdHgucm91bmRSZWN0KHIueCArIHIuYm9yZGVyLCByLnkgKyByLmJvcmRlciwgci53IC0gMiAqIHIuYm9yZGVyLCByLmggLSAyICogci5ib3JkZXIsIE1hdGgubWF4KDAsIHIuY29ybmVyIC0gci5ib3JkZXIpKTsKICAgICAgY3R4LmNsaXAoKTsKICAgICAgY3R4LnN0cm9rZVN0eWxlID0gbWl4KDApOyBjdHgubGluZVdpZHRoID0gdGhpY2s7IGN0eC5saW5lQ2FwID0gImJ1dHQiOwogICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oY2xhbXAoeCwgci54ICsgbSwgci54ICsgci53IC0gbSksIHIueSk7IGN0eC5saW5lVG8oY2xhbXAoeCwgci54ICsgbSwgci54ICsgci53IC0gbSksIHIueSArIHIuaCk7CiAgICAgIGN0eC5tb3ZlVG8oci54LCBjbGFtcCh5LCByLnkgKyBtLCByLnkgKyByLmggLSBtKSk7IGN0eC5saW5lVG8oci54ICsgci53LCBjbGFtcCh5LCByLnkgKyBtLCByLnkgKyByLmggLSBtKSk7IGN0eC5zdHJva2UoKTsKICAgICAgY3R4LnJlc3RvcmUoKTsKICAgIH0KCiAgICAvKiAtLS0tIFNIQUtFOiB0aGUgZG90IGFuZCBpdHMgdHJpYW5nbGVzIChzaGFrZUljb25zLCBhcHBseVNoYWtlRm9sbG93LCBhcHBseVNoYWtlS2ljaywgYXBwbHlTaGFrZVNob3QpICovCiAgICBmdW5jdGlvbiBkcmF3U2hha2Uociwgbm93LCBkdCkgewogICAgICBpZiAoIVMuaGFzLnNoYWtlKSByZXR1cm47CiAgICAgIGNvbnN0IG1pblNpZGUgPSBNYXRoLm1pbihyLncsIHIuaCk7CiAgICAgIGxldCB1ID0gTWF0aC5tYXgoMC4zLCBtaW5TaWRlICogMC4wMTYpICogMS4yNTsgICAgICAgICAgICAgIC8vIGEgbGl0dGxlIGJpZ2dlciB0aGFuIHRoZSBwbHVnaW4ncywgZm9yIGEgZ3VpZGUKICAgICAgbGV0IGRvdCA9IE1hdGgubWF4KDEuNywgMi45ICogdSksIHRyaUJhc2UgPSA4LjUgKiB1LCB0cmlBcGV4ID0gMTYuNSAqIHUsIHRyaUhhbGYgPSA0LjYgKiB1OwogICAgICBjb25zdCBmaXQgPSBNYXRoLm1pbigxLCAoMC40ICogbWluU2lkZSkgLyBNYXRoLm1heCh0cmlBcGV4ICsgNiAqIHUsIHRyaUhhbGYgKiAxLjQpKTsKICAgICAgdSAqPSBmaXQ7IGRvdCAqPSBmaXQ7IHRyaUJhc2UgKj0gZml0OyB0cmlBcGV4ICo9IGZpdDsgdHJpSGFsZiAqPSBmaXQ7CgogICAgICAvLyBmb2xsb3c6IHVuZGVyIHRoZSBmaW5nZXIgd2hpbGUgaGVsZCwgYSBsb29zZSBzcHJpbmcgYmFjayB0byByZXN0IG9uY2UgbGV0IGdvCiAgICAgIGlmIChTLmZvbGxvdykgeyBTLnBvcy54ID0gUy5mb2xsb3cueDsgUy5wb3MueSA9IFMuZm9sbG93Lnk7IFMucG9zLnZ4ID0gUy5wb3MudnkgPSAwOyB9CiAgICAgIGVsc2UgewogICAgICAgIGNvbnN0IHMgPSBNYXRoLm1pbigwLjEsIGR0KSwgbiA9IDQ7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgIGNvbnN0IGggPSBzIC8gbjsKICAgICAgICAgIFMucG9zLnZ4ICs9ICgoMCAtIFMucG9zLngpICogNDIwIC0gUy5wb3MudnggKiAyMC41KSAqIGg7IFMucG9zLnZ5ICs9ICgoMCAtIFMucG9zLnkpICogNDIwIC0gUy5wb3MudnkgKiAyMC41KSAqIGg7CiAgICAgICAgICBTLnBvcy54ICs9IFMucG9zLnZ4ICogaDsgUy5wb3MueSArPSBTLnBvcy52eSAqIGg7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnN0IG1hcmdpbiA9IDIuNCAqIHUgKyAwLjA2ICogbWluU2lkZTsKICAgICAgY29uc3QgcmVhY2ggPSAoc2lkZSkgPT4gewogICAgICAgIGNvbnN0IHZlcnRpY2FsID0gc2lkZSA9PT0gInRvcCIgfHwgc2lkZSA9PT0gImJvdHRvbSI7CiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGRvdCwgdHJpQXBleCwgdHJpSGFsZiwgdmVydGljYWwgPyB0cmlIYWxmIDogdHJpSGFsZik7CiAgICAgIH07CiAgICAgIGNvbnN0IHJvb20gPSAoc2lkZSkgPT4gewogICAgICAgIGNvbnN0IGhhbGYgPSAoc2lkZSA9PT0gInRvcCIgfHwgc2lkZSA9PT0gImJvdHRvbSIgPyByLmggOiByLncpIC8gMjsKICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgaGFsZiAtIG1hcmdpbiAtIHJlYWNoKHNpZGUpKTsKICAgICAgfTsKICAgICAgY29uc3QgZHggPSBjbGFtcChTLnBvcy54ICogci53IC8gMiwgLXJvb20oImxlZnQiKSwgcm9vbSgicmlnaHQiKSksIGR5ID0gY2xhbXAoUy5wb3MueSAqIHIuaCAvIDIsIC1yb29tKCJ0b3AiKSwgcm9vbSgiYm90dG9tIikpOwogICAgICBjb25zdCBjeCA9IHIueCArIHIudyAvIDIgKyBkeCwgY3kgPSByLnkgKyByLmggLyAyICsgZHk7CgogICAgICAvLyB0aGUga2ljayBhbmQgdGhlIHNob3Qgb2YgdGhlIHNoYWtlIHRoYXQgbGFzdCBmaXJlZAogICAgICBsZXQga2ljayA9IG51bGwsIHNob3QgPSBudWxsLCBzaWRlID0gUy5raWNrICYmIFMua2ljay5zaWRlOwogICAgICBpZiAoUy5raWNrKSB7CiAgICAgICAgY29uc3QgdCA9IChub3cgLSBTLmtpY2sudDApIC8gMTAwMDsKICAgICAgICBraWNrID0ga2lja0F0KHQpOyBzaG90ID0gc2hvdEF0KHQpOwogICAgICAgIGlmICgha2ljayAmJiAhc2hvdCkgUy5raWNrID0gbnVsbDsKICAgICAgfQoKICAgICAgY29uc3QgdHJpID0gKHNkLCBvZmYsIHN0cmV0Y2gsIGZpbGwsIGV4dHJhID0gMCkgPT4gewogICAgICAgIGNvbnN0IG8gPSBPVVRbc2RdLCBwID0gWy1vWzFdLCBvWzBdXTsKICAgICAgICBjb25zdCBiID0gW2N4ICsgb1swXSAqICh0cmlCYXNlICsgb2ZmICsgZXh0cmEpLCBjeSArIG9bMV0gKiAodHJpQmFzZSArIG9mZiArIGV4dHJhKV07CiAgICAgICAgY29uc3QgYSA9IFtjeCArIG9bMF0gKiAodHJpQXBleCArIG9mZiArIGV4dHJhKSwgY3kgKyBvWzFdICogKHRyaUFwZXggKyBvZmYgKyBleHRyYSldOwogICAgICAgIGNvbnN0IGggPSB0cmlIYWxmICogc3RyZXRjaDsKICAgICAgICBjdHguZmlsbFN0eWxlID0gZmlsbDsKICAgICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oYVswXSwgYVsxXSk7IGN0eC5saW5lVG8oYlswXSArIHBbMF0gKiBoLCBiWzFdICsgcFsxXSAqIGgpOyBjdHgubGluZVRvKGJbMF0gLSBwWzBdICogaCwgYlsxXSAtIHBbMV0gKiBoKTsKICAgICAgICBjdHguY2xvc2VQYXRoKCk7IGN0eC5maWxsKCk7CiAgICAgIH07CiAgICAgIGxldCBzaGlmdCA9IFswLCAwXTsKICAgICAgZm9yIChjb25zdCBzZCBvZiBTSURFUykgewogICAgICAgIGlmIChzZCA9PT0gc2lkZSAmJiBraWNrKSB7CiAgICAgICAgICBjb25zdCBvdXQgPSBraWNrLm91dCA+PSAwID8ga2ljay5vdXQgKiA2ICogdSA6IGtpY2sub3V0ICogdSAqIDAuODsKICAgICAgICAgIHRyaShzZCwgb3V0LCAxICsgMC40ICogTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwga2ljay5vdXQpICogMS42KSwgbWl4KGtpY2suZmxhc2gpKTsKICAgICAgICAgIHNoaWZ0ID0gW09VVFtzZF1bMF0gKiBraWNrLm91dCAqIGRvdCAqIDAuOCwgT1VUW3NkXVsxXSAqIGtpY2sub3V0ICogZG90ICogMC44XTsKICAgICAgICB9IGVsc2UgdHJpKHNkLCAwLCAxLCBtaXgoMCkpOwogICAgICB9CiAgICAgIGN0eC5maWxsU3R5bGUgPSBtaXgoa2ljayA\/IGtpY2suZmxhc2ggOiAwKTsKICAgICAgY3R4LmJlZ2luUGF0aCgpOyBjdHguYXJjKGN4ICsgc2hpZnRbMF0sIGN5ICsgc2hpZnRbMV0sIGRvdCwgMCwgVEFVKTsgY3R4LmZpbGwoKTsKCiAgICAgIGlmIChzaG90ICYmIHNpZGUpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGNvcHkgZmx5aW5nIG91dCB0aHJvdWdoIHRoZSBwYWQncyBlZGdlIGFuZCBiZXlvbmQKICAgICAgICBjb25zdCBoYWxmID0gKHNpZGUgPT09ICJ0b3AiIHx8IHNpZGUgPT09ICJib3R0b20iID8gci5oIDogci53KSAvIDI7CiAgICAgICAgbGV0IHJvb21QeCA9IDIgKiBoYWxmOwogICAgICAgIHJvb21QeCArPSBzaWRlID09PSAibGVmdCIgPyBkeCA6IHNpZGUgPT09ICJyaWdodCIgPyAtZHggOiBzaWRlID09PSAidG9wIiA\/IGR5IDogLWR5OwogICAgICAgIHRyaShzaWRlLCAwLCAxLCBtaXgoMCwgc2hvdC5hbHBoYSksIHNob3QudHJhdmVsICogTWF0aC5tYXgoMCwgcm9vbVB4KSk7CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBmcmFtZShub3cpIHsKICAgICAgY29uc3QgZHQgPSAobm93IC0gbGFzdCkgLyAxMDAwOyBsYXN0ID0gbm93OwogICAgICBmaXQoKTsgY3R4LmNsZWFyUmVjdCgwLCAwLCBXLCBIKTsKICAgICAgY29uc3QgciA9IHBhZFJlY3QoKTsKICAgICAgZHJhd0VkZ2VzKHIsIG5vdyk7IGRyYXdDcm9zcyhyLCBub3cpOyBkcmF3U2hha2Uociwgbm93LCBkdCk7CiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmcmFtZSk7CiAgICB9CiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwoKICAgIHJldHVybiB7CiAgICAgIHNldEhhcyhoYXMpIHsgUy5oYXMgPSBoYXMgfHwge307IFMuYnVtcCA9IFMua2ljayA9IG51bGw7IFMuZm9sbG93ID0gbnVsbDsgUy5wb3MueCA9IFMucG9zLnkgPSAwOyBTLmNyb3NzLmFtb3VudCA9IDA7IFMuY3Jvc3MuZG93biA9IGZhbHNlOyB9LAogICAgICBzbGlkZUJ1bXAoZWRnZSkgeyBTLmJ1bXAgPSB7IGVkZ2UsIHQwOiBwZXJmb3JtYW5jZS5ub3coKSB9OyB9LAogICAgICBzaGFrZShzaWRlKSB7IFMua2ljayA9IHsgc2lkZSwgdDA6IHBlcmZvcm1hbmNlLm5vdygpIH07IH0sCiAgICAgIGZvbGxvdyh4LCB5KSB7IFMuZm9sbG93ID0geCA9PSBudWxsID8gbnVsbCA6IHsgeDogY2xhbXAoeCwgLTEsIDEpLCB5OiBjbGFtcCh5LCAtMSwgMSkgfTsgfSwKICAgICAgY3Jvc3MoeCwgeSwgZG93bikgewogICAgICAgIGNvbnN0IGMgPSBTLmNyb3NzOwogICAgICAgIGlmICh4ICE9IG51bGwpIHsgYy54ID0geDsgYy55ID0geTsgfQogICAgICAgIGlmIChkb3duKSB7IGMuZG93biA9IHRydWU7IGMuYW1vdW50ID0gMTsgfSBlbHNlIGlmIChjLmRvd24pIHsgYy5kb3duID0gZmFsc2U7IGMuc2luY2UgPSBwZXJmb3JtYW5jZS5ub3coKTsgfQogICAgICB9LAogICAgfTsKICB9CgogIHdpbmRvdy5EcnV3UGFkR3JhbW1hciA9IHsgY3JlYXRlIH07Cn0pKCk7CgovKiBHZXN0dXJlIHBhZDogb25lIHBhZCwgdGhlIGZvdXIgZmFtaWxpZXMgb2YgZ2VzdHVyZXMgdGhlIGd1aWRlIGRlc2NyaWJlcyAoVE9VQ0gsIFNMSURFLCBTSEFLRSwgTUFQKS4KICAgRWFjaCBmYW1pbHkgc2hvd3Mgb25seSB0aGUgc2xvdHMgYSBwYWQgd2l0aCB0aG9zZSBnZXN0dXJlcyB3b3VsZCBoYXZlLCBhcyB0aGUgcGx1Z2luIGRvZXMuICovCihmdW5jdGlvbiAoKSB7CiAgInVzZSBzdHJpY3QiOwogIGNvbnN0IEQgPSB3aW5kb3cuRHJ1d0RlbW87CiAgY29uc3QgJCA9IChzKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHMpOwoKICAvKiBFYWNoIGZhbWlseSBpcyBhIHBhZCB3aXRoIHRob3NlIGdlc3R1cmVzIChgaGFzYCkgYW5kIHRoZSBzbG90cyB0aGV5IGdpdmUgaXQ7IHRoZSBzb3VuZHMgYXJlIHRoZSBzYW1lCiAgICAgaW4gZXZlcnkgZmFtaWx5LCBzbyBBTEwgaXMgdGhlIG90aGVyIGZvdXIgb24gb25lIHBhZC4gQSBzbG90OiBpdHMga2V5LCBpdHMgbGFiZWwsIHRoZSBzYW1wbGUgaXQgcGxheXMuICovCiAgY29uc3QgVE9VQ0ggPSB7IGtleTogInRvdWNoIiwgbGFiZWw6ICJUT1VDSCIsIHNhbXBsZTogImtpY2siIH07CiAgY29uc3QgU0xJREVTID0gW3sga2V5OiAic2xpZGUtbGVmdCIsIGxhYmVsOiAiU0xJREUgTEVGVCIsIHNhbXBsZTogImNvbmdhIiB9LCB7IGtleTogInNsaWRlLXJpZ2h0IiwgbGFiZWw6ICJTTElERSBSSUdIVCIsIHNhbXBsZTogImNvdyIgfSwKICAgICAgICAgICAgICAgICAgeyBrZXk6ICJzbGlkZS10b3AiLCBsYWJlbDogIlNMSURFIFRPUCIsIHNhbXBsZTogInR1bSIgfSwgeyBrZXk6ICJzbGlkZS1ib3R0b20iLCBsYWJlbDogIlNMSURFIEJPVFRPTSIsIHNhbXBsZTogIndvb2QiIH1dOwogIGNvbnN0IFNIQUtFUyA9IFt7IGtleTogInNoYWtlLWxlZnQiLCBsYWJlbDogIlNIQUtFIExFRlQiLCBzYW1wbGU6ICJzaGFrQiIgfSwgeyBrZXk6ICJzaGFrZS1yaWdodCIsIGxhYmVsOiAiU0hBS0UgUklHSFQiLCBzYW1wbGU6ICJzaGFrQmxlZCIgfSwKICAgICAgICAgICAgICAgICAgeyBrZXk6ICJzaGFrZS11cCIsIGxhYmVsOiAiU0hBS0UgVVAiLCBzYW1wbGU6ICJzaGFrUG9wbyIgfSwgeyBrZXk6ICJzaGFrZS1kb3duIiwgbGFiZWw6ICJTSEFLRSBET1dOIiwgc2FtcGxlOiAic2hha1Nwcm91dCIgfV07CiAgY29uc3QgRkFNSUxJRVMgPSBbCiAgICB7IGlkOiAiVE9VQ0giLCBoYXM6IHsgdG91Y2g6IDEgfSwgaGludDogIlRhcCB0aGUgcGFkLiIsIHNsb3RzOiBbVE9VQ0hdIH0sCiAgICB7IGlkOiAiU0xJREUiLCBoYXM6IHsgc2xpZGU6IDEgfSwgaGludDogIlN0YXJ0IG91dHNpZGUgdGhlIHBhZCwgdGhlbiBkcmFnIGEgZmluZ2VyIGluIGFjcm9zcyBvbmUgb2YgaXRzIGVkZ2VzLiIsIHNsb3RzOiBTTElERVMgfSwKICAgIHsgaWQ6ICJTSEFLRSIsIGhhczogeyBzaGFrZTogMSB9LCBoaW50OiAiUHV0IGEgZmluZ2VyIG9uIHRoZSBwYWQsIHRoZW4gbW92ZSBpdCBiYWNrIGFuZCBmb3J0aC4iLCBzbG90czogU0hBS0VTIH0sCiAgICB7IGlkOiAiTUFQIiwgaGFzOiB7IHRvdWNoOiAxLCBtYXA6IDEgfSwgc2xvdHM6IFtUT1VDSF0sCiAgICAgIGhpbnQ6ICJUYXAgdGhlIHBhZDogdGhlIGhlaWdodCBzZXRzIGhvdyBmYXIgdGhlIHBpdGNoIGZhbGxzIGF0IHRoZSBzdGFydCBvZiB0aGUgc291bmQgKDAgdG8gMTkgc2VtaXRvbmVzLCBpbiA4NSBtcykuIE1vdmUgeW91ciBmaW5nZXIgbGVmdCBvciByaWdodCB3aGlsZSBpdCByaW5ncyB0byBzd2VlcCB0aGUgZmlsdGVyLiIgfSwKICAgIHsgaWQ6ICJBTEwiLCBoYXM6IHsgdG91Y2g6IDEsIHNsaWRlOiAxLCBzaGFrZTogMSwgbWFwOiAxIH0sIHNsb3RzOiBbVE9VQ0gsIC4uLlNMSURFUywgLi4uU0hBS0VTXSwKICAgICAgaGludDogIkV2ZXJ5dGhpbmcgb24gb25lIHBhZC4gVGFwIGl0IChoZWlnaHQgPSBwaXRjaCBkcm9wLCBsZWZ0IHRvIHJpZ2h0ID0gZmlsdGVyKSwgc2xpZGUgaW4gZnJvbSBhbiBlZGdlLCBvciBrZWVwIHlvdXIgZmluZ2VyIGRvd24gYW5kIG1vdmUgaXQgYmFjayBhbmQgZm9ydGguIFNsaWRpbmcgaW4gcGxheXMgdGhlIGVkZ2UncyBzb3VuZCBhbmQgdGhlIFRPVUNIIG9uZS4iIH0sCiAgXTsKICBjb25zdCBTQU1QTEVTID0gWyJraWNrIiwgImNvbmdhIiwgImNvdyIsICJ0dW0iLCAid29vZCIsICJzaGFrQiIsICJzaGFrQmxlZCIsICJzaGFrUG9wbyIsICJzaGFrU3Byb3V0Il07CiAgbGV0IGJwbSA9IDg4OwogIGNvbnN0IEdSSURTID0gW3sgbGFiZWw6ICJPRkYiLCBkaXY6IDAgfSwgeyBsYWJlbDogIjEvOCIsIGRpdjogMiB9LCB7IGxhYmVsOiAiMS8xNiIsIGRpdjogNCB9XTsKICBsZXQgZ3JpZCA9IDIsIG5leHQgPSBELnF1YW50aXplcihicG0sIEdSSURTW2dyaWRdLmRpdik7CgogIGNvbnN0IGZpZWxkID0gJCgiI2ZpZWxkIiksIHBhZCA9ICQoIiNwYWQiKSwgZmluZ2VyID0gJCgiI2ZpbmdlciIpOwogIGNvbnN0IGdyYW1tYXIgPSBEcnV3UGFkR3JhbW1hci5jcmVhdGUoJCgiI2dyYW1tYXIiKSwgcGFkKTsKICBsZXQgZmFtID0gMCwgcmVhZHkgPSBmYWxzZTsKCiAgY29uc3QgY2xhbXAgPSAodiwgYSwgYikgPT4gTWF0aC5taW4oYiwgTWF0aC5tYXgoYSwgdikpOwogIGNvbnN0IGN1dG9mZk9mID0gKHgpID0+IDMwMCAqIE1hdGgucG93KDE2MDAwIC8gMzAwLCB4KTsgICAgICAgLy8gMzAwIEh6IC4uIDE2IGtIeiwgZXhwb25lbnRpYWwKICBjb25zdCBBTU9VTlRfTUFYID0gMTksIEVOVl9NUyA9IDg1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBZOiBwaXRjaCBlbnZlbG9wZSBhbW91bnQgMC4uMTkgc3Q7IGl0IGZhbGxzIGZyb20gMSB0byAwIGluIDg1IG1zIGFsb25nIHggKiB4CiAgY29uc3QgYW1vdW50T2YgPSAoeSkgPT4geSAqIEFNT1VOVF9NQVg7CiAgY29uc3Qga2h6ID0gKGh6KSA9PiAoaHogPj0gMTAwMCA\/IChoeiAvIDEwMDApLnRvRml4ZWQoMSkgKyAiIGtIeiIgOiBNYXRoLnJvdW5kKGh6KSArICIgSHoiKTsKICBjb25zdCBzdCA9IChuKSA9PiAiKyIgKyAoTWF0aC5yb3VuZChuICogMTApIC8gMTApICsgIiBzdCI7CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc291bmQgKyBmZWVkYmFjayAqLwoKICBjb25zdCBsaXQgPSB7fTsKICBmdW5jdGlvbiBsaWdodChrZXkpIHsKICAgIGNvbnN0IGxpID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnNsb3RbZGF0YS1zbG90PSIke2tleX0iXWApOwogICAgY29uc3QgY2VsbHMgPSBrZXkgPT09ICJ0b3VjaCIgJiYgRkFNSUxJRVNbZmFtXS5oYXMubWFwID8gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tY2VsbC5vbiIpXSA6IFtdOwogICAgaWYgKCFsaSAmJiAhY2VsbHMubGVuZ3RoKSByZXR1cm47CiAgICBjb25zdCBlbHMgPSBbbGksIC4uLmNlbGxzXS5maWx0ZXIoQm9vbGVhbik7CiAgICBlbHMuZm9yRWFjaCgoZSkgPT4gZS5jbGFzc0xpc3QuYWRkKCJsaXQiKSk7CiAgICBjbGVhclRpbWVvdXQobGl0W2tleV0pOwogICAgbGl0W2tleV0gPSBzZXRUaW1lb3V0KCgpID0+IGVscy5mb3JFYWNoKChlKSA9PiBlLmNsYXNzTGlzdC5yZW1vdmUoImxpdCIpKSwgMjYwKTsKICB9CgogIGZ1bmN0aW9uIGhpdChzbG90LCBvID0ge30pIHsKICAgIGlmICghcmVhZHkpIHJldHVybiBudWxsOwogICAgY29uc3Qgd2hlbiA9IG5leHQoR1JJRFNbZ3JpZF0uZGl2ID09PSAwKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbmV4dCBzdGVwIG9mIHRoZSBncmlkIChub3csIHdoZW4gb2ZmKQogICAgY29uc3Qgdm9pY2UgPSBELnBsYXkoc2xvdC5zYW1wbGUsIHsgc2VtaXRvbmVzOiBzbG90LnNlbWl0b25lcyB8fCAwLCBjdXRvZmY6IG8uY3V0b2ZmLCB3aGVuLAogICAgICBwaXRjaEVudjogby5hbW91bnQgPiAwID8geyBzZW1pdG9uZXM6IG8uYW1vdW50LCBtczogRU5WX01TLCBwb3dlcjogMiB9IDogbnVsbCB9KTsKICAgIGNvbnN0IHdhaXQgPSBNYXRoLm1heCgwLCAod2hlbiAtIEQudW5sb2NrKCkuY3VycmVudFRpbWUpICogMTAwMCk7CiAgICBzZXRUaW1lb3V0KCgpID0+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoYXQgaXMgc2VlbiBmb2xsb3dzIHdoYXQgaXMgaGVhcmQKICAgICAgY29uc3Qgc2hpbmUgPSBwYWQucXVlcnlTZWxlY3RvcigiLnNoaW5lIik7CiAgICAgIHNoaW5lLmNsYXNzTGlzdC5yZW1vdmUoImhpdCIpOyB2b2lkIHNoaW5lLm9mZnNldFdpZHRoOyBzaGluZS5jbGFzc0xpc3QuYWRkKCJoaXQiKTsKICAgICAgbGlnaHQoc2xvdC5rZXkpOwogICAgfSwgd2FpdCk7CiAgICByZXR1cm4gdm9pY2U7CiAgfQogIGNvbnN0IHNsb3RPZiA9IChrZXkpID0+IEZBTUlMSUVTW2ZhbV0uc2xvdHMuZmluZCgocykgPT4gcy5rZXkgPT09IGtleSk7CgogIGZ1bmN0aW9uIHNheSh0ZXh0KSB7ICQoIiNsYXN0IikudGV4dENvbnRlbnQgPSB0ZXh0OyB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gdGhlIGZhbWlseSBzZWxlY3RvciAqLwoKICBmdW5jdGlvbiBzaG93KGkpIHsKICAgIGZhbSA9IChpICsgRkFNSUxJRVMubGVuZ3RoKSAlIEZBTUlMSUVTLmxlbmd0aDsgICAgICAgICAgICAgICAgLy8gbG9vcHM6ID4gb24gdGhlIGxhc3QgZ29lcyBiYWNrIHRvIHRoZSBmaXJzdAogICAgY29uc3QgZiA9IEZBTUlMSUVTW2ZhbV07CiAgICAkKCIjZmFtaWx5IikudGV4dENvbnRlbnQgPSBmLmlkOwogICAgJCgiI2hpbnQiKS50ZXh0Q29udGVudCA9IGYuaGludDsKICAgIGdyYW1tYXIuc2V0SGFzKGYuaGFzKTsKICAgICQoIiNtYWNyb3MiKS5oaWRkZW4gPSAhZi5oYXMubWFwOwogICAgaWYgKGYuaGFzLm1hcCkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGRyYXdFbnYoMCkpOwogICAgJCgiI3Nsb3RzIikuaW5uZXJIVE1MID0gc2xvdHNIdG1sKGYpOwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNsb3QiKS5mb3JFYWNoKChlbCkgPT4gewogICAgICBjb25zdCBzbG90ID0gZi5zbG90cy5maW5kKCh4KSA9PiB4LmtleSA9PT0gZWwuZGF0YXNldC5zbG90KTsKICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCAoZSkgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IEQudW5sb2NrKCk7IGhpdChzbG90KTsgfSk7CiAgICB9KTsKICAgIGRyYXdXYXZlcygpOwogICAgc2F5KCJub25lIHlldCIpOwogICAgcmVzaXplKCk7CiAgfQogIGZ1bmN0aW9uIGRyYXdXYXZlcygpIHsKICAgIGlmICghcmVhZHkpIHJldHVybjsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zbG90IGNhbnZhcyIpLmZvckVhY2goKGN2KSA9PiBELndhdmVmb3JtKGN2LCBjdi5kYXRhc2V0LnNhbXBsZSwgIiM3YzQxMTkiKSk7CiAgfQoKICAvKiBXaGF0IGEgc2xvdCBzaG93cyBiZXNpZGUgaXRzIHdhdmVmb3JtIHNheXMgd2hpY2ggZ2VzdHVyZSBpdCBpczogdGhlIGVkZ2UgYSBzbGlkZSBlbnRlcnMgYnksIHRoZSBkb3QgYW5kCiAgICAgdGhlIGFycm93IG9mIGEgc2hha2UgLS0gYXMgaW4gdGhlIHBsdWdpbi4gKi8KICBmdW5jdGlvbiBzbG90SHRtbChzKSB7CiAgICBjb25zdCBba2luZCwgZGlyXSA9IHMua2V5LnNwbGl0KCItIik7CiAgICBjb25zdCBtYXJrID0ga2luZCA9PT0gInNsaWRlIiA\/IGA8c3BhbiBjbGFzcz0iZWRnZWJhciAke2Rpcn0iPjwvc3Bhbj5gCiAgICAgICAgICAgICAgIDoga2luZCA9PT0gInNoYWtlIiA\/IGA8c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRyaSAke2Rpcn0iPjwvc3Bhbj5gIDogIiI7CiAgICByZXR1cm4gYDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2xvdCIgZGF0YS1zbG90PSIke3Mua2V5fSIgYXJpYS1sYWJlbD0iJHtzLmxhYmVsfTogcHJlc3MgaXQgdG8gaGVhciBpdCI+YCArCiAgICAgICAgICAgYDxjYW52YXMgZGF0YS1zYW1wbGU9IiR7cy5zYW1wbGV9Ij48L2NhbnZhcz4ke21hcmt9PC9idXR0b24+YDsKICB9CiAgY29uc3QgTUFDUk8gPSB7IHg6IDIsIHk6IDEgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG1hY3JvIGVhY2ggYXhpcyB0dXJuczogWCB0aGUgZmlsdGVyLCBZIHRoZSBwaXRjaCBlbnZlbG9wZQogIGZ1bmN0aW9uIG1hcEJveChheGlzKSB7CiAgICBjb25zdCBjZWxscyA9IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XS5tYXAoKG4pID0+IHsKICAgICAgY29uc3QgY2xzID0gbiA9PT0gTUFDUk9bYXhpc10gPyAib24iIDogbiA9PT0gTUFDUk9bYXhpcyA9PT0gIngiID8gInkiIDogIngiXSA\/ICJ1c2VkIiA6ICIiOwogICAgICByZXR1cm4gYDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibWNlbGwgJHtjbHN9IiBkYXRhLWF4aXM9IiR7YXhpc30iIHRhYmluZGV4PSItMSIgYXJpYS1oaWRkZW49InRydWUiPiR7bn08L2J1dHRvbj5gOwogICAgfSkuam9pbigiIik7CiAgICByZXR1cm4gYDxkaXYgY2xhc3M9Im1hcGJveCIgZGF0YS1zbG90PSJtYXAtJHtheGlzfSI+PGgzIGNsYXNzPSJ1aSI+TUFQICR7YXhpcy50b1VwcGVyQ2FzZSgpfTwvaDM+PGRpdiBjbGFzcz0ibWdyaWQiPiR7Y2VsbHN9PC9kaXY+PC9kaXY+YDsKICB9CiAgZnVuY3Rpb24gc2xvdHNIdG1sKGYpIHsKICAgIGNvbnN0IGJ5ID0gKGtpbmQpID0+IGYuc2xvdHMuZmlsdGVyKChzKSA9PiBzLmtleS5zcGxpdCgiLSIpWzBdID09PSBraW5kKTsKICAgIGNvbnN0IGdyb3VwID0gKHRpdGxlLCBsaXN0KSA9PiBsaXN0Lmxlbmd0aAogICAgICA\/IGA8c2VjdGlvbiBjbGFzcz0iZ3JwIj48aDMgY2xhc3M9InVpIj4ke3RpdGxlfTwvaDM+PGRpdiBjbGFzcz0icm93Ij4ke2xpc3QubWFwKHNsb3RIdG1sKS5qb2luKCIiKX08L2Rpdj48L3NlY3Rpb24+YCA6ICIiOwogICAgcmV0dXJuIGdyb3VwKCJUT1VDSCIsIGJ5KCJ0b3VjaCIpKSArIGdyb3VwKCJTTElERSIsIGJ5KCJzbGlkZSIpKSArIGdyb3VwKCJTSEFLRSIsIGJ5KCJzaGFrZSIpKSArCiAgICAgICAgICAgKGYuaGFzLm1hcCA\/IGA8c2VjdGlvbiBjbGFzcz0iZ3JwIj48ZGl2IGNsYXNzPSJyb3ciPiR7bWFwQm94KCJ4Iil9JHttYXBCb3goInkiKX08L2Rpdj48L3NlY3Rpb24+YCA6ICIiKTsKICB9CiAgJCgiI3ByZXYiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHNob3coZmFtIC0gMSkpOwogICQoIiNuZXh0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiBzaG93KGZhbSArIDEpKTsKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgKGUpID0+IHsKICAgIGlmIChlLmtleSA9PT0gIkFycm93TGVmdCIpIHNob3coZmFtIC0gMSk7CiAgICBpZiAoZS5rZXkgPT09ICJBcnJvd1JpZ2h0Iikgc2hvdyhmYW0gKyAxKTsKICB9KTsKCiAgZnVuY3Rpb24gc2V0R3JpZChpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcHM6ID4gb24gdGhlIGxhc3QgZ29lcyBiYWNrIHRvIHRoZSBmaXJzdAogICAgZ3JpZCA9IChpICsgR1JJRFMubGVuZ3RoKSAlIEdSSURTLmxlbmd0aDsKICAgICQoIiNxdWFudCIpLnRleHRDb250ZW50ID0gR1JJRFNbZ3JpZF0ubGFiZWw7CiAgICBuZXh0ID0gRC5xdWFudGl6ZXIoYnBtLCBHUklEU1tncmlkXS5kaXYpOwogIH0KCiAgZnVuY3Rpb24gc2V0VGVtcG8odikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdob2xlIEJQTSwgNDAgLi4gMjQwCiAgICBicG0gPSBjbGFtcChNYXRoLnJvdW5kKCt2KSB8fCBicG0sIDQwLCAyNDApOwogICAgJCgiI2JwbSIpLnZhbHVlID0gYnBtOwogICAgbmV4dCA9IEQucXVhbnRpemVyKGJwbSwgR1JJRFNbZ3JpZF0uZGl2KTsKICB9CiAgJCgiI2JwbSIpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIChlKSA9PiBzZXRUZW1wbyhlLnRhcmdldC52YWx1ZSkpOwogICQoIiNicG0iKS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgKGUpID0+IHsgaWYgKGUua2V5ID09PSAiRW50ZXIiKSBlLnRhcmdldC5ibHVyKCk7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IH0pOyAgLy8gYXJyb3dzIG1vdmUgdGhlIGNhcmV0LCBub3QgdGhlIGZhbWlseQogICQoIiN0ZG93biIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gc2V0VGVtcG8oYnBtIC0gMSkpOwogICQoIiN0dXAiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHNldFRlbXBvKGJwbSArIDEpKTsKICAkKCIjcXByZXYiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHNldEdyaWQoZ3JpZCAtIDEpKTsKICAkKCIjcW5leHQiKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHNldEdyaWQoZ3JpZCArIDEpKTsKCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0aGUgZmluZ2VyICovCgogIGxldCBkb3duID0gZmFsc2UsIHByZXYgPSBudWxsLCB2b2ljZSA9IG51bGwsIHNoYWtlID0gbnVsbDsKCiAgZnVuY3Rpb24gbG9jYWwoZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwLi4xIGFjcm9zcyB0aGUgcGFkIChvdXRzaWRlIGl0OiA8MCBvciA+MSkKICAgIGNvbnN0IGYgPSBmaWVsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgcCA9IHBhZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHJldHVybiB7CiAgICAgIHg6IChlLmNsaWVudFggLSBwLmxlZnQpIC8gcC53aWR0aCwgeTogKGUuY2xpZW50WSAtIHAudG9wKSAvIHAuaGVpZ2h0LAogICAgICBmeDogZS5jbGllbnRYIC0gZi5sZWZ0LCBmeTogZS5jbGllbnRZIC0gZi50b3AsCiAgICB9OwogIH0KICBjb25zdCBpbnNpZGUgPSAocCkgPT4gcC54ID49IDAgJiYgcC54IDw9IDEgJiYgcC55ID49IDAgJiYgcC55IDw9IDE7CgogIGZ1bmN0aW9uIGVudHJ5RWRnZShhLCBiKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggZWRnZSB0aGUgZmluZ2VyIGNyb3NzZWQsIGNvbWluZyBmcm9tIGEKICAgIGNvbnN0IGR4ID0gYS54IDwgMCA\/IC1hLnggOiBhLnggPiAxID8gYS54IC0gMSA6IDAsIGR5ID0gYS55IDwgMCA\/IC1hLnkgOiBhLnkgPiAxID8gYS55IC0gMSA6IDA7CiAgICBpZiAoZHggPj0gZHkpIHJldHVybiBhLnggPCAwID8gImxlZnQiIDogInJpZ2h0IjsKICAgIHJldHVybiBhLnkgPCAwID8gInRvcCIgOiAiYm90dG9tIjsKICB9CgogIGZ1bmN0aW9uIG1hY3JvTm93KHApIHsKICAgIGNvbnN0IHggPSBjbGFtcChwLngsIDAsIDEpLCB5ID0gMSAtIGNsYW1wKHAueSwgMCwgMSk7ICAgICAgICAgLy8gWSBncm93cyB1cHdhcmQKICAgIHJldHVybiB7IGN1dG9mZjogY3V0b2ZmT2YoeCksIGFtb3VudDogYW1vdW50T2YoeSkgfTsKICB9CiAgZnVuY3Rpb24gc2hvd01hY3JvcyhtKSB7CiAgICAkKCIjbS14IikudGV4dENvbnRlbnQgPSBraHoobS5jdXRvZmYpOwogICAgJCgiI20teSIpLnRleHRDb250ZW50ID0gc3QobS5hbW91bnQpOwogICAgZHJhd0VudihtLmFtb3VudCk7CiAgfQoKICAvKiBUaGUgZW52ZWxvcGUgdGhlIFkgbWFjcm8gc2V0czogZnJvbSB0aGUgYW1vdW50IChpbiBzZW1pdG9uZXMpIGRvd24gdG8gMCBhbG9uZyAoMSAtIHQpXjIsIG92ZXIgNzAgbXMuICovCiAgZnVuY3Rpb24gZHJhd0VudihhbW91bnQpIHsKICAgIGNvbnN0IGN2ID0gJCgiI2VudiIpLCBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLCB3ID0gY3YuY2xpZW50V2lkdGgsIGggPSBjdi5jbGllbnRIZWlnaHQ7CiAgICBjdi53aWR0aCA9IE1hdGgucm91bmQodyAqIGRwcik7IGN2LmhlaWdodCA9IE1hdGgucm91bmQoaCAqIGRwcik7CiAgICBjb25zdCBnID0gY3YuZ2V0Q29udGV4dCgiMmQiKTsgZy5zY2FsZShkcHIsIGRwcik7CiAgICBnLnN0cm9rZVN0eWxlID0gIiMzYmM5ZGIiOyBnLmxpbmVXaWR0aCA9IDI7IGcuYmVnaW5QYXRoKCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSA0ODsgaSsrKSB7CiAgICAgIGNvbnN0IHQgPSBpIC8gNDgsIHkgPSBoIC0gNiAtIChoIC0gMTIpICogKGFtb3VudCAvIEFNT1VOVF9NQVgpICogTWF0aC5wb3coMSAtIHQsIDIpOwogICAgICBpID8gZy5saW5lVG8oNiArIHQgKiAodyAtIDEyKSwgeSkgOiBnLm1vdmVUbyg2LCB5KTsKICAgIH0KICAgIGcuc3Ryb2tlKCk7CiAgICBnLmZpbGxTdHlsZSA9ICIjZjNmM2Y1IjsgZy5mb250ID0gIjcwMCAxMS41cHggQmFybG93LCBzYW5zLXNlcmlmIjsKICAgIGcuZmlsbFRleHQoRU5WX01TICsgIiBtcyIsIHcgLSA0OCwgMTQpOwogIH0KCiAgZmllbGQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCAoZSkgPT4gewogICAgRC51bmxvY2soKTsKICAgIHRyeSB7IGZpZWxkLnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKTsgfSBjYXRjaCAoZXJyKSB7IC8qIGEgc3ludGhldGljIHBvaW50ZXI6IG5vdGhpbmcgdG8gY2FwdHVyZSAqLyB9CiAgICBkb3duID0gdHJ1ZTsKICAgIGNvbnN0IHAgPSBsb2NhbChlKTsgcHJldiA9IHA7CiAgICBwbGFjZUZpbmdlcihwKTsKICAgIHBhZC5jbGFzc0xpc3QudG9nZ2xlKCJkb3duIiwgaW5zaWRlKHApKTsKICAgIGlmIChpbnNpZGUocCkpIHRvdWNoRG93bihwKTsKICB9KTsKCiAgLyogVGhlIGJhc2Ugb2YgdGhlIHBhZDogaXRzIFRPVUNILCB3aXRoIHRoZSBtYWNyb3Mgd2hlbiBpdCBoYXMgdGhlbS4gKi8KICBmdW5jdGlvbiBwbGF5VG91Y2gocCkgewogICAgY29uc3QgaGFzID0gRkFNSUxJRVNbZmFtXS5oYXM7CiAgICBpZiAoaGFzLm1hcCkgewogICAgICBjb25zdCBtID0gbWFjcm9Ob3cocCk7CiAgICAgIHNob3dNYWNyb3MobSk7CiAgICAgIHZvaWNlID0gaGl0KHNsb3RPZigidG91Y2giKSwgbSk7CiAgICAgIHNheSgiVE9VQ0ggwrcgWCAiICsga2h6KG0uY3V0b2ZmKSArICIgwrcgWSAiICsgc3QobS5hbW91bnQpKTsKICAgIH0gZWxzZSB7CiAgICAgIHZvaWNlID0gaGl0KHNsb3RPZigidG91Y2giKSk7CiAgICAgIHNheSgiVE9VQ0giKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHRvdWNoRG93bihwKSB7CiAgICBjb25zdCBoYXMgPSBGQU1JTElFU1tmYW1dLmhhczsKICAgIHNoYWtlID0geyB4OiB7IGRpcjogMCwgZXh0OiBwLnggfSwgeTogeyBkaXI6IDAsIGV4dDogcC55IH0gfTsKICAgIGlmIChoYXMudG91Y2gpIHBsYXlUb3VjaChwKTsKICAgIGVsc2UgaWYgKGhhcy5zbGlkZSAmJiAhaGFzLnNoYWtlKSBzYXkoIlRPVUNIIGlzIG5vdCBvbiB0aGlzIHBhZCIpOwogIH0KCiAgZmllbGQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCAoZSkgPT4gewogICAgaWYgKCFkb3duKSByZXR1cm47CiAgICBjb25zdCBwID0gbG9jYWwoZSksIGhhcyA9IEZBTUlMSUVTW2ZhbV0uaGFzOwogICAgcGxhY2VGaW5nZXIocCk7CiAgICBjb25zdCB3YXMgPSBwcmV2OyBwcmV2ID0gcDsKICAgIHBhZC5jbGFzc0xpc3QudG9nZ2xlKCJkb3duIiwgaW5zaWRlKHApKTsKCiAgICBpZiAoIWluc2lkZSh3YXMpICYmIGluc2lkZShwKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW1lIGluIHRocm91Z2ggYW4gZWRnZQogICAgICBpZiAoaGFzLnNsaWRlKSB7CiAgICAgICAgY29uc3QgZWRnZSA9IGVudHJ5RWRnZSh3YXMsIHApOwogICAgICAgIGhpdChzbG90T2YoInNsaWRlLSIgKyBlZGdlKSk7IGdyYW1tYXIuc2xpZGVCdW1wKGVkZ2UpOwogICAgICAgIHNheSgiU0xJREUgwrcgIiArIGVkZ2UudG9VcHBlckNhc2UoKSk7CiAgICAgICAgc2hha2UgPSB7IHg6IHsgZGlyOiAwLCBleHQ6IHAueCB9LCB5OiB7IGRpcjogMCwgZXh0OiBwLnkgfSB9OwogICAgICAgIGlmIChoYXMudG91Y2gpIHsgY29uc3QgdCA9IHZvaWNlOyBwbGF5VG91Y2gocCk7IGlmICghdm9pY2UpIHZvaWNlID0gdDsgc2F5KCJTTElERSDCtyAiICsgZWRnZS50b1VwcGVyQ2FzZSgpICsgIiArIFRPVUNIIik7IH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0b3VjaERvd24ocCk7CiAgICAgIH0KICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCFpbnNpZGUocCkpIHsgc3RvcFJlcGVhdCgpOyByZXR1cm47IH0KCiAgICBpZiAoaGFzLnNoYWtlICYmIHNoYWtlKSB0cmFja1NoYWtlKHApOwogICAgaWYgKGhhcy5tYXApIHsKICAgICAgY29uc3QgbSA9IG1hY3JvTm93KHApOwogICAgICBzaG93TWFjcm9zKG0pOwogICAgICBpZiAodm9pY2UpIHZvaWNlLnNldEN1dG9mZihtLmN1dG9mZik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJpbmdpbmcgbm90ZSBmb2xsb3dzIFggYXQgb25jZQogICAgfQogIH0pOwoKICAvKiBBIHNoYWtlOiB0aGUgZmluZ2VyIGdvZXMgb25lIHdheSBmYXIgZW5vdWdoLCB0aGVuIGJhY2suIEVhY2ggdHVybiBmaXJlcyB0aGUgZGlyZWN0aW9uIGl0IG5vdyBtb3ZlcyBpbi4gKi8KICBmdW5jdGlvbiB0cmFja1NoYWtlKHApIHsKICAgIGNvbnN0IFQgPSAwLjE0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhvdyBmYXIgY291bnRzLCBhcyBhIHNoYXJlIG9mIHRoZSBwYWQKICAgIGNvbnN0IGF4ZXMgPSBbWyJ4IiwgImxlZnQiLCAicmlnaHQiXSwgWyJ5IiwgInVwIiwgImRvd24iXV07CiAgICBmb3IgKGNvbnN0IFthLCBuZWcsIHBvc10gb2YgYXhlcykgewogICAgICBjb25zdCBzID0gc2hha2VbYV0sIHYgPSBwW2FdOwogICAgICBpZiAocy5kaXIgPT09IDApIHsKICAgICAgICBpZiAoTWF0aC5hYnModiAtIHMuZXh0KSA+PSBUKSB7IHMuZGlyID0gdiA+IHMuZXh0ID8gMSA6IC0xOyBzLmV4dCA9IHY7IGZpcmVTaGFrZShzLmRpciA+IDAgPyBwb3MgOiBuZWcpOyB9CiAgICAgIH0gZWxzZSBpZiAoKHYgLSBzLmV4dCkgKiBzLmRpciA+IDApIHsKICAgICAgICBzLmV4dCA9IHY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGdvaW5nIHRoZSBzYW1lIHdheQogICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKHYgLSBzLmV4dCkgPj0gVCkgewogICAgICAgIHMuZGlyID0gLXMuZGlyOyBzLmV4dCA9IHY7IGZpcmVTaGFrZShzLmRpciA+IDAgPyBwb3MgOiBuZWcpOwogICAgICB9CiAgICB9CiAgfQogIGZ1bmN0aW9uIGZpcmVTaGFrZShkaXIpIHsKICAgIGhpdChzbG90T2YoInNoYWtlLSIgKyBkaXIpKTsKICAgIGdyYW1tYXIuc2hha2UoZGlyID09PSAidXAiID8gInRvcCIgOiBkaXIgPT09ICJkb3duIiA\/ICJib3R0b20iIDogZGlyKTsKICAgIHNheSgiU0hBS0UgwrcgIiArIGRpci50b1VwcGVyQ2FzZSgpKTsKICB9CgogIGZ1bmN0aW9uIHN0b3BSZXBlYXQoKSB7IHZvaWNlID0gbnVsbDsgfQogIGZ1bmN0aW9uIHJlbGVhc2UoKSB7IGRvd24gPSBmYWxzZTsgcHJldiA9IG51bGw7IHN0b3BSZXBlYXQoKTsgZmluZ2VyLmhpZGRlbiA9IHRydWU7IHBhZC5jbGFzc0xpc3QucmVtb3ZlKCJkb3duIik7IGdyYW1tYXIuZm9sbG93KG51bGwpOyBncmFtbWFyLmNyb3NzKG51bGwsIG51bGwsIGZhbHNlKTsgfQogIGZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHJlbGVhc2UpOwogIGZpZWxkLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLCByZWxlYXNlKTsKCiAgZnVuY3Rpb24gcGxhY2VGaW5nZXIocCkgewogICAgZmluZ2VyLmhpZGRlbiA9IGZhbHNlOwogICAgZmluZ2VyLnN0eWxlLmxlZnQgPSBwLmZ4ICsgInB4IjsKICAgIGZpbmdlci5zdHlsZS50b3AgPSBwLmZ5ICsgInB4IjsKICAgIGNvbnN0IGhhcyA9IEZBTUlMSUVTW2ZhbV0uaGFzLCBvbiA9IGluc2lkZShwKTsKICAgIGlmIChoYXMuc2hha2UpIGdyYW1tYXIuZm9sbG93KG9uID8gKHAueCAtIDAuNSkgKiAyIDogbnVsbCwgKHAueSAtIDAuNSkgKiAyKTsgICAgICAgLy8gdGhlIGNsdXN0ZXIgc2l0cyB1bmRlciB0aGUgZmluZ2VyCiAgICBpZiAoaGFzLm1hcCAmJiBvbikgZ3JhbW1hci5jcm9zcyhjbGFtcChwLngsIDAsIDEpLCBjbGFtcChwLnksIDAsIDEpLCB0cnVlKTsgICAgICAgICAvLyB0aGUgY3Jvc3NoYWlyIGF0IGl0cyBsYXN0IHBvc2l0aW9uCiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHN0YXJ0ICovCgogIC8qIFRlbGwgdGhlIGd1aWRlIGhvdyB0YWxsIHRoZSBkZW1vIGlzLCBzbyBpdHMgZnJhbWUgZml0cyAodGhlIHdlYnNpdGUgbGlzdGVucykuICovCiAgZnVuY3Rpb24gcmVzaXplKCkgewogICAgY29uc3QgaCA9IE1hdGguY2VpbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVtbyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgKyAzMjsgICAvLyArIHRoZSBib2R5J3MgcGFkZGluZwogICAgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7IGRydXdEZW1vSGVpZ2h0OiBoLCBuYW1lOiAiZ2VzdHVyZS1wYWQiIH0sICIqIik7CiAgfQogIG5ldyBSZXNpemVPYnNlcnZlcihyZXNpemUpLm9ic2VydmUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmRlbW8iKSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNpemUpOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGUpID0+IHsgaWYgKGUuZGF0YSAmJiBlLmRhdGEuZHJ1d0RlbW9Bc2spIHJlc2l6ZSgpOyB9KTsKCiAgc2hvdygwKTsKICBELmxvYWQoIi93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC9kcnV3LWd1aWRlLWRlbW8tIiwgU0FNUExFUykudGhlbigoKSA9PiB7CiAgICByZWFkeSA9IHRydWU7CiAgICAkKCIjc3RhdHVzIikudGV4dENvbnRlbnQgPSAiU291bmQgb246ICIgKyAoRC5mb3JtYXQgPT09ICJvZ2ciID8gIk9nZyBWb3JiaXMiIDogIkFBQyIpICsgIiDCtyB0YXAgdGhlIHBhZCB0byBzdGFydC4iOwogICAgZHJhd1dhdmVzKCk7CiAgfSkuY2F0Y2goKGUpID0+IHsKICAgICQoIiNzdGF0dXMiKS50ZXh0Q29udGVudCA9ICJUaGUgc291bmRzIGNvdWxkIG5vdCBiZSBsb2FkZWQgKCIgKyBlLm1lc3NhZ2UgKyAiKS4iOwogIH0pOwp9KSgpOwo8L3NjcmlwdD48L2JvZHk+PC9odG1sPg==\";\nlet demoDoc=null;\nfunction barlowFaces(){let out=\"\";for(const s of document.styleSheets){let r;try{r=s.cssRules}catch(e){continue}\n  for(const x of r||[]) if(x.type===5&&\/Barlow\/.test(x.style.getPropertyValue(\"font-family\"))&&\/^(normal)?$\/.test(x.style.getPropertyValue(\"font-style\")||\"normal\")) out+=x.cssText+\"\\n\"}return out}\nfunction loadDemos(page){\n  page.querySelectorAll(\"iframe[data-demo]:not([srcdoc])\").forEach(f=>{\n    if(!demoDoc) demoDoc=new TextDecoder().decode(Uint8Array.from(atob(DEMO_B64),c=>c.charCodeAt(0))).replace(\"\/*FONTS*\/\",barlowFaces());\n    f.srcdoc=demoDoc;\n  });\n}\n\/* One page, every chapter in it: the hash picks the chapter (#play) or a\n   section of it (#play--quantize). Behaviour as in the VRAC+ guide. *\/\nconst $=s=>document.querySelector(s);\nconst PAGES=[...document.querySelectorAll(\"section.page\")];\nconst reduced=()=>matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\nlet observer=null, current=null, first=true;\nfunction render(){\n  const id=decodeURIComponent((location.hash||\"#welcome\").slice(1));\n  const target=document.getElementById(id);\n  const page=(target&&target.closest(\"section.page\"))||PAGES[0];\n  if(page!==current){\n    current=page;\n    PAGES.forEach(p=>p.classList.toggle(\"on\",p===page));\n    ROOT.style.setProperty(\"--accent\",page.style.getPropertyValue(\"--accent\"));\n    const heads=[...page.querySelectorAll(\"h2[id]\")];\n    $(\"#toc\").innerHTML=heads.length?`<h5>${T(\"toc\")}<\/h5><ul>${heads.map(h=>`<li><a href=\"#${h.id}\" data-to=\"${h.id}\">${h.textContent}<\/a><\/li>`).join(\"\")}<\/ul>`:\"\";\n    document.querySelectorAll(\".side .sub\").forEach(s=>s.remove());\n    document.querySelectorAll(\".side a[data-id]\").forEach(a=>{const on=a.dataset.id===page.id;a.classList.toggle(\"on\",on);on?a.setAttribute(\"aria-current\",\"page\"):a.removeAttribute(\"aria-current\");\n      if(on&&heads.length) a.insertAdjacentHTML(\"afterend\",`<ul class=\"sub\">${heads.map(h=>`<li><a href=\"#${h.id}\" data-to=\"${h.id}\">${h.textContent}<\/a><\/li>`).join(\"\")}<\/ul>`)});\n    document.querySelectorAll(\".side h4\").forEach(h=>h.classList.toggle(\"on\",h.dataset.g===page.dataset.group));\n    const gh=[...document.querySelectorAll(\".side h4\")].find(h=>h.dataset.g===page.dataset.group); const h1=page.querySelector(\"h1\");\n    $(\"#mbar-g\").textContent=gh?gh.textContent:page.dataset.group; $(\"#mbar-p\").textContent=h1?htext(h1):page.dataset.title;\n    const act=$(\".side a.on\"), side=$(\"#side\");\n    if(act){const r=act.getBoundingClientRect(), s=side.getBoundingClientRect(); if(r.top<s.top||r.bottom>s.bottom) side.scrollTop+=r.top-s.top-headH()-40;}\n    document.title=page.id===\"welcome\"?BASE_TITLE:(h1?htext(h1):page.dataset.title).replace(\/^\\d+\\s*\/,\"\").toLowerCase().replace(\/^.\/,c=>c.toUpperCase())+\" \u00b7 \"+BASE_TITLE;\n    loadDemos(page);\n    if(observer) observer.disconnect();\n    if(heads.length&&\"IntersectionObserver\" in window){\n      observer=new IntersectionObserver(es=>{es.forEach(e=>{if(e.isIntersecting){document.querySelectorAll(\".toc a\").forEach(a=>a.classList.toggle(\"on\",a.dataset.to===e.target.id));document.querySelectorAll(\".side .sub a\").forEach(a=>a.classList.toggle(\"cur\",a.dataset.to===e.target.id))}})},{rootMargin:\"-80px 0px -70% 0px\"});\n      heads.forEach(h=>observer.observe(h));\n    }\n  }\n  \/\/ The first load jumps: a smooth scroll there races the layout.\n  if(target&&target!==page) target.scrollIntoView({behavior:first||reduced()?\"auto\":\"smooth\"});\n  else if(location.hash){toGuideTop(); if(first) addEventListener(\"load\",()=>{if(!location.hash.includes(\"--\"))toGuideTop()},{once:true});}\n  first=false;\n  closeNav();\n}\nwindow.addEventListener(\"hashchange\",render);\n\n\/* Mobile nav *\/\nfunction closeNav(){$(\"#side\").classList.remove(\"open\");$(\"#scrim\").hidden=true;$(\"#mbar\").setAttribute(\"aria-expanded\",\"false\")}\n$(\"#mbar\").addEventListener(\"click\",()=>{const open=!$(\"#side\").classList.contains(\"open\");$(\"#side\").classList.toggle(\"open\",open);$(\"#scrim\").hidden=!open;$(\"#mbar\").setAttribute(\"aria-expanded\",String(open));if(open){const a=$(\".side a.on\"),s=$(\"#side\");if(a)s.scrollTop=a.offsetTop-headH()-60}});\ndocument.addEventListener(\"keydown\",e=>{if(e.key===\"Escape\"){closeNav();$(\"#lb\").hidden=true}});\n$(\"#scrim\").addEventListener(\"click\",closeNav);\n\n\/* Lightbox *\/\n$(\"#doc\").addEventListener(\"click\",e=>{const img=e.target.closest(\"figure img\");if(!img)return;$(\"#lbimg\").src=img.src;$(\"#lbimg\").alt=img.alt;$(\"#lb\").hidden=false});\n$(\"#lb\").addEventListener(\"click\",()=>$(\"#lb\").hidden=true);\n\n\/* Search: INDEX has one entry per section (p page, s section, u anchor, x text). *\/\nconst q=$(\"#q\"), res=$(\"#results\");\nconst esc=s=>s.replace(\/[&<>\"]\/g,c=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\"}[c]));\nlet sel=0;\nfunction search(){\n  const term=q.value.trim().toLowerCase();\n  if(term.length<2){res.hidden=true;return}\n  const words=term.split(\/\\s+\/);\n  const hits=index().map(e=>{const t=(e.s+\" \"+e.p).toLowerCase(),x=e.x.toLowerCase();let score=0;for(const w of words){if(t.includes(w))score+=5;else if(x.includes(w))score+=1;else return null}return {e,score}}).filter(Boolean).sort((a,b)=>b.score-a.score).slice(0,8);\n  sel=0;\n  if(!hits.length){res.innerHTML=`<div class=\"none\">${T(\"none\")} \u201c${esc(q.value.trim())}\u201d.<\/div>`;res.hidden=false;return}\n  const re=new RegExp(\"(\"+words.map(w=>w.replace(\/[.*+?^${}()|[\\]\\\\]\/g,\"\\\\$&\")).join(\"|\")+\")\",\"gi\");\n  res.innerHTML=hits.map(({e},k)=>{const x=e.x.toLowerCase();const at=Math.max(0,x.indexOf(words[0])-50);const snip=(at?\"\u2026\":\"\")+e.x.slice(at,at+140)+(at+140<e.x.length?\"\u2026\":\"\");return `<a href=\"#${e.u}\" class=\"${k===0?\"on\":\"\"}\"><div class=\"rt\">${esc(e.s)}<\/div>${e.s!==e.p?`<div class=\"rp\">${esc(e.p)}<\/div>`:\"\"}<div class=\"rs\">${esc(snip).replace(re,\"<mark>$1<\/mark>\")}<\/div><\/a>`}).join(\"\");\n  res.hidden=false;\n}\nq.addEventListener(\"input\",search);\nq.addEventListener(\"keydown\",e=>{const items=[...res.querySelectorAll(\"a\")];\n  if(e.key===\"ArrowDown\"||e.key===\"ArrowUp\"){if(!items.length)return;e.preventDefault();sel=(sel+(e.key===\"ArrowDown\"?1:-1)+items.length)%items.length;items.forEach((a,k)=>a.classList.toggle(\"on\",k===sel))}\n  else if(e.key===\"Enter\"&&items[sel]){e.preventDefault();location.hash=items[sel].getAttribute(\"href\");q.value=\"\";res.hidden=true;q.blur()}\n  else if(e.key===\"Escape\"){res.hidden=true;q.blur()}});\nres.addEventListener(\"click\",e=>{if(e.target.closest(\"a\")){q.value=\"\";res.hidden=true}});\ndocument.addEventListener(\"click\",e=>{if(!e.target.closest(\".search\"))res.hidden=true});\ndocument.addEventListener(\"keydown\",e=>{if((e.key===\"k\"&&(e.metaKey||e.ctrlKey))||(e.key===\"\/\"&&document.activeElement!==q)){e.preventDefault();if(matchMedia(\"(max-width:1023px)\").matches&&!$(\"#side\").classList.contains(\"open\"))$(\"#mbar\").click();q.focus()}});\n\n\/* A demo tells the guide how tall it is: its frame follows. The demo may speak before this script\n   has run (the page is large), so each frame is also asked, when it has loaded. *\/\naddEventListener(\"message\",e=>{\n  const h=e.data&&e.data.druwDemoHeight; if(!h) return;\n  document.querySelectorAll(\"iframe[data-demo]\").forEach(f=>{if(f.contentWindow===e.source) f.style.height=Math.min(Math.max(h,200),900)+\"px\"});\n});\n\ndocument.querySelectorAll(\"iframe[data-demo]\").forEach(f=>{\n  const ask=()=>{if(f.contentWindow) f.contentWindow.postMessage({druwDemoAsk:1},\"*\")};\n  f.addEventListener(\"load\",ask); ask();\n});\n\nrender();\n\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>On this pageNo results for DRUW User Guide v1.0.1 Ctrl K DRUW plugin pagePDF Welcome Introduction Getting started QUICK START 01MEET DRUW 02CONNECT YOUR PHONE OR TABLET Using DRUW 03PLAY 04ROLL THE DICE 05BUILD YOUR PLAYGROUND 06SHAPE AN INSTRUMENT 07PADS AND GESTURES 08SHAPE A SOUND 09CHOKES 10SEVERAL DEVICES, SEVERAL DRUWS, SEVERAL PEOPLE 11SAVE YOUR WORK [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":179558,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-182465","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.5 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>DRUW User Guide - BEATSURFING<\/title>\n<meta name=\"description\" content=\"DRUW user guide: install, activate, connect your phone or tablet, and learn every control, gesture and setting. With screenshots, search and an interactive demo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beatsurfing.com\/es\/support\/druw\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DRUW User Guide\" \/>\n<meta property=\"og:description\" content=\"DRUW user guide: install, activate, connect your phone or tablet, and learn every control, gesture and setting. With screenshots, search and an interactive demo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beatsurfing.com\/es\/support\/druw\/\" \/>\n<meta property=\"og:site_name\" content=\"BEATSURFING\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Beatsurfing2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-21T18:53:47+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"63 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/support\\\/druw\\\/\",\"url\":\"https:\\\/\\\/beatsurfing.com\\\/support\\\/druw\\\/\",\"name\":\"DRUW User Guide - BEATSURFING\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#website\"},\"datePublished\":\"2026-10-21T18:52:30+00:00\",\"dateModified\":\"2026-10-21T18:53:47+00:00\",\"description\":\"DRUW user guide: install, activate, connect your phone or tablet, and learn every control, gesture and setting. With screenshots, search and an interactive demo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/support\\\/druw\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beatsurfing.com\\\/support\\\/druw\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/support\\\/druw\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Support\",\"item\":\"https:\\\/\\\/beatsurfing.com\\\/support\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DRUW User Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#website\",\"url\":\"https:\\\/\\\/beatsurfing.com\\\/\",\"name\":\"BEATSURFING\",\"description\":\"Innovative Audio Plugins and More\",\"publisher\":{\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#organization\"},\"alternateName\":\"BEATSURFING Audio Plugins\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/beatsurfing.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#organization\",\"name\":\"BEATSURFING\",\"url\":\"https:\\\/\\\/beatsurfing.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/beatsurfing.com\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/bs_logo_left.png\",\"contentUrl\":\"https:\\\/\\\/beatsurfing.com\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/bs_logo_left.png\",\"width\":407,\"height\":66,\"caption\":\"BEATSURFING\"},\"image\":{\"@id\":\"https:\\\/\\\/beatsurfing.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Beatsurfing2\",\"https:\\\/\\\/www.instagram.com\\\/beatsurfing\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/BEATSURFING\",\"https:\\\/\\\/www.tiktok.com\\\/@beatsurfing\",\"https:\\\/\\\/linktr.ee\\\/beatsurfing\\\/\",\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q141495212\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/beatsurfing\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/beatsurfing\",\"https:\\\/\\\/www.pluginboutique.com\\\/manufacturers\\\/379-BEATSURFING\"],\"email\":\"hello@beatsurfing.com\",\"legalName\":\"Druw Audio srl\",\"foundingDate\":\"2020-09-24\",\"vatID\":\"BE0754803223\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gu\u00eda de usuario de DRUW - BEATSURFING","description":"Gu\u00eda de usuario de DRUW: instala, activa, conecta tu tel\u00e9fono o tableta y aprende cada control, gesto y ajuste. Con capturas, b\u00fasqueda y una demo interactiva.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beatsurfing.com\/es\/support\/druw\/","og_locale":"es_ES","og_type":"article","og_title":"DRUW User Guide","og_description":"DRUW user guide: install, activate, connect your phone or tablet, and learn every control, gesture and setting. With screenshots, search and an interactive demo.","og_url":"https:\/\/beatsurfing.com\/es\/support\/druw\/","og_site_name":"BEATSURFING","article_publisher":"https:\/\/www.facebook.com\/Beatsurfing2","article_modified_time":"2026-10-21T18:53:47+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"63 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/beatsurfing.com\/support\/druw\/","url":"https:\/\/beatsurfing.com\/support\/druw\/","name":"Gu\u00eda de usuario de DRUW - BEATSURFING","isPartOf":{"@id":"https:\/\/beatsurfing.com\/#website"},"datePublished":"2026-10-21T18:52:30+00:00","dateModified":"2026-10-21T18:53:47+00:00","description":"Gu\u00eda de usuario de DRUW: instala, activa, conecta tu tel\u00e9fono o tableta y aprende cada control, gesto y ajuste. Con capturas, b\u00fasqueda y una demo interactiva.","breadcrumb":{"@id":"https:\/\/beatsurfing.com\/support\/druw\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beatsurfing.com\/support\/druw\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/beatsurfing.com\/support\/druw\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Support","item":"https:\/\/beatsurfing.com\/support\/"},{"@type":"ListItem","position":2,"name":"DRUW User Guide"}]},{"@type":"WebSite","@id":"https:\/\/beatsurfing.com\/#website","url":"https:\/\/beatsurfing.com\/","name":"BEATSURFING","description":"Plugins de audio innovadores y mucho m\u00e1s","publisher":{"@id":"https:\/\/beatsurfing.com\/#organization"},"alternateName":"BEATSURFING Audio Plugins","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beatsurfing.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/beatsurfing.com\/#organization","name":"BEATSURFING","url":"https:\/\/beatsurfing.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/beatsurfing.com\/#\/schema\/logo\/image\/","url":"https:\/\/beatsurfing.com\/wp-content\/uploads\/2023\/02\/bs_logo_left.png","contentUrl":"https:\/\/beatsurfing.com\/wp-content\/uploads\/2023\/02\/bs_logo_left.png","width":407,"height":66,"caption":"BEATSURFING"},"image":{"@id":"https:\/\/beatsurfing.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Beatsurfing2","https:\/\/www.instagram.com\/beatsurfing\/","https:\/\/www.youtube.com\/c\/BEATSURFING","https:\/\/www.tiktok.com\/@beatsurfing","https:\/\/linktr.ee\/beatsurfing\/","https:\/\/www.wikidata.org\/wiki\/Q141495212","https:\/\/www.linkedin.com\/company\/beatsurfing","https:\/\/www.crunchbase.com\/organization\/beatsurfing","https:\/\/www.pluginboutique.com\/manufacturers\/379-BEATSURFING"],"email":"hello@beatsurfing.com","legalName":"Druw Audio srl","foundingDate":"2020-09-24","vatID":"BE0754803223","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}}]}},"_links":{"self":[{"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/pages\/182465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/comments?post=182465"}],"version-history":[{"count":3,"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/pages\/182465\/revisions"}],"predecessor-version":[{"id":182468,"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/pages\/182465\/revisions\/182468"}],"up":[{"embeddable":true,"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/pages\/179558"}],"wp:attachment":[{"href":"https:\/\/beatsurfing.com\/es\/wp-json\/wp\/v2\/media?parent=182465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}