<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>drawbar: edit the sounds on your Nord keyboard</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1, user-scalable=no"
/>
<meta
name="description"
content="An unofficial editor for Nord keyboards. Read, edit and send programs, samples and pianos over USB, in Chrome or Edge or on the desktop."
/>
<link rel="canonical" href="https://drawbar.app/" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<meta name="theme-color" content="#161719" />
<meta name="color-scheme" content="dark" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="drawbar" />
<meta property="og:url" content="https://drawbar.app/" />
<meta property="og:title" content="drawbar: edit the sounds on your Nord keyboard" />
<meta
property="og:description"
content="An unofficial editor for Nord keyboards. Read, edit and send programs, samples and pianos over USB, in Chrome or Edge or on the desktop."
/>
<meta property="og:image" content="https://drawbar.app/docs/assets/screenshot.png" />
<meta property="og:image:width" content="2000" />
<meta property="og:image:height" content="1331" />
<meta
property="og:image:alt"
content="drawbar with an instrument attached and a piano library open in its editor"
/>
<meta name="twitter:card" content="summary_large_image" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "drawbar",
"url": "https://drawbar.app/",
"description": "An unofficial editor for Nord keyboards. Read, edit and send programs, samples and pianos over USB, in Chrome or Edge or on the desktop.",
"applicationCategory": "MultimediaApplication",
"operatingSystem": "Windows, macOS, Linux",
"browserRequirements": "Requires WebUSB and WebAssembly: Chrome or Edge.",
"screenshot": "https://drawbar.app/docs/assets/screenshot.png",
"license": "https://opensource.org/license/bsd-3-clause",
"isAccessibleForFree": true,
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"sameAs": ["https://github.com/jmoo/drawbar"]
}
</script>
<style>
html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: #161719;
color: #cfd2d6;
font-family: ui-sans-serif, system-ui, sans-serif;
}
canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: block;
}
#status {
position: absolute;
top: 50%;
left: 0;
width: 100%;
text-align: center;
transform: translateY(-50%);
font-size: 0.95rem;
letter-spacing: 0.02em;
}
noscript p {
padding: 0 16px;
}
#toosmall {
display: none;
position: absolute;
inset: 0;
z-index: 1;
box-sizing: border-box;
padding: 0 16px;
background: #161719;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
}
#toosmall p {
margin: 0 0 8px;
max-width: 32rem;
}
#toosmall .head {
font-size: 1.15rem;
font-weight: 600;
}
#toosmall a {
color: #e05040;
}
@media (width < 660px), (height < 430px) {
#toosmall {
display: flex;
}
}
</style>
</head>
<body>
<canvas id="drawbar"></canvas>
<div id="status">loading drawbar…</div>
<noscript>
<p>drawbar is an unofficial editor for Nord keyboards. It needs JavaScript and WebAssembly to run. Read the <a href="docs/">user guide</a>.</p>
</noscript>
<div id="toosmall">
<p class="head">drawbar needs a larger screen</p>
<p>It is a desktop application: its panels need more room than a phone or a narrow window has. Open it on a larger screen, or make this window wider.</p>
<p><a href="docs/">User guide</a></p>
</div>
<script type="module">
import init, { start } from "./pkg/drawbar.js";
const status = document.getElementById("status");
try {
await init();
await start(document.getElementById("drawbar"));
status.remove();
} catch (e) {
status.textContent = `drawbar failed to start: ${e}`;
throw e;
}
</script>
</body>
</html>