1<!DOCTYPE html><html lang="en" class="min-w-full h-full overflow-y-scroll selection:bg-blue-100 selection:text-white bg-gray-800"> <head><meta charset="utf-8"><link rel="alternate" href="https://roli.com/create-account" hreflang="x-default"><link rel="canonical" href="https://roli.com/us/create-account"><link rel="alternate" href="https://roli.com/eu/create-account" hreflang="en"><link rel="alternate" href="https://roli.com/uk/create-account" hreflang="en-GB"><link rel="alternate" href="https://roli.com/us/create-account" hreflang="en-US"><link rel="alternate" href="https://roli.com/jp/create-account" hreflang="ja"><!-- "IMPORTANT: This tag must be the first
1<script> tag on the page." 2 currently, region inline script and GTM are being injected before this tag 3 likely we'll need to fix that. 4 5 STYLING 6 termly is applying in line styles to many elements 7 we can set some of these from Termly 8 however if we need more customization we can try target directly with css 9 10 /* initial cookie banner popup - make body text red */ 11 [class^="termly-styles-main"] { 12 color: red; 13 } 14 15 /* preferences popup - make button red */ 16 [class^="termly-styles-root"] > button { 17 background: red !important; 18 } 19-->
19<script data-termly-config data-astro-rerun> 20 /** 21 * don't block trustpilot widget from loading if consent is declined 22 * the widget doesn't track, it just needs to load their JS to show review stars 23 * must be added to global blocking map, since trustpilot dynamically loads an iframe which will be autoblocked otherwise 24 * 25 * https://support.termly.io/en/articles/7904650-implementing-a-custom-blocking-map-to-change-auto-blocker-s-blocking-behavior 26 */ 27 window.TERMLY_CUSTOM_BLOCKING_MAP = { 28 'bing.com': 'essential', // GTM requirement for Microsoft Advertising. Have been assured that GTM will apply appropriate Consent checks. 29 'trustpilot.com': 'essential', 30 /** 31 * allow youtube embeds to load without consent 32 */ 33 'youtube.com': 'essential', 34 'youtube-nocookie.com': 'essential', 35 'sheerid.com': 'essential', 36 'soundcloud.com': 'essential', 37 /** 38 * store locator page 39 */ 40 'maps.googleapis.com': 'essential', 41 }; 42 43 /** 44 * COPPA: block all consent grant attempts for tracking-restricted users (minors). 45 * must be set up BEFORE the Termly resource-blocker loads, because Termly may 46 * fire gtag('consent', 'update', {granted}) and ovverrides denied state 47 /** */ 48 49 (function () { 50 var restricted = false; 51 try { 52 var storedUser = localStorage.getItem('user'); 53 if (storedUser) { 54 var parsedUser = JSON.parse(storedUser); 55 restricted = parsedUser && parsedUser.trackingRestricted === true; 56 } 57 } catch (e) {} 58 59 if (!restricted) return; 60 61 window.dataLayer = window.dataLayer || []; 62 var dl = window.dataLayer; 63 var originalPush = dl.push.bind(dl); 64 65 dl.push = function () { 66 for (var i = 0; i < arguments.length; i++) { 67 var item = arguments[i]; 68 if ( 69 item && 70 item[0] === 'consent' && 71 item[1] === 'update' && 72 item[2] && 73 item[2].analytics_storage === 'granted' 74 ) { 75 arguments[i] = [ 76 'consent', 77 'update', 78 { 79 ad_storage: 'denied', 80 ad_user_data: 'denied', 81 ad_personalization: 'denied', 82 analytics_storage: 'denied', 83 functionality_storage: 'denied', 84 personalization_storage: 'denied', 85 social_storage: 'denied', 86 unclassified_storage: 'denied', 87 }, 88 ]; 89 } 90 } 91 return originalPush.apply(dl, arguments); 92 }; 93 })(); 94</script>
94
94<script data-astro-rerun type="text/javascript" src="https://app.termly.io/resource-blocker/c687e5f3-d60f-4dbf-b982-dc0d3fde0aed?autoBlock=on"></script>
94
94<script data-astro-rerun> 95 /** 96 * fix for Termly consent tracking issue - ensure Termly.ConsentSaveDone event is pushed to dataLayer on page load 97 * https://weareroli.slack.com/archives/C4U3P6MHS/p1761917268491809 98 */ 99 if (window.Termly && typeof window.Termly.getConsentState === 'function') { 100 var consent = window.Termly.getConsentState(); 101 window.dataLayer = window.dataLayer || []; 102 window.dataLayer.push({ 103 event: 'Termly.ConsentSaveDone', 104 termlyConsent: consent, 105 _termlySource: 'initial', 106 }); 107 } 108</script>
108
108<script data-astro-rerun> 109 /** 110 * this is a hack to allow termly to reload on client navigation 111 * termly reads this value and errors if this var is set to true on load. 112 * we manually set it to false, so termly will reload. 113 * 114 * We must reload termly else the Cookie Preferences link in footer will not work after client navigation 115 * 116 * does cause the above script to be re-requested, however browser should cache it anyway! 117 */ 118 window.TERMLY_RESOURCE_BLOCKER_LOADED = false; 119</script>
119<script type="module">(()=>{let t=0;document.addEventListener("DOMContentLoaded",()=>{window.history.state?.scrollY?window.scrollTo({top:t}):t=0,window.addEventListener("popstate",()=>{t=window.history.state.scrollY},{once:!0})})})();</script>
119<script type="module" src="/_astro/layout.astro_astro_type_script_index_0_lang.DZxbfG_z.js"></script>
119<link rel="preconnect" href="https://www.googletagmanager.com"><link rel="preconnect" href="https://app.storyblok.com"><link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com">
119<script type="text/javascript" id="vwoCode">(function(){const VWO_ID = "747185"; 120const COUNTRY = ""; 121 122 window._vwo_code || 123 (function () { 124 var account_id = VWO_ID, 125 version = 2.1, 126 settings_tolerance = 2000, 127 hide_element = 'body', 128 hide_element_style = 129 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', 130 /* DO NOT EDIT BELOW THIS LINE */ 131 f = false, 132 w = window, 133 d = document, 134 v = d.querySelector('#vwoCode'), 135 cK = '_vwo_' + account_id + '_settings', 136 cc = {}; 137 try { 138 var c = JSON.parse( 139 localStorage.getItem('_vwo_' + account_id + '_config'), 140 ); 141 cc = c && typeof c === 'object' ? c : {}; 142 } catch (e) {} 143 var stT = cc.stT === 'session' ? w.sessionStorage : w.localStorage; 144 code = { 145 use_existing_jquery: function () { 146 return typeof use_existing_jquery !== 'undefined' 147 ? use_existing_jquery 148 : undefined; 149 }, 150 library_tolerance: function () { 151 return typeof library_tolerance !== 'undefined' 152 ? library_tolerance 153 : undefined; 154 }, 155 settings_tolerance: function () { 156 return cc.sT || settings_tolerance; 157 }, 158 hide_element_style: function () { 159 return '{' + (cc.hES || hide_element_style) + '}'; 160 }, 161 hide_element: function () { 162 if (performance.getEntriesByName('first-contentful-paint')[0]) { 163 return ''; 164 } 165 return typeof cc.hE === 'string' ? cc.hE : hide_element; 166 }, 167 getVersion: function () { 168 return version; 169 }, 170 finish: function (e) { 171 if (!f) { 172 f = true; 173 var t = d.getElementById('_vis_opt_path_hides'); 174 if (t) t.parentNode.removeChild(t); 175 if (e) 176 new Image().src = 177 'https://dev.visualwebsiteoptimizer.com/ee.gif?a=' + 178 account_id + 179 e; 180 } 181 }, 182 finished: function () { 183 return f; 184 }, 185 addScript: function (e) { 186 var t = d.createElement('script'); 187 t.type = 'text/javascript'; 188 if (e.src) { 189 t.src = e.src; 190 } else { 191 t.text = e.text; 192 } 193 d.getElementsByTagName('head')[0].appendChild(t); 194 }, 195 load: function (e, t) { 196 var i = this.getSettings(), 197 n = d.createElement('script'), 198 r = this; 199 t = t || {}; 200 if (i) { 201 n.textContent = i; 202 d.getElementsByTagName('head')[0].appendChild(n); 203 if (!w.VWO || VWO.caE) { 204 stT.removeItem(cK); 205 r.load(e); 206 } 207 } else { 208 var o = new XMLHttpRequest(); 209 o.open('GET', e, true); 210 o.withCredentials = !t.dSC; 211 o.responseType = t.responseType || 'text'; 212 o.onload = function () { 213 if (t.onloadCb) { 214 return t.onloadCb(o, e); 215 } 216 if (o.status === 200) { 217 _vwo_code.addScript({ text: o.responseText }); 218 } else { 219 _vwo_code.finish('&e=loading_failure:' + e); 220 } 221 }; 222 o.onerror = function () { 223 if (t.onerrorCb) { 224 return t.onerrorCb(e); 225 } 226 _vwo_code.finish('&e=loading_failure:' + e); 227 }; 228 o.send(); 229 } 230 }, 231 getSettings: function () { 232 try { 233 var e = stT.getItem(cK); 234 if (!e) { 235 return; 236 } 237 e = JSON.parse(e); 238 if (Date.now() > e.e) { 239 stT.removeItem(cK); 240 return; 241 } 242 return e.s; 243 } catch (e) { 244 return; 245 } 246 }, 247 init: function () { 248 if (d.URL.indexOf('__vwo_disable__') > -1) return; 249 var e = this.settings_tolerance(); 250 w._vwo_settings_timer = setTimeout(function () { 251 _vwo_code.finish(); 252 stT.removeItem(cK); 253 }, e); 254 var t;
255 if (this.hide_element() !== 'body') { 256 t = d.createElement('style'); 257 var i = this.hide_element(), 258 n = i ? i + this.hide_element_style() : '', 259 r = d.getElementsByTagName('head')[0]; 260 t.setAttribute('id', '_vis_opt_path_hides'); 261 v && t.setAttribute('nonce', v.nonce); 262 t.setAttribute('type', 'text/css'); 263 if (t.styleSheet) t.styleSheet.cssText = n; 264 else t.appendChild(d.createTextNode(n)); 265 r.appendChild(t); 266 } else { 267 t = d.getElementsByTagName('head')[0]; 268 var n = d.createElement('div'); 269 n.style.cssText = 270 'z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;'; 271 n.setAttribute('id', '_vis_opt_path_hides'); 272 n.classList.add('_vis_hide_layer'); 273 t.parentNode.insertBefore(n, t.nextSibling); 274 } 275 var o = 276 'https://dev.visualwebsiteoptimizer.com/j.php?a=' + 277 account_id + 278 '&u=' + 279 encodeURIComponent(d.URL) + 280 '&vn=' + 281 version; 282 if (w.location.search.indexOf('_vwo_xhr') !== -1) { 283 this.addScript({ src: o }); 284 } else { 285 this.load(o + '&x=true'); 286 } 287 }, 288 }; 289 w._vwo_code = code; 290 if (COUNTRY !== 'JP') { 291 code.init(); 292 } 293 })(); 294})();</script>
294<!-- 295 init vwo on consent update 296 VWO does not provide a seamless way to reload consent state after first accepted/declined. 297 298 https://help.vwo.com/hc/en-us/articles/34254349279257-Configuring-VWO-SmartCode-for-Your-Website-s-Cookie-Consent 299 "if a visitor initially declines the tracking request but accepts it later, VWO will only start functioning from their next visit <page reload>. Any actions performed during the period when tracking was 300declined will not be tracked, and no campaigns will run during that time." 301-->
301<script type="module">document.addEventListener("DOMContentLoaded",()=>{try{const t=localStorage.getItem("user");if(t){const o=JSON.parse(t);if(o&&o.trackingRestricted===!0){window.VWO=window.VWO||[],window.VWO.init=window.VWO.init||function(n){window.VWO.consentState=n},window.VWO.init(3);return}}}catch{}window.addEventListener("dataLayer.push",t=>{const o=t;if(o.detail?.[0]!=="consent"||o.detail?.[1]!=="update")return;window.VWO=window.VWO||[],window.VWO.init=window.VWO.init||function(i){window.VWO.consentState=i};const n=o.detail?.[2]?.analytics_storage==="granted"?1:3;if(window.VWO.init(n),n!==3)return;const c=["_vis_opt","_vwo","wingify","pushcrew","pshcrw","_pc"],w="_vwo_consent",d=[".roli.com",window.location.host,window.location.hostname];document.cookie.split(";").forEach(i=>{const[e]=i.trim().split("=");if(e===w)return;c.find(s=>e.startsWith(s))&&d.forEach(s=>{document.cookie=`${e}=; Max-Age=0; path=/; domain=${s};`})})})});</script>
301<script type="text/javascript">(function(){const GTM_ID = "GTM-PWNNTS"; 302const COUNTRY = ""; 303 304 (function () { 305 var country = COUNTRY; 306 307 var dataLayer = window.dataLayer || []; 308 309 function gtag() { 310 dataLayer.push(arguments); 311 } 312 313 var trackingRestricted = false; 314 try { 315 var storedUser = localStorage.getItem('user'); 316 if (storedUser) { 317 var parsedUser = JSON.parse(storedUser); 318 trackingRestricted = 319 parsedUser && parsedUser.trackingRestricted === true; 320 } 321 } catch (e) {} 322 323 // Restricted users / minors (COPPA): deny all non-essential categories. 324 if (trackingRestricted) { 325 gtag('consent', 'default', { 326 ad_storage: 'denied', 327 ad_user_data: 'denied', 328 ad_personalization: 'denied', 329 analytics_storage: 'denied', 330 }); 331 } 332 333 if (country) { 334 dataLayer.push({ roli_country: country }); 335 } 336 337 /** 338 * https://stackoverflow.com/questions/66883616/event-listener-for-datalayer-push-events-on-tag-manager-js 339 * add proxy to datalayer to publish dataLayer.push events to window 340 * currently used to init VWO on consent state updated 341 * saves custom template setup in GoogleTagManager 342 */ 343 window.dataLayer = new Proxy(dataLayer, { 344 set: (obj, prop, value) => { 345 if (prop !== 'length') { 346 // Block consent grant updates for tracking-restricted users (COPPA minors). 347 // Handles two cases: 348 // 1. Termly.ConsentSaveDone events (from Termly SDK native firings after Proxy is active) 349 // - Modify termlyConsent payload so GTM's Termly template sees denied state 350 // 2. Direct consent update commands that somehow reach the external dataLayer 351 if (trackingRestricted && value) { 352 if ( 353 value.event === 'Termly.ConsentSaveDone' && 354 value.termlyConsent 355 ) { 356 value = Object.assign({}, value, { 357 termlyConsent: { 358 essential: true, 359 performance: false, 360 analytics: false, 361 advertising: false, 362 social_networking: false, 363 unclassified: false, 364 }, 365 }); 366 } else if ( 367 value[0] === 'consent' && 368 value[1] === 'update' && 369 value[2] && 370 value[2].analytics_storage === 'granted' 371 ) { 372 value = [ 373 'consent', 374 'update', 375 { 376 ad_storage: 'denied', 377 ad_user_data: 'denied', 378 ad_personalization: 'denied', 379 analytics_storage: 'denied', 380 functionality_storage: 'denied', 381 personalization_storage: 'denied', 382 social_storage: 'denied', 383 unclassified_storage: 'denied', 384 }, 385 ]; 386 } 387 } 388 389 const pushEvent = new CustomEvent('dataLayer.push', { 390 detail: value, 391 }); 392 393 window.dispatchEvent(pushEvent); 394 } 395 396 return Reflect.set(obj, prop, value); 397 }, 398 }); 399 400 const gtmScriptSrc = `https://www.googletagmanager.com/gtm.js?id=${GTM_ID}`; 401 const existingGtmScript = document.querySelector( 402 `script[src="${gtmScriptSrc}"]`, 403 ); 404 if (existingGtmScript) { 405 console.warn('gtm.js error: gtm.js already loaded'); 406 return; 407 } 408 409 window.dataLayer.push({ 410 'gtm.start': new Date().getTime(), 411 event: 'gtm.js', 412 }); 413 414 const gtmScriptElement = document.createElement('script'); 415 gtmScriptElement.async = true; 416 gtmScriptElement.src = gtmScriptSrc; 417 418 const firstScriptElement = document.getElementsByTagName('script')[0]; 419 if (!firstScriptElement) { 420 console.warn('gtm.js error: failed to add gtm.js script to document'); 421 return; 422 } 423 424 firstScriptElement.parentNode?.insertBefore( 425 gtmScriptElement, 426 firstScriptElement, 427 ); 428 })(); 429})();</script>
429<script async src="https://js.klarna.com/web-sdk/v1/klarna.js" data-client-id="klarna_live_client_KnRsOGsqYUZIVyovV1BFejFiUWRUU0RRMndoSWtWOGksOGU4ZjgzOTMtM2RjNS00ZTg2LWE0ZGItMjdhNzMzNmM0YWJlLDEsb1Nzd2ZXWmFFQmxuZWpXY1J2QmMxOTgwY0xUODd4RDlmS1VtWkZkUE9RMD0"></script>
429<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
429<!-- For social embeds on the blog -->
429<script async src="https://www.instagram.com/embed.js"></script>
429<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="shortcut icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"><link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-120x120-precomposed.png"><meta name="apple-mobile-web-app-title" content="Roli"><link rel="manifest" href="/site.webmanifest" crossorigin="use-credentials"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="msapplication-TileColor" content="#faf6ee"><meta name="theme-color" content="#faf6ee"><title>Create account | ROLI</title><link rel="sitemap" href="/sitemap.xml"><link rel="preload" href="/fonts/PolymathROLI/WOFF2/PolymathDispROLI-Regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/PolymathROLI/WOFF2/PolymathDispROLI-Light.woff2" as="font" type="font/woff2" crossorigin>
429<script type="application/ld+json"> 430 { 431 "@context": "https://schema.org", 432 "@type": "Organization", 433 "@id": "https://roli.com/#organization", 434 "name": "ROLI", 435 "url": "https://roli.com", 436 "logo": { 437 "@type": "ImageObject", 438 "url": "https://roli.com/apple-touch-icon-precomposed.png", 439 "width": "180", 440 "height": "180" 441 }, 442 "sameAs": [ 443 "https://www.facebook.com/ROLI", 444 "https://www.tiktok.com/@roli_create", 445 "https://www.tiktok.com/@roli_learn", 446 "https://www.instagram.com/roli_learn", 447 "https://www.instagram.com/roli_create", 448 "https://www.youtube.com/@WeAreROLI" 449 ] 450 } 451</script>
451<link rel="stylesheet" href="/_astro/_slug_.DqEVL20g.css"> 452<style>.onboarding-container{position:relative;width:100%;height:100%;overflow:hidden}.onboarding-screen{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform 1.3s cubic-bezier(.16,1,.2,1);will-change:transform}.onboarding-screen--current{transform:translate(0);z-index:2}.onboarding-screen--entering{transform:translate(0);z-index:2;animation:slideInFromRight 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--exiting{transform:translate(0);z-index:1;animation:slideOutToLeft 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--entering-back{transform:translate(0);z-index:2;animation:slideInFromLeft 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--exiting-back{transform:translate(0);z-index:1;animation:slideOutToRight 1.3s cubic-bezier(.16,1,.2,1) forwards}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:.95}25%{opacity:1}to{transform:translate(0);opacity:1}}@keyframes slideOutToLeft{0%{transform:translate(0);opacity:1}75%{opacity:.95}to{transform:translate(-100%);opacity:.9}}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:.95}25%{opacity:1}to{transform:translate(0);opacity:1}}@keyframes slideOutToRight{0%{transform:translate(0);opacity:1}75%{opacity:.95}to{transform:translate(100%);opacity:.9}}@media (prefers-reduced-motion: reduce){.onboarding-screen{transition:none;animation:none!important}.onboarding-screen--entering,.onboarding-screen--entering-back,.onboarding-screen--exiting,.onboarding-screen--exiting-back{transform:translate(0)}}@media (max-width: 768px){.onboarding-screen{transition-duration:1s}.onboarding-screen--entering,.onboarding-screen--exiting,.onboarding-screen--entering-back,.onboarding-screen--exiting-back{animation-duration:1s}}.onboarding-screen--exiting .select-instrument__carousel,.onboarding-screen--exiting-back .select-instrument__carousel{opacity:0!important;pointer-events:none!important}@media (hover: none) and (pointer: coarse){.onboarding-screen{transition-timing-function:cubic-bezier(.4,0,.2,1)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 2dppx){.onboarding-screen{backface-visibility:hidden;transform-style:preserve-3d}} 453</style>
453<script type="module" src="/_astro/page.MielndDw.js"></script>
453</head> <body class="flex min-h-full w-full flex-col antialiased font-normal font-display"> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style>
453<script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script>
453<script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script>
453<astro-island uid="DmG7J" component-url="/_astro/promo-banner.BFeix86q.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"url":[0,""],"_uid":[0,"9d73b696-b9e5-4aa2-a526-78b73d8ca59a"],"message":[0,"We're currently undergoing site maintenance. Please check back later."],"promoId":[0,"AI Music Coach"],"visible":[0,true],"component":[0,"PromoBanner"],"countdown":[0,""],"promoName":[0,"AI Music Coach"],"message_eu":[0,"We're currently undergoing site maintenance. Please check back later."],"message_jp":[0,"ç¾å¨ã¡ã³ããã³ã¹ä¸ã§ãããã°ãããã¦ããå度ã試ããã ããã"],"message_uk":[0,"We're currently undergoing site maintenance. Please check back later."],"message_us":[0,"We're currently undergoing site maintenance. Please check back later."],"message_line_2":[0,""],"message_staging":[0,"We're currently undergoing site maintenance. Please check back later."],"background_color":[0,{"value":[0,"#F36363"],"plugin":[0,"storyblok-palette"]}],"astroParams":[0,{"region":[0,"us"]}]}" ssr client="only" opts="{"name":"PromoBanner","value":"solid-js"}"></astro-island> <div class="relative"> <div class="hidden lg:block"> <astro-island uid="1w6OhH" component-url="/_astro/menu.BhOoOA7e.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"sections":[1,[[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"06c7e90f-bc01-4b33-8030-c241b838f37c"],"items":[1,[[0,{"url":[0,"/experience/roli-piano-system-learn"],"_uid":[0,"8990e3ab-cb89-4c10-9997-7f0575961eba"],"image":[0,{"id":[0,148552710410160],"alt":[0,"A ROLI Piano keyboard with color-accented keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides above the instrument."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-airwave.148552710410160.webp"],"filename":[0,"https://a.storyblok.com/f/278825/432x384/e143a77624/nav-piano-airwave.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano keyboard with color-accented keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides above the instrument."],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-airwave.148552710410160.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Piano System"],"promoTag":[0,"Most popular"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/piano-learn"],"_uid":[0,"0a4c1442-c019-4f45-9be3-03cbe5bd2c8d"],"image":[0,{"id":[0,148553712992206],"alt":[0,"A ROLI Piano with pastel-colored keys is placed on a white surface, with a tablet displaying the ROLI Learn app propped up behind the keyboard."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_piano-1-1.148553712992206.webp"],"filename":[0,"https://a.storyblok.com/f/278825/576x495/1f1f1fb249/nav_piano-1-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano with pastel-colored keys is placed on a white surface, with a tablet displaying the ROLI Learn app propped up behind the keyboard."],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_piano-1-1.148553712992206.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Piano"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/piano-m-learn"],"_uid":[0,"5586f0c8-1957-4504-8d4d-333abc318fa8"],"image":[0,{"id":[0,148559070502975],"alt":[0,"A ROLI Piano M with a tablet displaying the ROLI Learn app, showing an interactive piano lesson interface above the keyboard."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-m.148559070502975.webp"],"filename":[0,"https://a.storyblok.com/f/278825/432x384/c763457dd1/nav-piano-m.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano M with a tablet displaying the ROLI Learn app, showing an interactive piano lesson interface above the keyboard."],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-m.148559070502975.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Piano M"],"promoTag":[0,""],"component":[0,"nav-section-item"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"backgroundColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/airwave-learn"],"_uid":[0,"0c71c6e1-9aed-4e55-a48d-1bb459420841"],"image":[0,{"id"
453:[0,148558866362425],"alt":[0,"A metallic stand with a rectangular frame and a ribbed base, designed to hold a device upright."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-airwave-learn.148558866362425.webp"],"filename":[0,"https://a.storyblok.com/f/278825/432x384/4e1135e22d/nav-airwave-learn.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A metallic stand with a rectangular frame and a ribbed base, designed to hold a device upright."],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-airwave-learn.148558866362425.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Airwave"],"offerTag":[0,"b0ed436e-1995-4617-bfb1-87b1e0664649"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/product/collection/create"],"_uid":[0,"3f5c5437-ae07-43f6-af9c-33a761719f8c"],"image":[0,{"id":[0,166172062242952],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/432x384/98f8c8f8fe/creator-bundle-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Creator Products"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"\"#F47676\""],"plugin":[0,"storyblok-palette"]}]}]]],"links":[1,[[0,{"url":[0,"/product/learn-membership"],"_uid":[0,"c89bbfd1-4297-4cf3-95c4-bb4ef127a2c5"],"title":[0,"Learn Membership"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/product/collection/learn/accessories"],"_uid":[0,"f464b427-3fba-47c3-915d-e7fbbd1fa0a6"],"title":[0,"Accessories"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}]]],"theme":[0,"learn"],"title":[0,"Products"],"component":[0,"nav-section"],"promoItem":[1,[]],"viewAllUrl":[0,"/product/collection/learn"],"showViewAll":[0,true],"viewAllLabel":[0,"Shop all"]}],[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"2276700c-84d6-4bad-ab91-44a72319f68c"],"items":[1,[[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"b20c7155-0d24-4f60-95d8-6dd336ac0d50"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Shop"],"offerTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/blog"],"_uid":[0,"6eb8c6ba-a770-4e55-ad87-1a05ccb06cbc"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Blog"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/support"],"_uid":[0,"631db69f-471e-4075-b9df-1060181243c4"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Support"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/about-us"],"_uid":[0,"9fc8ee46-b344-44d8-8262-80e4e5dae2bc"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"title":[0,"About us"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"\"#F47676\""],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/start"],"_uid":[0,"40df0dc2-cbd1-416f-8c4a-2051c418be26"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Get Started"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/order-management"],"_uid":[0,"406b15a9-d1e2-4f98-b42d-4868de879604"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"title":[0,"Order Management"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}]]],"links":[1,[[0,{"url":[0,"/team"],"_uid":[0,"b101053a-e9e2-4905-a9ac-c65e9728c481"],"title":[0,"Our Team"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/careers"],"_uid":[0,"103b4450-d2ef-4b49-8476-d2e00ea3df48"],"title":[0,"Careers"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/start"],"_uid":[0,"8ed070f4-a2d3-4b31-be1f-fc4d14ba8a67"],"title":[0,"Get Started"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,true]}]]],"theme":[0,"learn"],"title":[0,"More"],"component":[0,"nav-section"],"viewAllUrl":[0,""],"showViewAll":[0,false],"viewAllLabel":[0,""]}]]],"theme":[0,0],"astroParams":[0,{"region":[0,"us"]}],"ariaLabels":[0,{"_uid":[0,"61fdaf48-3ca0-4f1c-8101-59d44353e5c3"],"component":[0,"ariaLabelSection"],"ariaLabelCart":[0,"Cart"],"ariaLabelHome":[0,"Go to ROLI homepage"],"ariaLabelLogin":[0,"Sign in"],"ariaLabelAccount":[0,"My account"],"ariaLabelOpenMenu":[0,"Open navigation menu"],"ariaLabelCloseMenu":[0,"Close navigation menu"]}],"loginCtaText":[0,"Login"],"accountCtaText":[0,"Account"],"language":[0]}" ssr client="only" opts="{"name":"NavigationMenuDesktop","value":"solid-js"}"></astro-island> </div> <div class="lg:hidden"> <astro-island uid="1Qd28U" component-url="/_astro/menu-small.CNeITomP.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"sections":[1,[[0,{"_uid":[0,"78359e74-2695-4b6e-a59f-ccf53af69c69"],"items":[1,[[0,{"url":[0,"/experience/roli-piano-system-learn"],"_uid":[0,"d4b03d3a-f057-48c6-bcb1-55b90ed3d5b1"],"image":[0,{"id":[0,148829459294432],"alt":[0,"A ROLI Piano M keyboard with multicolored keys is placed on a desk, with a tablet displaying a piano learning app showing animated hands and notes above the instrument."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/mobile-nav-piano-airwave.148829459294432.png"],"filename":[0,"https://a.storyblok.com/f/278825/374x339/ea1e8d3253/mobile-nav-piano-airwave.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano M keyboard with multicolored keys is placed on a desk, with a tablet displaying a piano learning app showing animated hands and notes above the instrument."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/mobile-nav-piano-airwave.148829459294432.png"]}],"is_external_url":[0,false]}],"title":[0,"Piano System"],"promoTag":[0,"Most popular"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/piano-learn"],"_uid":[0,"3f798903-1bd9-4460-bb14-503aee4cbf93"],"image":[0,{"id":[0,148790751071055],"alt":[0,"A ROLI Piano M with pastel-colored keys is positioned on a desk, supporting a tablet displaying the ROLI Learn app with a lesson titled \"Getting started with ROLI Piano.\""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-mobile.148790751071055.png"],"filename":[0,"https://a.storyblok.com/f/278825/500x375/ecc05c354b/nav-piano-mobile.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano M with pastel-colored keys is positioned on a desk, supporting a tablet displaying the ROLI Learn app with a lesson titled \"Getting started with ROLI Piano.\""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-piano-mobile.148790751071055.png"]}],"is_external_url":[0,false]}],"title":[0,"Piano"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/piano-m-learn"],"_uid":[0,"b4c517da-5d34-40ec-b602-23d24eb9af66"],"image":[0,{"id":[0,148834895145469],"alt":[0,"A ROLI Piano M with a tablet displaying a digital piano interface, showing colored notes and highlighted keys, set up on a flat surface."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_piano-m-1.148834895145469.png"],"filename":[0,"https://a.storyblok.com/f/278825/335x213/c2df048699/nav_piano-m-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Piano M with a tablet displaying a digital piano interface, showing colored notes and highlighted keys, set up on a flat surface."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_piano-m-1.148834895145469.png"]}],"is_external_url":[0,false]}],"title":[0,"Piano M"],"offerTag":[0,"b0ed436e-1995-4617-bfb1-87b1e0664649"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/experience/airwave-learn"],"_uid":[0,"1e9c0b89-f4b6-494f-a84f-c5d1cf4dee88"],"image":[0,{"id":[0,149149445849299],"alt":[0,"A black and silver stand with a rectangular frame and a grooved base, designed for holding a musical instrument or device upright."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_airwave-1.149149445849299.png"],"filename":[0,"https://a.storyblok.com/f/278825/326x270/71a52bdc97/nav_airwave-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A black and silver stand with a rectangular frame and a grooved base, designed for holding a musical instrument or device upright."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav_airwave-1.149149445849299.png"]}],"is_external_url":[0,false]}],"title":[0,"Airwave"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/product/learn-membership"],"_uid":[0,"97600ae4-f244-4a5b-926b-e9658dcbc300"],"image":[0,{"id":[0,17287170],"alt":[0,"In cascade view RBG colored
453music notes slide off to keyboard"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Piano M for Learners"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli_learncard.17287170.png"],"filename":[0,"https://a.storyblok.com/f/278825/2154x1459/ea3571be24/roli_learncard.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"In cascade view RBG colored music notes slide off to keyboard"],"title":[0,"ROLI Piano M for Learners"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli_learncard.17287170.png"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Learn Membership"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/product/collection/create"],"_uid":[0,"56ced40c-9fb6-4506-a368-c6df02fda14f"],"image":[0,{"id":[0,166172062242952],"alt":[0,"A ROLI Seaboard 2 with a black silicone surface sits behind a ROLI Piano M, which features a colorful gradient key design, both displayed on a plain background."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/creator-bundle-1.166172062242952.png"],"filename":[0,"https://a.storyblok.com/f/278825/432x384/98f8c8f8fe/creator-bundle-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A ROLI Seaboard 2 with a black silicone surface sits behind a ROLI Piano M, which features a colorful gradient key design, both displayed on a plain background."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/creator-bundle-1.166172062242952.png"]}],"is_external_url":[0,false]}],"title":[0,"Creator Products"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"\"#F47676\""],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/product/collection/learn/accessories"],"_uid":[0,"26ee4c05-0d7a-4388-b688-1a7ee7483263"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"title":[0,"Accessories"],"offerTag":[0,""],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"backgroundColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}]}]]],"links":[1,[]],"theme":[0,"learn"],"title":[0,"Products"],"component":[0,"mobile_nav_section"],"promoItem":[1,[]],"viewAllUrl":[0,"/product/collection/learn"],"viewAllLabel":[0,"Shop all products"],"promoItemColour":[0,{"value":[0,"#7a9ae6"],"plugin":[0,"storyblok-palette"]}],"titleOverrideColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}]}],[0,{"_uid":[0,"f26b16c8-1481-4297-8433-a9aa50beec7b"],"items":[1,[]],"links":[1,[[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"8e4dec7b-179e-4b0a-950c-1e4b70dfffcf"],"title":[0,"Shop"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/blog"],"_uid":[0,"91a23c05-eab9-4099-acaf-e1a0bd865cf7"],"title":[0,"Blog"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/about-us"],"_uid":[0,"4c99cbdf-16a3-4bfb-9ade-1f630d915c25"],"title":[0,"About us"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/support"],"_uid":[0,"c5ac5c51-5702-4765-bb31-001dffd4cd53"],"title":[0,"Support"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/faq"],"_uid":[0,"dded6bdd-720c-4669-9e4c-2998104d2eaf"],"title":[0,"FAQs"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/start"],"_uid":[0,"3560d9b4-3575-429b-810b-ad120af7e275"],"title":[0,"Get Started"],"component":[0,"link-and-title"],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}],[0,{"url":[0,"/order-management"],"_uid":[0,"20545b8d-57c0-43dc-8f53-f3dada8c08bd"],"title":[0,"Order Management"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}]]],"theme":[0,"learn"],"title":[0,"More"],"component":[0,"mobile_nav_section"],"viewAllUrl":[0,""],"viewAllLabel":[0,"View all"],"promoItemColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"titleOverrideColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}]}]]],"astroParams":[0,{"region":[0,"us"]}],"theme":[0,0],"ariaLabels":[0,{"_uid":[0,"6182f49c-9396-497d-a0af-d50b0b258483"],"component":[0,"ariaLabelSection"],"ariaLabelHome":[0,"Go to ROLI homepage"],"ariaLabelOpenMenu":[0,"Open navigation menu"],"ariaLabelCloseMenu":[0,"Close navigation menu"]}],"loginCtaText":[0,"Login"],"accountCtaText":[0,"Account"],"language":[0]}" ssr client="only" opts="{"name":"NavigationMenuSmall","value":"solid-js"}"></astro-island> </div>
453 <div class="bg-ivory min-h-[806px] md:min-h-[788px]"> <astro-island uid="1eKcFQ" component-url="/_astro/create-account.R5FnK0Fi.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"content":[1,[[0,{"_uid":[0,"2e58e587-9710-4017-9a58-5d4fc531aa03"],"dobLabel":[0,"Your date of birth*"],"component":[0,"step1"],"pageTitle":[0,"Create account"],"termsLink":[0,"/legal/terms-of-service"],"termsText":[0,"By pressing continue you agree to the"],"termsText2":[0,"Terms of service"],"dayPlaceholder":[0,"DD"],"disclaimerText":[0,"*This information will not be shared with third parties"],"yearPlaceholder":[0,"YYYY"],"monthPlaceholder":[0,"MM"],"signInButtonText":[0,"Sign in"],"privacyPolicyLink":[0,"/legal/privacy-policy"],"privacyPolicyText":[0,"Privacy Policy"],"continueButtonText":[0,"Continue"],"invalidDateErrorText":[0,"Invalid date"],"termsAndPrivacyConjuction":[0,"and"]}],[0,{"_uid":[0,"a8da5db5-d84a-42da-b8f9-caeba58fc2da"],"title":[0,"Create account"],"component":[0,"step2"],"emailLabel":[0,"Email address"],"lastNameLabel":[0,"Surname"],"passwordLabel":[0,"Create a password"],"backButtonText":[0,"Back"],"firstNameLabel":[0,"First name"],"newsletterLabel":[0,"I would like the latest news from ROLI"],"emailPlaceholder":[0,"E.g. [email protected]"],"registerButtonText":[0,"Register"],"serverErrorMessage":[0,"An error occured"],"confirmPasswordLabel":[0,"Confirm password"],"emailMismatchErrorMessage":[0,"Emails do not match"],"lastNamePronunciationLabel":[0,"t"],"firstNamePronunciationLabel":[0,"t"]}],[0,{"_uid":[0,"5ee31b42-3e59-4018-a4d8-e08816488853"],"title":[0,"Create account"],"bodyText":[0,"Luminary ROLI Ltd. utilises MongoDB, Inc and Amazon Web Services products to store and process customer data in the United Kingdom and the United States. The United Kingdom is recognised by Japan's Personal Information Protection Commission (PPC) as providing a standard of personal data protection equivalent to Japan's APPI. The United States does not benefit from such recognition; however, measures have been implemented to ensure a standard of protection of an equivalent level, including encryption (at rest and in transit), access controls, and vendor security standards.\n\nFor full details of how your data is transferred and protected, see the International Transfers section of our {privacyText}."],"component":[0,"step3"],"consentText":[0,"å人ãã¼ã¿ãè±å½ããã³ç±³å½ã«ããã¦ç§»è»¢ãä¿åãããã³å¦çããããã¨ã«åæãã¾ãã"],"privacyText":[0,"Privacy Policy"],"sectionTitle":[0,"Cross-Border Data Transfers"],"backButtonText":[0,"Back"],"disclaimerText":[0,"*This information will not be shared with third parties"],"consentModalTitle":[0,"åæãè¦ãã¾ã"],"registerButtonText":[0,"Register"],"serverErrorMessage":[0,"There was an error. Please try again later"],"consentModalBodyText":[0,"次ã«é²ãã«ã¯ãã客æ§ã®å人ãã¼ã¿ãæ¥æ¬å½å¤ã¸ç§»è»¢ãä¿åãããã³å¦çããããã¨ã«åæãã¦ããã ãå¿
è¦ãããã¾ãã"],"consentModalContinueText":[0,"次ã¸"]}],[0,{"_uid":[0,"962d314a-4956-4ca5-80bf-d8cb1ffb0d34"],"title":[0,"We're sorry. You need to be 16+ to create a ROLI account"],"component":[0,"underAge"],"emailLabel":[0,"Email address"],"description":[0,"You can ask an adult to create an account for you or add their email address below and we'll send them an invite."],"emailPlaceholder":[0,"E.g. [email protected]"],"submitButtonText":[0,"Submit"]}],[0,{"_uid":[0,"53c03d48-f152-4ea5-985e-bfe642c955d4"],"title":[0,"
453Thank you. We've sent the invite"],"component":[0,"coppaInviteSent"],"emailLabel":[0,""],"description":[0,"Weâve sent an email to your guardian to approve or reject your account creation request"],"emailPlaceholder":[0,""],"continueButtonText":[0,"Continue"]}],[0,{"_uid":[0,"37405cad-bfc3-4793-8c30-31fd73d4c124"],"title":[0,"Sign in"],"component":[0,"signin"],"emailLabel":[0,"Email or username"],"corsErrorText":[0,"An error occured"],"passwordLabel":[0,"Password"],"serverErrorText":[0,"An error occurred"],"emailPlaceholder":[0,"E.g. [email protected]"],"signInButtonText":[0,"Sign in"],"emailRequiredText":[0,"Email required"],"forgotPasswordText":[0,"Forgotten your password?"],"passwordPlaceholder":[0,""],"unexpectedErrorText":[0,"An error occurred"],"passwordRequiredText":[0,"Password required"],"createAccountButtonText":[0,"Create account"],"authenticationFailedText":[0,"Authentication failed"]}],[0,{"_uid":[0,"2b0058ec-e31a-4250-ab0f-9ca57e345bec"],"title":[0,"Pick a new password"],"subtitle":[0,""],"component":[0,"setNewPassword"],"successTitle":[0,"Your password has been changed"],"subtitleHighlight":[0,""],"successButtonText":[0,"Continue to your account"],"continueButtonText":[0,"Submit"],"successDescription":[0,"You can now sign into your account"],"passwordPlaceholder":[0,"Create new password"],"passwordMismatchErrorText":[0,"Passwords do not match"],"confirmPasswordPlaceholder":[0,"Confirm new password"],"sameAsOldPasswordErrorText":[0,"New password cannot be the same as your old one"]}]]]}" ssr client="only" opts="{"name":"CreateAccountPage","value":"solid-js"}"></astro-island> <astro-island uid="ZkHRAE" component-url="/_astro/create-account-error-provider.CbFK9jJ4.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"errorContent":[0,{"_uid":[0,"510f234d-0fed-42e0-8e76-2a759aefe6d3"],"component":[0,"createAccount"],"createAccountForm":[1,[[0,{"_uid":[0,"45091dfd-b554-43c3-944c-0d128b3e40ab"],"component":[0,"createAccountForm"],"emailTaken":[0,"Email already in use"],"invalidDay":[0,"Must be 1-31"],"invalidYear":[0,"Must be a valid year from 1904"],"InvalidEmail":[0,"Must be a valid email addres"],"invalidMonth":[0,"Must be 1-12"],"usernameTaken":[0,"Username already in use"],"invalidLastName":[0,"Must be a valid name, allowing for hyphens and apostrophes"],"invalidPassword":[0,"Must be at least 8 characters long and contain at least one number, one lowercase letter, and one uppercase letter."],"invalidFirstName":[0,"Must be a valid name, allowing for hyphens and apostrophes"],"invalidGuardianEmail":[0,"Must be a valid email address."],"invalidConfirmPassword":[0,"Please ensure both passwords match"]}]]]}]}" ssr client="only" opts="{"name":"CreateAccountErrorProvider","value":"solid-js"}"></astro-island> </div> <footer id="global-footer" class="mt-auto w-full text-ebony bg-ivory "> <nav class="h-full w-full" aria-label="Main navigation"> <div class="flex h-full w-full flex-col p-8 xl:mb-16 xl:p-16"> <a class="text-on-ebony-dark-ivory w-full xl:w-[580px]" href="/us" aria-label="Go to Roli home page"><svg viewBox="0 0 660 230" fill="none" xmlns="http://www.w3.org/2000/svg"> 454<path d="M0.00999451 220.43L0.0103455 74.5C0.0103455 27.19 25.6403 3 72.9503 3H144.05C148.26 3 150.62 5.37001 150.62 9.57001V14.83C150.62 27.71 143.65 34.68 130.77 34.68H72.9404C47.5704 34.68 33.9104 47.69 33.9104 73.45L33.91 220.43C33.91 224.64 31.54 227 27.34 227H6.56999C2.35999 227 0 224.63 0 220.43H0.00999451Z" fill="currentColor"/> 455<path d="M273.43 230C338.22 230 388.43 179.79 388.43 115C388.43 50.21 338.22 0 273.43 0C208.64 0 158.43 50.21 158.43 115C158.43 179.79 208.5 230 273.43 230ZM273.43 31.81C319.56 31.81 354.52 68.22 354.52 115C354.52 161.78 319.56 198.19 273.43 198.19C227.3 198.19 192.34 161.78 192.34 115C192.34 68.22 227.17 31.81 273.43 31.81Z" fill="currentColor"/>
456<path d="M429.62 155.5V9.57001C429.62 5.36001 431.99 3 436.19 3H456.96C461.17 3 463.53 5.37001 463.53 9.57001V156.55C463.53 182.31 477.2 195.32 502.56 195.32H574.71C578.92 195.32 581.28 197.69 581.28 201.89V207.15C581.28 220.03 574.31 227 561.43 227H502.55C455.24 227 429.61 202.82 429.61 155.5H429.62Z" fill="currentColor"/> 457<path d="M632.05 3H652.82C656.45 3 659.39 5.94001 659.39 9.57001L659.39 220.43C659.39 224.06 656.45 227 652.82 227H632.05C628.42 227 625.48 224.06 625.48 220.43L625.48 9.57001C625.48 5.94001 628.42 3 632.05 3Z" fill="currentColor"/> 458</svg> 459</a> <div class="mt-16 flex flex-col justify-between xl:mt-[209px] xl:flex-row"> <astro-island uid="P3HrA" component-url="/_astro/track-ga4-event.DV83Yee3.js" component-export="TrackGa4Event" renderer-url="/_astro/client.B5GPn6v5.js" props="{"eventName":[0,"go_to_support"],"clickTriggerElementId":[0,"desktop-footer-link-support"]}" ssr client="only" opts="{"name":"TrackGa4Event","value":"solid-js"}"></astro-island> <div class="hidden flex-row xl:flex"> <div class="flex flex-col pr-11" data-cy="footer-links-list"> <span class="text-body-small mb-6 font-semibold text-ebony"> Company </span> <a id="desktop-footer-link-about" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/about-us"> About </a><a id="desktop-footer-link-careers" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/careers"> Careers </a><a id="desktop-footer-link-manifesto" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/manifesto"> Manifesto </a><a id="desktop-footer-link-our mission" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="https://d30pueezughrda.cloudfront.net/roli.com/five-keys-to-the-next-million-years-of-music.pdf"> Our Mission </a><a id="desktop-footer-link-reviews" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="https://roli.com/reviews"> Reviews </a> </div><div class="flex flex-col pr-11" data-cy="footer-links-list"> <span class="text-body-small mb-6 font-semibold text-ebony"> Community </span> <a id="desktop-footer-link-educational discounts" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/student-discount"> Educational Discounts </a><a id="desktop-footer-link-become an affiliate" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="https://app.impact.com/advertiser-advertiser-info/ROLI.brand"> Become an Affiliate </a><a id="desktop-footer-link-roli learn song list" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/songs/essential"> ROLI Learn Song List </a><a id="desktop-footer-link-blog" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/blog"> Blog </a><a id="desktop-footer-link-roli: as seen on tv" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/blog/as-seen-on-tv-and-elsewhere-roli-piano-and-airwave-in-the-wild"> ROLI: As Seen on TV </a><a id="desktop-footer-link-referral program" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/referral"> Referral Program </a> </div><div class="flex flex-col pr-11" data-cy="footer-links-list"> <span class="text-body-small mb-6 font-semibold text-ebony"> Help </span> <a id="desktop-footer-link-support" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/support"> Support </a><a id="desktop-footer-link-manuals" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/manuals"> Manuals </a><a id="desktop-footer-link-faqs" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/faq"> FAQs </a><a id="desktop-footer-link-create account" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/create-account"> Create Account </a><a id="desktop-footer-link-get started" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/start"> Get Started </a><a id="desktop-footer-link-delivery" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/delivery-and-returns/delivery">
459 Delivery </a><a id="desktop-footer-link-returns" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/order-management/returns-and-replacements"> Returns </a><a id="desktop-footer-link-financing" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/finance"> Financing </a><a id="desktop-footer-link-order management" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/order-management"> Order Management </a><a id="desktop-footer-link-gift card balance" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/gift-card-balance"> Gift Card Balance </a><a id="desktop-footer-link-download roli connect" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/download-roli-connect"> Download ROLI Connect </a> </div><div class="flex flex-col pr-11" data-cy="footer-links-list"> <span class="text-body-small mb-6 font-semibold text-ebony"> Technology </span> <a id="desktop-footer-link-ai music coach" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="https://roli.com/campaign/ai-music-coach"> AI Music Coach </a><a id="desktop-footer-link-spatialmusic ai for learners" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/campaign/spatial-music-ai-for-learners"> SpatialMusic AI for learners </a><a id="desktop-footer-link-spatialmusic ai for creators" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/campaign/spatial-music-ai-for-creators"> SpatialMusic AI for creators </a><a id="desktop-footer-link-mpe" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/mpe"> MPE </a><a id="desktop-footer-link-yamaha montage x airwave" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/campaign/airwave-montage"> Yamaha Montage x Airwave </a><a id="desktop-footer-link-roli learn for casio" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/campaign/casio"> ROLI Learn for CASIO </a> </div><div class="flex flex-col pr-11" data-cy="footer-links-list"> <span class="text-body-small mb-6 font-semibold text-ebony"> Instruments </span> <a id="desktop-footer-link-piano learning system" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/roli-piano-system-learn"> Piano Learning System </a><a id="desktop-footer-link-piano for learners" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/piano-learn"> Piano for Learners </a><a id="desktop-footer-link-piano for creators" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/piano-create"> Piano for Creators </a><a id="desktop-footer-link-airwave for learners" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/airwave-learn"> Airwave for Learners </a><a id="desktop-footer-link-airwave for creators" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/airwave-create"> Airwave for Creators </a><a id="desktop-footer-link-seaboard 2" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/seaboard-2"> Seaboard 2 </a><a id="desktop-footer-link-seaboard m" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/seaboard-m"> Seaboard M </a><a id="desktop-footer-link-piano m for learners" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/piano-m-learn"> Piano M for Learners </a><a id="desktop-footer-link-piano m for creators" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/experience/piano-m-create"> Piano M for Creators </a><a id="desktop-footer-link-roli refurbished" class="text-body-small py-1 font-medium active:text-purple-300 text-ebony" href="/us/product/collection/refurbished"> ROLI Refurbished </a> </div> </div>
459<script> 460 function accordionSetup() { 461 const accordionMenus = document.querySelectorAll('.footer_accordion'); 462 accordionMenus.forEach((accordionMenu) => { 463 const accordionButton = accordionMenu.querySelector( 464 '.footer_accordion__button' 465 ); 466 const accordionContent = accordionMenu.querySelector( 467 '.footer_accordion__content' 468 ); 469 const plusIcon = accordionButton.querySelector('#plus-icon'); 470 const minusIcon = accordionButton.querySelector('#minus-icon'); 471 472 if (accordionButton && accordionContent) { 473 accordionButton.addEventListener('click', (event) => { 474 // Open a closed menu or close an open menu 475 if (!accordionMenu.classList.contains('active')) { 476 accordionMenu.classList.add('active'); 477 accordionContent.classList.remove('hidden'); 478 accordionContent.style.maxHeight = 479 accordionContent.scrollHeight + 'px'; 480 plusIcon.classList.add('hidden'); 481 minusIcon.classList.remove('hidden'); 482 } else { 483 accordionMenu.classList.remove('active'); 484 accordionContent.style.maxHeight = '0px'; 485 plusIcon.classList.remove('hidden'); 486 minusIcon.classList.add('hidden'); 487 // Delay to allow close animation 488 setTimeout(() => { 489 accordionContent.classList.add('hidden'); 490 }, 300); 491 } 492 event.preventDefault(); 493 return false; 494 }); 495 } 496 }); 497 } 498 // Runs on initial page load 499 document.addEventListener('DOMContentLoaded', accordionSetup); 500</script>
500 <astro-island uid="X29td" component-url="/_astro/track-ga4-event.DV83Yee3.js" component-export="TrackGa4Event" renderer-url="/_astro/client.B5GPn6v5.js" props="{"eventName":[0,"go_to_support"],"clickTriggerElementId":[0,"mobile-footer-link-support"]}" ssr client="only" opts="{"name":"TrackGa4Event","value":"solid-js"}"></astro-island> <div class="flex flex-col pb-8 xl:hidden"> <div class="footer_accordion border-on-ebony-dark-ivory border-t border-b-0 text-ebony"> <button class="footer_accordion__button text-ebony text-body-medium flex w-full items-center justify-between py-3 font-semibold" type="button"> Company <div class="ml-3"> <div id="plus-icon" class="size-[16px] stroke-[0.1]"><svg width="100%" height="100%" viewBox="0 0 16 16" stroke="inherit" stroke-width="inherit" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 501<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 502<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 503</svg> 504</div> <div id="minus-icon" class="hidden size-[16px] stroke-[0.1]"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="inherit" xmlns="http://www.w3.org/2000/svg"> 505<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 506</svg> 507</div> </div> </button> <div class="footer_accordion__content hidden max-h-0 overflow-hidden duration-300 ease-in-out"> <p class="text-ebony text-body-medium flex max-w-full flex-col pt-1 pb-4 text-left font-medium transition-[height]"> <a id="mobile-footer-link-about" class="pb-2 font-medium active:text-purple-300" href="/about-us"> About </a><a id="mobile-footer-link-careers" class="pb-2 font-medium active:text-purple-300" href="/careers"> Careers </a><a id="mobile-footer-link-manifesto" class="pb-2 font-medium active:text-purple-300" href="/manifesto"> Manifesto </a><a id="mobile-footer-link-our mission" class="pb-2 font-medium active:text-purple-300" href="https://d30pueezughrda.cloudfront.net/roli.com/five-keys-to-the-next-million-years-of-music.pdf"> Our Mission </a><a id="mobile-footer-link-reviews" class="pb-2 font-medium active:text-purple-300" href="https://roli.com/reviews"> Reviews </a> </p> </div> </div> <div class="footer_accordion border-on-ebony-dark-ivory border-t border-b-0 text-ebony"> <button class="footer_accordion__button text-ebony text-body-medium flex w-full items-center justify-between py-3 font-semibold" type="button"> Community <div class="ml-3"> <div id="plus-icon" class="size-[16px] stroke-[0.1]"><svg width="100%" height="100%" viewBox="0 0 16 16" stroke="inherit" stroke-width="inherit" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 508<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 509<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 510</svg> 511</div> <div id="minus-icon" class="hidden size-[16px] stroke-[0.1]"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="inherit" xmlns="http://www.w3.org/2000/svg"> 512<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 513</svg> 514</div> </div> </button> <div class="footer_accordion__content hidden max-h-0 overflow-hidden duration-300 ease-in-out"> <p class="text-ebony text-body-medium flex max-w-full flex-col pt-1 pb-4 text-left font-medium transition-[height]"> <a id="mobile-footer-link-educational discounts" class="pb-2 font-medium active:text-purple-300" href="/student-discount"> Educational Discounts </a><a id="mobile-footer-link-become an affiliate" class="pb-2 font-medium active:text-purple-300" href="https://app.impact.com/advertiser-advertiser-info/ROLI.brand"> Become an Affiliate </a><a id="mobile-footer-link-roli learn song list" class="pb-2 font-medium active:text-purple-300" href="/songs/essential"> ROLI Learn Song List </a><a id="mobile-footer-link-blog" class="pb-2 font-medium active:text-purple-300" href="/blog"> Blog </a><a id="mobile-footer-link-roli: as seen on tv" class="pb-2 font-medium active:text-purple-300" href="/blog/as-seen-on-tv-and-elsewhere-roli-piano-and-airwave-in-the-wild"> ROLI: As Seen on TV </a><a id="mobile-footer-link-referral program" class="pb-2 font-medium active:text-purple-300" href="/referral"> Referral Program </a> </p> </div> </div> <div class="footer_accordion border-on-ebony-dark-ivory border-t border-b-0 text-ebony"> <button class="footer_accordion__button text-ebony text-body-medium flex w-full items-center justify-between py-3 font-semibold" type="button"> Help <div class="ml-3">
514 <div id="plus-icon" class="size-[16px] stroke-[0.1]"><svg width="100%" height="100%" viewBox="0 0 16 16" stroke="inherit" stroke-width="inherit" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 515<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 516<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 517</svg> 518</div> <div id="minus-icon" class="hidden size-[16px] stroke-[0.1]"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="inherit" xmlns="http://www.w3.org/2000/svg"> 519<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 520</svg> 521</div> </div> </button> <div class="footer_accordion__content hidden max-h-0 overflow-hidden duration-300 ease-in-out"> <p class="text-ebony text-body-medium flex max-w-full flex-col pt-1 pb-4 text-left font-medium transition-[height]"> <a id="mobile-footer-link-support" class="pb-2 font-medium active:text-purple-300" href="/us/support"> Support </a><a id="mobile-footer-link-manuals" class="pb-2 font-medium active:text-purple-300" href="/manuals"> Manuals </a><a id="mobile-footer-link-faqs" class="pb-2 font-medium active:text-purple-300" href="/faq"> FAQs </a><a id="mobile-footer-link-create account" class="pb-2 font-medium active:text-purple-300" href="/create-account"> Create Account </a><a id="mobile-footer-link-get started" class="pb-2 font-medium active:text-purple-300" href="/start"> Get Started </a><a id="mobile-footer-link-delivery" class="pb-2 font-medium active:text-purple-300" href="/delivery-and-returns/delivery"> Delivery </a><a id="mobile-footer-link-returns" class="pb-2 font-medium active:text-purple-300" href="/order-management/returns-and-replacements"> Returns </a><a id="mobile-footer-link-financing" class="pb-2 font-medium active:text-purple-300" href="/finance"> Financing </a><a id="mobile-footer-link-order management" class="pb-2 font-medium active:text-purple-300" href="/order-management"> Order Management </a><a id="mobile-footer-link-gift card balance" class="pb-2 font-medium active:text-purple-300" href="/gift-card-balance"> Gift Card Balance </a><a id="mobile-footer-link-download roli connect" class="pb-2 font-medium active:text-purple-300" href="/download-roli-connect"> Download ROLI Connect </a> </p> </div> </div> <div class="footer_accordion border-on-ebony-dark-ivory border-t border-b-0 text-ebony"> <button class="footer_accordion__button text-ebony text-body-medium flex w-full items-center justify-between py-3 font-semibold" type="button"> Technology <div class="ml-3"> <div id="plus-icon" class="size-[16px] stroke-[0.1]"><svg width="100%" height="100%" viewBox="0 0 16 16" stroke="inherit" stroke-width="inherit" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 522<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 523<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 524</svg> 525</div> <div id="minus-icon" class="hidden size-[16px] stroke-[0.1]"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="inherit" xmlns="http://www.w3.org/2000/svg"> 526<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 527</svg> 528</div> </div> </button> <div class="footer_accordion__content hidden max-h-0 overflow-hidden duration-300 ease-in-out"> <p class="text-ebony text-body-medium flex max-w-full flex-col pt-1 pb-4 text-left font-medium transition-[height]"> <a id="mobile-footer-link-ai music coach" class="pb-2 font-medium active:text-purple-300" href="https://roli.com/campaign/ai-music-coach"> AI Music Coach </a><a id="mobile-footer-link-spatialmusic ai for learners" class="pb-2 font-medium active:text-purple-300" href="/campaign/spatial-music-ai-for-learners"> SpatialMusic AI for learners </a><a id="mobile-footer-link-spatialmusic ai for creators" class="pb-2 font-medium active:text-purple-300" href="/campaign/spatial-music-ai-for-creators"> SpatialMusic AI for creators </a><a id="mobile-footer-link-mpe" class="pb-2 font-medium active:text-purple-300" href="/mpe"> MPE </a><a id="mobile-footer-link-yamaha montage x airwave" class="pb-2 font-medium active:text-purple-300" href="/campaign/airwave-montage"> Yamaha Montage x Airwave </a><a id="mobile-footer-link-roli learn for casio" class="pb-2 font-medium active:text-purple-300" href="/campaign/casio"> ROLI Learn for CASIO </a> </p> </div> </div> <div class="footer_accordion border-on-ebony-dark-ivory border-t border-b text-ebony"> <button class="footer_accordion__button text-ebony text-body-medium flex w-full items-center justify-between py-3 font-semibold" type="button"> Instruments <div class="ml-3">
528 <div id="plus-icon" class="size-[16px] stroke-[0.1]"><svg width="100%" height="100%" viewBox="0 0 16 16" stroke="inherit" stroke-width="inherit" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 529<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 530<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 531</svg> 532</div> <div id="minus-icon" class="hidden size-[16px] stroke-[0.1]"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="inherit" xmlns="http://www.w3.org/2000/svg"> 533<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 534</svg> 535</div> </div> </button> <div class="footer_accordion__content hidden max-h-0 overflow-hidden duration-300 ease-in-out"> <p class="text-ebony text-body-medium flex max-w-full flex-col pt-1 pb-4 text-left font-medium transition-[height]"> <a id="mobile-footer-link-piano learning system" class="pb-2 font-medium active:text-purple-300" href="/us/experience/roli-piano-system-learn"> Piano Learning System </a><a id="mobile-footer-link-piano for learners" class="pb-2 font-medium active:text-purple-300" href="/us/experience/piano-learn"> Piano for Learners </a><a id="mobile-footer-link-piano for creators" class="pb-2 font-medium active:text-purple-300" href="/us/experience/piano-create"> Piano for Creators </a><a id="mobile-footer-link-airwave for learners" class="pb-2 font-medium active:text-purple-300" href="/us/experience/airwave-learn"> Airwave for Learners </a><a id="mobile-footer-link-airwave for creators" class="pb-2 font-medium active:text-purple-300" href="/us/experience/airwave-create"> Airwave for Creators </a><a id="mobile-footer-link-seaboard 2" class="pb-2 font-medium active:text-purple-300" href="/us/experience/seaboard-2"> Seaboard 2 </a><a id="mobile-footer-link-seaboard m" class="pb-2 font-medium active:text-purple-300" href="/us/experience/seaboard-m"> Seaboard M </a><a id="mobile-footer-link-piano m for learners" class="pb-2 font-medium active:text-purple-300" href="/us/experience/piano-m-learn"> Piano M for Learners </a><a id="mobile-footer-link-piano m for creators" class="pb-2 font-medium active:text-purple-300" href="/us/experience/piano-m-create"> Piano M for Creators </a><a id="mobile-footer-link-roli refurbished" class="pb-2 font-medium active:text-purple-300" href="/us/product/collection/refurbished"> ROLI Refurbished </a> </p> </div> </div> </div> <astro-island uid="Zjf69I" component-url="/_astro/action-buttons.DiAyiJjt.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0],"newsletterModal":[0,{"_uid":[0,"4a024bcc-80e6-46de-a09f-f1f71c79f175"],"errorCta":[0,"Close"],"firstCta":[0,"Join"],"prevText":[0,"Back"],"component":[0,"NewsletterSignup"],"secondCta":[0,"Send"],"legalTerms":[0,{"type":[0,"doc"],"content":[1,[[0,{"type":[0,"paragraph"],"content":[1,[[0,{"text":[0,"By submitting this form you agree to the "],"type":[0,"text"],"marks":[1,[[0,{"type":[0,"textStyle"],"attrs":[0,{"color":[0,"rgb(41, 40, 36)"]}]}]]]}],[0,{"text":[0,"Terms of Service"],"type":[0,"text"],"marks":[1,[[0,{"type":[0,"link"],"attrs":[0,{"href":[0,"https://roli.com/legal/terms-of-service"],"uuid":[0,null],"anchor":[0,null],"target":[0,"_blank"],"linktype":[0,"url"]}]}],[0,{"type":[0,"underline"]}]]]}],[0,{"text":[0," and"],"type":[0,"text"],"marks":[1,[[0,{"type":[0,"textStyle"],"attrs":[0,{"color":[0,"rgb(41, 40, 36)"]}]}]]]}],[0,{"text":[0," "],"type":[0,"text"],"marks":[1,[[0,{"type":[0,"link"],"attrs":[0,{"href":[0,"https://roli.com/legal/privacy-policy"],"uuid":[0,null],"anchor":[0,null],"target":[0,"_blank"],"linktype":[0,"url"]}]}]]]}],[0,{"text":[0,"Privacy Policy"],"type":[0,"text"],"marks":[1,[[0,{"type":[0,"link"],"attrs":[0,{"href":[0,"https://roli.com/legal/privacy-policy"],"uuid":[0,null],"anchor":[0,null],"target":[0,"_blank"],"linktype":[0,"url"]}]}],[0,{"type":[0,"underline"]}]]]}]]]}]]]}],"successCta":[0,"
535Thank you"],"errorMessage":[0,"There has been an error"],"bothOptionText":[0,"Both"],"successMessage":[0,"Welcome to the team"],"learnOptionText":[0,"Learn Piano"],"namePlaceholder":[0,"Your name"],"createOptionText":[0,"Create Music"],"emailPlaceholder":[0,"Enter email address"],"firstPageHeading":[0,"Join the ROLI community"],"secondPageHeading":[0,"Discover your musical journey"]}],"newsletterLegalTerms":[0,"<p><span style=\"color:rgb(41, 40, 36)\">By submitting this form you agree to the </span><a href=\"https://roli.com/legal/terms-of-service\" target=\"_blank\"><u>Terms of Service</u></a><span style=\"color:rgb(41, 40, 36)\"> and</span><a href=\"https://roli.com/legal/privacy-policy\" target=\"_blank\"> </a><a href=\"https://roli.com/legal/privacy-policy\" target=\"_blank\"><u>Privacy Policy</u></a></p>"],"followUsText":[0,"Follow us on social"],"joinNewsletterText":[0,"Join our newsletter"]}" ssr client="only" opts="{"name":"ActionButtons","value":"solid-js"}"></astro-island> </div> <div class="mt-8"> <astro-island uid="Q7hl7" component-url="/_astro/trustpilot-business-trustscore.Dz5dbhMq.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"link":[0,true],"theme":[0,"light"]}" ssr client="only" opts="{"name":"MiniTrustpilotTrustScore","value":"solid-js"}"></astro-island> </div> </div> </nav> <div class="flex flex-col-reverse px-8 pb-8 font-medium xl:flex-row xl:items-center xl:px-16"> <div class="mt-9 flex flex-col xl:mt-0 xl:flex-row"> <astro-island uid="Z2aUkms" component-url="/_astro/copyright-text.D5FzWSyq.js" component-export="CopyrightText" renderer-url="/_astro/client.B5GPn6v5.js" props="{"linksColor":[0,"text-ebony"]}" ssr client="only" opts="{"name":"CopyrightText","value":"solid-js"}"></astro-island> <div class="flex flex-wrap xl:mt-0 xl:ml-4" data-cy="footer-links-list"> <a class="mt-5 mr-4 text-xs xl:mt-0 text-ebony active:text-purple-300" href="/legal/general-terms-of-sale"> Legal </a><a class="mt-5 mr-4 text-xs xl:mt-0 text-ebony active:text-purple-300" href="/legal/privacy-policy"> Privacy </a><a class="mt-5 mr-4 text-xs xl:mt-0 text-ebony active:text-purple-300" href="/legal/cookie-policy"> Cookies </a><a class="mt-5 mr-4 text-xs xl:mt-0 text-ebony active:text-purple-300" href="/legal/terms-of-service"> Disclaimer </a> <button class="termly-display-preferences mt-5 mr-4 cursor-pointer text-xs text-ebony active:text-purple-300 xl:mt-0"> Consent Preferences </button> </div> </div> <div class="mt-4 xl:mt-0 xl:ml-auto"> <astro-island uid="Z2jKX6g" component-url="/_astro/region-select.CSb61Pzm.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0],"regionText":[0,"Currency"],"chooseYourRegionText":[0,"Choose your region"]}" ssr client="only" opts="{"name":"RegionSelect","value":"solid-js"}"></astro-island> </div> </div> </footer> <astro-island uid="16ory2" component-url="/_astro/global-promos.Db23APVb.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"globalPromos":[1,[[0,{"_uid":[0,"8230c1ba-1856-46a4-b44c-29f5c0846fe2"],"component":[0,"GlobalPromo"],"promoName":[0,"Most popular tag"],"promoText":[0,"Most popular"],"hideInCart":[0,true],"promoActive":[0,true],"promoAmountEU":[0,""],"promoAmountUK":[0,""],"promoAmountUS":[0,""],"promoProducts":[1,[[0,{"name":[0,"Piano Learn + Airwave Bundle"],"created_at":[0,"2025-01-20T11:16:50.930Z"],"published_at":[0,"2026-05-13T16:13:45.072Z"],"updated_at":[0,"2026-05-13T16:13:45.088Z"],"id":[0,611544488],"uuid":[0,"9d0dcb01-1e77-4279-8d7c-7bb06e4558e2"],"content":[0,{"mpn":[0,""],"sku":[0,"piano-49-learn_airwave_create_bundle"],"_uid":[0,"a4cb2065-68cd-4057-a751-8b7a19dc400a"],"Color":[0,""],"Model":[0,""],"title":[0,"Piano Learn + Airwave Bundle"],"gallery":[1,[[0,{"id":[0,161261513806511],"alt":[0,"A black ROLI Piano with color-illuminated keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides for piano instruction."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_01-1.161261513806511.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/cc8a4b6caa/p49-aw-bundle_learn_01-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A black ROLI Piano with color-illuminated keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides for piano instruction."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_01-1.161261513806511.png"]}]}],[0,{"id":[0,20077906],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_03.20077906.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/50d193b8a0/p49-aw-bundle_learn_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_03.20077906.png"]}]}],[0,{"id":[0,20077905],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_04.20077905.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/b99a5afdbb/p49-aw-bundle_learn_04.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_04.20077905.png"]}]}],[0,{"id":[0,20077904],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_02.20077904.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/f94565ba5a/p49-aw-bundle_learn_02.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_02.20077904.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"learn"],"imageUrl":[0,"*not really used, just the shopify image URL"],"component":[0,"shopify-variant"],"bundleSkus":[1,[[0,{"sku":[0,"piano-49-learn"],"_uid":[0,"fdf374ce-aa77-4a24-83b1-3a07991273f3"],"component":[0,"sku"]}],[0,{"sku":[0,"airwave_learn"],"_uid":[0,"e52e357e-53ea-461e-8b84-350294172035"],"component":[0,"sku"]}]]],"exploreUrl":[0,"/experience/roli-piano-system-learn"],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"bestValueTag":[0,""],"desktopImage":[0,{"id":[0,161261513806511],"alt":[0,"A black ROLI Piano with color-illuminated keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides for piano instruction."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_01-1.161261513806511.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/cc8a4b6caa/p49-aw-bundle_learn_01-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A black ROLI Piano with color-illuminated keys sits on a desk, with a tablet displaying the ROLI Learn app showing animated hands and note guides for piano instruction."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49-aw-bundle_learn_01-1.161261513806511.png"]}],"is_external_url":[0,false]}],"productTitle":[0,"Piano Learn + Airwave Bundle"],"activeBatches":[0,""],"bundleMessage":[0,""],"productHandle":[0,"piano-49-learn-airwave-bundle"],"trustpilotTag":[0,""],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/piano-learn-airwave-bundle"],"onboardingImage":[0,{"id":[0,84653877742363],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/e3559274c5/piano-l-aw.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Piano & Airwave"],"productCategory":[0,""],"savingsYearlyText":[0,""],"showCategoryMessage":[0,true],"additionalProperties":[1,[]]}],"slug":[0,"piano-learn-airwave-bundle"],"full_slug":[0,"shopify-variants/piano-learn-airwave-bundle"],"sort_by_date":[0,null],"position":[0,-1970],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"6b02041e-0a68-42d8-b9b2-aa00c4eecc7e"],"first_published_at":[0,"2025-01-23T11:47:52.076Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}]]],"promoAddOnText":[0,""],"promoBadgeText":[0,"Most popular"],"promoAmountSTAGING":[0,""]}],[0,{"_uid":[0,"7d8464da-1448-4693-86b5-8cc08ce8c8ff"],"component":[0,"GlobalPromo"],"promoName":[0,"Refurbished Program"],"promoText":[0,""],"hideInCart":[0,false],"promoActive":[0,true],"promoAmountEU":[0,""],"promoAmountUK":[0,""],"promoAmountUS":[0,""],"promoProducts":[1,[[0,{"name":[0,"Piano M Create (Refurbished)"],"created_at":[0,"2025-02-10T15:33:27.961Z"],"published_at":[0,"2026-04-13T13:16:41.930Z"],"updated_at":[0,"2026-04-20T10:37:42.784Z"],"id":[0,623256579],"uuid":[0,"7b67f9d2-c0f6-4e70-8da3-0f7e787b5c16"],"content":[0,{"mpn":[0,""],"sku":[0,"piano-m-create_bstock"],"_uid":[0,"f0636711-3b58-45b3-b57d-978aee1c8dff"],"Color":[0,""],"Model":[0,""],"title":[0,"Matte Black"],"gallery":[1,[[0,{"id":[0,21214102],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/try4.21214102.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/53a78d0b43/try4.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/try4.21214102.png"]}]}],[0,{"id":[0,18710740],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_create_03.18710740.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/936ccec287/pianom_create_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],[0,{"id":[0,18710738],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_create_05.18710738.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/501e252b4a/pianom_create_05.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/1x_LUMI_Create.png?v=1740759418"],"component":[0,"shopify-variant"],"exploreUrl":[0,""],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"desktopImage":[0,{"id":[0,21214102],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/53a78d0b43/try4.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"
535;meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Piano M (Refurbished)"],"promoMessage":[0,""],"activeBatches":[0,"3df401db-8cd8-404e-a8f8-b81b44c5ca76"],"productHandle":[0,"piano-m-create-refurbished"],"trustpilotTag":[0,""],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/piano-m-create-refurbished"],"onboardingImage":[0,{"id":[0,84653323422468],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/61ef21d50b/piano-m-c.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,""],"productCategory":[0,""],"requiresShipping":[0,true],"showCategoryMessage":[0,true],"additionalProperties":[1,[]]}],"slug":[0,"piano-m-create-refurbished"],"full_slug":[0,"shopify-variants/piano-m-create-refurbished"],"sort_by_date":[0,null],"position":[0,-1220],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"db525cc1-c743-4196-8ab1-f408e1a0017b"],"first_published_at":[0,"2025-02-26T11:27:23.306Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}],[0,{"name":[0,"Piano M Learn (Refurbished)"],"created_at":[0,"2025-02-10T15:32:38.707Z"],"published_at":[0,"2026-04-13T13:16:41.683Z"],"updated_at":[0,"2026-04-20T10:37:41.151Z"],"id":[0,623255221],"uuid":[0,"4a2cc1b7-08c4-442b-815f-417aabf156f6"],"content":[0,{"mpn":[0,""],"sku":[0,"piano-m-learn_bstock"],"_uid":[0,"f0636711-3b58-45b3-b57d-978aee1c8dff"],"Color":[0,""],"Model":[0,""],"title":[0,"Matte Black"],"gallery":[1,[[0,{"id":[0,21212890],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/lumi-learn.21212890.png"],"filename":[0,"https://a.storyblok.com/f/278825/2385x1341/ebcb6f9468/lumi-learn.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/lumi-learn.21212890.png"]}]}],[0,{"id":[0,18710741],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_03.18710741.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/825b59ecfc/pianom_learn_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],[0,{"id":[0,18710743],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_05.18710743.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/1541ade452/pianom_learn_05.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"learn"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/1xLUMI_Learn.png?v=1740759256"],"component":[0,"shopify-variant"],"exploreUrl":[0,""],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"desktopImage":[0,{"id":[0,21212890],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2385x1341/ebcb6f9468/lumi-learn.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Piano M (Refurbished)"],"promoMessage":[0,""],"activeBatches":[0,"f9be8d5b-fd58-4819-ba24-1e3d45141dff"],"productHandle":[0,"piano-m-learn-refurbished"],"trustpilotTag":[0,"PIANO-M-LEARN"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/piano-m-learn-refurbished"],"onboardingImage":[0,{"id":[0,84653760674585],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"
535https://a.storyblok.com/f/278825/2048x938/20b92f5108/piano-m-l.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,""],"productCategory":[0,""],"requiresShipping":[0,true],"showCategoryMessage":[0,true],"additionalProperties":[1,[]]}],"slug":[0,"piano-m-learn-refurbished"],"full_slug":[0,"shopify-variants/piano-m-learn-refurbished"],"sort_by_date":[0,null],"position":[0,-1230],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"c899823e-dccd-4a2a-b176-be2237901741"],"first_published_at":[0,"2025-02-26T11:27:23.067Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}],[0,{"name":[0,"Seaboard 2 - Ebony Black (Refurbished)"],"created_at":[0,"2025-02-10T15:38:49.065Z"],"published_at":[0,"2026-04-13T13:16:02.840Z"],"updated_at":[0,"2026-04-20T10:28:23.474Z"],"id":[0,623275840],"uuid":[0,"4c04fe52-0163-49d5-8913-9a80064bbb86"],"content":[0,{"mpn":[0,""],"sku":[0,"sbrise2_2022_black_bstock"],"_uid":[0,"1e5743b5-6a60-40e1-ba83-f1223f130e9e"],"Color":[0,""],"Model":[0,""],"title":[0,"Ebony Black"],"gallery":[1,[[0,{"id":[0,18710752],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_01.18710752.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/55a608f501/seaboard2_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_01.18710752.png"]}]}],[0,{"id":[0,18710751],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_02.18710751.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/188fd41ab8/seaboard2_02.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_02.18710751.png"]}]}],[0,{"id":[0,18710749],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_03.18710749.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/d0a29e9436/seaboard2_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_03.18710749.png"]}]}],[0,{"id":[0,18710750],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_04.18710750.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/5f8986e7b2/seaboard2_04.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_04.18710750.png"]}]}],[0,{"id":[0,18710753],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_05.18710753.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/3173531786/seaboard2_05.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2_05.18710753.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/rise2Black_desktop.png?v=1716991796"],"component":[0,"shopify-variant"],"exploreUrl":[0,""],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"desktopImage":[0,{"id":[0,17242624],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/5402fb5cc1/seaboard-2-black.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Seaboard 2 (Refurbished)"],"promoMessage":[0,""],"activeBatches":[0,"66a6f37c-104c-43eb-88de-8848af0d8f72"],"productHandle":[0,"seaboard-2-refurbished"],"trustpilotTag":[0,"SEABOARD-2"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/seaboard-2-refurbished"],"onboardingImage":[0,{"id":[0,84653580122899],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/ae97e6cc55/seaboard-2-bk.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,""],"productCategory":[0,""],"qualifyingHardware":[1,[]],"showCategoryMessage":[0,false],"additionalProperties":[1,[]]}],"slug":[0,"seaboard-2-ebony-black-refurbished"],"full_slug":[0,"shopify-variants/seaboard-2-ebony-black-refurbished"],"sort_by_date":[0,null],"position":[0,-1630],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"c3d9f972-909b-4bc5-b2ef-35df29b52b6b"],"first_published_at":[0,"2025-02-26T11:27:11.186Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}],[0,{"name":[0,"Seaboard 2 - Platinum Blue (Refurbished)"],"created_at":[0,"2025-02-10T15:40:42.228Z"],"published_at":[0,"2026-04-13T13:16:11.016Z"],"updated_at":[0,"2026-04-20T10:30:05.740Z"],"id":[0,623276029],"uuid":[0,"301c220c-3fe4-4172-9cc2-21dd015d76a8"],"content":[0,{"mpn":[0,""],"sku":[0,"sbrise2_2022_bstock"],"_uid":[0,"0e484874-4144-4216-a39a-69d52f3994b5"],"Color":[0,""],"Model":[0,""],"title":[0,"Platinum Blue"],"gallery":[1,[[0,{"id":[0,17242622],"alt":[0,"Roli seaboard 2 keyboard in color platinum"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Seaboard 2"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-platinum.17242622.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/3dc68990cd/seaboard-2-platinum.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-platinum.17242622.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/products/RISE2_ShopifyCartImage.png?v=1648048815"],"component":[0,"shopify-variant"],"exploreUrl":[0,""],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"desktopImage":[0,{"id":[0,17242622],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/3dc68990cd/seaboard-2-platinum.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Seaboard 2 (Refurbished)"],"promoMessage":[0,""],"activeBatches":[0,"66a6f37c-104c-43eb-88de-8848af0d8f72"],"productHandle":[0,"seaboard-2-refurbished"],"trustpilotTag":[0,"SEABOARD-2"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/seaboard-2-refurbished"],"onboardingImage":[0,{"id":[0,84653471333135],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/325fd23797/seaboard-2-pl.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,""],"productCategory":[0,""],"requiresShipping":[0,true],"showCategoryMessage":[0,false],"additionalProperties":[1,[]]}],"slug":[0,"seaboard-2-platinum-blue-refurbished"],"full_slug":[0,"shopify-variants/seaboard-2-platinum-blue-refurbished"],"sort_by_date":[0,null],"position":[0,-1610],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"82f96ed7-f19d-4034-a979-6d528288770c"],"first_published_at":[0,"2025-02-26T11:27:11.521Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}],[0,{"name":[0,"Seaboard M (Refurbished)"],"created_at":[0,"2025-02-10T15:36:21.271Z"],"published_at":[0,"2026-04-13T13:16:00.331Z"],"updated_at":[0,"2026-04-20T10:27:42.316Z"],"id":[0,623270922],"uuid":[0,"16be693f-c22e-4a16-8c05-00ab4f85bba9"],"content":[0,{"mpn":[0,""],"sku":[0,"blksseaboardm_bstock"],"_uid":[0,"a0dc7335-476f-48d7-9dcc-4f15882fe394"],"Color":[0,""],"Model":[0,""],"title":[0,""],"gallery":[1,[[0,{"id":[0,18713492],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_01.18713492.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/567183d472/seaboardm_create_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_01.18713492.png"]}]}],[0,{"id":[0,18713491],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_02.18713491.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/f3d92d234f/seaboardm_create_02.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_02.18713491.png"]}]}],[0,{"id":[0,18710757],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_03.18710757.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/475334273f/seaboardm_create_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_03.18710757.png"]}]}],[0,{"id":[0,18710759],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_04.18710759.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/6e0d202165/seaboardm_create_04.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_04.18710759.png"]}]}
535],[0,{"id":[0,18710758],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_05.18710758.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/8c06c9d303/seaboardm_create_05.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboardm_create_05.18710758.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/sbb_cart_c9ea1972-9f0c-4160-8906-98b9d66ee5ec.png?v=1697629500"],"component":[0,"shopify-variant"],"exploreUrl":[0,""],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"desktopImage":[0,{"id":[0,17242623],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/7d256cf28c/seaboard-m.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Seaboard M"],"promoMessage":[0,""],"activeBatches":[0,"dbed77d0-01ce-491f-a2cd-1ed52181c0e2"],"productHandle":[0,"seaboard-m-refurbished"],"trustpilotTag":[0,"BLOCK-M"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/seaboard-m-refurbished"],"onboardingImage":[0,{"id":[0,84653656181527],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/2f3b15ff83/seaboard-m.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,""],"productCategory":[0,""],"showCategoryMessage":[0,false],"additionalProperties":[1,[]]}],"slug":[0,"seaboard-m-refurbished"],"full_slug":[0,"shopify-variants/seaboard-m-refurbished"],"sort_by_date":[0,null],"position":[0,-1750],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"fdc1db1f-e56b-4766-b6fe-ed60f36b505b"],"first_published_at":[0,"2025-02-26T11:27:11.015Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}]]],"promoAddOnText":[0,""],"promoBadgeText":[0,"Save 30%"],"promoAmountSTAGING":[0,""]}],[0,{"_uid":[0,"da1ec26a-818a-4096-8828-4d3f4a21b2ed"],"component":[0,"GlobalPromo"],"promoName":[0,"Seaboard 2 + AW 15% OFF"],"promoText":[0,""],"hideInCart":[0,false],"promoActive":[0,true],"promoAmountEU":[0,""],"promoAmountUK":[0,""],"promoAmountUS":[0,""],"promoProducts":[1,[[0,{"name":[0,"Seaboard Blue Airwave Bundle"],"created_at":[0,"2024-08-28T11:44:36.020Z"],"published_at":[0,"2026-06-17T09:09:16.895Z"],"updated_at":[0,"2026-06-17T09:09:16.908Z"],"id":[0,541001500],"uuid":[0,"e2fd827f-eafc-4bac-aba4-aa35749c4a99"],"content":[0,{"mpn":[0,""],"sku":[0,"sbrise2_2022_blue_airwave_create_bundle"],"_uid":[0,"2ea68eb3-4806-43e5-b5c4-ccbb97d4269d"],"Color":[0,""],"Model":[0,""],"title":[0,"Seaboard Blue Airwave Bundle"],"gallery":[1,[[0,{"id":[0,17566530],"alt":[0,"Roli Seaboard Rise 2 keyboard in platinum blue and Airwave"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Seaboard Rise 2 - Airwave"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2-platblue.17566530.png"],"filename":[0,"https://a.storyblok.com/f/278825/1359x783/896e09786f/seaboard2-platblue.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2-platblue.17566530.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0841/1601/files/seaboard-blue-airwave-bundle.png?v=1724845401"],"component":[0,"shopify-variant"],"bundleSkus":[1,[[0,{"sku":[0,"sbrise2_2022"],"_uid":[0,"bfd84057-fec0-4785-b101-478e8265852b"],"component":[0,"sku"]}],[0,{"sku":[0,"airwave_create"],"_uid":[0,"92af530b-b3b3-462b-b27a-171d4b9a499e"],"component":[0,"sku"]}]]],"exploreUrl":[0,"/product/seaboard-2-airwave-bundle"],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"bestValueTag":[0,""],"desktopImage":[0,{"id":[0,17566530],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1359x783/896e09786f/seaboard2-platblue.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Seaboard Blue Airwave Bundle"],"promoMessage":[0,"Save {{amountSaved}}"],"activeBatches":[0,""],"bundleMessage":[0,""],"productHandle":[0,"rise2-airwave-create-bundle"],"trustpilotTag":[0,"SEABOARD-2"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/seaboard-2-airwave-bundle"],"onboardingImage":[0,{"id":[0,84656272579385],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"
535https://a.storyblok.com/f/278825/2048x938/25f9a2ca87/seaboard-2-pl-aw.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Seaboard 2 & Airwave"],"productCategory":[0,""],"savingsYearlyText":[0,""],"qualifyingHardware":[1,[]],"showCategoryMessage":[0,false],"additionalProperties":[1,[]]}],"slug":[0,"seaboard-blue-airwave-bundle"],"full_slug":[0,"shopify-variants/seaboard-blue-airwave-bundle"],"sort_by_date":[0,null],"position":[0,-1830],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"c4156cc5-df0e-4d28-8078-09fd0465aa66"],"first_published_at":[0,"2024-08-28T11:15:30.341Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}],[0,{"name":[0,"Seaboard Black Airwave Bundle"],"created_at":[0,"2024-08-28T10:59:05.420Z"],"published_at":[0,"2026-06-17T09:10:51.909Z"],"updated_at":[0,"2026-06-17T09:11:23.359Z"],"id":[0,540988162],"uuid":[0,"32dfc3d8-881e-436d-b803-79cca78ca86c"],"content":[0,{"mpn":[0,""],"sku":[0,"sbrise2_2022_black_airwave_create_bundle"],"_uid":[0,"2ea68eb3-4806-43e5-b5c4-ccbb97d4269d"],"Color":[0,""],"Model":[0,""],"title":[0,"Seaboard Black Airwave Bundle"],"gallery":[1,[[0,{"id":[0,18588368],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2-airwave-configurator-gallery-1.18588368.png"],"filename":[0,"https://a.storyblok.com/f/278825/1359x783/ce9e044452/seaboard2-airwave-configurator-gallery-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2-airwave-configurator-gallery-1.18588368.png"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"create"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0841/1601/files/seaboard-black-airwave-bundle_3b20e623-8229-4a2a-96ff-21ecde1847e7.png?v=1724846369"],"component":[0,"shopify-variant"],"bundleSkus":[1,[[0,{"sku":[0,"sbrise2_2022_black"],"_uid":[0,"a19152f7-9cda-4718-8a47-3ab5bd3d0e3c"],"component":[0,"sku"]}],[0,{"sku":[0,"airwave_create"],"_uid":[0,"6897aa09-1553-4800-8291-d517514b012c"],"component":[0,"sku"]}]]],"exploreUrl":[0,"/product/seaboard-2-airwave-bundle"],"Refurbished":[0,false],"mobileImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"productType":[0,"instrument"],"bestValueTag":[0,""],"desktopImage":[0,{"id":[0,17544029],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/1359x783/a7258920ff/seaboard2.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"productTitle":[0,"Seaboard Black Airwave Bundle"],"promoMessage":[0,"Save {{amountSaved}}"],"activeBatches":[0,""],"bundleMessage":[0,""],"productHandle":[0,"rise2-airwave-create-bundle"],"trustpilotTag":[0,"SEABOARD-2"],"thumbnailImage":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"configuratorUrl":[0,"/product/seaboard-2-airwave-bundle"],"onboardingImage":[0,{"id":[0,84656718138178],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/3da499ed6a/seaboard-2-bk-aw.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Seaboard 2 & Airwave"],"productCategory":[0,""],"savingsYearlyText":[0,""],"showCategoryMessage":[0,false],"additionalProperties":[1,[]]}],"slug":[0,"seaboard-black-airwave-bundle"],"full_slug":[0,"shopify-variants/seaboard-black-airwave-bundle"],"sort_by_date":[0,null],"position":[0,-1830],"tag_list":[1,[]],"is_startpage":[0,false],"parent_id":[0,511129985],"meta_data":[0,null],"group_id":[0,"2c21789e-a85f-401d-bfd4-b4530fffe59f"],"first_published_at":[0,"2024-08-28T11:15:30.341Z"],"release_id":[0,null],"lang":[0,"default"],"path":[0,null],"alternates":[1,[]],"default_full_slug":[0,null],"translated_slugs":[0,null]}]]],"promoAddOnText":[0,""],"promoBadgeText":[0,"Save 15%"],"promoAmountSTAGING":[0,""]}]]]}" ssr client="only" opts="{"name":"GlobalPromos","value":"solid-js"}"></astro-island>
535 <astro-island uid="2adIFt" component-url="/_astro/global-strings-provider.BS6jY8Eq.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"content":[0,{"errors":[1,[[0,{"id":[0,"enterValidEmail"],"text":[0,"Please enter a valid email address"]}],[0,{"id":[0,"fieldRequired"],"text":[0,"This field is required"]}]]],"saveTitle":[0,"Save"],"buyNowText":[0,"Buy now"],"buyNowLabel":[0,"Buy now"],"perMonthText":[0,"/month"],"addToCartLabel":[0,"Add to cart"],"addedToCartLabel":[0,"Added to cart"],"billedAnnuallyText":[0,"billed annually"],"casioMonthlyMembershipNotice":[0,"â»æé¡ãã©ã³ã«ã¤ãã¦ï¼ç¾å¨ãã¢ã«ã¦ã³ãç»é²ãã¼ã¸ä¸ã§ã¯ä¸é¨ã«é常æéã表示ããã¦ããã¾ãããè¿·æãããããèª ã«ç³ã訳ãããã¾ãããå®éã®æé¡æéã¯ç¹å¥ä¾¡æ ¼ã®1,912åï¼ç¨è¾¼ï¼ã¨ãªãããè«æ±æã«ã¯æ£ããä¾¡æ ¼ãé©ç¨ããã¾ãã"]}],"language":[0,"default"]}" ssr client="only" opts="{"name":"GlobalStringsProvider","value":"solid-js"}"></astro-island> <astro-island uid="Z2iTSGx" component-url="/_astro/preview-banner.Cl_X7CVE.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{}" ssr client="only" opts="{"name":"PreviewBanner","value":"solid-js"}"></astro-island> </div>
535 <astro-island uid="1o3srL" component-url="/_astro/region-mismatch-modal.DTpSFxWH.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"content":[0,{"_uid":[0,"04cf97c3-d335-4520-91c1-3a7768727e2f"],"title":[0,"Choose your region"],"component":[0,"Region Mismatch Modal"],"regionMismatchText":[0,"Your shipping region does not match your current location, please confirm your preferred shipping region below."]}]}" ssr client="only" opts="{"name":"RegionMismatchModal","value":"solid-js"}"></astro-island>
535<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4405604ff315f00',t:'MTc5MDkwODc1OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
535</body></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.