1<!DOCTYPE html>
1<script type="module" src="/_astro/index.astro_astro_type_script_index_0_lang.BrTx5GWH.js"></script>
1 <html lang="en" class="min-w-full h-full overflow-y-scroll selection:bg-blue-100 selection:text-white bg-ivory"> <head><meta charset="utf-8"><link rel="alternate" href="https://roli.com" hreflang="x-default"><link rel="canonical" href="https://roli.com/us"><link rel="alternate" href="https://roli.com/eu" hreflang="en"><link rel="alternate" href="https://roli.com/uk" hreflang="en-GB"><link rel="alternate" href="https://roli.com/us" hreflang="en-US"><link rel="alternate" href="https://roli.com/jp" 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>(function(){const token = "99a33832-17f4-49eb-bccb-d5ef515c56af"; 430const uuid = "a7df67e3-37c0-47fe-9911-acf31e981033"; 431const locale = null; 432const labels = {"welcomeMessage":"Welcome to ROLI","chatHeader":"Chat with us...","faqHeader":"FAQs"}; 433 434 function initFreshChat() { 435 if (!window.fcWidget) return; 436 // docs: https://developers.freshchat.com/web-sdk/v2/#customisation-wgt 437 window.fcWidget.init({ 438 token, 439 host: 'https://rolisupport.freshchat.com', 440 widgetUuid: uuid, 441 ...(locale && { locale }), 442 config: { 443 content: { 444 headers: { 445 chat: labels.chatHeader, 446 faq: labels.faqHeader, 447 }, 448 welcomeMessage: labels.welcomeMessage, 449 }, 450 }, 451 }); 452 } 453 function initialize(i, t) { 454 var e; 455 if (i.getElementById(t)) { 456 initFreshChat(); 457 } else { 458 e = i.createElement('script'); 459 e.id = t; 460 e.async = true; 461 e.src = 'https://rolisupport.freshchat.com/js/widget.js'; 462 e.onload = initFreshChat; 463 i.head.appendChild(e); 464 } 465 } 466 function initiateCall() { 467 initialize(document, 'Freshchat-js-sdk'); 468 } 469 if (document.readyState === 'complete') { 470 initiateCall(); 471 } else { 472 window.addEventListener('load', initiateCall, false); 473 } 474})();</script>
474<script async src="https://js.klarna.com/web-sdk/v1/klarna.js" data-client-id="klarna_live_client_KnRsOGsqYUZIVyovV1BFejFiUWRUU0RRMndoSWtWOGksOGU4ZjgzOTMtM2RjNS00ZTg2LWE0ZGItMjdhNzMzNmM0YWJlLDEsb1Nzd2ZXWmFFQmxuZWpXY1J2QmMxOTgwY0xUODd4RDlmS1VtWkZkUE9RMD0"></script>
474<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
474<!-- For social embeds on the blog -->
474<script async src="https://www.instagram.com/embed.js"></script>
474<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>Home | 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><meta name="description" content="Explore ROLIâs revolutionary instruments, including the expressive Seaboard and ROLI Piano. Designed for both music learners and creators, our cutting-edge tools help you learn, play and produce music in new and intuitive ways, harnessing the power of SpatialMusic AI."><meta property="og:title" content="ROLI | Expressive & Intelligent Musical Instruments for Learners & Creators"><meta property="og:type" content="website"><meta property="og:url" content="https://roli.com/us"><meta property="og:description" content="Explore ROLIâs revolutionary instruments, including the expressive Seaboard and ROLI Piano. Designed for both music learners and creators, our cutting-edge tools help you learn, play and produce music in new and intuitive ways, harnessing the power of SpatialMusic AI."><meta property="og:site_name" content="ROLI">
474<script type="application/ld+json"> 475 { 476 "@context": "https://schema.org", 477 "@type": "Organization", 478 "name": "ROLI", 479 "alternateName": " Luminary ROLI Ltd", 480 "legalName": " Luminary ROLI Ltd", 481 "url": "https://roli.com", 482 "description": "ROLI is a London-based music technology company known for its innovative high tech musical instruments, particularly the ROLI Seaboard, a MIDI controller with soft, rubbery keys and continuous, rather than discrete, pitches, and pitch-bending capabilities.", 483 "logo": { 484 "@type": "ImageObject", 485 "url": "https://roli.com/apple-touch-icon-precomposed.png", 486 "width": "180", 487 "height": "180" 488 }, 489 "sameAs": [ 490 "https://www.facebook.com/ROLI", 491 "https://www.tiktok.com/@roli_create", 492 "https://www.tiktok.com/@roli_learn", 493 "https://www.instagram.com/roli_learn", 494 "https://www.instagram.com/roli_create", 495 "https://www.youtube.com/@WeAreROLI" 496 ], 497 "founder": { 498 "@type": "Person", 499 "name": "Roland Lamb" 500 }, 501 "foundingDate": "2009", 502 "address": { 503 "@type": "PostalAddress", 504 "streetAddress": "326/327 Stean Street", 505 "addressLocality": "London", 506 "postalCode": "E8 4ED", 507 "addressCountry": "United Kingdom" 508 } 509 } 510</script>
510<link rel="stylesheet" href="/_astro/_slug_.DqEVL20g.css"> 511<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}} 512.carousel-slide[data-astro-cid-psvxbzpf]{transition:transform 1.5s ease;will-change:transform}.carousel-slide[data-astro-cid-psvxbzpf]:first-child.slide-up{transform:translateY(-100%)}.carousel-slide[data-astro-cid-psvxbzpf]:last-child.slide-up{transform:translateY(-100%)}.indicator[data-astro-cid-psvxbzpf].is-active{background-color:#fff;height:40px}.carousel-slide[data-astro-cid-psvxbzpf]:first-child.slide-up .slide-content[data-astro-cid-psvxbzpf]{opacity:0}.carousel-slide[data-astro-cid-psvxbzpf]:last-child.slide-up .slide-content[data-astro-cid-psvxbzpf]{opacity:100;transition-duration:3s} 513.ct-comp-cell[data-astro-cid-efehqykl].ct-no-border-l{border-left-color:transparent!important} 514</style>
514<script type="module" src="/_astro/page.MielndDw.js"></script>
514</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>
514<script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script>
514<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>
514<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="ZkIta5" 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"
514:[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,1],"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="RhS9K" 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 m
514usic 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,1],"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>
514<script type="module" src="/_astro/homepage-video-carousel.astro_astro_type_script_index_0_lang.BM9MmUvE.js"></script>
514
514<script type="module" src="/_astro/homepage-video-carousel.astro_astro_type_script_index_1_lang.BcNkWF-d.js"></script>
514 <section id="homepage-hero-carousel-video-section" data-cy="homepage-hero-section" class="carousel-container relative h-[85svh] w-full overflow-hidden"> <div class="relative h-full w-full overflow-hidden"> <div class="carousel-slides flex h-full w-full transition-transform duration-700 ease-in-out"> <div class="carousel-slide relative h-full w-full flex-shrink-0"> <div class="absolute inset-0 h-full w-full"> <div class="block h-full w-full md:hidden"> <astro-island uid="KytJg" component-url="/_astro/video-hero-player.pKHt7D37.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"src":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/web-clip_ln_april26_320x600_2.161546139099192.mp4"],"videoTitle":[0,"Piano lessons, reimagined"],"hidePause":[0,true]}" ssr client="only" opts="{"name":"VideoPlayer","value":"solid-js"}"></astro-island> </div> <div class="hidden h-full w-full md:block"> <astro-island uid="Z29oNUx" component-url="/_astro/video-hero-player.pKHt7D37.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"src":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/web-clip_ln_april26_1200x600_2.161546139250745.mp4"],"videoTitle":[0,"Piano lessons, reimagined"],"hidePause":[0,true]}" ssr client="only" opts="{"name":"VideoPlayer","value":"solid-js"}"></astro-island> </div> <div class="opacity-100 slide-content absolute bottom-0 left-0 mb-8 flex w-[calc(100%-40px)] flex-col justify-end px-6 transition-opacity duration-[1000ms] will-change-transform md:mb-16 md:w-[calc(100%-110px)] md:px-16"> <h1 class="text-title-small md:text-headline-small text-ivory flex w-full font-normal whitespace-pre-line sm:whitespace-normal md:font-light"> Piano lessons, reimagined </h1> <p class="text-body-small md:text-body-large text-ivory flex w-full whitespace-pre-line sm:whitespace-normal"> With hand tracking and AI, a piano that teaches you how to play </p> <div class="mt-4 mr-6 grid max-w-[170px] grid-cols-1 items-center gap-2 md:mt-8 md:flex md:max-w-none md:flex-wrap"> <astro-island uid="1BqBu3" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/experience/roli-piano-system-learn"],"label":[0,"Explore Piano System"],"variant":[0,"primary-v1"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </div> </div> </div> </div> </section><div>
514<script>(function(){const id = "73e6b6ac-99d6-4857-ba50-8c4382fe1311"; 515 516 function handleNavigation(direction) { 517 const container = document.getElementById(id); 518 if (!container) return; 519 520 // Check if currently scrolling 521 if (container.dataset.isScrolling === 'true') return; 522 523 // Check bounds before scrolling 524 const isAtStart = Math.abs(container.scrollLeft) < 1; 525 const isAtEnd = 526 Math.abs( 527 container.scrollLeft + container.clientWidth - container.scrollWidth, 528 ) < 1; 529 530 if ( 531 (direction === 'left' && isAtStart) || 532 (direction === 'right' && isAtEnd) 533 ) { 534 return; 535 } 536 537 const scrollAmount = 538 direction === 'left' ? -container.clientWidth : container.clientWidth; 539 540 // Set scrolling flag 541 container.dataset.isScrolling = 'true'; 542 543 container.scrollTo({ 544 left: container.scrollLeft + scrollAmount, 545 behavior: 'smooth', 546 }); 547 548 // Clear scrolling flag after animation completes 549 setTimeout(() => { 550 container.dataset.isScrolling = 'false'; 551 updateButtonStates(); 552 }, 500); // Typical smooth scroll duration 553 } 554 555 function updateButtonStates() { 556 const container = document.getElementById(id); 557 const leftBtn = document.getElementById(`${id}-nav-left-btn`); 558 const rightBtn = document.getElementById(`${id}-nav-right-btn`); 559 560 if (!container || !leftBtn || !rightBtn) return; 561 562 const isAtStart = Math.abs(container.scrollLeft) < 1; 563 const isAtEnd = 564 Math.abs( 565 container.scrollLeft + container.clientWidth - container.scrollWidth, 566 ) < 1; 567 568 leftBtn.disabled = isAtStart; 569 rightBtn.disabled = isAtEnd; 570 571 // Update aria-disabled for better accessibility 572 leftBtn.setAttribute('aria-disabled', isAtStart.toString()); 573 rightBtn.setAttribute('aria-disabled', isAtEnd.toString()); 574 } 575 576 function initializeCarousel() { 577 const container = document.getElementById(id); 578 const leftBtn = document.getElementById(`${id}-nav-left-btn`); 579 const rightBtn = document.getElementById(`${id}-nav-right-btn`); 580 581 if (container && leftBtn && rightBtn) { 582 // Initialize scrolling flag 583 container.dataset.isScrolling = 'false'; 584 585 // Use throttled scroll event listener 586 let scrollTimeout; 587 container.addEventListener('scroll', () => { 588 if (scrollTimeout) clearTimeout(scrollTimeout); 589 scrollTimeout = setTimeout(() => { 590 updateButtonStates(); 591 }, 150); 592 }); 593 594 leftBtn.addEventListener('click', () => handleNavigation('left')); 595 rightBtn.addEventListener('click', () => handleNavigation('right')); 596 597 // Initial state update 598 setTimeout(updateButtonStates, 100); 599 } 600 } 601 602 // Initialize on both DOMContentLoaded and load 603 if (document.readyState === 'loading') { 604 document.addEventListener('DOMContentLoaded', initializeCarousel); 605 } else { 606 initializeCarousel(); 607 } 608 609 // Backup initialization and handle resize 610 window.addEventListener('load', () => { 611 setTimeout(updateButtonStates, 100); 612 }); 613 614 // Handle window resize 615 window.addEventListener('resize', () => { 616 const container = document.getElementById(id); 617 if (container) { 618 container.dataset.isScrolling = 'false'; 619 updateButtonStates(); 620 } 621 }); 622})();</script>
622 <div class="bg-ivory"> <section class="py-xs md:py-medium mx-auto max-w-7xl px-6 md:px-10 pb-xs"> <div class="flex items-center justify-between"> <h3 class="text-ebony text-title-small md:text-headline-small font-light"> Explore our products </h3> <div class="flex gap-2"> <button id="73e6b6ac-99d6-4857-ba50-8c4382fe1311-nav-left-btn" class="nav-left p-2 bg-ivory-mid text-ebony disabled:opacity-50 disabled:cursor-not-allowed -scale-x-100 w-[33px] h-[33px] rounded-full flex items-center justify-center" aria-label="Scroll left"><svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"> 623<path d="M1 1.25L4.58696 5L1 8.75" stroke="currentColor" stroke-width="0.75" stroke-linecap="round"/> 624</svg> 625</button> <button id="73e6b6ac-99d6-4857-ba50-8c4382fe1311-nav-right-btn" class="nav-right p-2 bg-ivory-mid text-ebony disabled:opacity-50 disabled:cursor-not-allowed w-[33px] h-[33px] rounded-full flex items-center justify-center" aria-label="Scroll right"><svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"> 626<path d="M1 1.25L4.58696 5L1 8.75" stroke="currentColor" stroke-width="0.75" stroke-linecap="round"/> 627</svg> 628</button> </div> </div> <div class="mt-8 md:mt-16"> <div id="73e6b6ac-99d6-4857-ba50-8c4382fe1311" class="flex snap-x snap-mandatory flex-row gap-4 overflow-x-scroll pb-6 scrollbar scrollbar-track-ivory scrollbar-thumb-ivory-mid"> <astro-island uid="D5Rqp" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"565f7afc-1869-4e96-ba10-5f176503f7fb"],"component":[0,"homepageProductItem"],"product_image":[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]}],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,""],"sku":[0,"piano-49-learn_airwave_create_bundle"],"_uid":[0,"a4cb2065-68cd-4057-a751-8b7a19dc400a"],"Color":[0,""],"Model":[0,""],"title":[0,"Default Title"],"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,[]],"id":[0,"gid://shopify/ProductVariant/42139397652569"],"requiresShipping":[0,true],"image":[0,{"url":[0,"
628https://cdn.shopify.com/s/files/1/0811/0105/files/P49_AW_Bundle_Learn_01.png?v=1737541331"],"altText":[0,null],"height":[0,1528],"width":[0,2708]}],"requiresComponents":[0,true],"components":[0,{"nodes":[1,[[0,{"quantity":[0,1],"productVariant":[0,{"id":[0,"gid://shopify/ProductVariant/41918566039641"],"sku":[0,"airwave_learn"],"product":[0,{"handle":[0,"airwave-learn"]}],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Airwave_Learn_5b243970-31b6-4f80-b8f4-b9f7cadb90b4.png?v=1729085666"],"altText":[0,null],"height":[0,896],"width":[0,1587]}]}]}],[0,{"quantity":[0,1],"productVariant":[0,{"id":[0,"gid://shopify/ProductVariant/42060009832537"],"sku":[0,"piano-49-learn"],"product":[0,{"handle":[0,"piano-learn"]}],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/P49_Learn_01.png?v=1737458548"],"altText":[0,null],"height":[0,1528],"width":[0,2708]}]}]}]]]}],"product":[0,{"id":[0,"gid://shopify/Product/7905811333209"],"title":[0,"Piano Learn + Airwave Bundle"],"handle":[0,"piano-49-learn-airwave-bundle"],"descriptionHtml":[0,"<p><meta charset=\"utf-8\"><meta charset=\"utf-8\">Your bundle will ship <meta charset=\"utf-8\">end of <meta charset=\"utf-8\">September.<br></p>"],"tags":[1,[[0,"BF25"],[0,"On Site"]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"948.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"948.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"948.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,null],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for learners"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island><astro-island uid="3Qa7G" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"d32ba8af-78c4-4a0c-878c-93353700029e"],"component":[0,"homepageProductItem"],"product_image":[0,{"id":[0,20077893],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_01.20077893.webp"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/cb304caa65/p49_learn_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_01.20077893.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,""],"sku":[0,"piano-49-learn"],"_uid":[0,"f0636711-3b58-45b3-b57d-978aee1c8dff"],"Color":[0,""],"Model":[0,""],"title":[0,"Matte Black"],"gallery":[1,[[0,{"id":[0,20077891],"alt":[0,""],"name":[0,""],"focus":[0,""],"index":[0,0],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_03.20077891.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/714af6f3ce/p49_learn_03.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_03.20077891.png"]}]}],[0,{"id":[0,20077892],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_05.20077892.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/bbf8af1e2b/p49_learn_05.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_05.20077892.png"]}]}],[0,{"id":[0,20077890],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_02.20077890.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/ebbfd72ca0/p49_learn_02.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_02.20077890.png"]}]}],[0,{"id":[0,20077889],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_04.20077889.jpg"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/d82960e51a/p49_learn_04.jpg"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_04.20077889.jpg"]}]}]]],"subCopy":[0,""],"Material":[0,""],"category":[0,"learn"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/products/LUMISE_CartImage_1.png?v=1605710585"],"component":[0,"shopify-variant"],"bundleSkus":[1,[]],"exploreUrl":[0,"/experience/piano-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"],"desktopImage":[0,{"id":[0,20077893],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_01.20077893.png"],"filename":[0,"https://a.storyblok.com/f/278825/2708x1528/cb304caa65/p49_learn_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_learn_01.20077893.png"]}],"is_external_url":[0,false]}],"productTitle":[0,"Piano "],"promoMessage":[0,""],"activeBatches":[0,""],"productHandle":[0,"piano-learn"],"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"],"onboardingImage":[0,{"id":[0,84657367321422],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/bb5d4af1fa/piano-l.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Piano"],"productCategory":[0,""],"requiresShipping":[0,true],"showCategoryMessage":[0,true],"additionalProperties":[1,[]],"id":[0,"gid://shopify/ProductVariant/42060009832537"],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/P49_Learn_01.png?v=1737458548"],"altText":[0,null],"height":[0,1528],"width":[0,2708]}],"requiresComponents":[0,false],"components":[0,{"nodes":[1,[]]}],"product":[0,{"id":[0,"gid://shopify/Product/7885911654489"],"title":[0,"Piano Learn"],"handle":[0,"piano-learn"],"descriptionHtml":[0,"<p><meta charset=\"utf-8\">ROLI Piano <meta charset=\"utf-8\">ships <meta charset=\"utf-8\">end of September.<br></p>"],"tags":[1,[[0,"BF25"],[0,"Blog Stories Eligible Products"],[0,"On Site"],[0,"P49 Batch 26L"],[0,"Your ROLI Piano is in Batch 26 and is shipping end of September."]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"599.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"599.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"599.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,null],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for learners"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island><astro-island uid="Z1EkqcB" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"3cc675ae-e5d7-498f-85fa-606a60f18ca8"],"component":[0,"homepageProductItem"],"product_image":[0,{"id":[0,17237202],"alt":[0,"RBG color lit up keys on ROLI Piano M keyboard"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Piano M Learn"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/piano-m-learner.17237202.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/bc84684501/piano-m-learner.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/piano-m-learner.17237202.png"]}],"is_external_url":[0,false]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,"814773021359"],"sku":[0,"piano-m-learn"],"_uid":[0,"f0636711-3b58-45b3-b57d-978aee1c8dff"],"Color":[0,""],"Model":[0,""],"title":[0,"Default Title"],"gallery":[1,[[0,{"id":[0,18713532],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_01.18713532.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/d505e0fee3/pianom_learn_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],[0,{"id":[0,18713531],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_02.18713531.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/1459b6bc42/pianom_learn_02.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],[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,18710744],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_04.18710744.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/e23ca7419e/pianom_learn_04.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,"
628;"],"Material":[0,""],"category":[0,"learn"],"imageUrl":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Piano_M_Learner.png?v=1725958046"],"component":[0,"shopify-variant"],"bundleSkus":[1,[]],"exploreUrl":[0,"/experience/piano-m-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"],"desktopImage":[0,{"id":[0,18713532],"alt":[0,"Colorful digital piano keyboard with rainbow gradient keys and black control panel on top."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/pianom_learn_01.18713532.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/d505e0fee3/pianom_learn_01.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"Colorful digital piano keyboard with rainbow gradient keys and black control panel on top."]}],"is_external_url":[0,false]}],"productTitle":[0,"Piano M"],"promoMessage":[0,""],"activeBatches":[0,""],"productHandle":[0,"piano-m-learn"],"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"],"onboardingImage":[0,{"id":[0,84653760674585],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/piano-m-l.84653760674585.png"],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/20b92f5108/piano-m-l.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/piano-m-l.84653760674585.png"]}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Piano M"],"productCategory":[0,""],"requiresShipping":[0,true],"showCategoryMessage":[0,true],"additionalProperties":[1,[]],"id":[0,"gid://shopify/ProductVariant/42834689032281"],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Piano_M_Learner.png?v=1725958046"],"altText":[0,null],"height":[0,200],"width":[0,170]}],"requiresComponents":[0,false],"components":[0,{"nodes":[1,[]]}],"product":[0,{"id":[0,"gid://shopify/Product/7783491829849"],"title":[0,"Piano M Learn"],"handle":[0,"piano-m-learn"],"descriptionHtml":[0,"<p><meta charset=\"utf-8\">Dispatches <meta charset=\"utf-8\"><span>mid-July.</span><br></p>"],"tags":[1,[[0,"BF25"],[0,"BFVIP25"],[0,"Blog Stories Eligible Products"],[0,"CRM Collection"],[0,"EDU Eligible"],[0,"MentionMe Eligible"],[0,"On Site"]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"249.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"249.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"249.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,null],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for learners"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island><astro-island uid="DS8a3" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"288bd726-d541-4075-872c-c18c60648ba8"],"component":[0,"homepageProductItem"],"product_image":[0,{"id":[0,17544029],"alt":[0,"Front view of Roli seaboard 2 expressive keyboard in black and airwave"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Seaboard 2 - Airwave"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2.17544029.webp"],"filename":[0,"https://a.storyblok.com/f/278825/1359x783/a7258920ff/seaboard2.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"Front view of Roli seaboard 2 expressive keyboard in black and airwave"],"title":[0,"ROLI Seaboard 2 - Airwave"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard2.17544029.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,""],"sku":[0,"sbrise2_2022_black_airwave_create_bundle"],"_uid":[0,"2ea68eb3-4806-43e5-b5c4-ccbb97d4269d"],"Color":[0,""],"Model":[0,""],"title":[0,"Ebony Black"],"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,[]],"id":[0,"gid://shopify/ProductVariant/41919298404441"],"requiresShipping":[0,true],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Seaboard2.png?v=1728383993"],"altText":[0,null],"height":[0,783],"width":[0,1359]}],"requiresComponents":[0,true],"components":[0,{"nodes":[1,[[0,{"quantity":[0,1],"productVariant":[0,{"id":[0,"gid://shopify/ProductVariant/41553283842137"],"sku":[0,"sbrise2_2022_black"],"product":[0,{"handle":[0,"rise2"]}],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Seaboard2Black.png?v=1725958117"],"altText":[0,null],"height":[0,200],"width":[0,308]}]}]}],[0,{"quantity":[0,1],"productVariant":[0,{"id":[0,"gid://shopify/ProductVariant/41918524489817"],"sku":[0,"airwave_create"],"product":[0,{"handle":[0,"airwave-create"]}],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Airwave_Create_003f4986-7af7-48f5-8b47-6ca8469e9571.png?v=1729085650"],"altText":[0,null],"height":[0,896],"width":[0,1590]}]}]}]]]}],"product":[0,{"id":[0,"gid://shopify/Product/7809505624153"],"title":[0,"Seaboard 2 + Airwave Bundle"],"handle":[0,"rise2-airwave-create-bundle"],"descriptionHtml":[0,"<p>Includes Airwave Player, ROLI Studio and Equator 2.<br></p>\n<p class=\"p1\">ROLI Airwave will ship <meta charset=\"utf-8\">end of <meta charset=\"utf-8\">September.</p>"],"tags":[1,[[0,"BF25"],[0,"BFVIP25"],[0,"Blog Stories Eligible Products"],[0,"CRM Collection"],[0,"EDU Eligible"],[0,"MentionMe Eligible"],[0,"On Site"]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"1748.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"1748.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"1485.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"1485.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"1485.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,{"amount":[0,"1748.0"],"currencyCode":[0,"USD"]}],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for creators"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island><astro-island uid="1gusFr" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"80e35d5d-e31b-462f-b6be-6e19ec0ab70a"],"component":[0,"homepageProductItem"],"product_image":[0,{"id":[0,17242624],"alt":[0,"Roli seaboard 2 in color black"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Seaboard 2"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-black.17242624.webp"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/5402fb5cc1/seaboard-2-black.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"Roli seaboard 2 in color black"],"title":[0,"ROLI Seaboard 2"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-black.17242624.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,"814773021342"],"sku":[0,"sbrise2_2022_black"],"_uid":[0,"1e5743b5-6a60-40e1-ba83-f1223f130e9e"],"Color":[0,""],"Model":[0,""],"title":[0,"Ebony Black"],"gallery":[1,[[0,{"id":[0,158049950810193],"alt":[0,"A black ROLI Seaboard 2 MIDI controller with a soft, continuous silicone k
628ey surface and touch controls on the left side, shown against a black background."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/new-project-1-1.158049950810193.png"],"filename":[0,"https://a.storyblok.com/f/278825/805x454/69c94ad5b1/new-project-1-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A black ROLI Seaboard 2 MIDI controller with a soft, continuous silicone key surface and touch controls on the left side, shown against a black background."],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/new-project-1-1.158049950810193.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"],"bundleSkus":[1,[]],"exploreUrl":[0,"/experience/seaboard-2"],"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,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"],"promoMessage":[0,""],"activeBatches":[0,""],"bundleMessage":[0,""],"productHandle":[0,"rise2"],"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"],"onboardingImage":[0,{"id":[0,84653580122899],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-bk.84653580122899.png"],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/ae97e6cc55/seaboard-2-bk.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-2-bk.84653580122899.png"]}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Seaboard 2"],"productCategory":[0,""],"savingsYearlyText":[0,""],"qualifyingHardware":[1,[]],"showCategoryMessage":[0,false],"additionalProperties":[1,[]],"id":[0,"gid://shopify/ProductVariant/41553283842137"],"requiresShipping":[0,true],"image":[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/Seaboard2Black.png?v=1725958117"],"altText":[0,null],"height":[0,200],"width":[0,308]}],"requiresComponents":[0,false],"components":[0,{"nodes":[1,[]]}],"product":[0,{"id":[0,"gid://shopify/Product/6994614157401"],"title":[0,"Seaboard 2"],"handle":[0,"rise2"],"descriptionHtml":[0,"<p><meta charset=\"utf-8\">Ships end of September.<br><meta charset=\"utf-8\"><span></span></p>"],"tags":[1,[[0,"BF25"],[0,"BFVIP25"],[0,"Blog Stories Eligible Products"],[0,"CRM Collection"],[0,"EDU Eligible"],[0,"Hardware"],[0,"MentionMe Eligible"],[0,"On Site"]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"1399.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"1399.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"1399.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,null],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for creators"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island><astro-island uid="1UE4wu" component-url="/_astro/homepage-products-carousel-item.DUwG-kJj.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"product":[0,{"_uid":[0,"d13bc113-d601-4032-9266-441091e57cef"],"component":[0,"homepageProductItem"],"product_image":[0,{"id":[0,17242623],"alt":[0,"Roli seaboard m keyboard"],"name":[0,""],"focus":[0,""],"title":[0,"ROLI Seaboard M"],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-m.17242623.png"],"filename":[0,"https://a.storyblok.com/f/278825/1354x764/7d256cf28c/seaboard-m.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-m.17242623.png"]}],"is_external_url":[0,false]}],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}],"soundpack_data":[1,[]],"discountMessage":[0,""],"productReference":[0,{"mpn":[0,"814773021328"],"sku":[0,"blksseaboardm"],"_uid":[0,"a0dc7335-476f-48d7-9dcc-4f15882fe394"],"Color":[0,""],"Model":[0,""],"title":[0,"Default Title"],"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"]}]}],[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,"/experience/seaboard-m"],"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,"b7a9e717-da83-4d1d-b401-ab2bcadb5374"],"productHandle":[0,"seaboard-block-m"],"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"],"onboardingImage":[0,{"id":[0,84653656181527],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-m.84653656181527.png"],"filename":[0,"https://a.storyblok.com/f/278825/2048x938/2f3b15ff83/seaboard-m.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/seaboard-m.84653656181527.png"]}],"is_external_url":[0,false]}],"onboardingTitle":[0,"Seaboard M"],"productCategory":[0,""],"showCategoryMessage":[0,false],"additionalProperties":[1,[]],"id":[0,"gid://shopify/ProductVariant/40635273904217"],"requiresShipping":[0,true],"image&qu
628ot;:[0,{"url":[0,"https://cdn.shopify.com/s/files/1/0811/0105/files/sbb_cart_c9ea1972-9f0c-4160-8906-98b9d66ee5ec.png?v=1697629500"],"altText":[0,null],"height":[0,814],"width":[0,1100]}],"requiresComponents":[0,false],"components":[0,{"nodes":[1,[]]}],"product":[0,{"id":[0,"gid://shopify/Product/7411428098137"],"title":[0,"Seaboard M"],"handle":[0,"seaboard-block-m"],"descriptionHtml":[0,"<p><meta charset=\"utf-8\"><span>Includes ROLI Studio. Seaboard M ships end of June.</span></p>"],"tags":[1,[[0,"BF25"],[0,"BFVIP25"],[0,"Blog Stories Eligible Products"],[0,"CRM Collection"],[0,"EDU Eligible"],[0,"Hardware"],[0,"MentionMe Eligible"],[0,"On Site"]]],"compareAtPriceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"0.0"],"currencyCode":[0,"USD"]}]}],"priceRange":[0,{"maxVariantPrice":[0,{"amount":[0,"349.0"],"currencyCode":[0,"USD"]}],"minVariantPrice":[0,{"amount":[0,"349.0"],"currencyCode":[0,"USD"]}]}]}],"priceV2":[0,{"amount":[0,"349.0"],"currencyCode":[0,"USD"]}],"compareAtPriceV2":[0,null],"freebieSavings":[0,0]}],"should_add_to_cart":[0,false],"badgeDiscountMessage":[0,""]}],"categoryLabel":[0,"for creators"],"ctaLabel":[0,"Explore"]}" ssr client="only" opts="{"name":"HomepageProductsCarouselItem","value":"solid-js"}"></astro-island> </div> </div> </section> </div><section class=" pb-xs md:pb-small mx-auto grid min-h-[385px] max-w-7xl grid-rows-2 px-6 md:min-
628h-[550px] md:grid-cols-2 md:grid-rows-1 md:px-10 md:gap-8"> <div class="flex"> <h3 class="text-title-large text-on-ivory-ebony-alt md:text-headline-medium w-2/3 font-light md:w-full"> A smarter way to learn piano. </h3> </div> <div class="flex items-end"> <p class="text-title-large text-on-ebony-core-orange md:text-headline-medium ml-auto w-2/3 font-light md:w-full"> The only learning system that sees how you play. </p> </div> </section><div class> <div class="w-full mx-auto grid grid-cols-12 gap-4"> <section class="col-span-12 col-start-1 pt-xs md:pt-medium pb-xs md:pb-small px-0 "> <astro-island uid="Z2wGnAK" component-url="/_astro/video-player.t9cAEP8w.js" component-export="VideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"videoTitle":[0,""],"videoUrl":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/p49_hero_ln_169-optimised2.20070665.mp4"],"posterImageUrl":[0,"https://a.storyblok.com/f/278825/2400x1200/65557ca650/desktop-2-2.png/m/"],"playButtonText":[0],"titleOverlay":[0]}" ssr client="only" opts="{"name":"VideoPlayer","value":"solid-js"}"></astro-island> </section> </div> </div><div class="bg-ivory"> <div class="max-w-7xl mx-auto grid grid-cols-12 gap-4"> <section class="col-span-12 col-start-1 place-items-left relative pt-xs md:pt-medium pb-xs md:pb-small px-4 lg:px-[42px] " id> <div class="flex w-full flex-col items-start"> <div class="order-last mt-6 flex items-center justify-center md:order-first md:mt-0 md:mb-6"> </div> <div class="flex flex-col"> <h3 class="text-ebony text-headline-small mb-8 font-light whitespace-pre-line"> Everything you need to 629learn (and love) piano </h3> <p class="text-ebony-light text-body-medium md:whitespace-pre-line md:text-body-large md:leading-7"> </p> </div> <astro-island uid="1HQi6c" component-url="/_astro/title-and-description-cta.Ch8oGSds.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"section":[0,{"_uid":[0,"447e3516-f179-4bd9-b486-a704e45d3ef8"],"logos":[1,[]],"theme":[0,"light"],"title":[0,"Everything you need to \nlearn (and love) piano"],"ctaUrl":[0,""],"ctaText":[0,""],"boxWidth":[0,"622"],"alignment":[0,"left"],"component":[0,"Title And Description"],"sectionId":[0,""],"topPadding":[0,"medium"],"description":[0,""],"bottomPadding":[0,"small"],"regionSelector":[0,false],"increasePadding":[0,false],"signupForMoreInfo":[1,[]],"regionalisedCtaUrls":[1,[]],"showNewsletterSignup":[0,false],"newsletterAffiliation":[1,[]]}],"className":[0,"text-ebony rounded-4 mt-8 inline-flex w-full items-center justify-center gap-4 border px-4 py-2 hover:border-purple-400 hover:text-purple-400 sm:w-fit"]}" ssr client="only" opts="{"name":"TitleAndDescriptionCta","value":"solid-js"}"></astro-island> </div> </section> </div> </div><div class="bg-ivory"> <div class="max-w-7xl mx-auto grid grid-cols-12 gap-4"> <section class="col-span-12 col-start-1 pb-small md:pb-large px-4 lg:px-[42px] "> <div class="scrollbar-thumb-ivory-mid scrollbar-track-ivory scrollbar z-10 snap-x snap-mandatory flex-row gap-4 pb-[60px] mb-8 md:flex md:overflow-x-scroll"> <div class="pb-[46px] md:snap-start md:px-0 md:pb-0"> <div class=" mb-[28px] h-auto w-full md:w-[458px]"> <img class="w-full object-cover" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/cp_l_system_c1_2.20115887.jpg" alt="An illuminated ROLI Piano"> </div> <div> <h4 class="text-ebony text-title-small mb-[6px] md:mb-[12px]"> ROLI Piano </h4> <p class="text-ebony-light text-body-large font-normal"> Four full octaves of beautifully responsive, full-size glowing keys that light up to guide you through your favourite songs. Learn on it, play on it, and everything you master translates perfectly to a traditional piano. </p> </div> </div><div class="pb-[46px] md:snap-start md:px-0 md:pb-0"> <div class=" mb-[28px] h-auto w-full md:w-[458px]"> <img class="w-full object-cover" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/cp_l_system_c2.20076050.jpg" alt="Black rectangular charging stand with dual USB-C ports, designed for modern devices, on a light background."> </div> <div> <h4 class="text-ebony text-title-small mb-[6px] md:mb-[12px]"> Airwave </h4> <p class="text-ebony-light text-body-large font-normal"> The revolutionary device that brings ROLI Vision AI to life. It tracks your hands in 3D space with incredible precision, offering personalised feedback on posture, finger positioning, and more â helping you build good habits from day one. Something no other learning platform can do. </p> </div> </div><div class="pb-0 md:snap-start md:px-0 md:pb-0"> <div class=" mb-[28px] h-auto w-full md:w-[458px]"> <img class="w-full object-cover" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/cp_l_system_c3.20076046.jpg" alt="Tablet displaying a music learning app interface above a colorful digital piano keyboard."> </div> <div> <h4 class="text-ebony text-title-small mb-[6px] md:mb-[12px]"> ROLI Learn app Membership </h4> <p class="text-ebony-light text-body-large font-normal"> The heart of your experience. Explore 1,200+ songs, hundreds of video lessons, and fun games designed by expert coaches. From pop hits to classical standards, practice never feels like practice. </p> </div> </div> </div> </section> </div> </div><section class=" pb-xs md:pb-small mx-auto grid min-h-[385px] max-w-7xl grid-rows-2 px-6 md:min-
629h-[550px] md:grid-cols-2 md:grid-rows-1 md:px-10 md:gap-8"> <div class="flex"> <h3 class="text-title-large text-on-ivory-ebony-alt md:text-headline-medium w-2/3 font-light md:w-full"> Your AI Music Coach. </h3> </div> <div class="flex items-end"> <p class="text-title-large text-on-ebony-core-orange md:text-headline-medium ml-auto w-2/3 font-light md:w-full"> Always available, endlessly patient, and tuned to you. </p> </div> </section><div class> <div class="w-full mx-auto grid grid-cols-12 gap-4"> <section class="col-span-12 col-start-1 pt-medium md:pt-large px-0 "> <astro-island uid="2qL9yk" component-url="/_astro/video-player.t9cAEP8w.js" component-export="VideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"videoTitle":[0,""],"videoUrl":[0,"https://d30pueezughrda.cloudfront.net/roli.com/videos/AIMC_EXPLAINER_169.mp4"],"posterImageUrl":[0,"https://a.storyblok.com/f/278825/2400x1350/5da56610af/ai-coach-explainer-vid-thumb.jpg/m/"],"playButtonText":[0],"titleOverlay":[0]}" ssr client="only" opts="{"name":"VideoPlayer","value":"solid-js"}"></astro-island> </section> </div> </div><section class="trustpilot-section bg-ivory-mid "> <div class="pt-xs md:pt-small mx-auto max-w-7xl px-6 md:px-10"> <div class="flex flex-col space-y-7 md:py-[45px]"> <div> <img src="/_astro/trustpilotMarketingAsset.BW9pVswm.svg" alt="Trustpilot Logo" width="120" height="30" style="aspect-ratio: 4/1; width: 120px; height: auto;" decoding="async"> </div> <div> <h1 class="text-on-ivory-ebony text-title-small md:text-headline-small pb-7 md:pb-0"> What our customers say </h1> </div> </div> <div class="scrollbar-thin snap-x snap-mandatory pt-6 overflow-x-auto scrollbar-thumb-rounded scroll-smooth scrollbar-track-ivory-mid scrollbar-thumb-ebony-mid"> <div class="flex gap-4 px-2 pb-7 md:pb-4"> <div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">ROLI changed my creative life forever</h1> <p class="text-caption pt-4 text-ebony-light">Iâve been using the Seaboard 2 and M since 2024, and I can say without hesitation: these instruments have completely revolutionized my creative journey. </p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none">
629<path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">This piano and app is the easiest way</h1> <p class="text-caption pt-4 text-ebony-light">This piano and app is the easiest way to learn! My kids are playing every day and my daughter is playing two hands already only 2 months in!</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">I really love ROLI</h1> <p class="text-caption pt-4 text-ebony-light">I really love ROLI, both the Piano M (I have 2 now) and the ROLI app. I tried to learn piano before and never went very far, it's daunting! ...</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">ROLI is next level!</h1> <p class="text-caption pt-4 text-ebony-light">This keyboard was packaged so well! It has so many uses!!! Iâm so excited to learn more and create some of my best material. Thank y
629ou ROLI.</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">Just an average persons opinion.</h1> <p class="text-caption pt-4 text-ebony-light">I can honestly say that I have never known such brilliant Customer Service. </p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">Great company to deal with</h1> <p class="text-caption pt-4 text-ebony-light">Great company to deal with, their customer support is excellent, responsive , friendly and efficient.</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto
629size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">Best customer support ever</h1> <p class="text-caption pt-4 text-ebony-light">If I had to imagine how customer support should be, well that would be the one I experienced with Roli!</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">Fast delivery, good information provided</h1> <p class="text-caption pt-4 text-ebony-light">My ROLI keyboard arrived as informed.Thank you!</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none">
629<path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">A great piano teacher</h1> <p class="text-caption pt-4 text-ebony-light">ROLI has really given my piano learning skills a boost. Because of the many songs and the different modes of play, it opens up a plethora of options to start playing. </p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div><div class="flex h-auto w-[196px] flex-shrink-0 snap-start flex-col items-center justify-between rounded-lg px-3 py-8 md:w-[220px] bg-white"> <div class="relative"><svg class="hidden"><symbol id="trustpilot-stars" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103 19"><g fill="none"><path fill="currentColor" d="M.36.06h19.15v18.4H.36zm20.65 0H39.8v18.4H21zm20.28 0h19.15v18.4H41.29zm20.65 0h19.15v18.4H61.94zm21 0h19.15v18.4H82.94z"></path><path fill="#fff" d="m9.93 12.41 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69H11.5L9.93 3.05 8.37 7.72H3.31l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.77 4.08-2.9zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06l-1.56-4.67-1.55 4.67H23.8l4.1 2.9-1.55 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.88 4.69 2.87-.71 1.2 3.63-4.07-2.92zm6.62-4.69h-5.07l-1.55-4.67-1.56 4.67H44.3l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L71.4 3.05l-1.56 4.67H64.8l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.08-2.89zm13.87 4.69 2.88-.71 1.2 3.63-4.08-2.92zm6.62-4.69h-5.06L91.9 3.05l-1.55 4.67h-5.07l4.1 2.9-1.56 4.67 4.1-2.9 2.52-1.78 4.09-2.89z"></path></g></symbol></svg><div class="text-[#dcdce6]"><svg class="block h-[18px] w-[96px]"><use href="#trustpilot-stars"></use></svg></div><div class="absolute top-0 left-0 h-full overflow-hidden transition-all duration-300" style="width:100%"><svg class="block h-[18px] w-[96px]" style="color:#00b67a"><use href="#trustpilot-stars"></use></svg></div></div> <div class="pt-4 text-center"> <h1 class="text-body-large text-on-ivory-ebony">Fantastic Seaboard</h1> <p class="text-caption pt-4 text-ebony-light">Fantastic, innovative and brilliant product. Build is Apple quality. Love my ROLI Seaboard very very much!</p> </div> <div class="pt-6 text-center"> <img src="/_astro/verifiedbatch.Br6WjFRj.png" alt="Verified user badge" class="mx-auto size-5"> <p class="text-on-ivory-ebony pt-1 text-[8px]">Verified Customer</p> <p class="text-ebony-light pt-1.5 text-[8px]"></p> </div> </div> </div> </div> <div class="md:text-body-small text-caption flex flex-col items-center space-y-1 pt-6 md:py-11 text-ebony"> <p></p> </div> </div> </section><section class="bg-on-ivory-ebony relative w-full"> <div> <img loading="lazy" class="absolute top-0 left-0 h-full w-full object-cover md:static md:top-auto md:left-auto md:block md:h-auto" src="https://a.storyblok.com/f/278825/2614x1326/bb5b28e325/test-2.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/2614x1326/bb5b28e325/test-2.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/2614x1326/bb5b28e325/test-2.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/2614x1326/bb5b28e325/test-2.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/2614x1326/bb5b28e325/test-2.png/m/2160x0/ 2160w" sizes="100vw" width="2614" height="1326" alt decoding="async"> <div class="relative mx-auto max-w-7xl px-6 py-16 md:absolute md:top-0 md:left-1/2 md:grid md:h-full md:w-full md:-translate-x-1/2 md:grid-cols-2 md:gap-4 md:px-10 md:py-24"> <div> <h3 class="text-title-large text-ivory md:text-headline-medium font-light lg:w-2/3"> We make musicians </h3> </div> <div class="mt-4 md:mt-0 md:flex md:flex-col md:flex-wrap md:justify-center"> <p class="text-title-small text-pastel-orange md:text-title-large"> AI can now make music, but weâd rather make musicians. Read more about our stance on AI and learning. </p>
629 <a class="rounded-4 text-caption md:text-body-medium mt-6 inline-flex items-center justify-center border border-white p-2 text-center text-white lg:absolute lg:right-10 lg:bottom-24 lg:mt-0 lg:flex lg:p-4" href="/manifesto"> Read our manifesto </a> </div> </div> </div> </section>
629<script>(function(){const id = "c5ee0dd3-ca2c-42ea-80dd-e5d60ed4e9ed"; 630 631 function handleNavigation(direction) { 632 const container = document.getElementById(id); 633 if (!container) return; 634 635 if (container.dataset.isScrolling === 'true') return; 636 637 // Check bounds before scrolling 638 const isAtStart = Math.abs(container.scrollLeft) < 1; 639 const isAtEnd = 640 Math.abs( 641 container.scrollLeft + container.clientWidth - container.scrollWidth, 642 ) < 1; 643 644 if ( 645 (direction === 'left' && isAtStart) || 646 (direction === 'right' && isAtEnd) 647 ) { 648 return; 649 } 650 651 const scrollAmount = 652 direction === 'left' ? -container.clientWidth : container.clientWidth; 653 654 // Set scrolling flag 655 container.dataset.isScrolling = 'true'; 656 657 container.scrollTo({ 658 left: container.scrollLeft + scrollAmount, 659 behavior: 'smooth', 660 }); 661 662 // Clear scrolling flag after animation completes 663 setTimeout(() => { 664 container.dataset.isScrolling = 'false'; 665 updateButtonStates(); 666 }, 500); // Typical smooth scroll duration 667 } 668 669 function updateButtonStates() { 670 const container = document.getElementById(id); 671 const leftBtn = document.getElementById(`${id}-nav-left-btn`); 672 const rightBtn = document.getElementById(`${id}-nav-right-btn`); 673 674 if (!container || !leftBtn || !rightBtn) return; 675 676 const isAtStart = Math.abs(container.scrollLeft) < 1; 677 const isAtEnd = 678 Math.abs( 679 container.scrollLeft + container.clientWidth - container.scrollWidth, 680 ) < 1; 681 682 leftBtn.disabled = isAtStart; 683 rightBtn.disabled = isAtEnd; 684 685 // Update aria-disabled for better accessibility 686 leftBtn.setAttribute('aria-disabled', isAtStart.toString()); 687 rightBtn.setAttribute('aria-disabled', isAtEnd.toString()); 688 } 689 690 function initializeCarousel() { 691 const container = document.getElementById(id); 692 const leftBtn = document.getElementById(`${id}-nav-left-btn`); 693 const rightBtn = document.getElementById(`${id}-nav-right-btn`); 694 695 if (container && leftBtn && rightBtn) { 696 container.dataset.isScrolling = 'false'; 697 698 let scrollTimeout; 699 container.addEventListener('scroll', () => { 700 if (scrollTimeout) clearTimeout(scrollTimeout); 701 scrollTimeout = setTimeout(() => { 702 updateButtonStates(); 703 }, 150); 704 }); 705 706 leftBtn.addEventListener('click', () => handleNavigation('left')); 707 rightBtn.addEventListener('click', () => handleNavigation('right')); 708 709 setTimeout(updateButtonStates, 100); 710 } 711 } 712 713 if (document.readyState === 'loading') { 714 document.addEventListener('DOMContentLoaded', initializeCarousel); 715 } else { 716 initializeCarousel(); 717 } 718 719 window.addEventListener('load', () => { 720 setTimeout(updateButtonStates, 100); 721 }); 722 723 window.addEventListener('resize', () => { 724 const container = document.getElementById(id); 725 if (container) { 726 container.dataset.isScrolling = 'false'; 727 updateButtonStates(); 728 } 729 }); 730})();</script>
730 <div class="bg-on-ivory-dark-ivory"> <section class="py-[46px] md:py-[74px] mx-auto max-w-7xl px-6 md:px-10"> <div class="flex items-center justify-between"> <h3 class="text-in-ivory-ebony text-title-small md:text-headline-small font-light"> Stories from the blog </h3> <div class="flex gap-2"> <button id="c5ee0dd3-ca2c-42ea-80dd-e5d60ed4e9ed-nav-left-btn" class="nav-left p-2 bg-ivory text-in-ivory-ebony disabled:opacity-50 -scale-x-100 w-[33px] h-[33px] rounded-full flex items-center justify-center" aria-label="Previous Article"><svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"> 731<path d="M1 1.25L4.58696 5L1 8.75" stroke="currentColor" stroke-width="0.75" stroke-linecap="round"/> 732</svg> 733</button> <button id="c5ee0dd3-ca2c-42ea-80dd-e5d60ed4e9ed-nav-right-btn" class="nav-right p-2 bg-ivory text-in-ivory-ebony disabled:opacity-50 w-[33px] h-[33px] rounded-full flex items-center justify-center" aria-label="Next Article"><svg width="6" height="10" viewBox="0 0 6 10" fill="none" xmlns="http://www.w3.org/2000/svg"> 734<path d="M1 1.25L4.58696 5L1 8.75" stroke="currentColor" stroke-width="0.75" stroke-linecap="round"/> 735</svg> 736</button> </div> </div> <div class="mt-8 md:mt-16"> <div id="c5ee0dd3-ca2c-42ea-80dd-e5d60ed4e9ed" class="flex snap-x snap-mandatory flex-row gap-4 overflow-x-scroll pb-6 scrollbar scrollbar-track-ivory-mid scrollbar-thumb-ebony-mid"> <div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/learn-piano-with-video-game-music-in-roli-learn"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog-thumbnail.193397421938744.png" srcset="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog-thumbnail.193397421938744.600px.png 600w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog-thumbnail.193397421938744.1080px.png 1080w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog-thumbnail.193397421938744.1500px.png 1500w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog-thumbnail.193397421938744.2160px.png 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Ready Player One? Play along to video game music in ROLI Learn"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 1 July 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> Ready Player One? Play along to video game music in ROLI Learn </h4> <div class="mt-3"> <astro-island uid="Z75PSv" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/learn-piano-with-video-game-music-in-roli-learn"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/global-beatles-day"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/1050x1452/a8d0824527/global-beatles-day-blog-thumbnail.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/1050x1452/a8d0824527/global-beatles-day-blog-thumbnail.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/1050x1452/a8d0824527/global-beatles-day-blog-thumbnail.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/1050x1452/a8d0824527/global-beatles-day-blog-thumbnail.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/1050x1452/a8d0824527/global-beatles-day-blog-thumbnail.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Happy Global Beatles Day!"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 25 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt
736-1 font-normal"> Happy Global Beatles Day! </h4> <div class="mt-3"> <astro-island uid="Z28N6h7" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/global-beatles-day"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/leonardo-barilaro-the-space-pianist-and-piano-m"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/1050x1452/65dd547c39/leonardo-space-pianist-blog-thumbnail-2x.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/1050x1452/65dd547c39/leonardo-space-pianist-blog-thumbnail-2x.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/1050x1452/65dd547c39/leonardo-space-pianist-blog-thumbnail-2x.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/1050x1452/65dd547c39/leonardo-space-pianist-blog-thumbnail-2x.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/1050x1452/65dd547c39/leonardo-space-pianist-blog-thumbnail-2x.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Leonardo âThe Space Pianistâ Barilaro on playing Piano M in zero gravity"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 24 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> Leonardo âThe Space Pianistâ Barilaro on playing Piano M in zero gravity </h4> <div class="mt-3"> <astro-island uid="1PiQiD" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/leonardo-barilaro-the-space-pianist-and-piano-m"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/what-can-you-do-with-airwave"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/2024x1140/173069a2b8/airwave-prs-blog.jpg/m/1080x0/" srcset="https://a.storyblok.com/f/278825/2024x1140/173069a2b8/airwave-prs-blog.jpg/m/600x0/ 600w, https://a.storyblok.com/f/278825/2024x1140/173069a2b8/airwave-prs-blog.jpg/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/2024x1140/173069a2b8/airwave-prs-blog.jpg/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/2024x1140/173069a2b8/airwave-prs-blog.jpg/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="2024" height="1140" alt="What can you do with Airwave?"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 18 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> What can you do with Airwave? </h4> <div class="mt-3"> <astro-island uid="ZWTkd" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/what-can-you-do-with-airwave"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/pride-2026-celebrating-nearly-200-years-of-legendary-lgbtqia-artists"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/1050x1452/df33ee9d4f/pride-2026-blog-thumbnail.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/1050x1452/df33ee9d4f/pride-2026-blog-thumbnail.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/1050x1452/df33ee9d4f/pride-2026-blog-thumbnail.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/1050x1452/df33ee9d4f/pride-2026-blog-thumbnail.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/1050x1452/df33ee9d4f/pride-2026-blog-thumbnail.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Celebrate Pride with nearly 200 years of LGBTQIA+ history in the ROLI Learn app."> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 13 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt
736-1 font-normal"> Celebrate Pride with nearly 200 years of LGBTQIA+ history in the ROLI Learn app. </h4> <div class="mt-3"> <astro-island uid="Ms1DG" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/pride-2026-celebrating-nearly-200-years-of-legendary-lgbtqia-artists"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/ai-music-coach-in-the-roli-learn-app"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/aimc-blog-thumbnail-2x-1.181735068971593.png" srcset="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/aimc-blog-thumbnail-2x-1.181735068971593.600px.png 600w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/aimc-blog-thumbnail-2x-1.181735068971593.1080px.png 1080w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/aimc-blog-thumbnail-2x-1.181735068971593.1500px.png 1500w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/aimc-blog-thumbnail-2x-1.181735068971593.2160px.png 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Say hello to AI Music Coach"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 11 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> Say hello to AI Music Coach </h4> <div class="mt-3">
736 <astro-island uid="1ozWn6" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/ai-music-coach-in-the-roli-learn-app"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/the-mandalorian-comes-to-roli-learn"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/1050x1452/65478b2948/star-wars-mandalorian-blog-thumbnail-2.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/1050x1452/65478b2948/star-wars-mandalorian-blog-thumbnail-2.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/1050x1452/65478b2948/star-wars-mandalorian-blog-thumbnail-2.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/1050x1452/65478b2948/star-wars-mandalorian-blog-thumbnail-2.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/1050x1452/65478b2948/star-wars-mandalorian-blog-thumbnail-2.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Melodies from a galaxy far, far away: The Mandalorian Theme comes to ROLI Learn"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 5 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> Melodies from a galaxy far, far away: The Mandalorian Theme comes to ROLI Learn </h4> <div class="mt-3"> <astro-island uid="HENRj" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/the-mandalorian-comes-to-roli-learn"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/roli-and-casio-announce-partnership"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli-x-casio-blog-thumbnail-2x-1.182742018505244.png" srcset="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli-x-casio-blog-thumbnail-2x-1.182742018505244.600px.png 600w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli-x-casio-blog-thumbnail-2x-1.182742018505244.1080px.png 1080w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli-x-casio-blog-thumbnail-2x-1.182742018505244.1500px.png 1500w, https://d30pueezughrda.cloudfront.net/roli.com/storyblok/roli-x-casio-blog-thumbnail-2x-1.182742018505244.2160px.png 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="ROLI and CASIO announce partnership and new ROLI Learn for CASIO app at SXSW London"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 1 June 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> ROLI and CASIO announce partnership and new ROLI Learn for CASIO app at SXSW London </h4> <div class="mt-3"> <astro-island uid="Z1OWhtK" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/roli-and-casio-announce-partnership"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/learn-to-play-piano-with-harry-styles"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/525x726/0bc3cf7f54/harry-styles-blog-thumbnail-1.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/525x726/0bc3cf7f54/harry-styles-blog-thumbnail-1.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/525x726/0bc3cf7f54/harry-styles-blog-thumbnail-1.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/525x726/0bc3cf7f54/harry-styles-blog-thumbnail-1.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/525x726/0bc3cf7f54/harry-styles-blog-thumbnail-1.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="525" height="726" alt="Learn to play piano with Harry Styles"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 16 May 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt
736-1 font-normal"> Learn to play piano with Harry Styles </h4> <div class="mt-3"> <astro-island uid="7dLSH" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/learn-to-play-piano-with-harry-styles"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div><div class="relative snap-start"> <a class="flex w-[60vw] flex-col md:w-[458px]" href="/blog/become-a-piano-virtuoso-with-charles-louis-hanon"> <img loading="lazy" decoding="async" class="h-[250px] w-full object-cover md:h-[600px]" src="https://a.storyblok.com/f/278825/1050x1452/2ce0044c14/hanon-blog-thumbnail-2x.png/m/1080x0/" srcset="https://a.storyblok.com/f/278825/1050x1452/2ce0044c14/hanon-blog-thumbnail-2x.png/m/600x0/ 600w, https://a.storyblok.com/f/278825/1050x1452/2ce0044c14/hanon-blog-thumbnail-2x.png/m/1080x0/ 1080w, https://a.storyblok.com/f/278825/1050x1452/2ce0044c14/hanon-blog-thumbnail-2x.png/m/1500x0/ 1500w, https://a.storyblok.com/f/278825/1050x1452/2ce0044c14/hanon-blog-thumbnail-2x.png/m/2160x0/ 2160w" sizes="(min-width: 768px) 458px, 60vw" width="1050" height="1452" alt="Become a piano virtuoso with Charles-Louis Hanon"> <div class="mt-7"> <small class="text-body-medium md:text-body-large font-normal text-ebony-60"> 13 May 2026 </small> <h4 class="text-body-medium text-on-ivory-ebony-alt md:text-body-large mt-1 font-normal"> Become a piano virtuoso with Charles-Louis Hanon </h4> <div class="mt-3"> <astro-island uid="WF0Nl" component-url="/_astro/button.Br49km7R.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"astroParams":[0,{"region":[0,"us"]}],"href":[0,"/blog/become-a-piano-virtuoso-with-charles-louis-hanon"],"label":[0,"Read More"]}" ssr client="only" opts="{"name":"Button","value":"solid-js"}"></astro-island> </div> </div> </a> </div> </div> </div> </section> </div> </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"> 737<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"/> 738<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"/> 739<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"/> 740<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"/> 741</svg> 742</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">
742 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"> 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">
742 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>
742<script> 743 function accordionSetup() { 744 const accordionMenus = document.querySelectorAll('.footer_accordion'); 745 accordionMenus.forEach((accordionMenu) => { 746 const accordionButton = accordionMenu.querySelector( 747 '.footer_accordion__button' 748 ); 749 const accordionContent = accordionMenu.querySelector( 750 '.footer_accordion__content' 751 ); 752 const plusIcon = accordionButton.querySelector('#plus-icon'); 753 const minusIcon = accordionButton.querySelector('#minus-icon'); 754 755 if (accordionButton && accordionContent) { 756 accordionButton.addEventListener('click', (event) => { 757 // Open a closed menu or close an open menu 758 if (!accordionMenu.classList.contains('active')) { 759 accordionMenu.classList.add('active'); 760 accordionContent.classList.remove('hidden'); 761 accordionContent.style.maxHeight = 762 accordionContent.scrollHeight + 'px'; 763 plusIcon.classList.add('hidden'); 764 minusIcon.classList.remove('hidden'); 765 } else { 766 accordionMenu.classList.remove('active'); 767 accordionContent.style.maxHeight = '0px'; 768 plusIcon.classList.remove('hidden'); 769 minusIcon.classList.add('hidden'); 770 // Delay to allow close animation 771 setTimeout(() => { 772 accordionContent.classList.add('hidden'); 773 }, 300); 774 } 775 event.preventDefault(); 776 return false; 777 }); 778 } 779 }); 780 } 781 // Runs on initial page load 782 document.addEventListener('DOMContentLoaded', accordionSetup); 783</script>
783 <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"> 784<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 785<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 786</svg> 787</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"> 788<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 789</svg> 790</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"> 791<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 792<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 793</svg> 794</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"> 795<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 796</svg> 797</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">
797 <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"> 798<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 799<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 800</svg> 801</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"> 802<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 803</svg> 804</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"> 805<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 806<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 807</svg> 808</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"> 809<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 810</svg> 811</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">
811 <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"> 812<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 813<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 814</svg> 815</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"> 816<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 817</svg> 818</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="Z12vISq" component-url="/_astro/action-buttons.DiAyiJjt.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0,"learner"],"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,"
818Thank 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="Z2r4DiH" component-url="/_astro/region-select.CSb61Pzm.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0,"learner"],"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,&quo
818t;asset"],"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,"
818https://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"]}]}
818],[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,"
818https://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>
818 <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>
818 <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>
818<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:'a44055ef4f025f00',t:'MTc5MDkwODc1Ng=='};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>
818</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.