1<!DOCTYPE html><meta name="description" content="We've rounded up a few of the most iconic video game themes that you can play along to in the ROLI Learn app. Check out whatâs available and learn how they heighten the tension, celebrate our triumphs, and keep on being the soundtrack to our journeys long after weâve switched the console off."><meta property="og:title" content="Video game music in the ROLI Learn app"><meta property="og:type" content="website"><meta property="og:url" content="https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn"><meta property="og:image" content="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog.193397421975609.png"><meta property="og:description" content="We've rounded up a few of the most iconic video game themes that you can play along to in the ROLI Learn app. Check out whatâs available and learn how they heighten the tension, celebrate our triumphs, and keep on being the soundtrack to our journeys long after weâve switched the console off."><meta property="og:site_name" content="ROLI"> <html lang="en" class="min-w-full h-full overflow-y-scroll selection:bg-blue-100 selection:text-white bg-ivory-dark"> <head><meta charset="utf-8"><link rel="alternate" href="https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" hreflang="x-default"><!-- "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 type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
429<!-- For social embeds on the blog -->
429<script async src="https://www.instagram.com/embed.js"></script>
429<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="shortcut icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png"><link rel="apple-touch-icon-precomposed" sizes="120x120" href="/apple-touch-icon-120x120-precomposed.png"><meta name="apple-mobile-web-app-title" content="Roli"><link rel="manifest" href="/site.webmanifest" crossorigin="use-credentials"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="msapplication-TileColor" content="#faf6ee"><meta name="theme-color" content="#faf6ee"><title>Video game music in the ROLI Learn app | ROLI</title><link rel="sitemap" href="/sitemap.xml"><link rel="preload" href="/fonts/PolymathROLI/WOFF2/PolymathDispROLI-Regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/PolymathROLI/WOFF2/PolymathDispROLI-Light.woff2" as="font" type="font/woff2" crossorigin>
429<script type="application/ld+json"> 430 { 431 "@context": "https://schema.org", 432 "@type": "Organization", 433 "@id": "https://roli.com/#organization", 434 "name": "ROLI", 435 "url": "https://roli.com", 436 "logo": { 437 "@type": "ImageObject", 438 "url": "https://roli.com/apple-touch-icon-precomposed.png", 439 "width": "180", 440 "height": "180" 441 }, 442 "sameAs": [ 443 "https://www.facebook.com/ROLI", 444 "https://www.tiktok.com/@roli_create", 445 "https://www.tiktok.com/@roli_learn", 446 "https://www.instagram.com/roli_learn", 447 "https://www.instagram.com/roli_create", 448 "https://www.youtube.com/@WeAreROLI" 449 ] 450 } 451</script>
451<link rel="stylesheet" href="/_astro/_slug_.DqEVL20g.css"> 452<style>.onboarding-container{position:relative;width:100%;height:100%;overflow:hidden}.onboarding-screen{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform 1.3s cubic-bezier(.16,1,.2,1);will-change:transform}.onboarding-screen--current{transform:translate(0);z-index:2}.onboarding-screen--entering{transform:translate(0);z-index:2;animation:slideInFromRight 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--exiting{transform:translate(0);z-index:1;animation:slideOutToLeft 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--entering-back{transform:translate(0);z-index:2;animation:slideInFromLeft 1.3s cubic-bezier(.16,1,.2,1) forwards}.onboarding-screen--exiting-back{transform:translate(0);z-index:1;animation:slideOutToRight 1.3s cubic-bezier(.16,1,.2,1) forwards}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:.95}25%{opacity:1}to{transform:translate(0);opacity:1}}@keyframes slideOutToLeft{0%{transform:translate(0);opacity:1}75%{opacity:.95}to{transform:translate(-100%);opacity:.9}}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:.95}25%{opacity:1}to{transform:translate(0);opacity:1}}@keyframes slideOutToRight{0%{transform:translate(0);opacity:1}75%{opacity:.95}to{transform:translate(100%);opacity:.9}}@media (prefers-reduced-motion: reduce){.onboarding-screen{transition:none;animation:none!important}.onboarding-screen--entering,.onboarding-screen--entering-back,.onboarding-screen--exiting,.onboarding-screen--exiting-back{transform:translate(0)}}@media (max-width: 768px){.onboarding-screen{transition-duration:1s}.onboarding-screen--entering,.onboarding-screen--exiting,.onboarding-screen--entering-back,.onboarding-screen--exiting-back{animation-duration:1s}}.onboarding-screen--exiting .select-instrument__carousel,.onboarding-screen--exiting-back .select-instrument__carousel{opacity:0!important;pointer-events:none!important}@media (hover: none) and (pointer: coarse){.onboarding-screen{transition-timing-function:cubic-bezier(.4,0,.2,1)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 2dppx){.onboarding-screen{backface-visibility:hidden;transform-style:preserve-3d}} 453.ct-comp-cell[data-astro-cid-efehqykl].ct-no-border-l{border-left-color:transparent!important} 454</style>
454<script type="module" src="/_astro/page.MielndDw.js"></script>
454</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>
454<script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script>
454<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>
454<astro-island uid="Z1biHM7" 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,{"slug":[0,"learn-piano-with-video-game-music-in-roli-learn"]}]}" ssr client="only" opts="{"name":"PromoBanner","value":"solid-js"}"></astro-island> <div class="relative"> <div class="hidden lg:block"> <astro-island uid="7IpoO" 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"
454:[0,148558866362425],"alt":[0,"A metallic stand with a rectangular frame and a ribbed base, designed to hold a device upright."],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-airwave-learn.148558866362425.webp"],"filename":[0,"https://a.storyblok.com/f/278825/432x384/4e1135e22d/nav-airwave-learn.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A metallic stand with a rectangular frame and a ribbed base, designed to hold a device upright."],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/nav-airwave-learn.148558866362425.webp"],"copyright":[0,""]}],"is_external_url":[0,false]}],"title":[0,"Airwave"],"offerTag":[0,"b0ed436e-1995-4617-bfb1-87b1e0664649"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#7A9AE6"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/product/collection/create"],"_uid":[0,"3f5c5437-ae07-43f6-af9c-33a761719f8c"],"image":[0,{"id":[0,166172062242952],"alt":[0,""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,""],"filename":[0,"https://a.storyblok.com/f/278825/432x384/98f8c8f8fe/creator-bundle-1.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Creator Products"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"\"#F47676\""],"plugin":[0,"storyblok-palette"]}]}]]],"links":[1,[[0,{"url":[0,"/product/learn-membership"],"_uid":[0,"c89bbfd1-4297-4cf3-95c4-bb4ef127a2c5"],"title":[0,"Learn Membership"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/product/collection/learn/accessories"],"_uid":[0,"f464b427-3fba-47c3-915d-e7fbbd1fa0a6"],"title":[0,"Accessories"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false],"disableRegionParam":[0,false]}]]],"theme":[0,"learn"],"title":[0,"Products"],"component":[0,"nav-section"],"promoItem":[1,[]],"viewAllUrl":[0,"/product/collection/learn"],"showViewAll":[0,true],"viewAllLabel":[0,"Shop all"]}],[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"2276700c-84d6-4bad-ab91-44a72319f68c"],"items":[1,[[0,{"url":[0,"/product/collection/learn"],"_uid":[0,"b20c7155-0d24-4f60-95d8-6dd336ac0d50"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Shop"],"offerTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/blog"],"_uid":[0,"6eb8c6ba-a770-4e55-ad87-1a05ccb06cbc"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Blog"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/support"],"_uid":[0,"631db69f-471e-4075-b9df-1060181243c4"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Support"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/about-us"],"_uid":[0,"9fc8ee46-b344-44d8-8262-80e4e5dae2bc"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"title":[0,"About us"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"\"#F47676\""],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/start"],"_uid":[0,"40df0dc2-cbd1-416f-8c4a-2051c418be26"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"filename":[0,null],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}],"is_external_url":[0,false]}],"title":[0,"Get Started"],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}],[0,{"url":[0,"/order-management"],"_uid":[0,"406b15a9-d1e2-4f98-b42d-4868de879604"],"image":[0,{"id":[0,null],"alt":[0,null],"name":[0,""],"focus":[0,null],"title":[0,null],"source":[0,null],"filename":[0,""],"copyright":[0,null],"fieldtype":[0,"asset"],"meta_data":[0,{}]}],"title":[0,"Order Management"],"promoTag":[0,""],"component":[0,"nav-section-item"],"promoTagColour":[0,{"value":[0,"#F47676"],"plugin":[0,"storyblok-palette"]}]}]]],"links":[1,[[0,{"url":[0,"/team"],"_uid":[0,"b101053a-e9e2-4905-a9ac-c65e9728c481"],"title":[0,"Our Team"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/careers"],"_uid":[0,"103b4450-d2ef-4b49-8476-d2e00ea3df48"],"title":[0,"Careers"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,false]}],[0,{"url":[0,"/start"],"_uid":[0,"8ed070f4-a2d3-4b31-be1f-fc4d14ba8a67"],"title":[0,"Get Started"],"component":[0,"link-and-title"],"textColour":[0,{"value":[0,""],"plugin":[0,"storyblok-palette"]}],"hasTopOffset":[0,true]}]]],"theme":[0,"learn"],"title":[0,"More"],"component":[0,"nav-section"],"viewAllUrl":[0,""],"showViewAll":[0,false],"viewAllLabel":[0,""]}]]],"theme":[0,0],"astroParams":[0,{"slug":[0,"learn-piano-with-video-game-music-in-roli-learn"]}],"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="Z1Jq2ep" 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
454":[0,"In cascade view RBG colored music 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,{"slug":[0,"learn-piano-with-video-game-music-in-roli-learn"]}],"theme":[0,0],"ariaLabels":[0,{"_uid":[0,"6182f49c-9396-497d-a0af-d50b0b258483"],"component":[0,"ariaLabelSection"],"ariaLabelHome":[0,"Go to ROLI homepage"],"ariaLabelOpenMenu":[0,"Open navigation menu"],"ariaLabelCloseMenu":[0,"Close navigation menu"]}],"loginCtaText":[0,"Login"],"accountCtaText":[0,"Account"],"language":[0]}" ssr client="only" opts="{"name":"NavigationMenuSmall","value":"solid-js"}"></astro-island> </div> <article> <section class="relative flex flex-col items-center justify-center gap-[30px] bg-purple-400 px-[16px] pt-[100px] pb-[70px] md:gap-[42px] md:pt-[173px] md:pb-[150px]"> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li> </ul> </div> <h1 class="text-title-small md:text-headline-small max-w-[600px] text-center font-light"> Ready Player One? Play along to video game music in ROLI Learn </h1> <p class="text-body-small md:text-body-large max-w-[600px] text-center md:whitespace-pre-line"> Beat your piano learning high scores with your favorite game soundtracks </p> <div class="text-caption-small md:text-caption text-on-ivory-ebony-alt flex flex-row items-center space-x-1 md:space-x-4"> <a class="hover:underline" href="/blog/author/roli-writer"> ROLI Team </a> <p>/</p><p>1 July 2026</p> </div> </section> <astro-island uid="1XUxhr" component-url="/_astro/media-with-overlay.rz8JzQqv.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"image":[0,{"id":[0,193397421975609],"alt":[0,"A close-up of a tablet screen displaying four colorful panels, each featuring the title and composer of a video game soundtrack, with stylized illustrations representing \"The Last of Us,\" \"Kingdom Hearts,\" \"Minecraft,\" and \"Assassinâs Creed III.\""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog.193397421975609.png"],"filename":[0,"https://a.storyblok.com/f/278825/2024x1140/02d86e705f/video-game-music-blog.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A close-up of a tablet screen displaying four colorful panels, each featuring the title and composer of a video game soundtrack, with stylized illustrations representing \"The Last of Us,\" \"Kingdom Hearts,\" \"Minecraft,\" and \"Assassinâs Creed III.\""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog.193397421975609.png"]}],"is_external_url":[0,false]}],"overlayText":[0,""],"mobileImage":[0,{"id":[0,193397421975609],"alt":[0,"A close-up of a tablet screen displaying four colorful panels, each featuring the title and composer of a video game soundtrack, with stylized illustrations representing \"The Last of Us,\" \"Kingdom Hearts,\" \"Minecraft,\" and \"Assassinâs Creed III.\""],"name":[0,""],"focus":[0,""],"title":[0,""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog.193397421975609.png"],"filename":[0,"https://a.storyblok.com/f/278825/2024x1140/02d86e705f/video-game-music-blog.png"],"copyright":[0,""],"fieldtype":[0,"asset"],"meta_data":[0,{"alt":[0,"A close-up of a tablet screen displaying four colorful panels, each featuring the title and composer of a video game soundtrack, with stylized illustrations representing \"The Last of Us,\" \"Kingdom Hearts,\" \"Minecraft,\" and \"Assassinâs Creed III.\""],"source":[0,"https://d30pueezughrda.cloudfront.net/roli.com/storyblok/video-game-music-blog.193397421975609.png"]}],"is_external_url":[0,false]}],"videoUrl":[0,""],"videoTitle":[0,""],"videoPosterImage":[0,""]}" ssr client="only" opts="{"name":"BlogMediaOverlay","value":"solid-js"}"></astro-island> <section class="bg-ivory relative w-full pt-6 md:pt-16 md:pb-0"> <div class="mx-auto flex max-w-[1200px] flex-col items-center justify-between gap-5 px-[42px] md:flex-row"> <div class="flex flex-row space-x-2 opacity-70"> <a href="https://www.facebook.com/sharer/sharer.php?u=https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" target="_blank" class="h-6 w-6"> <svg 455 height="100%" 456 style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" 457 version="1.1" 458 viewBox="0 0 512 512" 459 width="100%" 460 xml:space="preserve" 461 xmlns="http://www.w3.org/2000/svg" 462 xmlns:serif="http://www.serif.com/" 463 xmlns:xlink="http://www.w3.org/1999/xlink" 464> 465 <path d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z"/> 466</svg> </a><a href="https://x.com/share?url=https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" target="_blank" class="h-6 w-6"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" width="24px" height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"><g><polygon points="12.153992,10.729553 8.088684,5.041199 5.92041,5.041199 10.956299,12.087097 11.59021,12.97345 15.900635,19.009583 18.068909,19.009583 12.785217,11.615906 "/><path d="M21.15979,1H2.84021C1.823853,1,1,1.823853,1,2.84021v18.31958C1,22.176147,1.823853,23,2.84021,23h18.31958 C22.176147,23,23,22.176147,23,21.15979V2.84021C23,1.823853,22.176147,1,21.15979,1z M15.235352,20l-4.362549-6.213013 L5.411438,20H4l6.246887-7.104675L4,4h4.764648l4.130127,5.881958L18.06958,4h1.411377l-5.95697,6.775635L20,20H15.235352z"/></g></svg> </a><a href="https://reddit.com/submit?url=https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" target="_blank" class="h-6 w-6"> <svg height="100%" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" version="1.1" viewBox="0 0 512 512" width="100%" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0
466,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z"/></svg> </a><a href="mailto:?subject=LuminaryROLI-learn-piano-with-video-game-music-in-roli-learn&body=https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" target="_blank" class="h-6 w-6"> <?xml version="1.0" ?><svg height="24" viewBox="0 0 72 72" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M8,72 L64,72 C68.418278,72 72,68.418278 72,64 L72,8 C72,3.581722 68.418278,-8.11624501e-16 64,0 L8,0 C3.581722,8.11624501e-16 -5.41083001e-16,3.581722 0,8 L0,64 C5.41083001e-16,68.418278 3.581722,72 8,72 Z" fill="#000"/><path d="M18,26.1623226 L18,46.5476129 C18,47.6566452 18.8117419,48.5554839 19.9300645,48.5554839 L51.7447742,48.5554839 C52.8619355,48.5554839 53.6748387,47.6461935 53.6748387,46.5476129 L53.6748387,26.1623226 C53.6748387,24.9452903 52.947871,24 51.7447742,24 L19.9300645,24 C18.6805161,24 18,24.9685161 18,26.1623226 M20.9334194,27.9379355 C20.9334194,27.4467097 21.2307097,27.1656774 21.7056774,27.1656774 C21.9994839,27.1656774 33.560129,34.4910968 34.2603871,34.9207742 L36.0696774,36.0460645 C36.6433548,35.6616774 37.2193548,35.3330323 37.8139355,34.9347097 C39.0274839,34.1589677 49.8251613,27.1656774 50.1224516,27.1656774 C50.5985806,27.1656774 50.8947097,27.4467097 50.8947097,27.9379355 C50.8947097,28.4581935 49.8925161,28.9749677 49.239871,29.3732903 C45.1393548,31.8723871 41.04,34.5967742 36.980129,37.1887742 C36.7432258,37.3490323 36.2845161,37.6916129 35.9407742,37.6393548 C35.5575484,37.580129 23.7936774,30.0224516 21.6534194,28.7636129 C21.3317419,28.5743226 20.9334194,28.4012903 20.9334194,27.9379355" fill="#FFF"/></g></svg> </a><a href="https://wa.me/?text=https://roli.com/blog/learn-piano-with-video-game-music-in-roli-learn" target="_blank" class="h-6 w-6"> <svg height="100%" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" version="1.1" viewBox="0 0 512 512" width="100%" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z"/></svg> </a> </div> </div> </section> <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 justify-center flex px-4 lg:px-[42px] "> <section class="bg-ivory w-full md:py-6"> <div class="mx-auto flex max-w-[832px] flex-col items-center justify-center"> <h3 class="md:text-title-large text-title-small mb-4 text-center font-normal md:font-light"> </h3> <div><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 !text-black-100 "><span style="color: #000000">Many of us will have a core memory locked away somewhere deep in the recesses of our minds that comes hurtling to the surface whenever we hear the sounds of a beloved video game soundtrack. From Super Mario Bros. and Sonic the Hedgehog to Grand Theft Auto and Undertale, video game music has transcended beyond the confines of the pixelated on-screen worlds and into our daily listening.</span></p></div> </div> </section> </section> </div> </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 px-4 lg:px-[42px] "> <section id="189ff90a-feea-4072-b2a3-cf1a4b15044c" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">The evolution of video game music has been structurally tied to the hardware and instruments used to make it. While early video game music started with simple programming, it has since evolved into a multi-layered art form, combining genres such as electronic, rock, jazz, and funk, as well as powerful orchestral scores that evoke emotion. </span></p><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">The music has gone from a simple accompaniment to gameplay to something that defines the playerâs journey, enhancing the experience by shaping our moods, heightening tension, and celebrating our triumphs and losses through sound. </span></p></div> </div> </section> </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 px-4 lg:px-[42px] "> <section id="bbb6c5ab-6cce-4a94-a2c4-28e65df51421" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">From beeps to ballads </h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Early video game music was limited by hardware, requiring composers to use basic waveforms to create chiptune styles. Arcade games like Space Invaders (1978) and Pac-Man (1980) used short musical motifs as start-up sounds, but excluding sounds and music synced with player actions, gameplay was relatively sonically sparse. It was not until 1980 that Namco would release Rally-X, one of the first video games to feature continuous, melodic background music during gameplay. </span></p><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Tetris (1984) was originally launched without music, but as the game's popularity expanded worldwide, each region later included musical choices of its own. The US Tetris release leaned into digital interpretations of Russian classical music, including</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/Pyotr_Ilyich_Tchaikovsky" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Pyotr_Ilyich_Tchaikovsky" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Pyotr Ilyich Tchaikovsky</a></span></u><span style="color: #000000">'s "</span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Trepak_(The_Nutcracker)" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Trepak</a></span></u><span style="color: #000000">" from</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/The_Nutcracker" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><em class="italic"><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/The_Nutcracker" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">The Nutcracker</a></span></em></u><span style="color: #000000"> and</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/Reinhold_Gli%C3%A8re" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Reinhold_Gli%C3%A8re" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Reinhold Glière</a></span></u><span style="color: #000000">'s "</span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Russian_Sailor_Dance" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Russian Sailor Dance</a></span></u><span style="color: #000000">" from</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/The_Red_Poppy" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><em class="italic"><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/The_Red_Poppy" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">The Red Poppy</a></span></em></u><span style="color: #000000">, which was also translated into the NES version of the game using Tchaikovsky's "</span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Dance_of_the_Sugar_Plum_Fairy" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Dance of the Sugar Plum Fairy</a></span></u><span style="color: #000000">" from </span><em class="italic"><span style="color: #000000">
466The Nutcracker</span></em><span style="color: #000000">. The Game Boy version also featured German composer</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/Johann_Sebastian_Bach" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/Johann_Sebastian_Bach" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Johann Sebastian Bach</a></span></u><span style="color: #000000">'s</span><span style="color: #000000"><a href="https://en.wikipedia.org/wiki/French_Suites_(Bach)" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out"> </a></span><u><em class="italic"><span style="color: #1155CC"><a href="https://en.wikipedia.org/wiki/French_Suites_(Bach)" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">French Suite No. 3</a></span></em></u><span style="color: #000000">. However, the Russian folk tune "Korobeiniki" is the most widely known theme for </span><em class="italic"><span style="color: #000000">Tetris</span></em><span style="color: #000000">. This 19th-century melody was given new life in 1984 and is now one of the most recognised melodies on the planet.</span></p><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">As we mentioned earlier, technology dictated what was sonically capable for video game music. CD-ROMs and MIDI music production enabled the creation of higher-fidelity tracks, which saw the rise of recorded orchestral instruments in video game soundtracks. The likes of </span><em class="italic"><span style="color: #000000">Final Fantasy VIII</span></em><span style="color: #000000">, </span><em class="italic"><span style="color: #000000">Metal Gear Solid</span></em><span style="color: #000000">, and </span><em class="italic"><span style="color: #000000">Resident Evil 2</span></em><span style="color: #000000"> were at the height of a trend towards more film-like scoring, elevating game music to even more emotive and atmospheric heights, and inviting greater layers of sonic complexity.</span></p></div> </div> </section> </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 px-4 lg:px-[42px] "> <section id="4248bbfb-d299-4635-8cf7-08fc67b5f1d3" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">How video game music works: scoring an emotional journey</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">It can be easy to trivialise game music as simply something in the background of gameplay, but the use of theme tunes, ambient sounds, and action cues makes game music as integral as the graphics on the screen. It shapes our emotions and heightens our immersion in storytelling, and is a crucial part of game design itself. Properly timed music and sound effects can create realism in games. The music makes the on-screen peril feel all the more real, lets players know when theyâre on the right path, close to danger, running out of time or health, or have reached the path to victory. The power of game music is that it transforms a predominantly visual experience into a deeply moving and memorable one, where tension and release are guided by sound.</span></p><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">While game music can be classed as a genre of its own, itâs actually a genre with a complex palette of sonic references. Many game soundtracks have borrowed from countless genres, including classical music, pop, jazz, funk, synthwave, ambient design, and industrial noise. </span></p><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">In recent years, the classical music world has been revitalised by video game music, with sold-out orchestral events attracting gamer communities and lovers of lush orchestration alike. On a much smaller scale, thereâs also been a trend towards live bands playing at gaming events, most notably </span><u><span style="color: #1155CC"><a href="https://thenudge.com/marioke/" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Marioke</a></span></u><span style="color: #000000">, where a live band accompanies racers, playing each courseâs soundtrack (complete with countdowns, power-ups, and finish line melody changes).</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="7052373a-694c-41ec-87e9-bff107d858a2" class="w-full"> <astro-island uid="jO4nT" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=JVKv6pMbAzU&list=RDJVKv6pMbAzU&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] ">
466 <section id="2c66f1bc-b244-4376-841f-2d24c66d9115" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">From pixels to piano: learning to play your favorite video game music</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">So you've clocked in hundreds of hours playing RPGs, clearing level after level and stage after stage, but putting in as many hours to play those beloved soundtracks and music from video games might seem like a tougher battle. And while there's no cheat code to mastering the piano, ROLI Learn makes it a lot more fun. Using the ROLI Piano System, you might find it's a familiar world of visual guidance and coordination, geared towards playing and learning music. In AI Music Coach, you'll have the voice of a helpful guide by your side, giving you tips and tricks when you need them. With easy steps, you can learn to read music, understand rhythm, and develop your own sense of musicality. Think of it as </span><u><span style="color: #1155CC"><a href="https://roli.com/blog/from-guitar-hero-to-roli-piano-how-rhythm-games-became-real-music-learning" class="text-purple-300 hover:text-blue-200 transition-colors duration-200 ease-in-out">Guitar Hero for piano lessons</a></span></u><span style="color: #000000">.</span></p><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Game START! Play along with your favorite game music in ROLI Learn</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Just like your favorite games that kept you coming back for more, in the ROLI Learn app, you can choose one of your favorite game soundtracks and level up your piano skills.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="abd77645-b568-4f5f-b1e7-9f4225971fa9" class="w-full"> <astro-island uid="2vz12J" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=NmCCQxVBfyM"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="260c5eda-a156-4885-bbde-bdce5608a405" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Tetris Theme (Traditional)</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">While we all know it as The Tetris theme, the Russian folk melody "Korobeiniki" is the real title of the theme to the world-renowned and beloved brick puzzle game. This song is a great challenge for building right-hand dexterity and rhythmic precision.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="a2bb57de-3a32-41b9-8361-2c5578f90fe9" class="w-full"> <astro-island uid="1FjtkU" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=qq-RGFyaq0U"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="9f6af09a-bf12-4cd3-9377-aefc2b3a916c" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Minecraft â C418</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Moving on from 2D bricks to 3D blocks, the gentle and ambient sounds of Minecraft music is an emotionally resonant touchstone for an entire generation of gamers. Playing along to this piece will help you understand how mood and dynamics can build and absorb you in gameplay, even when the chord progression is relatively simple.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="f0200eaf-f0cd-4972-ba7f-a94af7959bcc" class="w-full">
466 <astro-island uid="Z1fczNt" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=Jk4P10nsq4c&list=RDJk4P10nsq4c&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="8adefb6a-bc41-4d8c-b829-1ee7fd94951f" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Dearly Beloved from Kingdom Hearts â Yoko Shimomura</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Legendary Japanese composer Yoko Shimomura is a master in the art of video game composing. Her career spans works including </span><em class="italic"><span style="color: #000000">Street Fighter II</span></em><span style="color: #000000">, </span><em class="italic"><span style="color: #000000">Super Mario RPG, </span></em><span style="color: #000000">and </span><em class="italic"><span style="color: #000000">Final Fantasy XV</span></em><span style="color: #000000">. Weâve got a fan favorite from the iconic </span><em class="italic"><span style="color: #000000">Kingdom Hearts</span></em><span style="color: #000000"> series available to play in the Learn app, the aptly named âDearly Belovedâ.This recurring motif across the entire </span><em class="italic"><span style="color: #000000">Kingdom Hearts </span></em><span style="color: #000000">series is a masterclass in lyrical piano playing and Japanese RPG compositional hallmarks. If you want to really understand how legato and beautiful phrasing work as an emotional trigger in video game music composition, this is the piece for you.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="352d9ae0-4f7e-4979-80a1-e5b049ef4808" class="w-full"> <astro-island uid="Z1luVDp" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=Pt1pOY3_W64&list=RDPt1pOY3_W64&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="ba5204b2-f395-4e2f-bbf2-b1ff4805a30f" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">The Last of Us â Gustavo Santaolalla</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Two-time Academy Award winner for </span><em class="italic"><span style="color: #000000">Brokeback Mountain </span></em><span style="color: #000000">and </span><em class="italic"><span style="color: #000000">Babel, </span></em><span style="color: #000000">Santaolallaâs score for </span><em class="italic"><span style="color: #000000">The Last of Us </span></em><span style="color: #000000">takes a minimalist approach, using sparse, haunting guitars to channel true suspense and isolation. If youâre not a gamer, you may be familiar with the HBO series adaptation, which brought Santaolallaâs compositions to an even wider audience. If dystopian themes are more your thing, this is a great piece to try, packed with emotional depth.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="6c8b06cd-6984-4602-93d9-997ca31662e0" class="w-full"> <astro-island uid="1wLJfj" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=IJiHDmyhE1A&list=RDIJiHDmyhE1A&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="57400fdd-81b3-4378-956a-5492cc390d94" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Baba Yetu â Christopher Tin</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">In 2011, âBaba Yetuâ from Civilization IV became the first video game song to win a Grammy award for âBest Arrangement, Instruments and Vocalsâ. Interestingly, the piece was originally written in Swahili and was based on the Lord's Prayer. While it may seem a bit more complex, this piece is a more motivating choice for learners who want to challenge themselves with a more unconventional video game soundtrack.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="0911a048-99e0-42c1-bdc9-71424bea0d7e" class="w-full"> <astro-island uid="IG5pP" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=KK3KXAECte4&list=RDKK3KXAECte4&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="eb6a2931-b02b-4838-ad9a-425bf631b10f" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Megalovania â Toby Fox</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">The soundtrack for the viral internet sensation Undertale was written by Toby Fox when he was just 19. The song itself has a legacy of its own, becoming one of the most-covered songs of the soundtrack due to its complexity. If you're an intermediate player looking for a tougher challenge, you can try tackling âMegalovaniaâ from Undertale. It's more of a rhythmically demanding piece, but a great next step that gives you a strong sense of achievement once you nail it.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="8e6ad1ab-fe2f-4216-abfc-0b3c43bca4ea" class="w-full"> <astro-island uid="Z1CMRdQ" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=DehK_Y0TUbE&list=RDDehK_Y0TUbE&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="ee859348-0db3-47c2-8e5e-38e1a95332f0" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Angry Birds Theme â Ari Pulkkinen </h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Angry Birds is one of the most successful mobile games in history, with over 4 billion downloads, and its instantly recognisable theme is one of the most-heard pieces of music of the 2010s, referenced from online content right through to television shows. The jaunty ditty will be a delight to learn to play for those looking for something more light-hearted to master, with a few rhythmic challenges to keep you on your toes (or should we say fingers?)</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="e7f97cc4-2ec4-4954-9bf7-80ad198f47d6" class="w-full"> <astro-island uid="Z2sNGvB" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=UsnRQJxanVM&list=RDUsnRQJxanVM&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="1c9e313f-d42f-4707-a2ed-6a6b3d73fb66" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Dragonborn from Skyrim â Jeremy Soule </h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">
466The Skyrim theme employs a 30-person choir singing in the fictional Dragon language known as Dovahzul. With over 30 million copies of Skyrim sold, this theme is one of the most recognisable pieces of video game music ever written, with its combination of Dovahzul chanting soaring over a rich orchestral foundation.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="efbff379-19bf-4aaa-aaa1-c9b1bd8b84cc" class="w-full"> <astro-island uid="kAHa2" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://youtu.be/2KndDDQZveQ?si=SXWt5jRK5LwT27Yh"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="f159d67a-dc13-421d-ab17-51489bad7f34" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Assassin's Creed III & Revelations by Lorne Balfe</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">With Hollywood film credits including </span><em class="italic"><span style="color: #000000">Mission: Impossible â Fallout</span></em><span style="color: #000000">, </span><em class="italic"><span style="color: #000000">Black Widow</span></em><span style="color: #000000">, and </span><em class="italic"><span style="color: #000000">The Batman</span></em><span style="color: #000000">, Lorne Balfeâs work for </span><em class="italic"><span style="color: #000000">Assassinâs Creed </span></em><span style="color: #000000">brings the grandeur of the big screen to the small screen, but thereâs nothing small about his sound. Itâs packed with intensity and a strong, propulsive energy that keeps you hooked.</span><em class="italic"><span style="color: #000000"> </span></em><span style="color: #000000">The Scottish-born composer also studied under none other than Hans Zimmer.</span></p></div> </div> </section> </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 py-6 md:py-8 px-4 lg:px-[42px] "> <section id="37fafb63-7f38-412a-b026-d89bea683b3b" class="w-full"> <astro-island uid="1jwLYg" component-url="/_astro/youtube-video-player.CKi_Ntr3.js" component-export="YoutubeVideoPlayer" renderer-url="/_astro/client.B5GPn6v5.js" props="{"autoplayVideo":[0,false],"videoTitle":[0,""],"videoUrl":[0,"https://www.youtube.com/watch?v=fCkeLBGSINs&list=RDfCkeLBGSINs&start_radio=1"]}" ssr client="only" opts="{"name":"YoutubeVideoPlayer","value":"solid-js"}"></astro-island> </section> </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 px-4 lg:px-[42px] "> <section id="8e160773-bb12-41ce-8906-5007c2730758" class="bg-ivory flex gap-[15px] md:gap-[50px] md:py-8 flex-col w-full undefined"> <div class="undefined md:w-[60%]"> <div><h3 class="text-body-large md:text-title-large font-light mb-4 mt-8 w-full ">Pokémon Theme</h3><p class="text-body-small text-ebony-60 mb-4 md:text-body-large leading-[150%] tracking-normal font-text mb-4 "><span style="color: #000000">Okay, weâre cheating a little with this one, but we couldnât omit the original Pokémon theme from our list â even if it is the one from the anime. Pokémonâs origins are in the video game world, starting back in 1996 when Game Freak released the RPGs </span><em class="italic"><span style="color: #000000">Pokemon Red</span></em><span style="color: #000000"> and </span><em class="italic"><span style="color: #000000">Pokémon Blue</span></em><span style="color: #000000">. The success of the games led to an anime adaptation in 1997, and well, the rest is history. John Sieglerâs theme tune for the series</span><strong class="font-bold"><span style="color: #000000"> </span></strong><span style="color: #000000">is one of the most culturally important and instantly recognisable pieces of music of the 1990s, and one of the most adored by children and nostalgia-prone adults alike.</span></p></div> </div> </section> </section> </div> </div> </div> <div class="bg-ivory flex items-center justify-center pt-2 pb-[32px] text-center align-middle font-medium"> <a class="flex-row-reverse tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 text-ebony bg-transparent border-ebony font-medium " aria-label="Back to Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>
466Back to Learn<span class="mr-3 mb-2 h-[10px]"><svg width="19" height="18" viewBox="0 0 19 18" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 467<rect x="0.5" width="18" height="18" fill="url(#pattern0_4661_15673)"/> 468<defs> 469<pattern id="pattern0_4661_15673" patternContentUnits="objectBoundingBox" width="1" height="1"> 470<use xlink:href="#image0_4661_15673" transform="scale(0.0111111)"/> 471</pattern> 472<image id="image0_4661_15673" width="90" height="90" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAAAsTAAALEwEAmpwYAAADRElEQVR4nO2cu2tUQRxGTxLNS0ET/QMUFNH4aGwEbQ2KiAki1gqxkJBOsJAUFkYwIoiaiNjaW0TxDWLAJ3YhPiAoK6j4wKjRFFm5MILIzt3N5s7MZu534NcNzJeT2bmzszMXhBBCCCGEECIHNAGngE/Ad2AYaAkdKkbJI0Dxv0pkC8eSk/omy+4lJ/U1o35yTTnJSZ0OHTIPkkdMO1EljcDVMpKvA80yXD2S7AFJ9oAke0CSPSDJHmipYAk3X+o38Bl4BdwBhoBeYANQR2Au1oCgoof6AFwCtoWQXg/8rAEJRc/1AjhopkyJxr3wN8B+X7KHa2CEFQPXTWCla9HNET0Mi3OoL0C3a9mxbB4tBNqAtcAe4JhZfUzNQvhx1yFjkV2KJebh96hC2clKrAGHxCz7L9uBpxXKdkoeZDeYLzI/NI34YT0wliJ7BuhyHSIPIzuhHXhQZjWyAsfkRXZrGdk3fISoRPYZ5j/tZaaRfbUge7IWdscymrNtD8gJs04PKnvKbFDFQG/KgDrgK4RN9mXioQF4ZhE97vOT22Tm5EkzkhPJi4mLzpRRvdV3mLpI5mUbjy2idaAzY3osot9HPsC8sxT4ZZHd4T9O3Ny1iD4cOlhs9FtEnw8dLDa6LKJvhw4WG+ssol+HDhYbyy2iP4YOFhtNFtHJakR4EJ2U8DB1SHTGJF9MJNoD3RbRu310nif6LaJXhQ4WG/csvyY5PVyTN9osm0rXQgfLyzbpkdDBYuOJRfTq0MFiYqdF8sPQwWJiAfDcIvpQ6HAx0Zdy2Uhv2smIjSmXp45m1UneWWbObdhOKWk0Z8AiYDRlX2NvFp3knTbgforkK6EDxjInj6dInjCnTMUclnB9ZW4NJ3sam6rtQMCOlHXyv5f3d0lWdfNwT4W3saZ93FuZ7zSaZVqH2bTvN1udtqNdpd7f1+ky3EngHVAABsrc+nfdvhU4Z/7ooscaMzdunTFQotOBgO2HPAueMf9Y519ICiU6LwRqX+/5/SHJbtwWPJFH0aPmgef1nHOpj/aJgO2HHMl9CwwCmwlEo5FRmMXDzWX7FuCsubE6W5nT5uVVL4FbwAWzrFszBz9CCCGEEEIIIYQQQgghqJg/EGZC6irUMj0AAAAASUVORK5CYII="/> 473</defs> 474</svg> 475</span></a> </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 pt-xs md:pt-small px-4 lg:px-[42px] "> <p class="text-title-small md:text-title-large font-light"> Suggested articles </p> <div class="scrollbar z-10 mb-8 flex snap-x snap-mandatory flex-row gap-[10px] overflow-x-scroll py-10"> <div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/christmas-songs-in-the-roli-learn-app-blog.123738947679617.jpg" alt="Four colorful panels displayed on a tablet screen, each featuring a stylized portrait of a singer and the title of a classic Christmas song: "All I Want for Christmas Is You" (green), "Have Yourself a Merry Little Christmas" (orange), "Chestnuts Roasting on an Open Fire" (red), and "Blue Christmas" (blue)." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Ten festive favorites you can learn by Christmas</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/10-classic-christmas-songs-to-learn-on-piano" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]">
475<svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 476<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 477</svg> 478</span></a> </div> </div> </div><div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/2024-05_-_john_williams_-_blog_d.22979726.png" alt="Minimalist music app interface showing John Williams themes: Imperial March, Jurassic Park, and other movie soundtracks." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Learn piano with film scores by John Williams</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/learn-piano-with-film-scores-by-john-williams" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]"><svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 479<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 480</svg> 481</span></a> </div> </div> </div><div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/2024-02_-_grammy_nominated_artists_-_blog.62853913932554.jpg" alt="Tablet screen displaying Grammy-nominated artists and s
481ongs in a colorful music app interface." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Learn piano with Grammy-nominated artists from the ROLI Learn library</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/learn-piano-with-grammy-nominated-artists-featured-on-lumi" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]"><svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 482<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 483</svg> 484</span></a> </div> </div> </div><div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/olivia-rodrigo-and-the-beatles-blog_desktop.91854182973632.png" alt="Tablet screen showing a music app with Olivia Rodrigo and The Beatles medley song selections and search filters." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Learn piano with Olivia Rodrigo and The Beatles</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/learn-piano-with-olivia-rodrigo-and-the-beatles" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]">
484<svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 485<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 486</svg> 487</span></a> </div> </div> </div><div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/movie-magic-in-the-roli-learn-app-blog-header.91557289298909.png" alt="Colorful graphic of famous movie and TV themes: Interstellar, Star Wars, Toy Story, and The Simpsons on a tablet screen." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Lights, camera, action! Learn piano with classic film soundtracks in the ROLI Learn App</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/lights-camera-action-learn-piano-with-classic-film-soundtracks-in-the-roli" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]"><svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 488<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 489</svg> 490</span></a> </div> </div> </div><div class="flex w-[364px] flex-col md:snap-start"> <img class="rounded-4 relative min-h-[350px] min-w-[288px] object-cover md:min-h-[300px] md:min-w-[364px]" src="https://d30pueezughrda.cloudfront.net/roli.com/storyblok/2023-best_way_-_blog.22957350.png" alt="Boy playing digital piano at home with tablet and coffee mug on desk, surrounded by plants and natural light." loading="lazy"> <div class="md:justify-left flex flex-col items-center pt-[30px] pl-1 text-center md:items-start md:text-left"> <div> <div> <ul class="flex flex-row flex-wrap items-center gap-2"> <li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Education" href="/blog/tag/Education" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Education</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Learn" href="/blog/tag/learn" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Learn</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Roli Learn App" href="/blog/tag/roli-learn-app" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Roli Learn App</a> </li><li class="flex"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-caption p-2 py-4 px-2! py-1! text-ebony bg-transparent border-ebony font-medium " aria-label="Piano M" href="/blog/tag/piano-m" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Piano M</a> </li> </ul> </div> </div> <p class="text-body-large pt-4">Whatâs the best way for kids to learn piano?</p> <div class="pt-6"> <a class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony bg-transparent border-ebony font-medium " aria-label="Read more" href="/blog/whats-the-best-way-for-kids-to-learn-piano" role="button" tabIndex="0" target="_self"><span class="sr-only">Navigate to</span>Read more<span class="ml-4 h-[16px]">
490<svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 491<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 492</svg> 493</span></a> </div> </div> </div> </div> </section> </div> </div>
493<script type="module">document.addEventListener("DOMContentLoaded",function(){const t=document.getElementById("blog-newsletter-signup-button");t&&t.addEventListener("click",function(){const n=document.getElementById("newsletter-signup-button");n&&n.click()})});</script>
493 <div class="bg-purple-400"> <div class="max-w-7xl mx-auto grid grid-cols-12 gap-4"> <section class="col-span-12 col-start-1 px-4 lg:px-[42px] "> <div class="flex w-full flex-col items-center justify-between py-11 md:flex-row md:py-16"> <p class="text-title-small md:text-title-large mb-7 font-normal md:mr-[160px] md:mb-0 md:font-light"> 494Join the ROLI community 495</p> <div class="flex flex-col md:space-y-7"> <button class="flex-row tb:hover:border-button-hover tb:hover:bg-button-hover tb:hover:text-ebony rounded-4 active:border-button-active font-medium active:bg-button-active active:text-ebony relative inline-flex items-center justify-center border-[1px] text-center leading-none transition-all text-body-small px-5 py-[15px] text-ebony border-transparent bg-white font-medium cursor-pointer " aria-label="Sign up" id="blog-newsletter-signup-button" tabIndex="0"><span class="sr-only">Navigate to</span>Sign up<span class="ml-4 h-[16px]"><svg width="37" height="16" viewBox="0 0 37 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 496<path d="M36.6361 8.54771L28.5165 15.6082C28.1601 15.9181 27.6002 15.9181 27.2693 15.6082C26.9129 15.2984 26.9129 14.8114 27.2693 14.5237L33.8871 8.76904H0.890621C0.407009 8.76904 -0.000244141 8.41491 -0.000244141 7.99438C-0.000244141 7.57385 0.407009 7.21971 0.890621 7.21971H33.8617L27.2438 1.46505C26.8875 1.15518 26.8875 0.668246 27.2438 0.380513C27.422 0.22558 27.6511 0.15918 27.8801 0.15918C28.1092 0.15918 28.3383 0.22558 28.5165 0.380513L36.6361 7.44105C36.8143 7.59598 36.8906 7.77305 36.8906 7.99438C36.8906 8.21571 36.7888 8.39278 36.6361 8.54771Z" fill="currentColor"/> 497</svg> 498</span></button> </div> </div> </section> </div> </div> </article> <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="/" aria-label="Go to Roli home page"><svg viewBox="0 0 660 230" fill="none" xmlns="http://www.w3.org/2000/svg"> 499<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"/> 500<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"/> 501<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"/> 502<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"/> 503</svg> 504</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="/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">
504 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="/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="/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="/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="/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="/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="/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="/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="/experience/piano-m-learn">
504 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="/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="/product/collection/refurbished"> ROLI Refurbished </a> </div> </div>
504<script> 505 function accordionSetup() { 506 const accordionMenus = document.querySelectorAll('.footer_accordion'); 507 accordionMenus.forEach((accordionMenu) => { 508 const accordionButton = accordionMenu.querySelector( 509 '.footer_accordion__button' 510 ); 511 const accordionContent = accordionMenu.querySelector( 512 '.footer_accordion__content' 513 ); 514 const plusIcon = accordionButton.querySelector('#plus-icon'); 515 const minusIcon = accordionButton.querySelector('#minus-icon'); 516 517 if (accordionButton && accordionContent) { 518 accordionButton.addEventListener('click', (event) => { 519 // Open a closed menu or close an open menu 520 if (!accordionMenu.classList.contains('active')) { 521 accordionMenu.classList.add('active'); 522 accordionContent.classList.remove('hidden'); 523 accordionContent.style.maxHeight = 524 accordionContent.scrollHeight + 'px'; 525 plusIcon.classList.add('hidden'); 526 minusIcon.classList.remove('hidden'); 527 } else { 528 accordionMenu.classList.remove('active'); 529 accordionContent.style.maxHeight = '0px'; 530 plusIcon.classList.remove('hidden'); 531 minusIcon.classList.add('hidden'); 532 // Delay to allow close animation 533 setTimeout(() => { 534 accordionContent.classList.add('hidden'); 535 }, 300); 536 } 537 event.preventDefault(); 538 return false; 539 }); 540 } 541 }); 542 } 543 // Runs on initial page load 544 document.addEventListener('DOMContentLoaded', accordionSetup); 545</script>
545 <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"> 546<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 547<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 548</svg> 549</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"> 550<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 551</svg> 552</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"> 553<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 554<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 555</svg> 556</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"> 557<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 558</svg> 559</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">
559 <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"> 560<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 561<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 562</svg> 563</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"> 564<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 565</svg> 566</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="/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"> 567<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 568<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 569</svg> 570</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"> 571<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 572</svg> 573</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">
573 <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"> 574<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 575<rect x="8.7" width="16" height="1.4" transform="rotate(90 8.7 0)" fill="currentColor"/> 576</svg> 577</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"> 578<rect y="7.3" width="16" height="1.4" fill="currentColor"/> 579</svg> 580</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="/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="/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="/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="/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="/experience/airwave-create"> Airwave for Creators </a><a id="mobile-footer-link-seaboard 2" class="pb-2 font-medium active:text-purple-300" href="/experience/seaboard-2"> Seaboard 2 </a><a id="mobile-footer-link-seaboard m" class="pb-2 font-medium active:text-purple-300" href="/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="/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="/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="/product/collection/refurbished"> ROLI Refurbished </a> </p> </div> </div> </div> <astro-island uid="2pvlYu" component-url="/_astro/action-buttons.DiAyiJjt.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0,"blog"],"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,"
580Thank 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="ZjiVPT" component-url="/_astro/region-select.CSb61Pzm.js" component-export="default" renderer-url="/_astro/client.B5GPn6v5.js" props="{"theme":[0,"blog"],"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,"as
580set"],"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,"
580https://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"]}]}
580],[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,"
580https://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>
580 <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>
580 <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>
580<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:'a44055fbacce5f00',t:'MTc5MDkwODc1OA=='};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>
580</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.