1<!doctype html> 2<!-- © HawksNest. All rights reserved. No license granted. --> 3<html lang="en"> 4<head> 5<meta charset="utf-8"> 6<meta name="viewport" content="width=device-width, initial-scale=1"> 7<title>MIDISketch Guides â MPE setup for every DAW</title> 8<meta name="description" content="MPE setup guides for MIDISketch: FL Studio, Ableton Live, Logic Pro, REAPER, Bitwig, Pro Tools."> 9<link rel="canonical" href="https://eliotonic.com/guides/"> 10<meta property="og:title" content="MIDISketch Guides â MPE setup for every DAW"> 11<meta property="og:site_name" content="MIDISketch"> 12<meta property="og:description" content="MPE setup guides for MIDISketch: FL Studio, Ableton Live, Logic Pro, REAPER, Bitwig, Pro Tools."> 13<meta property="og:url" content="https://eliotonic.com/guides/"> 14<meta property="og:type" content="article"> 15<meta property="og:image" content="https://eliotonic.com/og.jpg"> 16<meta property="og:image:width" content="1200"> 17<meta property="og:image:height" content="630"> 18<meta property="og:image:alt" content="MIDISketch: the piano roll, the way it was always meant to be."> 19<meta name="twitter:card" content="summary_large_image"> 20<link rel="icon" href="/favicon.ico" sizes="any"> 21<link rel="icon" type="image/png" href="/icon.png"> 22<link rel="apple-touch-icon" href="/apple-touch-icon.png"> 23<meta name="theme-color" content="#080C16"> 24<link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/aldrich-400-latin.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/jura-300-700-latin.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/rajdhani-700-latin.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/share-tech-mono-400-latin.woff2"><style>@font-face{font-family:'Aldrich';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/aldrich-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Jura';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/jura-300-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Jura';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/jura-300-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/montserrat-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/montserrat-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Rajdhani';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/rajdhani-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Rajdhani';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/rajdhani-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Rajdhani';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/rajdhani-700-latin-ext.woff2) format('woff2');
24unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'Rajdhani';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/rajdhani-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Share Tech Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/share-tech-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}.otword{display:inline-flex;align-self:baseline}.otsvg{display:block;height:.74em;width:auto;overflow:visible}.otsvg .w{fill:#f1f5f9}.otsvg .g{fill:#1FE354} 25</style> 26<style> 27*{margin:0;padding:0;box-sizing:border-box} 28body{background:#080C16;color:#bfcbdb;font-family:'Jura',sans-serif;font-weight:500;line-height:1.7} 29a{color:#7ab3ff;text-decoration:none}main p a:not([class]),main li a:not([class]),main td a:not([class]){text-decoration:underline;text-decoration-color:rgba(122,179,255,.45);text-underline-offset:3px;text-decoration-thickness:1px} 30a:hover{text-decoration:underline} 31nav{background:linear-gradient(180deg,#0A101C 0%,#04070E 100%);border-bottom:1px solid #1e293b} 32.navin{display:flex;align-items:center;max-width:900px;margin:0 auto;padding:15px 20px;gap:22px} 33.brand{font-weight:700;letter-spacing:.18em;color:#f1f5f9;font-size:15px} 34.brand b{color:#62D230} 35.nlinks{margin-left:auto;display:flex;gap:20px;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase} 36.nlinks a{color:#94a3b8} 37.nlinks a:hover{color:#e2e8f0;text-decoration:none} 38main{max-width:760px;margin:0 auto;padding:44px 20px 80px} 39/* page titles: Aldrich, spaced, white, with a short green bar under them */ 40h1{color:#f1f5f9;font-family:'Aldrich','Jura',sans-serif;letter-spacing:.06em;font-size:clamp(27px,4vw,38px);font-weight:400;line-height:1.18;margin-bottom:22px} 41h1 .hglow,h2 .hglow{text-shadow:0 0 7px rgba(122,179,255,.30),0 0 16px rgba(122,179,255,.13)} 42h1::before{content:"//";font-family:'Share Tech Mono',monospace;font-weight:400;font-size:.72em;color:#62D230;margin-right:14px;letter-spacing:.06em;vertical-align:2px} 43h2{color:#f1f5f9;font-family:'Aldrich','Jura',sans-serif;letter-spacing:.06em;font-size:22px;font-weight:400;margin:38px 0 10px} 44h2.askh .gm{font-family:'Aldrich','Jura',sans-serif;font-weight:400;letter-spacing:.06em;gap:.06em} 45h2.askh .gm > span{text-shadow:none} 46h2::before{content:"//";font-family:'Share Tech Mono',monospace;font-weight:400;font-size:.8em;color:#62D230;margin-right:11px;letter-spacing:.06em;vertical-align:1px} 47h3{color:#cbd5e1;font-family:'Jura',sans-serif;letter-spacing:.02em;font-size:17.5px;font-weight:700;margin:20px 0 8px} 48p{margin:10px 0;font-size:15.5px} 49ol,ul{margin:10px 0 10px 22px;font-size:15.5px} 50li{margin:7px 0} 51strong{color:#e2e8f0} 52code{font-family:'Share Tech Mono',monospace;font-size:.92em;background:#0B1220;border:1px solid #22314E;border-radius:3px;padding:1px 6px;color:#8fe36a} 53.callout{background:linear-gradient(180deg,#0e1220,#060a12);border:1px solid #22314E;border-left:3px solid #62D230;border-radius:3px;padding:12px 16px;margin:14px 0;font-size:14px} 54.callout.warn{border-left-color:#fbbf24} 55/* scoped to page content so Clerk's account panel and the header keep their own image styling */ 56main img{max-width:100%;border:1px solid #22314E;border-radius:3px;margin:12px 0} 57.crumb{font-size:11.5px;letter-spacing:.16em;color:#74849b;font-weight:700;text-transform:uppercase;margin-bottom:22px;display:block} 58.crumb a{color:#74849b} 59footer{border-top:1px solid #141a25;margin-top:40px;padding:26px 20px;text-align:center;color:#74849b;font-size:10.5px;line-height:1.8} 60.gcard{display:block;background:linear-gradient(180deg,#0e1220 0%,#0e1220 44%,#060a12 56%,#060a12 100%);border:1px solid #22314E;border-radius:4px;padding:18px 20px;margin:12px 0;transition:border-color .25s ease} 61.gcard:hover{border-color:rgba(34,197,52,.6);text-decoration:none} 62.gcard b{color:#f1f5f9;font-family:'Rajdhani','Jura',sans-serif;letter-spacing:.03em;font-size:17.5px;display:block;margin-bottom:4px} 63.gcard span{color:#a3b2c6;font-size:13.5px} 64.gm{display:inline-flex;align-items:baseline;gap:.1em;font-family:'Aldrich','Jura',sans-serif;font-weight:400;letter-spacing:.06em;font-size:17px;line-height:1;color:#f1f5f9;user-select:none} 65.gm>*{display:inline-block;flex-shrink:0} 66.gm .e3{width:.72em;height:.7em;position:relative} 67.gm .e3 i{position:absolute;
67left:.09em;width:.51em;height:.1em;background:#f1f5f9;transition:translate .55s cubic-bezier(.34,1.56,.64,1)} 68.gm .e3 i:nth-child(1){top:0;animation:e3top .9s cubic-bezier(.34,1.56,.64,1) .15s backwards} 69.gm .e3 i:nth-child(2){top:.31em;left:.09em;width:.48em;height:.08em;background:#62D230;box-shadow:0 0 4px rgba(98,210,48,.55),0 0 10px rgba(98,210,48,.25)} 70.gm .e3 i:nth-child(3){bottom:0;animation:e3bot .9s cubic-bezier(.34,1.56,.64,1) .15s backwards} 71@keyframes e3top{from{translate:-.07em .3em;opacity:.55}to{translate:0 0;opacity:1}} 72@keyframes e3bot{from{translate:.07em -.3em;opacity:.55}to{translate:0 0;opacity:1}} 73.gm .e3:hover i:nth-child(1){translate:0 -.06em} 74.gm .e3:hover i:nth-child(3){translate:0 .06em} 75@media (prefers-reduced-motion:reduce){.gm .e3 i{animation:none;transition:none}.gm .e3:hover i{translate:none}} 76.gm .ring{width:.72em;height:.72em;position:relative;perspective:56px;transform-style:preserve-3d;} 77@keyframes orbSway{0%,100%{transform:rotate(-16deg)}50%{transform:rotate(24deg)}} 78.gm .ring::before{content:"";position:absolute;inset:0;border:.12em solid #f1f5f9;border-radius:50%;animation:orbY 6.5s linear infinite} 79@keyframes orbY{from{transform:rotateX(14deg) rotateY(0deg)}to{transform:rotateX(14deg) rotateY(360deg)}} 80.gm .ring i{position:absolute;inset:0;margin:auto;width:.2em;height:.2em;border-radius:50%;background:radial-gradient(circle at 35% 30%,#a5f07f,#62D230 55%,#2f7d16)} 81.gm .solid{width:.72em;height:.72em;border-radius:50%;background:radial-gradient(circle at 32% 28%,#b7f78f 0%,#62D230 40%,#1f5c0e 100%);box-shadow:inset -.08em -.11em .16em rgba(0,0,0,.42)} 82.gm .dot{position:relative;top:-.25em;width:.2em;height:.2em;border-radius:50%;background:#62D230} 83@media (prefers-reduced-motion:reduce){.gm .ring,.gm .ring::before{animation:none}} 84.ghead{display:flex;align-items:center;gap:18px;margin-bottom:6px} 85.glogo{width:58px;height:58px;object-fit:contain;flex-shrink:0;margin:0;padding:8px; 86 background:linear-gradient(180deg,#0e1220,#060a12);border:1px solid #22314E;border-radius:4px} 87.geyebrow{display:block;font-size:10.5px;letter-spacing:.22em;color:#62D230;font-weight:700;margin-bottom:5px} 88.ghead h1{margin:0} 89.ghub{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:26px} 90.ghub .gcard{display:flex;align-items:center;gap:14px;margin:0;padding:15px 17px} 91.ghub .glogo{width:42px;height:42px;padding:6px} 92.ghub .gtxt{min-width:0} 93.ghub .gtxt b{margin-bottom:3px} 94.ghub .gtxt span{display:block;font-size:12px;line-height:1.5} 95.ghub .gcard:hover .gtxt b{color:#fff} 96.gsearchwrap{margin:22px 0 6px} 97#gsearch{width:100%;background:#0B1220;border:1px solid #22314E;border-radius:3px;color:#e2e8f0; 98 font-family:inherit;font-size:14.5px;padding:12px 14px;outline:none} 99#gsearch::placeholder{color:#4a5a72} 100#gsearch:focus{border-color:#62D230} 101.gsec{margin-top:34px} 102.gsec[hidden]{display:none} 103.gsec h2{margin-bottom:6px} 104.gsub{font-size:14px;color:#8fa0b5;margin:0} 105.gsec .ghub{margin-top:16px} 106.gsec .ghub:empty{display:none} 107.gsoon{font-size:13.5px;color:#8fa0b5;margin-top:16px} 108.gsoon[hidden]{display:none} 109.gnone{margin-top:28px;font-size:14.5px;color:#8fa0b5} 110.gvid{background:linear-gradient(180deg,#0e1220,#060a12);border:1px solid #22314E;border-radius:4px;overflow:hidden; 111 transition:border-color .25s ease} 112.gvid:hover{border-color:rgba(34,197,52,.6)} 113.gvthumb{position:relative;display:block;width:100%;padding:0;border:0;background:#070B13;cursor:pointer;line-height:0} 114.gvthumb img{width:100%;height:auto;display:block;border:0;border-radius:0;margin:0;opacity:.86;transition:opacity .25s ease} 115.gvthumb:hover img{opacity:1} 116.gvplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:3px; 117 background:rgba(8,12,22,.8);border:1px solid #62D230;display:flex;align-items:center;justify-content:center} 118.gvplay::after{content:"";border-left:13px solid #62D230;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px} 119.gvthumb:hover .gvplay{background:rgba(13,33,19,.92)} 120.gvid iframe{display:block;width:100%;aspect-ratio:16/9;border:0} 121/* quick tips are Shorts: portrait cards, four across, two on a phone */ 122.gtips{grid-template-columns:repeat(4,1fr)} 123.gshort .gvthumb img{aspect-ratio:9/16;object-fit:cover} 124.gshort iframe{aspect-ratio:9/16} 125.gshort .gvmeta{padding:11px 12px 13px} 126.gshort .gvmeta b{font-size:14px} 127.gshort .gvmeta span{font-size:12.5px}
128@media(max-width:900px){.gtips{grid-template-columns:repeat(3,1fr)}} 129.gvmeta{padding:13px 15px 15px} 130.gvmeta b{display:block;color:#f1f5f9;font-size:15px;margin-bottom:4px} 131.gvmeta span{display:block;color:#94a3b8;font-size:12.5px;line-height:1.55} 132.gvtag{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.16em;color:#62D230; 133 border:1px solid rgba(98,210,48,.45);border-radius:3px;padding:2px 6px;margin-left:7px;vertical-align:2px} 134.gmore{margin-top:16px} 135 136 137@media(max-width:640px){.ghub{grid-template-columns:1fr}.ghub.gtips{grid-template-columns:repeat(2,1fr);gap:10px}.ghead{gap:13px}.glogo{width:46px;height:46px}} 138html{-webkit-text-size-adjust:100%;text-size-adjust:100%} 139html,body{overflow-x:clip} 140code{overflow-wrap:anywhere} 141@media (max-width:640px){ 142.navin{gap:12px;padding:13px 12px} 143.brand{font-size:13px;letter-spacing:.12em} 144.nlinks{gap:10px;font-size:10px;letter-spacing:.04em} 145main{padding:34px 16px 64px} 146h1{font-size:clamp(23px,6.7vw,31px)} 147} 148 149/* More menu + license key, matching the rest of the site. A <details> rather 150 than a hover menu, so it opens on a tap as readily as a click, no script. */ 151.more{position:relative} 152.more > summary{list-style:none;cursor:pointer;color:#94a3b8} 153.more > summary::-webkit-details-marker{display:none} 154.more > summary::after{content:"\25BE";margin-left:5px;font-size:9px;vertical-align:middle} 155.more[open] > summary,.more > summary:hover{color:#e2e8f0} 156.moremenu{position:absolute;right:0;top:calc(100% + 10px);min-width:176px;z-index:40; 157 background:#0B1220;border:1px solid #22314E;border-radius:3px;padding:6px; 158 display:flex;flex-direction:column;box-shadow:0 14px 34px rgba(0,0,0,.55)} 159.moremenu a{display:block;padding:7px 10px;border-radius:2px;color:#94a3b8; 160 font-size:11px;letter-spacing:.09em;white-space:nowrap} 161.moremenu a:hover{background:#131C2E;color:#e2e8f0;text-decoration:none} 162.navkey{width:28px;height:28px;margin-left:16px;border-radius:50%;border:1px solid #2b3a55; 163 background:#0f172a;color:#94a3b8;display:flex;align-items:center;justify-content:center; 164 flex-shrink:0;text-decoration:none;transition:border-color .25s ease,color .25s ease} 165.navkey:hover{border-color:#62D230;color:#e2e8f0;text-decoration:none} 166@media (max-width:640px){.navkey{width:24px;height:24px;margin-left:9px}.moremenu{min-width:150px}} 167@media (max-width:430px){.nlinks a[href="/docs/"]{display:none}} 168 169/* TEMPORARY, migration-era: the "aka midiscout.com" whisper under the brand, 170 so arrivals from the old domain know they are in the right place. Remove 171 the .aka spans and this block when midiscout.com sunsets. */ 172.brand{position:relative} 173.aka{position:absolute;right:0;top:100%;margin-top:2px;font-style:normal; 174 font-family:'Share Tech Mono',monospace;font-size:8.5px;letter-spacing:.13em; 175 color:#54627a;line-height:1;white-space:nowrap;pointer-events:none} 176 177/* the product link carries the wordmark's green sketch, so the one commercial 178 destination in the row reads as itself rather than as another doc page */ 179.msnav i{font-style:italic;color:#62D230} 180.msnav:hover i{text-shadow:0 0 9px rgba(98,210,48,.35)} 181 182/* ---- nav menu ----------------------------------------------------------- 183 Four links, a More dropdown and a key button was too much bar for a page 184 that is mostly text. One burger holds the lot, at every width. */ 185nav{position:relative} 186.navburger{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:4px; 187 margin-left:auto;width:34px;height:30px;background:none;border:1px solid #22314E;border-radius:3px; 188 cursor:pointer;padding:0;transition:border-color .2s ease} 189.navburger:hover{border-color:#2b3a55} 190.navburger span{display:block;width:16px;height:2px;background:#94a3b8;transition:transform .2s ease,opacity .2s ease} 191.navburger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)} 192.navburger[aria-expanded="true"] span:nth-child(2){opacity:0} 193.navburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)} 194/* right edge tracks .navin's content edge: capped at 900 wide with 20px padding */ 195.navmenu{position:absolute;right:max(20px,calc(50% - 430px));top:calc(100% + 6px);z-index:200;min-width:188px; 196 background:linear-gradient(180deg,#0A101C,#04070E);border:1px solid #1e293b;border-radius:3px; 197 box-shadow:6px 10px 24px rgba(0,0,0,.5);display:flex;flex-direction:column;padding:6px 0;text-align:right} 198.navmenu[hidden]{display:none} 199.navmenu a{padding:10px 18px;font-size:12.5px;font-weight:700;letter-spacing:.14em; 200 text-transform:uppercase;color:#94a3b8;text-decoration:none} 201.navmenu a:hover,.navmenu a:active{color:#e2e8f0;background:rgba(98,210,48,.05);text-decoration:none} 202.navmenu a[aria-current="page"]{color:#e2e8f0} 203.navmenu .msnav i{font-style:italic;color:#62D230} 204.navmenu .navmenukey{color:#62D230;margin-top:6px;padding-top:12px;border-top:1px solid #1e293b} 205.navmenu .navmenukey:hover{color:#8ae65c} 206@media (max-width:640px){.navmenu{right:12px;min-width:174px}} 207@media (max-width:640px){ 208 /* the whisper is anchored to the brand's RIGHT edge, so at 8.5px it ran off 209 the left of a phone screen and got clipped. Same shrink the landing uses. */
210 .aka{font-size:7px;letter-spacing:.06em} 211} 212/* the ask box, lifted from the product page */ 213/* the ask box: the FAQ card's look, one input, the answer streams in below it */ 214.askbox{background:linear-gradient(180deg,#0e1220 0%,#0e1220 44%,#060a12 56%,#060a12 100%);border:1px solid #22314E;border-left:3px solid #62D230;border-radius:3px;padding:20px 22px 16px} 215.askwhat{margin:0 0 14px;font-size:14.5px;line-height:1.65;color:#9fb0c4} 216.askwhat a{color:#7ab3ff;text-decoration:none;border-bottom:1px solid rgba(122,179,255,.35)} 217.askrow{display:flex;gap:8px;margin:0;position:relative} 218/* the green // is the house mark: it sits in the field like a prompt and breathes until something is typed */ 219.askpre{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-family:'Share Tech Mono',monospace;font-size:15px;letter-spacing:.06em;color:#62D230;pointer-events:none;animation:askbreathe 2.8s ease-in-out infinite} 220@keyframes askbreathe{0%,100%{opacity:.45}50%{opacity:1}} 221.askrow.typed .askpre{animation:none;opacity:1} 222@media(prefers-reduced-motion:reduce){.askpre{animation:none;opacity:1}} 223.askrow input{flex:1;min-width:0;background:#0B1220;border:1px solid #22314E;border-radius:3px;color:#e2e8f0;padding:12px 13px 12px 40px;font:500 15px 'Jura',sans-serif} 224.askrow input:focus{outline:none;border-color:#62D230} 225.askrow input::placeholder{color:#5b6b80} 226.askrow button{background:#62D230;color:#071106;border:0;border-radius:3px;padding:0 18px;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.14em;cursor:pointer} 227.askrow button:hover{background:#74e042} 228.askrow button:disabled{opacity:.5;cursor:default} 229.askchips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0} 230.askchips[hidden],.askfeed[hidden],.askout[hidden]{display:none} 231.askchips button{background:#0B1220;border:1px solid #22314E;color:#a3b2c6;border-radius:3px;padding:6px 10px;font:500 12.5px 'Jura',sans-serif;cursor:pointer;text-align:left} 232.askchips button:hover{border-color:#62D230;color:#e2e8f0} 233.askout{margin:0 0 16px;padding:0 0 14px;border-top:0;border-bottom:1px solid #1e293b} 234.askq{display:flex;justify-content:flex-end;margin:0 0 12px} 235.askq::before{content:none} 236.askq span{display:inline-block;max-width:85%;background:#0B1220;border:1px solid #22314E;border-radius:3px;padding:9px 14px;color:#f1f5f9;font-weight:600;text-align:right} 237.askq span::before{content:"//";font-family:'Share Tech Mono',monospace;font-weight:400;color:#62D230;margin-right:10px;letter-spacing:.06em} 238.asknext{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0} 239.asknext::before{content:"//";font-family:'Share Tech Mono',monospace;font-size:11px;color:#62D230;letter-spacing:.06em;margin-right:2px} 240.asknext .asknextl{font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.14em;color:#62D230;margin-right:4px} 241.asknext button{background:#0B1220;border:1px solid #22314E;color:#a3b2c6;border-radius:3px;padding:6px 10px;font:500 12.5px 'Jura',sans-serif;cursor:pointer;text-align:left} 242.asknext button:hover{border-color:#62D230;color:#e2e8f0} 243.asknext[hidden]{display:none} 244.askans{color:#bfcbdb;line-height:1.6;white-space:pre-wrap;font-size:14.5px} 245.askans.done{white-space:normal} 246.askans p{margin:8px 0}.askans ol,.askans ul{margin:8px 0 8px 20px}.askans li{margin:4px 0} 247.askans a{color:#7ab3ff}.askans code{font-size:.9em;background:#0B1220;padding:1px 4px;border-radius:2px} 248.askans.busy::after{content:"";display:inline-block;width:8px;height:14px;background:#62D230;margin-left:3px;vertical-align:-2px;animation:askblink 1s steps(2) infinite} 249@keyframes askblink{to{opacity:0}} 250.askerr{color:#fca5a5;font-size:13.5px;margin:6px 0} 251.asksrc{margin:10px 0 0;font-size:12.5px;color:#64748b}.asksrc a{display:inline-block;margin:2px 10px 2px 0;color:#7ab3ff;text-decoration:none} 252.askfeed{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:8px 0 0;font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.14em;color:#64748b;text-transform:uppercase} 253.askfeed button{background:none;border:0;padding:0;color:#64748b;font:inherit;letter-spacing:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px} 254.askfeed button:hover,.askfeed button.on{color:#62D230} 255 .askh{display:flex;align-items:baseline;gap:.4em;flex-wrap:wrap} 256.askh .gm{font-size:1.04em;line-height:1;position:relative;top:.02em} 257.askans::before{content:"OTONIC //";display:block;font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.16em;color:#62D230;margin:0 0 7px} 258.askfoot i{font-style:normal;color:#62D230;margin-right:2px} 259.askfoot a{color:#9fb0c4;text-decoration:underline;text-underline-offset:3px} 260.askfoot a:hover{color:#f1f5f9} 261.askfoot{margin:14px 0 0;font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.1em;color:#64748b;line-height:1.7} 262@media(max-width:520px){.askbox{padding:16px 14px 14px}.askrow input{font-size:16px;padding:11px 12px 11px 38px}.askrow button{padding:0 14px}} 263</style> 264
265<script defer src="/_vercel/insights/script.js"></script>
vendor: 1 bytes, line 265
265
266<script defer src="/pixel.js"></script>
vendor: 1 bytes, line 266
266
267<script defer src="/pv.js"></script>
vendor: 1 bytes, line 267
267
268<script defer src="/account.js"></script>
268 269<link rel="stylesheet" href="/assets/eliotonic-mark.css"> 270</head> 271<body> 272<nav><div class="navin"> 273 <a class="brand" href="/midisketch"><span class="gm gmx" role="img" aria-label="Eliotonic"><svg class="elx" viewBox="13.87 40.25 882.84 85.72" aria-hidden="true" focusable="false"><g class="lt" style="--i:0"><rect class="hit" x="12.9" y="39.2" width="165.8" height="87.7"/><path class="w" d="M175.7 44.89 167.22 57.37 167.11 57.46Q167 57.57 166.73 57.81Q166.55 57.99 166.49 58.04Q163.36 61.09 159.12 61.09H95.92Q95.72 61.09 95.08 61.31L94.63 61.46Q91.38 62.44 88.84 63.8Q80.78 68.14 76.44 77.19Q71.9 86.66 74.44 95.53Q76.05 101.13 79.82 104.15Q83.64 107.21 87.7 107.62H87.64Q88.06 107.81 88.41 107.81H136.21Q139.77 107.81 142.79 110.12Q145.85 112.47 146.68 115.96L148.6 123.97H86.26Q80.78 123.97 78.22 123.38Q66.87 120.75 60.39 110.78Q60.33 110.69 60.21 110.49Q59.02 108.68 58.72 107.96L55.58 100.61L55.62 100.68Q55.59 100.3 55.53 100.1Q55.09 98.7 54.73 97.2Q54.4 95.834 54.18 94.476Q53.591 91.25 50.25 91.25H53.81Q53.837 91.646 53.873 92.042Q53.837 91.643 53.811 91.245H31.775C30.086 92.862 27.796 93.855 25.273 93.855C20.078 93.855 15.868 89.644 15.868 84.45C15.868 79.256 20.078 75.045 25.273 75.045C27.796 75.045 30.086 76.038 31.775 77.655H55.759Q56.648 75.174 57.93 72.72Q58.59 71.45 59.4 70.11Q59.2 70.44 59.01 70.76Q59.24 70.36 59.38 69.92Q59.4 69.85 59.55 69.65H59.6Q59.566 69.745 59.534 69.825Q59.58 69.713 59.63 69.57L59.57 69.63L66.38 60.76Q67.57 59.21 70.35 56.73Q79.93 48.17 92.18 45.63Q92.27 45.61 92.43 45.58Q94.45 45.16 95.42 45.06Q95.68 45.03 96.02 44.89ZM56.71 75.26Q56.19 76.45 55.76 77.65H53.05Q55.66 77.65 56.71 75.26Z"/><path class="g" d="M155.03 77.76 148.72 87.85Q146.96 90.65 145.86 91.15Q145.28 91.41 142.88 91.52Q142.47 91.53 142.3 91.54Q139.38 91.71 133.56 91.71L133.16 91.71H93.96Q93.65 91.71 92.85 91.37Q90.96 90.56 90.34 88Q89.74 85.48 90.65 83.26Q91.73 80.63 94.55 78.86Q96.3 77.76 96.47 77.76H155.03Z"/></g><g class="lt" style="--i:1"><rect class="hit" x="156.9" y="39.2" width="90.4" height="87.7"/><path class="w" d="M187.67 107.84H244.28L235.16 123.95Q235.15 123.97 235.12 123.97H167.01Q166.29 123.97 164.92 123.41Q161.86 122.16 160.54 118.98Q159.22 115.79 160.56 112.74L189.57 46.61Q190.33 44.89 192.16 44.89H212.49L186.03 105.21Q185.62 106.13 186.16 106.98Q186.69 107.84 187.67 107.84Z"/></g><g class="lt" style="--i:2"><rect class="hit" x="242.6" y="39.2" width="63.5" height="87.7"/><path class="w" d="M245.61 123.97 279.55 46.61Q280.31 44.89 282.14 44.89H303.12L269.18 122.25Q268.42 123.97 266.59 123.97H245.61Z"/></g><g class="lt" style="--i:3"><rect class="hit" x="286.7" y="39.2" width="124.2" height="87.7"/><path class="w" d="M293.85 96.4 304.65 71.79Q304.91 71.19 305.59 69.88Q306 69.1 306.18 68.72Q309.23 62.5 311.77 59.27Q319.41 49.56 331.61 46.29Q335.78 45.17 338.07 45.01Q338.29 45 338.6 44.91L338.59 44.89H393.13Q393.5 45.17 393.87 45.22Q394.87 45.35 396.8 45.94Q405.55 48.58 407.45 56.13Q407.88 57.86 407.89 60.54Q407.89 63.79 407.46 65.55Q407.21 65.73 407.07 66.06L390.26 104.37Q389.75 104.59 389.51 105.02Q389.16 105.65 388.82 106.18Q387.08 108.88 383.71 112.15Q375.66 119.98 365.03 122.85Q364.92 122.88 364.71 122.94Q361.97 123.68 360.72 123.79Q360.44 123.82 360.09 123.97H302.11Q301.78 123.71 301.45 123.64Q297.86 122.86 295.36 121.17Q289.78 117.41 289.68 109.68Q289.68 109.58 289.67 109.35Q289.65 107.61 289.8 106.86Q290.34 104.13 292.93 98.46Q293.56 97.07 293.85 96.4ZM318.6 107.76H360.13Q360.47 107.76 362.17 107.09Q362.38 107.01 362.42 107Q368.7 104.62 371.12 99.11L384.51 68.61Q385.66 65.98 384.14 63.54Q382.62 61.11 379.81 61.11L340.06 61.11Q339.01 61.11 337.15 61.77Q329.63 64.42 326.88 70.69L313.9 100.26Q312.74 102.9 314.27 105.33Q315.79 107.76 318.6 107.76Z"/><circle class="g" cx="349.94" cy="83.53" r="11.46"/></g><g class="lt" style="--i:4"><rect class="hit" x="410.5" y="39.2" width="98.0" height="87.7"/><path class="w" d="M505.48 44.89 496 59.72Q495.15 61.04 493.62 61.04H469.48Q466.15 61.04 464.78 64.16L439.29 122.25Q438.54 123.97 436.7 123.97H416.36L442.83 63.67Q443.23 62.74 442.7 61.89Q442.16 61.04 441.18 61.04L413.47 61.04L419.26 46.7Q419.99 44.89 421.89 44.89H505.48Z"/></g><g class="lt" style="--i:5"><rect class="hit" x="479.8" y="39.2" width="124.6" height="87.7"/><path class="w" d="M598.98 68.69 598.98 68.7 583.28 104.48Q582.7 104.66 582.42 105.12Q581.82 106.13 581.01 107.24Q572.16 119.43 557.29 123.02Q554.08 123.8 551.61 123.85Q551.35 123.85 551 123.96L551.03 123.97H495.17Q494.87 123.82 494.63 123.78Q492.44 123.38 490.32 122.41Q484.16 119.58 482.97 113.58Q482.77 112.57 482.79 110.31L482.79 110.13Q482.8 107.12 483.36 105.16Q483.65 104.15 484.21 102.76L484.33 102.62Q484.47 102.43 484.54 102.28L500.97 64.83Q501.38 64.6 501.58
27364.25Q502.71 62.33 504.3 60.44Q513.95 48.96 527.87 45.74L527.99 45.72Q529.44 45.38 530.14 45.28Q530.55 45.22 530.92 44.89H586.37Q586.5 44.89 587.21 45.09Q587.54 45.18 587.68 45.21Q590.59 45.89 592.49 46.67Q600.98 50.16 601.39 59.25Q601.53 62.27 600.83 64.78Q600.48 66.01 599.62 68Q599.17 68.28 598.98 68.69ZM511.69 107.75H550.9Q551.02 107.75 551.31 107.7L551.55 107.65Q559.41 107.26 563.34 99.32L563.36 99.31Q563.61 99.02 563.72 98.76L576.92 68.67Q578.08 66.04 576.56 63.61Q575.03 61.18 572.23 61.18H532.51Q532.04 61.18 531.56 61.52Q531.05 61.62 530.39 61.85Q523.55 64.2 520.42 70.31Q520 70.62 519.83 71.01L506.99 100.26Q505.84 102.89 507.36 105.32Q508.88 107.75 511.69 107.75Z"/></g><g class="lt" style="--i:6"><rect class="hit" x="584.9" y="39.2" width="139.1" height="87.7"/><path class="w" d="M677.51 92.43 697.62 46.61Q698.37 44.89 700.21 44.89H720.99L687.05 122.25Q686.29 123.97 684.45 123.97H663.63Q662.02 123.97 661.19 122.54L633.88 75.31Q633.38 74.44 632.39 74.49Q631.4 74.55 631 75.48L610.48 122.25Q609.72 123.97 607.88 123.97H587.9L590.98 116.4L591.18 116.49L621.84 46.61Q622.6 44.89 624.43 44.89H643.78Q645.35 44.89 646.18 46.26L674.61 92.64Q675.14 93.5 676.12 93.43Q677.11 93.36 677.51 92.43Z"/></g><g class="lt" style="--i:7"><rect class="hit" x="698.4" y="39.2" width="63.0" height="87.7"/><path class="w" d="M701.43 123.97 735.37 46.61Q736.13 44.89 737.97 44.89H758.42L724.47 122.25Q723.71 123.97 721.88 123.97H701.43Z"/></g><g class="lt" style="--i:8"><rect class="hit" x="741.7" y="39.2" width="114.8" height="87.7"/><path class="w" d="M853.46 44.89 847.05 61.03Q847.04 61.06 847.01 61.06H795.15Q794.71 61.06 794.23 61.37Q793.89 61.43 793.48 61.54Q787.01 63.31 783.63 68.64Q783.13 68.94 782.94 69.38L769.36 100.33Q768.2 102.96 769.73 105.39Q771.25 107.82 774.06 107.82H828.88L822.57 123.94Q822.56 123.97 822.53 123.97H757.4Q757.09 123.82 756.84 123.78Q753.8 123.29 751.51 122.05Q746.03 119.09 744.88 112.99Q744.64 111.69 744.71 108.93Q744.78 106.22 745.25 104.55Q745.63 103.22 746.6 100.89Q747.01 100.6 747.18 100.21L763.27 63.54Q763.9 63.4 764.21 62.91Q764.69 62.15 765.19 61.46Q766.86 59.18 770.13 56.09Q778.61 48.07 789.35 45.76Q791.5 45.29 792.8 45.13Q793.11 45.09 793.47 44.89H853.46Z"/></g><g class="lt tm" style="--i:9"><rect class="hit" x="856.5" y="39.2" width="41.2" height="87.7"/><path class="w" d="M891.26 58.5 891.23 49.11 886 57.35H884.25L879.02 49.3V59.25H875.54V42.25H878.38L885.14 52.81L891.86 42.25H894.66L894.71 59.25H891.26V58.5ZM874.65 42.25V45.47H868.86V59.25H865.3V45.47H859.48V42.25H874.65Z"/></g></svg></span></a> 274 <button class="navburger" id="navburger" aria-label="Menu" aria-expanded="false" aria-controls="navmenu"><span></span><span></span><span></span></button><div class="acct" id="acct"></div> 275</div><div class="navmenu" id="navmenu" hidden><a class="msnav" href="/midisketch">MIDI<i>sketch</i></a><a href="/guides/" aria-current="page">Guides</a><a href="/docs/">Docs</a><a href="/support/">Support</a><a href="/forum/">Forum</a><a href="/download/">Download</a><a href="/mpe/">What is MPE</a><a href="/compatibility/">Compatibility</a><a href="/whats-new/">What's New</a><a href="/roadmap/">Roadmap</a><a href="/versions/">Versions</a><a class="navmenukey" href="/license/">License key</a></div></nav> 276<main> 277<span class="crumb"><a href="/midisketch">ELIOTONIC</a> / GUIDES</span> 278<h1>MIDISketch <span class="hglow">Guides</span></h1> 279<p>Pick your DAW below, or ask a question. Quick tips run under a minute each, and the walkthroughs cover a whole release start to finish.</p> 280<section class="gsec"> 281 <h2>DAW Setup</h2> 282 <p class="gsub">Getting MPE out of MIDISketch and into your host: routing, pitch bend range 48, and the quirks that matter.</p> 283 <div class="ghub"><a class="gcard" href="/guides/mpe-fl-studio/" data-k="fl studio fl has no native mpe. host your synth inside midisketch and draw per-note bends anyway. fl studio image line imageline serum vital"><img class="glogo" src="/assets/FLStudioLogo.webp" alt="FL Studio" width="90" height="128"><span class="gtxt"><b>FL Studio</b><span>FL has no native MPE. Host your synth inside MIDISketch and draw per-note bends anyway.</span></span></a><a class="gcard" href="/guides/mpe-ableton/" data-k="ableton live live 11+ mpe tracks, routing, and where the bend range has to match. ableton live push"><img class="glogo" src="/assets/AbletonLogo.webp" alt="Ableton Live" width="128" height="128"><span class="gtxt"><b>Ableton Live</b><span>Live 11+ MPE tracks, routing, and where the bend range has to match.</span></span></a><a class="gcard" href="/guides/mpe-logic-pro/" data-k="logic pro midisketch midi fx on your synth's track, plus the instrument version. logic pro apple au mac midi fx alchemy vital serum"><img class="glogo" src="/assets/logicpro.webp" alt="Logic Pro" width="128" height="128"><span class="gtxt"><b>Logic Pro</b><span>MIDISketch MIDI FX on your synth's track, plus the instrument version.</span></span></a><a class="gcard" href="/guides/mpe-reaper/" data-k="reaper vst3 or clap, per-note bend routing, and reaper-specific quirks. reaper cockos"><img class="glogo" src="/assets/ReaperLogo.webp" alt="REAPER" width="128" height="128"><span class="gtxt"><b>REAPER</b><span>
283VST3 or CLAP, per-note bend routing, and REAPER-specific quirks.</span></span></a><a class="gcard" href="/guides/mpe-bitwig/" data-k="bitwig studio the clap build, per-note bends for polymer and bitwig's own devices, and midi fx. bitwig clap polymer note fx per-note"><img class="glogo" src="/assets/BitwigLogo.webp" alt="Bitwig Studio" width="128" height="128"><span class="gtxt"><b>Bitwig Studio</b><span>The CLAP build, per-note bends for Polymer and Bitwig's own devices, and MIDI FX.</span></span></a><a class="gcard" href="/guides/mpe-pro-tools/" data-k="pro tools native aax for windows and macos, the install steps, and how to get expression into a session. pro tools avid aax patchwork"><img class="glogo" src="/assets/ProToolsLogo.webp" alt="Pro Tools" width="128" height="128"><span class="gtxt"><b>Pro Tools</b><span>Native AAX for Windows and macOS, the install steps, and how to get expression into a session.</span></span></a></div> 284</section> 285 286<section class="gsec"> 287 <h2>Synth Setup</h2> 288 <p class="gsub">How to set up Serum 2, Vital and every other synth MIDISketch knows: MPE on and bend range 48, or Pitch Wheel mode for synths without MPE.</p> 289 <div class="ghub"><a class="gcard" style="grid-column:1/-1" href="/synths/" data-k="synth setup synths mpe settings which synths work compatible serum serum 2 vital phase plant pigments surge diva omnisphere massive bend range 48 pitch wheel"><span class="gtxt"><b>Synth Setup</b><span>Find your synth and see the exact steps, the same ones MIDISketch shows under a loaded synth.</span></span></a></div> 290</section> 291 292<section class="gsec"> 293 <h2>Quick Tips</h2> 294 <p class="gsub">One thing each, under a minute. Tap to play.</p> 295 <div class="ghub gtips" id="gtips"><div class="gvid gshort" data-k="playback space bar spacebar settings daw transport integrated feel part of your daw plugin daw switch auto trigger off short tip quick"><button class="gvthumb" data-yt="MScWVeKSiHA" aria-label="Play Feel part of your DAW: playback and Space settings"><img src="https://i.ytimg.com/vi/MScWVeKSiHA/oar2.jpg" onerror="this.onerror=null;this.src='https://i.ytimg.com/vi/MScWVeKSiHA/hqdefault.jpg'" alt="" loading="lazy" width="405" height="720"><span class="gvplay" aria-hidden="true"></span></button><div class="gvmeta"><b>Feel part of your DAW</b><span>The playback and Space settings that make MIDISketch follow your DAW instead of sitting on top of it.</span></div></div><div class="gvid gshort" data-k="equation math formula function expression math into music generate notes midi from an equation short tip quick"><button class="gvthumb" data-yt="Cr4xqs0He5s" aria-label="Play Turn an equation into MIDI"><img src="https://i.ytimg.com/vi/Cr4xqs0He5s/oar2.jpg" onerror="this.onerror=null;this.src='https://i.ytimg.com/vi/Cr4xqs0He5s/hqdefault.jpg'" alt="" loading="lazy" width="405" height="720"><span class="gvplay" aria-hidden="true"></span></button><div class="gvmeta"><b>Turn an equation into MIDI</b><span>
295Type a formula and hear it play as notes, live as you edit it.</span></div></div></div> 296 <p class="gsub gmore">More on <a href="https://youtube.com/@midisketch/shorts" target="_blank" rel="noopener">YouTube Shorts</a>.</p> 297</section> 298 299<section class="gsec"> 300 <h2>Full Beta Walkthroughs</h2> 301 <p class="gsub">Long-form video, start to finish, recorded on the beta builds.</p> 302 <div class="ghub" id="gvids"><div class="gvid" data-k="v0.9.9 full walkthrough latest release playhead trigger video"><button class="gvthumb" data-yt="Z-TWTxKIRlE" aria-label="Play MIDISketch v0.9.9 Full Walkthrough"><img src="https://i.ytimg.com/vi/Z-TWTxKIRlE/hqdefault.jpg" alt="" loading="lazy" width="480" height="360"><span class="gvplay" aria-hidden="true"></span></button><div class="gvmeta"><b>MIDISketch v0.9.9 Full Walkthrough <i class="gvtag">LATEST</i></b><span>The whole v0.9.9 release start to finish: navigation and playhead work, polyphonic trigger stabilisation, and everything else that landed.</span></div></div><div class="gvid" data-k="v0.9.7 piano roll cc automation lanes spectral analyser arpeggiate video walkthrough"><button class="gvthumb" data-yt="UoDHYeh1l0g" aria-label="Play I Fixed the Piano Roll (v0.9.7)"><img src="https://i.ytimg.com/vi/UoDHYeh1l0g/hqdefault.jpg" alt="" loading="lazy" width="480" height="360"><span class="gvplay" aria-hidden="true"></span></button><div class="gvmeta"><b>I Fixed the Piano Roll (v0.9.7)</b><span>The v0.9.7 breakdown: CC automation lanes, the spectral analyser, the arpeggiate tool, and the changes that came with them.</span></div></div></div> 303 <p class="gsub gmore">More walkthroughs, going back to v0.3, are on <a href="https://youtube.com/@midisketch" target="_blank" rel="noopener">YouTube</a>.</p> 304</section> 305 306<section class="gsec"> 307 <h2>Deep Dives</h2> 308 <p class="gsub">Written guides on one thing at a time: pitch points and beziers, expression lanes, LFOs, tuning, chops and stamps.</p> 309 <div class="ghub" id="gtext"></div> 310 <div class="callout gsoon">The first deep dives and a Quick Start are being written. The <a href="/docs/">full documentation</a> already covers every control in the meantime.</div> 311</section> 312 313<section class="gsec gask" id="ask"> 314 <h2 class="askh"><span class="askverb">ASK</span> <span class="otword" role="img" aria-label="Otonic"><svg class="otsvg" viewBox="290 40.25 564 85.72" aria-hidden="true" focusable="false"><g><path class="w" d="M293.85 96.4 304.65 71.79Q304.91 71.19 305.59 69.88Q306 69.1 306.18 68.72Q309.23 62.5 311.77 59.27Q319.41 49.56 331.61 46.29Q335.78 45.17 338.07 45.01Q338.29 45 338.6 44.91L338.59 44.89H393.13Q393.5 45.17 393.87 45.22Q394.87 45.35 396.8 45.94Q405.55 48.58 407.45 56.13Q407.88 57.86 407.89 60.54Q407.89 63.79 407.46 65.55Q407.21 65.73 407.07 66.06L390.26 104.37Q389.75 104.59 389.51 105.02Q389.16 105.65 388.82 106.18Q387.08 108.88 383.71 112.15Q375.66 119.98 365.03 122.85Q364.92 122.88 364.71 122.94Q361.97 123.68 360.72 123.79Q360.44 123.82 360.09 123.97H302.11Q301.78 123.71 301.45 123.64Q297.86 122.86 295.36 121.17Q289.78 117.41 289.68 109.68Q289.68 109.58 289.67 109.35Q289.65 107.61 289.8 106.86Q290.34 104.13 292.93 98.46Q293.56 97.07 293.85 96.4ZM318.6 107.76H360.13Q360.47 107.76 362.17 107.09Q362.38 107.01 362.42 107Q368.7 104.62 371.12 99.11L384.51 68.61Q385.66 65.98 384.14 63.54Q382.62 61.11 379.81 61.11L340.06 61.11Q339.01 61.11 337.15 61.77Q329.63 64.42 326.88 70.69L313.9 100.26Q312.74 102.9 314.27 105.33Q315.79 107.76 318.6 107.76Z"/><circle class="g" cx="349.94" cy="83.53" r="11.46"/></g><g><path class="w" d="M505.48 44.89 496 59.72Q495.15 61.04 493.62 61.04H469.48Q466.15 61.04 464.78 64.16L439.29 122.25Q438.54 123.97 436.7 123.97H416.36L442.83 63.67Q443.23 62.74 442.7 61.89Q442.16 61.04 441.18 61.04L413.47 61.04L419.26 46.7Q419.99 44.89 421.89 44.89H505.48Z"/></g><g><path class="w" d="M598.98 68.69 598.98 68.7 583.28 104.48Q582.7 104.66 582.42 105.12Q581.82 106.13 581.01 107.24Q572.16 119.43 557.29 123.02Q554.08 123.8 551.61 123.85Q551.35 123.85 551 123.96L551.03 123.97H495.17Q494.87 123.82 494.63 123.78Q492.44 123.38 490.32 122.41Q484.16 119.58 482.97 113.58Q482.77 112.57 482.79 110.31L482.79 110.13Q482.8 107.12 483.36 105.16Q483.65 104.15 484.21 102.76L484.33 102.62Q484.47 102.43 484.54 102.28L500.97 64.83Q501.38 64.6 501.58
31464.25Q502.71 62.33 504.3 60.44Q513.95 48.96 527.87 45.74L527.99 45.72Q529.44 45.38 530.14 45.28Q530.55 45.22 530.92 44.89H586.37Q586.5 44.89 587.21 45.09Q587.54 45.18 587.68 45.21Q590.59 45.89 592.49 46.67Q600.98 50.16 601.39 59.25Q601.53 62.27 600.83 64.78Q600.48 66.01 599.62 68Q599.17 68.28 598.98 68.69ZM511.69 107.75H550.9Q551.02 107.75 551.31 107.7L551.55 107.65Q559.41 107.26 563.34 99.32L563.36 99.31Q563.61 99.02 563.72 98.76L576.92 68.67Q578.08 66.04 576.56 63.61Q575.03 61.18 572.23 61.18H532.51Q532.04 61.18 531.56 61.52Q531.05 61.62 530.39 61.85Q523.55 64.2 520.42 70.31Q520 70.62 519.83 71.01L506.99 100.26Q505.84 102.89 507.36 105.32Q508.88 107.75 511.69 107.75Z"/></g><g><path class="w" d="M677.51 92.43 697.62 46.61Q698.37 44.89 700.21 44.89H720.99L687.05 122.25Q686.29 123.97 684.45 123.97H663.63Q662.02 123.97 661.19 122.54L633.88 75.31Q633.38 74.44 632.39 74.49Q631.4 74.55 631 75.48L610.48 122.25Q609.72 123.97 607.88 123.97H587.9L590.98 116.4L591.18 116.49L621.84 46.61Q622.6 44.89 624.43 44.89H643.78Q645.35 44.89 646.18 46.26L674.61 92.64Q675.14 93.5 676.12 93.43Q677.11 93.36 677.51 92.43Z"/></g><g><path class="w" d="M701.43 123.97 735.37 46.61Q736.13 44.89 737.97 44.89H758.42L724.47 122.25Q723.71 123.97 721.88 123.97H701.43Z"/></g><g><path class="w" d="M853.46 44.89 847.05 61.03Q847.04 61.06 847.01 61.06H795.15Q794.71 61.06 794.23 61.37Q793.89 61.43 793.48 61.54Q787.01 63.31 783.63 68.64Q783.13 68.94 782.94 69.38L769.36 100.33Q768.2 102.96 769.73 105.39Q771.25 107.82 774.06 107.82H828.88L822.57 123.94Q822.56 123.97 822.53 123.97H757.4Q757.09 123.82 756.84 123.78Q753.8 123.29 751.51 122.05Q746.03 119.09 744.88 112.99Q744.64 111.69 744.71 108.93Q744.78 106.22 745.25 104.55Q745.63 103.22 746.6 100.89Q747.01 100.6 747.18 100.21L763.27 63.54Q763.9 63.4 764.21 62.91Q764.69 62.15 765.19 61.46Q766.86 59.18 770.13 56.09Q778.61 48.07 789.35 45.76Q791.5 45.29 792.8 45.13Q793.11 45.09 793.47 44.89H853.46Z"/></g></svg></span></h2> 315 <div class="askbox"> 316 <p class="askwhat">MIDISketch's own assistant. It answers from the docs and the setup guides, keeps it short, and links the page that backs it up.</p> 317 <div class="askout" id="haskout" hidden> 318 <div class="askq" id="haskq"></div> 319 <div class="askans" id="haskans"></div> 320 <div class="asksrc" id="hasksrc"></div> 321 <div class="asknext" id="hasknext" hidden></div> 322 <div class="askfeed" id="haskfeed" hidden><span>Helpful?</span><button type="button" data-h="1">Yes</button><button type="button" data-h="0">No</button></div> 323 </div> 324 <form class="askrow" id="hask"><span class="askpre" aria-hidden="true">//</span><input id="haskin" type="text" maxlength="400" placeholder="Ask about MIDISketch" autocomplete="off" aria-label="Your question"><button type="submit" id="haskgo">ASK</button></form> 325 <div class="askchips" id="haskchips"><button type="button">Does it work in FL Studio?</button><button type="button">How do I route MPE out in Ableton?</button><button type="button">Which build do I use in Bitwig?</button><button type="button">Do I need an MPE controller?</button></div> 326 <p class="askfoot" id="haskfoot"><i>*</i>Powered by <span id="haskmodel">an AI model</span>, reading the docs only, so it can be wrong. <span id="haskleft"></span> To reach a human: <a href="mailto:[email protected]">[email protected]</a></p> 327 </div> 328</section> 329</main> 330<footer>© 2026 ELIOTONIC LLC · <a href="/terms/" style="color:#74849b">
330TERMS</a> · <a href="/privacy/" style="color:#74849b">PRIVACY</a> · <a href="#" style="color:#74849b" data-consent-reset hidden>COOKIE PREFERENCES</a><br>VST is a registered trademark of Steinberg Media Technologies GmbH. All product names are trademarks of their respective owners.</footer>
331<script> 332(function(){ 333 var q=document.getElementById('gsearch'); 334 var cards=[].slice.call(document.querySelectorAll('[data-k]')); 335 var secs=[].slice.call(document.querySelectorAll('.gsec')); 336 var soon=[].slice.call(document.querySelectorAll('.gsoon')); 337 var none=document.getElementById('gnone'); 338 function run(){ 339 var t=q.value.trim().toLowerCase(), any=false; 340 cards.forEach(function(c){ var hit=!t||c.getAttribute('data-k').indexOf(t)>-1; 341 c.style.display=hit?'':'none'; if(hit) any=true; }); 342 soon.forEach(function(s2){ s2.hidden=!!t; }); // placeholders only belong in the browse view 343 secs.forEach(function(s2){ 344 var shown=s2.querySelectorAll('[data-k]:not([style*="none"])').length; 345 s2.hidden = !!t && shown===0; 346 }); 347 if(none) none.hidden=!(t&&!any); 348 } 349 var th=[].slice.call(document.querySelectorAll('.gvthumb')); 350 th.forEach(function(t){ t.addEventListener('click',function(){ 351 var id=t.getAttribute('data-yt'), f=document.createElement('iframe'); 352 f.src='https://www.youtube-nocookie.com/embed/'+id+'?autoplay=1&rel=0'; 353 f.title=t.getAttribute('aria-label')||'MIDISketch video'; f.allow='accelerometer; autoplay; encrypted-media; picture-in-picture; web-share'; 354 f.setAttribute('allowfullscreen',''); 355 t.parentNode.replaceChild(f,t); 356 }); }); 357 if(q){ q.addEventListener('input',run); q.addEventListener('search',run); } 358})(); 359</script>
vendor: 1 bytes, line 359
359
360<script> 361(function(){var b=document.getElementById('navburger'),m=document.getElementById('navmenu'); 362if(!b||!m)return; 363function close(){m.hidden=true;b.setAttribute('aria-expanded','false');} 364b.addEventListener('click',function(e){e.stopPropagation();m.hidden=!m.hidden; 365 b.setAttribute('aria-expanded',String(!m.hidden));}); 366document.addEventListener('click',function(e){if(!m.hidden&&!m.contains(e.target)&&e.target!==b)close();}); 367document.addEventListener('keydown',function(e){if(e.key==='Escape')close();}); 368})(); 369</script>
vendor: 1 bytes, line 369
369
370<script> 371(function(){ 372/* Ask about MIDISketch. Same endpoint as the docs page. A visitor asks 373 without an account (a few a day); a signed-in member's token rides along 374 for the larger cap. The answer streams in as plain text and is rendered 375 as a small Markdown once it ends. */ 376var form=document.getElementById('hask'); if(!form) return; 377var $=function(id){ return document.getElementById(id); }; 378var curId=null, acct=null, gotStatus=false; 379function esc(s){ return String(s==null?'':s).replace(/[&<>"]/g,function(c){ return {'&':'&','<':'<','>':'>','"':'"'}[c]; }); } 380function md(src){ 381 var lines=String(src||'').split('\n'), out=[], list=null; 382 function inline(t){ t=esc(t); 383 t=t.replace(/`([^`]+)`/g,'<code>$1</code>').replace(/\*\*([^*]+)\*\*/g,'<strong>$1</strong>'); 384 return t.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,function(m,txt,url){ return (/^https:\/\/(www\.)?eliotonic\.com\//.test(url)||/^\/[a-z]/.test(url)||/^https:\/\/(youtu\.be|www\.youtube\.com)\//.test(url))?'<a href="'+url+'">'+txt+'</a>':txt; }); } 385 function closeList(){ if(list){ out.push('</'+list+'>'); list=null; } } 386 for(var i=0;i<lines.length;i++){ var l=lines[i].replace(/\s+$/,''), m; 387 if((m=/^\s*[-*\u2022]\s+(.*)$/.exec(l))){ if(list!=='ul'){ closeList(); out.push('<ul>'); list='ul'; } out.push('<li>'+inline(m[1])+'</li>'); continue; } 388 if((m=/^\s*\d+[.)]\s+(.*)$/.exec(l))){ if(list!=='ol'){ closeList(); out.push('<ol>'); list='ol'; } out.push('<li>'+inline(m[1])+'</li>'); continue; } 389 closeList(); if(l.trim()) out.push('<p>'+inline(l.replace(/^#+\s*/,''))+'</p>'); } 390 closeList(); return out.join(''); 391} 392function withAccount(cb){ var a=window.ElioAccount; if(!a||!a.ready){ cb(null); return; } a.ready.then(function(r){ acct=r; cb(r); }).catch(function(){ cb(null); }); } 393function token(){ return acct&&acct.clerk&&acct.clerk.session&&acct.clerk.session.getToken?acct.clerk.session.getToken():Promise.resolve(''); } 394function headers(t){ var h={ 'Content-Type':'application/json' }; if(t) h.Authorization='Bearer '+t; return h; } 395function foot(j){ if(!j) return; 396 var who=j.signedIn?'':' per visitor, more with a free account'; 397 $('haskmodel').textContent=j.model||'an AI model'; $('haskleft').textContent=(typeof j.left==='number'?j.left+' of '+j.cap+' questions left today'+who+'.':''); } 398function status(){ if(gotStatus) return; gotStatus=true; 399 withAccount(function(){ token().then(function(t){ return fetch('/api/ask?action=status',{ headers:headers(t) }); }).then(function(x){ return x.json(); }).then(foot).catch(function(){}); }); } 400function meta(m){ curId=m.id||null; 401 $('hasksrc').innerHTML=(m.sources&&m.sources.length)?'From the docs: '+m.sources.map(function(x){ return '<a href="'+esc(x.url)+'">'+esc(x.title)+'</a>'; }).join(''):''; 402 if(typeof m.left==='number'){ gotStatus=false; status(); } } 403/* the model ends with "NEXT: q | q": two things the reader might ask next. They come off the answer and become chips. */ 404function splitNext(raw){ 405 var m=/\n?\s*NEXT:\s*([^\n]*)\s*$/i.exec(raw||''); 406 if(!m) return { body:raw, next:[] }; 407 var next=m[1].split('|').map(function(x){ return x.trim().replace(/^[-*\d.)\s]+/,'').replace(/\s+$/,''); }).filter(function(x){ return x.length>3&&x.length<140; }).slice(0,3); 408 return { body:raw.slice(0,m.index), next:next }; 409} 410function showNext(list){ var n=$('hasknext'); if(!list.length){ n.hidden=true; n.innerHTML=''; return; } 411 n.innerHTML=list.map(function(q){ return '<button type="button">'+esc(q)+'</button>'; }).join(''); n.hidden=false; } 412function ask(q){ 413 q=String(q||'').trim(); if(!q) return; 414 $('haskin').value=q; $('haskchips').hidden=true; $('haskout').hidden=false; $('haskq').innerHTML=''; $('haskq').appendChild(document.createElement('span')).textContent=q; 415 var ans=$('haskans'); ans.textContent=''; ans.className='askans busy'; $('hasksrc').innerHTML=''; $('haskfeed').hidden=true; showNext([]); $('haskgo').disabled=true; curId=null; 416 var raw='', buf='', metaDone=false; 417 function handle(text){ buf+=text; 418 if(!metaDone){ var i=buf.indexOf('\n'); if(i<0) return; try{ meta(JSON.parse(buf.slice(0,i))); }catch(e){} buf=buf.slice(i+1); metaDone=true; } 419 raw=buf; ans.textContent=raw.replace(/\n?\s*NEXT:[^\n]*$/i,''); } 420 withAccount(function(){ token().then(function(t){ return fetch('/api/ask',{ method:'POST', headers:headers(t), body:JSON.stringify({ q:q }) }); }) 421 .then(function(r){ 422 if(!r.ok) return r.json().then(function(j){ throw new Error((j&&j.error)||('HTTP '+r.status)); }); 423 var reader=r.body&&r.body.getReader?r.body.getReader():null, dec=new TextDecoder(); 424 if(!reader) return r.text().then(handle); 425 return (function pump(){ return reader.read().then(function(x){ if(x.done) return; handle(dec.decode(x.value,{ stream:true })); return pump(); }); })(); 426 }) 427 .then(function(){ var sp=splitNext(raw); ans.className='askans done'; ans.innerHTML=md(sp.body); showNext(sp.next); if(curId) $('haskfeed').hidden=false; }) 428 .catch(function(e){ ans.className='askans done'; ans.innerHTML='<p class="askerr">'+esc(e.message||'Something went wrong')+'</p>'; }) 429 .then(function(){ $('haskgo').disabled=false; }); }); 430} 431form.addEventListener('submit',function(e){ e.preventDefault(); ask($('haskin').value); }); 432$('haskin').addEventListener('focus',status,{ once:true }); 433$('haskin').addEventListener('input',function(){ form.classList.toggle('typed',!!$('haskin').value); }); 434$('hasknext').addEventListener('click',function(e){ var b=e.target.closest('button'); if(!b) return; $('haskin').value=b.textContent; form.classList.add('typed'); ask(b.textContent); try{ $('haskin').scrollIntoView({ block:'center', behavior:'smooth' }); }catch(err){} }); 435$('haskchips').addEventListener('click',function(e){ var b=e.target.closest('button'); if(b) ask(b.textContent); }); 436$('haskfeed').addEventListener('click',function(e){ var b=e.target.closest('button'); if(!b||!curId) return; var h=b.getAttribute('data-h')==='1'; 437 [].forEach.call($('haskfeed').querySelectorAll('button'),function(x){ x.classList.toggle('on',x===b); }); 438 withAccount(function(){ token().then(function(t){ return fetch('/api/ask?action=feedback',{ method:'POST', headers:headers(t), body:JSON.stringify({ id:curId, helpful:h }) }); }).catch(function(){}); }); }); 439})(); 440</script>
vendor: 1 bytes, line 440
440
441<script> 442(function(){ 443/* the ring's idle sway, driven here rather than as a CSS animation: a 444 compositor-animated transform on the ring flattens its 3D context, and 445 then the turning rim can no longer pass in front of and behind the ball. 446 A plain transform written each frame keeps the per-pixel sort. Aiming 447 (the ball away from home) clears it, and the sway eases back in after. */ 448if(window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches) return; 449var rings=Array.prototype.slice.call(document.querySelectorAll('.gm .ring')); if(!rings.length) return; 450var ease=function(u){ return u<.5?2*u*u:1-Math.pow(-2*u+2,2)/2; }; 451var K=[[0,0],[.3,-16],[.75,24],[1,0]]; 452var sway=function(t){ for(var i=1;i<K.length;i++){ if(t<=K[i][0]){ var a=K[i-1],b=K[i]; return a[1]+(b[1]-a[1])*ease((t-a[0])/(b[0]-a[0])); } } return 0; }; 453var st=rings.map(function(){ return {off:false,resume:0}; }), t0=performance.now(); 454var tick=function(now){ 455 var deg=sway(((now-t0)/11000)%1); 456 for(var i=0;i<rings.length;i++){ var r=rings[i], s=st[i]; 457 if(r.classList.contains('aiming')){ if(!s.off){ s.off=true; r.style.transform=''; } continue; } 458 if(s.off){ s.off=false; s.resume=now; } 459 if(r.offsetParent===null) continue; 460 var k=Math.min(1,(now-s.resume)/700); 461 r.style.transform='rotate('+(deg*k).toFixed(2)+'deg)'; 462 } 463 requestAnimationFrame(tick); 464}; 465requestAnimationFrame(tick); 466})(); 467</script>
467 468</body> 469</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.