-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
16 lines (16 loc) · 22.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-introduction">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Introduction | MIDI REMOTE API</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://steinbergmedia.github.io/midiremote_api_doc/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Introduction | MIDI REMOTE API"><meta data-rh="true" name="description" content="Welcome to the Steinberg MIDI Remote API."><meta data-rh="true" property="og:description" content="Welcome to the Steinberg MIDI Remote API."><link data-rh="true" rel="icon" href="/midiremote_api_doc/img/favicon.png"><link data-rh="true" rel="canonical" href="https://steinbergmedia.github.io/midiremote_api_doc/"><link data-rh="true" rel="alternate" href="https://steinbergmedia.github.io/midiremote_api_doc/" hreflang="en"><link data-rh="true" rel="alternate" href="https://steinbergmedia.github.io/midiremote_api_doc/" hreflang="x-default"><script data-rh="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/midiremote_api_doc/</span> </p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/midiremote_api_doc/assets/css/styles.d852724d.css">
<link rel="preload" href="/midiremote_api_doc/assets/js/runtime~main.9596c922.js" as="script">
<link rel="preload" href="/midiremote_api_doc/assets/js/main.5d4285fc.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"dark")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><a class="navbar__brand" href="/midiremote_api_doc/"><div class="navbar__logo"><img src="/midiremote_api_doc/img/steinberg_logo.svg" alt="(>) steinberg" class="themedImage_ToTc themedImage--light_HNdA"><img src="/midiremote_api_doc/img/steinberg_logo.svg" alt="(>) steinberg" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">MIDI Remote API</b></a></div><div class="navbar__items navbar__items--right"><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/midiremote_api_doc/">Introduction</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/midiremote_api_doc/getting-started">Getting Started</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/midiremote_api_doc/code-examples">Code Examples</a><button aria-label="Toggle the collapsible sidebar category 'Code Examples'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/midiremote_api_doc/versions">API Versions + Compatibility</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/midiremote_api_doc/new_in_v1.1">New in v1.1</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/midiremote_api_doc/advanced-topics">Advanced Topics</a><button aria-label="Toggle the collapsible sidebar category 'Advanced Topics'" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/midiremote_api_doc/codedoc_api_reference">API Reference</a></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/midiremote_api_doc/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><h1><div class="main_banner"><img loading="lazy" src="img/steinberg_logo.svg" class="img_ev3q"><div class="main_banner_title">MIDI Remote API <a href="/midiremote_api_doc/new_in_v1.1">v1.1</a></div><div class="main_banner_subtitle">Programmer's Guide</div></div></h1><p>Welcome to the Steinberg <strong>MIDI Remote API</strong>.</p><p>The primary purpose of the <strong>MIDI Remote API</strong> is to give developers the ability to create software solutions that bridge the gap between MIDI controller hardware and the <strong>Cubase / Nuendo</strong> environment.</p><p>This document will guide you through the steps of writing a <strong>MIDI Remote API Script</strong> for a specific MIDI controller hardware.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="basic-concept">BASIC CONCEPT<a href="#basic-concept" class="hash-link" aria-label="Direct link to BASIC CONCEPT" title="Direct link to BASIC CONCEPT"></a></h2><p>The MIDI Remote API Script acts as a mediator between a Hardware Controller and <strong>Cubase / Nuendo</strong>.</p><p><img loading="lazy" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9Ii0wLjUgLTAuNSA4MDEgMzE0Ij4KICAgIDxkZWZzLz4KICAgIDxnPgogICAgICAgIDxyZWN0IHg9IjAiIHk9IjMzIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjI4MCIgcng9IjQyIiByeT0iNDIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzllYjRjNyIgcG9pbnRlci1ldmVudHM9ImFsbCIvPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjUgLTAuNSkiPgogICAgICAgICAgICA8c3dpdGNoPgogICAgICAgICAgICAgICAgPGZvcmVpZ25PYmplY3Qgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7dGV4dC1hbGlnbjpsZWZ0IiBwb2ludGVyLWV2ZW50cz0ibm9uZSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOnVuc2FmZSBmbGV4LWVuZDtqdXN0aWZ5LWNvbnRlbnQ6dW5zYWZlIGNlbnRlcjt3aWR0aDo3OThweDtoZWlnaHQ6MXB4O3BhZGRpbmctdG9wOjMwcHg7bWFyZ2luLWxlZnQ6MXB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZTowO3RleHQtYWxpZ246Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToyNXB4O2ZvbnQtZmFtaWx5OkhlbHZldGljYTtjb2xvcjojOWViNGM3O2xpbmUtaGVpZ2h0OjEuMjtwb2ludGVyLWV2ZW50czphbGw7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdWJhc2UgLyBOdWVuZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2I+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+CiAgICAgICAgICAgICAgICA8dGV4dCB4PSI0MDAiIHk9IjMwIiBmaWxsPSIjOWViNGM3IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiBmb250LXNpemU9IjI1cHgiIHRleHQtYW5jaG9yPSJtaWRkbGUiPgogICAgICAgICAgICAgICAgICAgIEhvc3QKICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgPC9zd2l0Y2g+CiAgICAgICAgPC9nPgogICAgICAgIDxyZWN0IHg9IjQwIiB5PSI3MyIgd2lkdGg9IjE2MCIgaGVpZ2h0PSIyMDAiIHJ4PSIyNCIgcnk9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM5ZWI0YzciIHBvaW50ZXItZXZlbnRzPSJhbGwiLz4KICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC41IC0wLjUpIj4KICAgICAgICAgICAgPHN3aXRjaD4KICAgICAgICAgICAgICAgIDxmb3JlaWduT2JqZWN0IHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlO3RleHQtYWxpZ246bGVmdCIgcG9pbnRlci1ldmVudHM9Im5vbmUiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczp1bnNhZmUgY2VudGVyO2p1c3RpZnktY29udGVudDp1bnNhZmUgY2VudGVyO3dpZHRoOjE1OHB4O2hlaWdodDoxcHg7cGFkZGluZy10b3A6MTczcHg7bWFyZ2luLWxlZnQ6NDFweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MDt0ZXh0LWFsaWduOmNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTJweDtmb250LWZhbWlseTpIZWx2ZXRpY2E7Y29sb3I6IzllYjRjNztsaW5lLWhlaWdodDoxLjI7cG9pbnRlci1ldmVudHM6YWxsO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXdyYXA6bm9ybWFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6MTAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93cyAvIG1hY09TCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjkwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JREkgSS9PCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgogICAgICAgICAgICAgICAgPHRleHQgeD0iMTIwIiB5PSIxNzciIGZpbGw9IiM5ZWI0YzciIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICAgICAgICAgICAgICAgICAgV2luZG93cyAvIG1hY09TCiAgICAgICAgICAgICAgICAgICAgTUlESSBJL08KICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgPC9zd2l0Y2g+CiAgICAgICAgPC9nPgogICAgICAgIDxyZWN0IHg9IjI0MCIgeT0iNzMiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjAwIiByeD0iMzAiIHJ5PSIzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDBmNWVkIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+CiAgICAgICAgICAgIDxzd2l0Y2g+CiAgICAgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTt0ZXh0LWFsaWduOmxlZnQiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6dW5zYWZlIGNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6dW5zYWZlIGNlbnRlcjt3aWR0aDozMThweDtoZWlnaHQ6MXB4O3BhZGRpbmctdG9wOjE3M3B4O21hcmdpbi1sZWZ0OjI0MXB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZTowO3RleHQtYWxpZ246Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToyNXB4O2ZvbnQtZmFtaWx5OkhlbHZldGljYTtjb2xvcjojOWViNGM3O2xpbmUtaGVpZ2h0OjEuMjtwb2ludGVyLWV2ZW50czphbGw7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBjb2xvcj0iIzAwZjVlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjI2cHg7Zm9udC13ZWlnaHQ6OTAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSURJIFJlbW90ZSBBUEkgU2NyaXB0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjEwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBpbiBKYXZhc2NyaXB0IChFUzUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZvbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9udD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZvbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+CiAgICAgICAgICAgICAgICA8dGV4dCB4PSI0MDAiIHk9IjE4MSIgZmlsbD0iIzllYjRjNyIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgZm9udC1zaXplPSIyNXB4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAgICAgICAgICAgICAgICAgICBNSURJIFJlbW90ZSBTY3JpcHQuLi4KICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgPC9zd2l0Y2g+CiAgICAgICAgPC9nPgogICAgICAgIDxyZWN0IHg9IjYwMCIgeT0iNzMiIHdpZHRoPSIxNjAiIGhlaWdodD0iMjAwIiByeD0iMjQiIHJ5PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOWViNGM3IiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNSAtMC41KSI+CiAgICAgICAgICAgIDxzd2l0Y2g+CiAgICAgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTt0ZXh0LWFsaWduOmxlZnQiIHBvaW50ZXItZXZlbnRzPSJub25lIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6dW5zYWZlIGNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6dW5zYWZlIGNlbnRlcjt3aWR0aDoxNThweDtoZWlnaHQ6MXB4O3BhZGRpbmctdG9wOjE3M3B4O21hcmdpbi1sZWZ0OjYwMXB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iYm94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZTowO3RleHQtYWxpZ246Y2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtZmFtaWx5OkhlbHZldGljYTtjb2xvcjojOWViNGM3O2xpbmUtaGVpZ2h0OjEuMjtwb2ludGVyLWV2ZW50czphbGw7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweDtmb250LXdlaWdodDo5MDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdWJhc2UgLyBOdWVuZG88YnIvPkZ1bmN0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjEwMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1aWNrIENvbnRyb2xzLDxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkIFRyYWNrLDxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1peENvbnNvbGUsPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5IENvbW1hbmRzLDxici8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9udD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZvbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb250PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgogICAgICAgICAgICAgICAgPHRleHQgeD0iNjgwIiB5PSIxNzciIGZpbGw9IiM5ZWI0YzciIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiIGZvbnQtc2l6ZT0iMTJweCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+CiAgICAgICAgICAgICAgICAgICAgSG9zdCBGdW5jdGlvbnMuLi4KICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgPC9zd2l0Y2g+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik0gMjA2LjM3IDE3MyBMIDIzMy42MyAxNzMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzllYjRjNyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ic3Ryb2tlIi8+CiAgICAgICAgPHBhdGggZD0iTSAyMDEuMTIgMTczIEwgMjA4LjEyIDE2OS41IEwgMjA2LjM3IDE3MyBMIDIwOC4xMiAxNzYuNSBaIiBmaWxsPSIjOWViNGM3IiBzdHJva2U9IiM5ZWI0YzciIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9ImFsbCIvPgogICAgICAgIDxwYXRoIGQ9Ik0gMjM4Ljg4IDE3MyBMIDIzMS44OCAxNzYuNSBMIDIzMy42MyAxNzMgTCAyMzEuODggMTY5LjUgWiIgZmlsbD0iIzllYjRjNyIgc3Ryb2tlPSIjOWViNGM3IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni4zNyAxNzMgTCA1OTMuNjMgMTczIiBmaWxsPSJub25lIiBzdHJva2U9IiM5ZWI0YzciIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9InN0cm9rZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0gNTYxLjEyIDE3MyBMIDU2OC4xMiAxNjkuNSBMIDU2Ni4zNyAxNzMgTCA1NjguMTIgMTc2LjUgWiIgZmlsbD0iIzllYjRjNyIgc3Ryb2tlPSIjOWViNGM3IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJhbGwiLz4KICAgICAgICA8cGF0aCBkPSJNIDU5OC44OCAxNzMgTCA1OTEuODggMTc2LjUgTCA1OTMuNjMgMTczIEwgNTkxLjg4IDE2OS41IFoiIGZpbGw9IiM5ZWI0YzciIHN0cm9rZT0iIzllYjRjNyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0iYWxsIi8+CiAgICA8L2c+CiAgICA8c3dpdGNoPgogICAgICAgIDxnIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSIvPgogICAgICAgIDxhIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTUpIiB4bGluazpocmVmPSJodHRwczovL2Rlc2suZHJhdy5pby9zdXBwb3J0L3NvbHV0aW9ucy9hcnRpY2xlcy8xNjAwMDA0MjQ4NyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICA8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEwcHgiIHg9IjUwJSIgeT0iMTAwJSI+CiAgICAgICAgICAgICAgICBWaWV3ZXIgZG9lcyBub3Qgc3VwcG9ydCBmdWxsIFNWRyAxLjEKICAgICAgICAgICAgPC90ZXh0PgogICAgICAgIDwvYT4KICAgIDwvc3dpdGNoPgo8L3N2Zz4K" width="801" height="314" class="img_ev3q"></p><div class="admonition alert alert--info"><div class="admonition-content"><strong>MIDI Remote API Scripts</strong> are written in the <a href="https://www.w3schools.com/js/js_es5.asp" target="_blank" rel="noopener noreferrer"><strong>ES5</strong></a> version of JavaScript.</div></div><p>A <strong>MIDI Remote API Script</strong> emulates the hardware surface and This improves usability and recognizability.</p><p><img loading="lazy" src="/midiremote_api_doc/assets/images/remote_window_real_world_device-6a3d665df17173f9cb5017cfcecfdc62.png" width="2116" height="852" class="img_ev3q"></p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="script-structure">SCRIPT STRUCTURE<a href="#script-structure" class="hash-link" aria-label="Direct link to SCRIPT STRUCTURE" title="Direct link to SCRIPT STRUCTURE"></a></h2><p>The <b>MIDI Remote API Script</b> consists of three building blocks.</p><ol><li><p><strong>Driver Setup</strong></p><ul><li>create driver object</li><li>define driver ports to be associated with existing hardware midi ports</li><li>specify all possible port namings for automatic device detection</li></ul></li><li><p><strong>Surface Layout</strong></p><ul><li>visualize the hardware's surface elements (e.g. knobs, faders, buttons)</li><li>bind surface elements to midi messages</li></ul></li><li><p><strong>Host Mapping</strong></p><ul><li>create mapping pages for each user workflow (e.g. mixing, playing instruments, track navigation)</li></ul></li></ol><div class="admonition alert alert--secondary"><div class="admonition-content">The following image illustrates the three building block and how they are related:</div></div><p><img loading="lazy" src="/midiremote_api_doc/assets/images/script_structure-6513c4ed4a28385473362d3eeba3955a.svg" width="702" height="376" class="img_ev3q"></p></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--next" href="/midiremote_api_doc/getting-started"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Getting Started</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023 Steinberg Media Technologies GmbH.</div></div></div></footer></div>
<script src="/midiremote_api_doc/assets/js/runtime~main.9596c922.js"></script>
<script src="/midiremote_api_doc/assets/js/main.5d4285fc.js"></script>
</body>
</html>