/[svn]/web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.html
ViewVC logotype

Diff of /web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 561 by schoenebeck, Sat May 21 20:01:32 2005 UTC revision 2023 by schoenebeck, Sun Nov 1 12:59:16 2009 UTC
# Line 3  Line 3 
3  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4  <meta name="description" content="LinuxSampler Control Protocol">  <meta name="description" content="LinuxSampler Control Protocol">
5  <meta name="keywords" content="LSCP">  <meta name="keywords" content="LSCP">
6  <meta name="generator" content="xml2rfc v1.25 (http://xml.resource.org/)">  <meta name="generator" content="xml2rfc v1.34 (http://xml.resource.org/)">
7  <style type='text/css'>  <style type='text/css'><!--
8  <!--          body {
9      body {                  font-family: verdana, charcoal, helvetica, arial, sans-serif;
10          font-family: verdana, charcoal, helvetica, arial, sans-serif;                  font-size: small; color: #000; background-color: #FFF;
11          margin: 2em;                  margin: 2em;
12          font-size: small ; color: #000000 ; background-color: #ffffff ; }          }
13      .title { color: #990000; font-size: x-large ;          h1, h2, h3, h4, h5, h6 {
14          font-weight: bold; text-align: right;                  font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
15          font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;                  font-weight: bold; font-style: normal;
16          background-color: transparent; }          }
17      .filename { color: #666666; font-size: 18px; line-height: 28px;          h1 { color: #900; background-color: transparent; text-align: right; }
18          font-weight: bold; text-align: right;          h3 { color: #333; background-color: transparent; }
19          font-family: helvetica, arial, sans-serif;  
20          background-color: transparent; }          td.RFCbug {
21      td.rfcbug { background-color: #000000 ; width: 30px ; height: 30px ;                  font-size: x-small; text-decoration: none;
22          text-align: justify; vertical-align: middle ; padding-top: 2px ; }                  width: 30px; height: 30px; padding-top: 2px;
23      td.rfcbug span.RFC { color: #666666; font-weight: bold; text-decoration: none;                  text-align: justify; vertical-align: middle;
24          background-color: #000000 ;                  background-color: #000;
25          font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;          }
26          font-size: x-small ; }          td.RFCbug span.RFC {
27      td.rfcbug span.hotText { color: #ffffff; font-weight: normal; text-decoration: none;                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
28          text-align: center ;                  font-weight: bold; color: #666;
29          font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;          }
30          font-size: x-small ; background-color: #000000; }          td.RFCbug span.hotText {
31  /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */                  font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
32      div#counter{margin-top: 100px}                  font-weight: normal; text-align: center; color: #FFF;
33            }
34      a.info{  
35          position:relative; /*this is the key*/          table.TOCbug { width: 30px; height: 15px; }
36          z-index:24;          td.TOCbug {
37          text-decoration:none}                  text-align: center; width: 30px; height: 15px;
38                    color: #FFF; background-color: #900;
39      a.info:hover{z-index:25; background-color:#990000 ; color: #ffffff ;}          }
40            td.TOCbug a {
41      a.info span{display: none}                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
42                    font-weight: bold; font-size: x-small; text-decoration: none;
43      a.info:hover span{ /*the span will display just on :hover state*/                  color: #FFF; background-color: transparent;
44          display:block;          }
45          position:absolute;  
46          font-size: smaller ;          td.header {
47          top:2em; left:2em; width:15em;                  font-family: arial, helvetica, sans-serif; font-size: x-small;
48          padding: 2px ;                  vertical-align: top; width: 33%;
49          border:1px solid #333333;                  color: #FFF; background-color: #666;
50          background-color:#eeeeee; color:#990000;          }
51          text-align: left ;}          td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
52            td.author-text { font-size: x-small; }
53       A { font-weight: bold; }  
54       A:link { color: #990000; background-color: transparent ; }          /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
55       A:visited { color: #333333; background-color: transparent ; }          a.info {
56       A:active { color: #333333; background-color: transparent ; }                  /* This is the key. */
57                    position: relative;
58      p { margin-left: 2em; margin-right: 2em; }                  z-index: 24;
59      p.copyright { font-size: x-small ; }                  text-decoration: none;
60      p.toc { font-size: small ; font-weight: bold ; margin-left: 3em ;}          }
61            a.info:hover {
62      span.emph { font-style: italic; }                  z-index: 25;
63      span.strong { font-weight: bold; }                  color: #FFF; background-color: #900;
64      span.verb { font-family: "Courier New", Courier, monospace ; }          }
65            a.info span { display: none; }
66      ol.text { margin-left: 2em; margin-right: 2em; }          a.info:hover span.info {
67      ul.text { margin-left: 2em; margin-right: 2em; }                  /* The span will display just on :hover state. */
68      li { margin-left: 3em;  }                  display: block;
69                    position: absolute;
70                    font-size: smaller;
71                    top: 2em; left: -5em; width: 15em;
72                    padding: 2px; border: 1px solid #333;
73                    color: #900; background-color: #EEE;
74                    text-align: left;
75            }
76    
77      pre { margin-left: 3em; color: #333333;  background-color: transparent;          a { font-weight: bold; }
78          font-family: "Courier New", Courier, monospace ; font-size: small ;          a:link    { color: #900; background-color: transparent; }
79            a:visited { color: #633; background-color: transparent; }
80            a:active  { color: #633; background-color: transparent; }
81    
82            p { margin-left: 2em; margin-right: 2em; }
83            p.copyright { font-size: x-small; }
84            p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
85            table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
86            td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
87    
88            ol.text { margin-left: 2em; margin-right: 2em; }
89            ul.text { margin-left: 2em; margin-right: 2em; }
90            li      { margin-left: 3em; }
91    
92            /* RFC-2629 <spanx>s and <artwork>s. */
93            em     { font-style: italic; }
94            strong { font-weight: bold; }
95            dfn    { font-weight: bold; font-style: normal; }
96            cite   { font-weight: normal; font-style: normal; }
97            tt     { color: #036; }
98            tt, pre, pre dfn, pre em, pre cite, pre span {
99                    font-family: "Courier New", Courier, monospace; font-size: small;
100            }
101            pre {
102                    text-align: left; padding: 4px;
103                    color: #000; background-color: #CCC;
104          }          }
105            pre dfn  { color: #900; }
106            pre em   { color: #66F; background-color: #FFC; font-weight: normal; }
107            pre .key { color: #33C; font-weight: bold; }
108            pre .id  { color: #900; }
109            pre .str { color: #000; background-color: #CFF; }
110            pre .val { color: #066; }
111            pre .rep { color: #909; }
112            pre .oth { color: #000; background-color: #FCF; }
113            pre .err { background-color: #FCC; }
114    
115            /* RFC-2629 <texttable>s. */
116            table.all, table.full, table.headers, table.none {
117                    font-size: small; text-align: center; border-width: 2px;
118                    vertical-align: top; border-collapse: collapse;
119            }
120            table.all, table.full { border-style: solid; border-color: black; }
121            table.headers, table.none { border-style: none; }
122            th {
123                    font-weight: bold; border-color: black;
124                    border-width: 2px 2px 3px 2px;
125            }
126            table.all th, table.full th { border-style: solid; }
127            table.headers th { border-style: none none solid none; }
128            table.none th { border-style: none; }
129            table.all td {
130                    border-style: solid; border-color: #333;
131                    border-width: 1px 2px;
132            }
133            table.full td, table.headers td, table.none td { border-style: none; }
134    
135      h3 { color: #333333; font-size: medium ;          hr { height: 1px; }
136          font-family: helvetica, arial, sans-serif ;          hr.insert {
137          background-color: transparent; }                  width: 80%; border-style: none; border-width: 0;
138      h4 { font-size: small; font-family: helvetica, arial, sans-serif ; }                  color: #CCC; background-color: #CCC;
139            }
140      table.bug { width: 30px ; height: 15px ; }  --></style>
     td.bug { color: #ffffff ; background-color: #990000 ;  
         text-align: center ; width: 30px ; height: 15px ;  
          }  
     td.bug A.link2 { color: #ffffff ; font-weight: bold;  
         text-decoration: none;  
         font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;  
         font-size: x-small ; background-color: transparent }  
   
     td.header { color: #ffffff; font-size: x-small ;  
         font-family: arial, helvetica, sans-serif; vertical-align: top;  
         background-color: #666666 ; width: 33% ; }  
     td.author { font-weight: bold; margin-left: 4em; font-size: x-small ; }  
     td.author-text { font-size: x-small; }  
     table.data { vertical-align: top ; border-collapse: collapse ;  
         border-style: solid solid solid solid ;  
         border-color: black black black black ;  
         font-size: small ; text-align: center ; }  
     table.data th { font-weight: bold ;  
         border-style: solid solid solid solid ;  
         border-color: black black black black ; }  
     table.data td {  
         border-style: solid solid solid solid ;  
         border-color: #333333 #333333 #333333 #333333 ; }  
   
     hr { height: 1px }  
 -->  
 </style>  
141  </head>  </head>
142  <body>  <body>
143  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
144  <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">  <table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
145  <tr><td class="header">LinuxSampler Developers</td><td class="header">C. Schoenebeck</td></tr>  <tr><td class="header">LinuxSampler Developers</td><td class="header">C. Schoenebeck</td></tr>
146  <tr><td class="header">Internet-Draft</td><td class="header">Interessengemeinschaft Software</td></tr>  <tr><td class="header">Internet-Draft</td><td class="header">Interessengemeinschaft Software</td></tr>
147  <tr><td class="header">Expires: November 19, 2005</td><td class="header">Engineering e. V.</td></tr>  <tr><td class="header">Intended status: Standards Track</td><td class="header">Engineering e. V.</td></tr>
148  <tr><td class="header">&nbsp;</td><td class="header">May 21, 2005</td></tr>  <tr><td class="header">Expires: May 5, 2010</td><td class="header">November 1, 2009</td></tr>
149  </table></td></tr></table>  </table></td></tr></table>
150  <div align="right"><span class="title"><br />LinuxSampler Control Protocol</span></div>  <h1><br />LinuxSampler Control Protocol<br />LSCP 1.5</h1>
 <div align="right"><span class="title"><br />lscp.txt</span></div>  
151    
152    <h3>Abstract</h3>
153    
154    <p>The LinuxSampler Control Protocol (LSCP) is an
155                application-level protocol primarily intended for local and
156                remote controlling the LinuxSampler backend application, which is a
157                sophisticated server-like console application essentially playing
158                back audio samples and manipulating the samples in real time to
159                certain extent.
160    </p>
161  <h3>Status of this Memo</h3>  <h3>Status of this Memo</h3>
162  <p>  <p>
163  This document is an Internet-Draft and is  By submitting this Internet-Draft,
164  in full conformance with all provisions of Section 10 of RFC2026.</p>  each author represents that any applicable patent or other IPR claims of which
165    he or she is aware have been or will be disclosed,
166    and any of which he or she becomes aware will be disclosed,
167    in accordance with Section&nbsp;6 of BCP&nbsp;79.</p>
168  <p>  <p>
169  Internet-Drafts are working documents of the Internet Engineering  Internet-Drafts are working documents of the Internet Engineering
170  Task Force (IETF), its areas, and its working groups.  Task Force (IETF), its areas, and its working groups.
# Line 129  Internet-Drafts.</p> Line 174  Internet-Drafts.</p>
174  Internet-Drafts are draft documents valid for a maximum of six months  Internet-Drafts are draft documents valid for a maximum of six months
175  and may be updated, replaced, or obsoleted by other documents at any time.  and may be updated, replaced, or obsoleted by other documents at any time.
176  It is inappropriate to use Internet-Drafts as reference material or to cite  It is inappropriate to use Internet-Drafts as reference material or to cite
177  them other than as "work in progress."</p>  them other than as &ldquo;work in progress.&rdquo;</p>
178  <p>  <p>
179  The list of current Internet-Drafts can be accessed at  The list of current Internet-Drafts can be accessed at
180  <a href='http://www.ietf.org/ietf/1id-abstracts.txt'>http://www.ietf.org/ietf/1id-abstracts.txt</a>.</p>  <a href='http://www.ietf.org/ietf/1id-abstracts.txt'>http://www.ietf.org/ietf/1id-abstracts.txt</a>.</p>
# Line 137  The list of current Internet-Drafts can Line 182  The list of current Internet-Drafts can
182  The list of Internet-Draft Shadow Directories can be accessed at  The list of Internet-Draft Shadow Directories can be accessed at
183  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>
184  <p>  <p>
185  This Internet-Draft will expire on November 19, 2005.</p>  This Internet-Draft will expire on May 5, 2010.</p>
186    <a name="toc"></a><br /><hr />
 <h3>Copyright Notice</h3>  
 <p>  
 Copyright (C) The Internet Society (2005). All Rights Reserved.</p>  
   
 <h3>Abstract</h3>  
   
 <p>The LinuxSampler Control Protocol (LSCP) is an  
             application-level protocol primarily intended for local and  
             remote controlling the LinuxSampler main application, which is a  
             sophisticated console application essentially playing back audio  
             samples and manipulating the samples in real time to certain  
             extent.  
 </p><a name="toc"></a><br /><hr />  
187  <h3>Table of Contents</h3>  <h3>Table of Contents</h3>
188  <p class="toc">  <p class="toc">
189  <a href="#anchor1">1.</a>&nbsp;  <a href="#anchor1">1.</a>&nbsp;
190  Requirements notation<br />  Requirements notation<br />
191  <a href="#anchor2">2.</a>&nbsp;  <a href="#LSCP versioning">2.</a>&nbsp;
192    Versioning of this specification<br />
193    <a href="#anchor2">3.</a>&nbsp;
194  Introduction<br />  Introduction<br />
195  <a href="#anchor3">3.</a>&nbsp;  <a href="#anchor3">4.</a>&nbsp;
196  Focus of this protocol<br />  Focus of this protocol<br />
197  <a href="#anchor4">4.</a>&nbsp;  <a href="#anchor4">5.</a>&nbsp;
198  Communication Overview<br />  Communication Overview<br />
199  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">4.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">5.1.</a>&nbsp;
200  Request/response communication method<br />  Request/response communication method<br />
201  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">4.1.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor6">5.1.1.</a>&nbsp;
202  Result format<br />  Result format<br />
203  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">4.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">5.2.</a>&nbsp;
204  Subscribe/notify communication method<br />  Subscribe/notify communication method<br />
205  <a href="#anchor8">5.</a>&nbsp;  <a href="#control_commands">6.</a>&nbsp;
206  Description for control commands<br />  Description for control commands<br />
207  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">5.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor8">6.1.</a>&nbsp;
208  Ignored lines and comments<br />  Ignored lines and comments<br />
209  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">5.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">6.2.</a>&nbsp;
210  Configuring audio drivers<br />  Configuring audio drivers<br />
211  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_AUDIO_OUTPUT_DRIVERS">5.2.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_AUDIO_OUTPUT_DRIVERS">6.2.1.</a>&nbsp;
212  Getting amount of available audio output drivers<br />  Getting amount of available audio output drivers<br />
213  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">5.2.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">6.2.2.</a>&nbsp;
214  Getting all available audio output drivers<br />  Getting all available audio output drivers<br />
215  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER INFO">5.2.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER INFO">6.2.3.</a>&nbsp;
216  Getting information about a specific audio  Getting information about a specific audio
217                  output driver<br />                  output driver<br />
218  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO">5.2.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO">6.2.4.</a>&nbsp;
219  Getting information about specific audio  Getting information about specific audio
220                  output driver parameter<br />                  output driver parameter<br />
221  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE AUDIO_OUTPUT_DEVICE">5.2.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE AUDIO_OUTPUT_DEVICE">6.2.5.</a>&nbsp;
222  Creating an audio output device<br />  Creating an audio output device<br />
223  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY AUDIO_OUTPUT_DEVICE">5.2.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY AUDIO_OUTPUT_DEVICE">6.2.6.</a>&nbsp;
224  Destroying an audio output device<br />  Destroying an audio output device<br />
225  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICES">5.2.7</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICES">6.2.7.</a>&nbsp;
226  Getting all created audio output device count<br />  Getting all created audio output device count<br />
227  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AUDIO_OUTPUT_DEVICES">5.2.8</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AUDIO_OUTPUT_DEVICES">6.2.8.</a>&nbsp;
228  Getting all created audio output device list<br />  Getting all created audio output device list<br />
229  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICE INFO">5.2.9</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_DEVICE INFO">6.2.9.</a>&nbsp;
230  Getting current settings of an audio output device<br />  Getting current settings of an audio output device<br />
231  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_DEVICE_PARAMETER">5.2.10</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_DEVICE_PARAMETER">6.2.10.</a>&nbsp;
232  Changing settings of audio output devices<br />  Changing settings of audio output devices<br />
233  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL INFO">5.2.11</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL INFO">6.2.11.</a>&nbsp;
234  Getting information about an audio channel<br />  Getting information about an audio channel<br />
235  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO">5.2.12</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO">6.2.12.</a>&nbsp;
236  Getting information about specific audio channel parameter<br />  Getting information about specific audio channel parameter<br />
237  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_CHANNEL_PARAMETER">5.2.13</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET AUDIO_OUTPUT_CHANNEL_PARAMETER">6.2.13.</a>&nbsp;
238  Changing settings of audio output channels<br />  Changing settings of audio output channels<br />
239  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">5.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">6.3.</a>&nbsp;
240  Configuring MIDI input drivers<br />  Configuring MIDI input drivers<br />
241  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_MIDI_INPUT_DRIVERS">5.3.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_MIDI_INPUT_DRIVERS">6.3.1.</a>&nbsp;
242  Getting amount of available MIDI input drivers<br />  Getting amount of available MIDI input drivers<br />
243  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_MIDI_INPUT_DRIVERS">5.3.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_MIDI_INPUT_DRIVERS">6.3.2.</a>&nbsp;
244  Getting all available MIDI input drivers<br />  Getting all available MIDI input drivers<br />
245  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER INFO">5.3.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER INFO">6.3.3.</a>&nbsp;
246  Getting information about a specific MIDI input driver<br />  Getting information about a specific MIDI input driver<br />
247  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER_PARAMETER INFO">5.3.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DRIVER_PARAMETER INFO">6.3.4.</a>&nbsp;
248  Getting information about specific MIDI input driver parameter<br />  Getting information about specific MIDI input driver parameter<br />
249  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE MIDI_INPUT_DEVICE">5.3.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE MIDI_INPUT_DEVICE">6.3.5.</a>&nbsp;
250  Creating a MIDI input device<br />  Creating a MIDI input device<br />
251  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY MIDI_INPUT_DEVICE">5.3.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY MIDI_INPUT_DEVICE">6.3.6.</a>&nbsp;
252  Destroying a MIDI input device<br />  Destroying a MIDI input device<br />
253  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICES">5.3.7</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICES">6.3.7.</a>&nbsp;
254  Getting all created MIDI input device count<br />  Getting all created MIDI input device count<br />
255  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INPUT_DEVICES">5.3.8</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INPUT_DEVICES">6.3.8.</a>&nbsp;
256  Getting all created MIDI input device list<br />  Getting all created MIDI input device list<br />
257  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICE INFO">5.3.9</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_DEVICE INFO">6.3.9.</a>&nbsp;
258  Getting current settings of a MIDI input device<br />  Getting current settings of a MIDI input device<br />
259  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_DEVICE_PARAMETER">5.3.10</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_DEVICE_PARAMETER">6.3.10.</a>&nbsp;
260  Changing settings of MIDI input devices<br />  Changing settings of MIDI input devices<br />
261  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT INFO">5.3.11</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT INFO">6.3.11.</a>&nbsp;
262  Getting information about a MIDI port<br />  Getting information about a MIDI port<br />
263  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT_PARAMETER INFO">5.3.12</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INPUT_PORT_PARAMETER INFO">6.3.12.</a>&nbsp;
264  Getting information about specific MIDI port parameter<br />  Getting information about specific MIDI port parameter<br />
265  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_PORT_PARAMETER">5.3.13</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INPUT_PORT_PARAMETER">6.3.13.</a>&nbsp;
266  Changing settings of MIDI input ports<br />  Changing settings of MIDI input ports<br />
267  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">5.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">6.4.</a>&nbsp;
268  Configuring sampler channels<br />  Configuring sampler channels<br />
269  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD INSTRUMENT">5.4.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD INSTRUMENT">6.4.1.</a>&nbsp;
270  Loading an instrument<br />  Loading an instrument<br />
271  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD ENGINE">5.4.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LOAD ENGINE">6.4.2.</a>&nbsp;
272  Loading a sampler engine<br />  Loading a sampler engine<br />
273  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNELS">5.4.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNELS">6.4.3.</a>&nbsp;
274  Getting all created sampler channel count<br />  Getting all created sampler channel count<br />
275  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST CHANNELS">5.4.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST CHANNELS">6.4.4.</a>&nbsp;
276  Getting all created sampler channel list<br />  Getting all created sampler channel list<br />
277  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD CHANNEL">5.4.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD CHANNEL">6.4.5.</a>&nbsp;
278  Adding a new sampler channel<br />  Adding a new sampler channel<br />
279  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE CHANNEL">5.4.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE CHANNEL">6.4.6.</a>&nbsp;
280  Removing a sampler channel<br />  Removing a sampler channel<br />
281  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_ENGINES">5.4.7</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_ENGINES">6.4.7.</a>&nbsp;
282  Getting amount of available engines<br />  Getting amount of available engines<br />
283  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_ENGINES">5.4.8</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_ENGINES">6.4.8.</a>&nbsp;
284  Getting all available engines<br />  Getting all available engines<br />
285  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET ENGINE INFO">5.4.9</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET ENGINE INFO">6.4.9.</a>&nbsp;
286  Getting information about an engine<br />  Getting information about an engine<br />
287  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL INFO">5.4.10</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL INFO">6.4.10.</a>&nbsp;
288  Getting sampler channel information<br />  Getting sampler channel information<br />
289  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL VOICE_COUNT">5.4.11</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL VOICE_COUNT">6.4.11.</a>&nbsp;
290  Current number of active voices<br />  Current number of active voices<br />
291  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL STREAM_COUNT">5.4.12</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL STREAM_COUNT">6.4.12.</a>&nbsp;
292  Current number of active disk streams<br />  Current number of active disk streams<br />
293  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL BUFFER_FILL">5.4.13</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET CHANNEL BUFFER_FILL">6.4.13.</a>&nbsp;
294  Current fill state of disk stream buffers<br />  Current fill state of disk stream buffers<br />
295  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_DEVICE">5.4.14</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_DEVICE">6.4.14.</a>&nbsp;
296  Setting audio output device<br />  Setting audio output device<br />
297  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_TYP">5.4.15</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_TYPE">6.4.15.</a>&nbsp;
298  Setting audio output type<br />  Setting audio output type<br />
299  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_CHANNEL">5.4.16</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL AUDIO_OUTPUT_CHANNEL">6.4.16.</a>&nbsp;
300  Setting audio output channel<br />  Setting audio output channel<br />
301  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_DEVICE">5.4.17</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_DEVICE">6.4.17.</a>&nbsp;
302  Setting MIDI input device<br />  Setting MIDI input device<br />
303  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_TYPE">5.4.18</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_TYPE">6.4.18.</a>&nbsp;
304  Setting MIDI input type<br />  Setting MIDI input type<br />
305  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_PORT">5.4.19</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_PORT">6.4.19.</a>&nbsp;
306  Setting MIDI input port<br />  Setting MIDI input port<br />
307  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_CHANNEL">5.4.20</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_CHANNEL">6.4.20.</a>&nbsp;
308  Setting MIDI input channel<br />  Setting MIDI input channel<br />
309  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL VOLUME">5.4.21</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL VOLUME">6.4.21.</a>&nbsp;
310  Setting channel volume<br />  Setting channel volume<br />
311  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">5.4.22</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MUTE">6.4.22.</a>&nbsp;
312    Muting a sampler channel<br />
313    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL SOLO">6.4.23.</a>&nbsp;
314    Soloing a sampler channel<br />
315    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INSTRUMENT_MAP">6.4.24.</a>&nbsp;
316    Assigning a MIDI instrument map to a sampler channel<br />
317    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE FX_SEND">6.4.25.</a>&nbsp;
318    Adding an effect send to a sampler channel<br />
319    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY FX_SEND">6.4.26.</a>&nbsp;
320    Removing an effect send from a sampler channel<br />
321    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SENDS">6.4.27.</a>&nbsp;
322    Getting amount of effect sends on a sampler channel<br />
323    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FX_SENDS">6.4.28.</a>&nbsp;
324    Listing all effect sends on a sampler channel<br />
325    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FX_SEND INFO">6.4.29.</a>&nbsp;
326    Getting effect send information<br />
327    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND NAME">6.4.30.</a>&nbsp;
328    Changing effect send's name<br />
329    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND AUDIO_OUTPUT_CHANNEL">6.4.31.</a>&nbsp;
330    Altering effect send's audio routing<br />
331    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND MIDI_CONTROLLER">6.4.32.</a>&nbsp;
332    Altering effect send's MIDI controller<br />
333    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.33.</a>&nbsp;
334    Altering effect send's send level<br />
335    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SEND CHANNEL MIDI_DATA">6.4.34.</a>&nbsp;
336    Sending MIDI messages to sampler channel<br />
337    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.35.</a>&nbsp;
338  Resetting a sampler channel<br />  Resetting a sampler channel<br />
339  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">5.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
340  Controlling connection<br />  Controlling connection<br />
341  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE">5.5.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE">6.5.1.</a>&nbsp;
342  Register front-end for receiving event messages<br />  Register front-end for receiving event messages<br />
343  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNSUBSCRIBE">5.5.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNSUBSCRIBE">6.5.2.</a>&nbsp;
344  Unregister front-end for not receiving event messages<br />  Unregister front-end for not receiving event messages<br />
345  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET ECHO">5.5.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET ECHO">6.5.3.</a>&nbsp;
346  Enable or disable echo of commands<br />  Enable or disable echo of commands<br />
347  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#QUIT">5.5.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#QUIT">6.5.4.</a>&nbsp;
348  Close client connection<br />  Close client connection<br />
349  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">5.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">6.6.</a>&nbsp;
350  Global commands<br />  Global commands<br />
351  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">5.6.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT">6.6.1.</a>&nbsp;
352    Current number of active voices<br />
353    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT_MAX">6.6.2.</a>&nbsp;
354    Maximum amount of active voices<br />
355    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_STREAM_COUNT">6.6.3.</a>&nbsp;
356    Current number of active disk streams<br />
357    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.4.</a>&nbsp;
358  Reset sampler<br />  Reset sampler<br />
359  <a href="#command_syntax">6.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SERVER INFO">6.6.5.</a>&nbsp;
360    General sampler informations<br />
361    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOLUME">6.6.6.</a>&nbsp;
362    Getting global volume attenuation<br />
363    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;
364    Setting global volume attenuation<br />
365    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOICES">6.6.8.</a>&nbsp;
366    Getting global voice limit<br />
367    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOICES">6.6.9.</a>&nbsp;
368    Setting global voice limit<br />
369    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET STREAMS">6.6.10.</a>&nbsp;
370    Getting global disk stream limit<br />
371    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET STREAMS">6.6.11.</a>&nbsp;
372    Setting global disk stream limit<br />
373    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;
374    MIDI Instrument Mapping<br />
375    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT_MAP">6.7.1.</a>&nbsp;
376    Create a new MIDI instrument map<br />
377    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE MIDI_INSTRUMENT_MAP">6.7.2.</a>&nbsp;
378    Delete one particular or all MIDI instrument maps<br />
379    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAPS">6.7.3.</a>&nbsp;
380    Get amount of existing MIDI instrument maps<br />
381    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENT_MAPS">6.7.4.</a>&nbsp;
382    Getting all created MIDI instrument maps<br />
383    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAP INFO">6.7.5.</a>&nbsp;
384    Getting MIDI instrument map information<br />
385    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INSTRUMENT_MAP NAME">6.7.6.</a>&nbsp;
386    Renaming a MIDI instrument map<br />
387    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MAP MIDI_INSTRUMENT">6.7.7.</a>&nbsp;
388    Create or replace a MIDI instrument map entry<br />
389    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENTS">6.7.8.</a>&nbsp;
390    Getting ammount of MIDI instrument map entries<br />
391    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENTS">6.7.9.</a>&nbsp;
392    Getting indeces of all entries of a MIDI instrument map<br />
393    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNMAP MIDI_INSTRUMENT">6.7.10.</a>&nbsp;
394    Remove an entry from the MIDI instrument map<br />
395    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT INFO">6.7.11.</a>&nbsp;
396    Get current settings of MIDI instrument map entry<br />
397    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.12.</a>&nbsp;
398    Clear MIDI instrument map<br />
399    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
400    Managing Instruments Database<br />
401    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
402    Creating a new instrument directory<br />
403    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
404    Deleting an instrument directory<br />
405    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
406    Getting amount of instrument directories<br />
407    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
408    Listing all directories in specific directory<br />
409    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
410    Getting instrument directory information<br />
411    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
412    Renaming an instrument directory<br />
413    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
414    Moving an instrument directory<br />
415    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
416    Copying instrument directories<br />
417    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
418    Changing the description of directory<br />
419    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
420    Finding directories<br />
421    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
422    Adding instruments to the instruments database<br />
423    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
424    Removing an instrument<br />
425    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
426    Getting amount of instruments<br />
427    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
428    Listing all instruments in specific directory<br />
429    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
430    Getting instrument information<br />
431    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
432    Renaming an instrument<br />
433    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
434    Moving an instrument<br />
435    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
436    Copying instruments<br />
437    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
438    Changing the description of instrument<br />
439    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
440    Finding instruments<br />
441    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
442    Getting job status information<br />
443    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
444    Formatting the instruments database<br />
445    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
446    Checking for lost instrument files<br />
447    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
448    Replacing an instrument file<br />
449    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
450    Editing Instruments<br />
451    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
452    Opening an appropriate instrument editor application<br />
453    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#file_management">6.10.</a>&nbsp;
454    Managing Files<br />
455    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENTS">6.10.1.</a>&nbsp;
456    Retrieving amount of instruments of a file<br />
457    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FILE INSTRUMENTS">6.10.2.</a>&nbsp;
458    Retrieving all instruments of a file<br />
459    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENT INFO">6.10.3.</a>&nbsp;
460    Retrieving informations about one instrument in a file<br />
461    <a href="#command_syntax">7.</a>&nbsp;
462  Command Syntax<br />  Command Syntax<br />
463  <a href="#events">7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
464    Character Set and Escape Sequences<br />
465    <a href="#events">8.</a>&nbsp;
466  Events<br />  Events<br />
467  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL">7.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT">8.1.</a>&nbsp;
468    Number of audio output devices changed<br />
469    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO">8.2.</a>&nbsp;
470    Audio output device's settings changed<br />
471    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_COUNT">8.3.</a>&nbsp;
472    Number of MIDI input devices changed<br />
473    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_INFO">8.4.</a>&nbsp;
474    MIDI input device's settings changed<br />
475    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;
476  Number of sampler channels changed<br />  Number of sampler channels changed<br />
477  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">7.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_MIDI">8.6.</a>&nbsp;
478    MIDI data on a sampler channel arrived<br />
479    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DEVICE_MIDI">8.7.</a>&nbsp;
480    MIDI data on a MIDI input device arrived<br />
481    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.8.</a>&nbsp;
482  Number of active voices changed<br />  Number of active voices changed<br />
483  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">7.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE STREAM_COUNT">8.9.</a>&nbsp;
484  Number of active disk streams changed<br />  Number of active disk streams changed<br />
485  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">7.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE BUFFER_FILL">8.10.</a>&nbsp;
486  Disk stream buffer fill state changed<br />  Disk stream buffer fill state changed<br />
487  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE INFO">7.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_INFO">8.11.</a>&nbsp;
488  Channel information changed<br />  Channel information changed<br />
489  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">7.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_COUNT">8.12.</a>&nbsp;
490    Number of effect sends changed<br />
491    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.13.</a>&nbsp;
492    Effect send information changed<br />
493    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.14.</a>&nbsp;
494    Total number of active voices changed<br />
495    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_STREAM_COUNT">8.15.</a>&nbsp;
496    Total number of active disk streams changed<br />
497    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.16.</a>&nbsp;
498    Number of MIDI instrument maps changed<br />
499    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.17.</a>&nbsp;
500    MIDI instrument map information changed<br />
501    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.18.</a>&nbsp;
502    Number of MIDI instruments changed<br />
503    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.19.</a>&nbsp;
504    MIDI instrument information changed<br />
505    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.20.</a>&nbsp;
506    Global settings changed<br />
507    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.21.</a>&nbsp;
508    Number of database instrument directories changed<br />
509    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.22.</a>&nbsp;
510    Database instrument directory information changed<br />
511    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.23.</a>&nbsp;
512    Number of database instruments changed<br />
513    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.24.</a>&nbsp;
514    Database instrument information changed<br />
515    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.25.</a>&nbsp;
516    Database job status information changed<br />
517    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.26.</a>&nbsp;
518  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
519  <a href="#anchor15">8.</a>&nbsp;  <a href="#anchor14">9.</a>&nbsp;
520  Security Considerations<br />  Security Considerations<br />
521  <a href="#anchor16">9.</a>&nbsp;  <a href="#anchor15">10.</a>&nbsp;
522  Acknowledgments<br />  Acknowledgments<br />
523  <a href="#rfc.references1">10.</a>&nbsp;  <a href="#rfc.references1">11.</a>&nbsp;
524  References<br />  References<br />
525  <a href="#rfc.authors">&#167;</a>&nbsp;  <a href="#rfc.authors">&#167;</a>&nbsp;
526  Author's Address<br />  Author's Address<br />
# Line 320  Intellectual Property and Copyright Stat Line 530  Intellectual Property and Copyright Stat
530  <br clear="all" />  <br clear="all" />
531    
532  <a name="anchor1"></a><br /><hr />  <a name="anchor1"></a><br /><hr />
533  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
534  <a name="rfc.section.1"></a><h3>1.&nbsp;Requirements notation</h3>  <a name="rfc.section.1"></a><h3>1.&nbsp;
535    Requirements notation</h3>
536    
537  <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",  <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
538              "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",              "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
539              and "OPTIONAL" in this document are to be interpreted as              and "OPTIONAL" in this document are to be interpreted as
540              described in <a class="info" href="#RFC2119">[RFC2119]<span>Bradner, S., Key words for use in RFCs to Indicate Requirement Levels, March 1997.</span></a>.              described in <a class='info' href='#RFC2119'>[RFC2119]<span> (</span><span class='info'>Bradner, S., &ldquo;Key words for use in RFCs to Indicate Requirement Levels,&rdquo; 1997.</span><span>)</span></a>.
541  </p>  </p>
542  <p>This protocol is always case-sensitive if not explicitly  <p>This protocol is always case-sensitive if not explicitly
543              claimed the opposite.              claimed the opposite.
# Line 335  Intellectual Property and Copyright Stat Line 546  Intellectual Property and Copyright Stat
546              (front-end) and server (LinuxSampler) respectively. Lines in              (front-end) and server (LinuxSampler) respectively. Lines in
547              examples must be interpreted as every line being CRLF              examples must be interpreted as every line being CRLF
548              terminated (carriage return character followed by line feed              terminated (carriage return character followed by line feed
549              character as defined in the ASCII standard), thus the following              character as defined in the ASCII standard <a class='info' href='#RFC20'>[RFC20]<span> (</span><span class='info'>UCLA, &ldquo;ASCII format for Network Interchange,&rdquo; 1969.</span><span>)</span></a>),
550              example:              thus the following example:
551  </p>  </p>
552  <p></p>  <p>
553                    </p>
554  <blockquote class="text">  <blockquote class="text">
555  <p>C: "some line"  <p>C: "some line"
556  </p>  </p>
557  <p>&nbsp;&nbsp;&nbsp;"another line"  <p>&nbsp;&nbsp;&nbsp;"another line"
558  </p>  </p>
559  </blockquote>  </blockquote><p>
560                
561    </p>
562  <p>must actually be interpreted as client sending the following  <p>must actually be interpreted as client sending the following
563              message:              message:
564  </p>  </p>
565  <p></p>  <p>
566                    </p>
567  <blockquote class="text">  <blockquote class="text">
568  <p>"some line&lt;CR&gt;&lt;LF&gt;another  <p>"some line&lt;CR&gt;&lt;LF&gt;another
569                      line&lt;CR&gt;&lt;LF&gt;"                      line&lt;CR&gt;&lt;LF&gt;"
570  </p>  </p>
571  </blockquote>  </blockquote><p>
572                
573    </p>
574  <p>where &lt;CR&gt; symbolizes the carriage return character and  <p>where &lt;CR&gt; symbolizes the carriage return character and
575              &lt;LF&gt; the line feed character as defined in the ASCII              &lt;LF&gt; the line feed character as defined in the ASCII
576              standard.              standard.
# Line 363  Intellectual Property and Copyright Stat Line 578  Intellectual Property and Copyright Stat
578  <p>Due to technical reasons, messages can arbitrary be  <p>Due to technical reasons, messages can arbitrary be
579              fragmented, means the following example:              fragmented, means the following example:
580  </p>  </p>
581  <p></p>  <p>
582                    </p>
583  <blockquote class="text">  <blockquote class="text">
584  <p>S: "abcd"  <p>S: "abcd"
585  </p>  </p>
586  </blockquote>  </blockquote><p>
587                
588    </p>
589  <p>could also happen to be sent in three messages like in the  <p>could also happen to be sent in three messages like in the
590              following sequence scenario:              following sequence scenario:
591  </p>  </p>
592  <p></p>  <p>
593                    </p>
594  <ul class="text">  <ul class="text">
595  <li>server sending message "a"  <li>server sending message "a"
596  </li>  </li>
# Line 388  Intellectual Property and Copyright Stat Line 606  Intellectual Property and Copyright Stat
606  <li>followed by server sending the message  <li>followed by server sending the message
607                      "&lt;LF&gt;"                      "&lt;LF&gt;"
608  </li>  </li>
609  </ul>  </ul><p>
610                
611    </p>
612  <p>where again &lt;CR&gt; and &lt;LF&gt; symbolize the carriage  <p>where again &lt;CR&gt; and &lt;LF&gt; symbolize the carriage
613              return and line feed characters respectively.              return and line feed characters respectively.
614  </p>  </p>
615    <a name="LSCP versioning"></a><br /><hr />
616    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
617    <a name="rfc.section.2"></a><h3>2.&nbsp;
618    Versioning of this specification</h3>
619    
620    <p>LSCP will certainly be extended and enhanced by-and-by. Each official
621                release of the LSCP specification will be tagged with a unique version
622                tuple. The version tuple consists at least of a major and minor version
623                number like:
624                
625    </p>
626    <p>
627                    </p>
628    <blockquote class="text">
629    <p>"1.2"
630    </p>
631    </blockquote><p>
632                
633    </p>
634    <p>
635                In this example the major version number would be "1" and the minor
636                version number would be "2". Note that the version tuple might also
637                have more than two elements. The major version number defines a
638                group of backward compatible versions. That means a frontend is
639                compatible to the connected sampler if and only if the LSCP versions
640                to which each of the two parties complies to, match both of the
641                following rules:
642                
643    </p>
644    <p>Compatibility:
645    </p>
646    <p>
647                    </p>
648    <ol class="text">
649    <li>The frontend's LSCP major version and the sampler's LSCP
650                        major version are exactly equal.
651    </li>
652    <li>The frontend's LSCP minor version is less or equal than
653                        the sampler's LSCP minor version.
654    </li>
655    </ol><p>
656                
657    </p>
658    <p>
659                Compatibility can only be claimed if both rules are true.
660                The frontend can use the
661                <a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a> command to
662                get the version of the LSCP specification the sampler complies with.
663                
664    </p>
665  <a name="anchor2"></a><br /><hr />  <a name="anchor2"></a><br /><hr />
666  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
667  <a name="rfc.section.2"></a><h3>2.&nbsp;Introduction</h3>  <a name="rfc.section.3"></a><h3>3.&nbsp;
668    Introduction</h3>
669    
670  <p>LinuxSampler is a so called software sampler application  <p>LinuxSampler is a so called software sampler application
671              capable to playback audio samples from a computer's Random              capable to playback audio samples from a computer's Random
# Line 408  Intellectual Property and Copyright Stat Line 678  Intellectual Property and Copyright Stat
678              arbitrary MIDI input method and arbitrary MIDI channel (e.g.              arbitrary MIDI input method and arbitrary MIDI channel (e.g.
679              sampler channel 17 could be connected to an ALSA sequencer              sampler channel 17 could be connected to an ALSA sequencer
680              device 64:0 and listening to MIDI channel 1 there). Each sampler              device 64:0 and listening to MIDI channel 1 there). Each sampler
681              engine will be assigned an own instance of one of the available              channel will be associated with an instance of one of the available
682              sampler engines (e.g. GigEngine, DLSEngine). The audio output of              sampler engines (e.g. GigEngine, DLSEngine). The audio output of
683              each sampler channel can be routed to an arbitrary audio output              each sampler channel can be routed to an arbitrary audio output
684              method (ALSA / JACK) and an arbitrary audio output channel              method (ALSA / JACK) and an arbitrary audio output channel
685              there.              there.
686  </p>  </p>
687  <a name="anchor3"></a><br /><hr />  <a name="anchor3"></a><br /><hr />
688  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
689  <a name="rfc.section.3"></a><h3>3.&nbsp;Focus of this protocol</h3>  <a name="rfc.section.4"></a><h3>4.&nbsp;
690    Focus of this protocol</h3>
691    
692  <p>Main focus of this protocol is to provide a way to configure  <p>Main focus of this protocol is to provide a way to configure
693              a running LinuxSampler instance and to retrieve information              a running LinuxSampler instance and to retrieve information
# Line 427  Intellectual Property and Copyright Stat Line 698  Intellectual Property and Copyright Stat
698              via MIDI System Exclusive Messages.              via MIDI System Exclusive Messages.
699  </p>  </p>
700  <a name="anchor4"></a><br /><hr />  <a name="anchor4"></a><br /><hr />
701  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
702  <a name="rfc.section.4"></a><h3>4.&nbsp;Communication Overview</h3>  <a name="rfc.section.5"></a><h3>5.&nbsp;
703    Communication Overview</h3>
704    
705  <p>There are two distinct methods of communication between a  <p>There are two distinct methods of communication between a
706              running instance of LinuxSampler and one or more control              running instance of LinuxSampler and one or more control
# Line 441  Intellectual Property and Copyright Stat Line 713  Intellectual Property and Copyright Stat
713              implemented in the front-end application. The two communication              implemented in the front-end application. The two communication
714              methods will be described next.              methods will be described next.
715  </p>  </p>
716  <a name="rfc.section.4.1"></a><h4><a name="anchor5">4.1</a>&nbsp;Request/response communication method</h4>  <a name="anchor5"></a><br /><hr />
717    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
718    <a name="rfc.section.5.1"></a><h3>5.1.&nbsp;
719    Request/response communication method</h3>
720    
721  <p>This simple communication method is based on TCP. The  <p>This simple communication method is based on
722                    <a class='info' href='#RFC793'>TCP<span> (</span><span class='info'>Defense Advanced Research Projects Agency, &ldquo;TRANSMISSION CONTROL PROTOCOL,&rdquo; 1981.</span><span>)</span></a> [RFC793]. The
723                  front-end application establishes a TCP connection to the                  front-end application establishes a TCP connection to the
724                  LinuxSampler instance on a certain host system. Then the                  LinuxSampler instance on a certain host system. Then the
725                  front-end application will send certain ASCII based commands                  front-end application will send certain ASCII based commands
# Line 483  Intellectual Property and Copyright Stat Line 759  Intellectual Property and Copyright Stat
759                  processed in the order they were received and result sets                  processed in the order they were received and result sets
760                  MUST be sent back in the same order.                  MUST be sent back in the same order.
761  </p>  </p>
762  <a name="rfc.section.4.1.1"></a><h4><a name="anchor6">4.1.1</a>&nbsp;Result format</h4>  <a name="anchor6"></a><br /><hr />
763    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
764    <a name="rfc.section.5.1.1"></a><h3>5.1.1.&nbsp;
765    Result format</h3>
766    
767  <p>Result set could be one of the following types:  <p>Result set could be one of the following types:
768  </p>  </p>
769  <p></p>  <p>
770                            </p>
771  <ol class="text">  <ol class="text">
772  <li>Normal  <li>Normal
773  </li>  </li>
# Line 495  Intellectual Property and Copyright Stat Line 775  Intellectual Property and Copyright Stat
775  </li>  </li>
776  <li>Error  <li>Error
777  </li>  </li>
778  </ol>  </ol><p>
779                        
780    </p>
781  <p>Warning and Error result sets MUST be single line and  <p>Warning and Error result sets MUST be single line and
782                      have the following format:                      have the following format:
783  </p>  </p>
784  <p></p>  <p>
785                            </p>
786  <ul class="text">  <ul class="text">
787  <li>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;"  <li>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;"
788  </li>  </li>
789  <li>"ERR:&lt;error-code&gt;:&lt;error-message&gt;"  <li>"ERR:&lt;error-code&gt;:&lt;error-message&gt;"
790  </li>  </li>
791  </ul>  </ul><p>
792                        
793    </p>
794  <p>Where &lt;warning-code&gt; and &lt;error-code&gt; are  <p>Where &lt;warning-code&gt; and &lt;error-code&gt; are
795                      numeric unique identifiers of the warning or error and                      numeric unique identifiers of the warning or error and
796                      &lt;warning-message&gt; and &lt;error-message&gt; are                      &lt;warning-message&gt; and &lt;error-message&gt; are
# Line 516  Intellectual Property and Copyright Stat Line 799  Intellectual Property and Copyright Stat
799  </p>  </p>
800  <p>Examples:  <p>Examples:
801  </p>  </p>
802  <p></p>  <p>
803                            </p>
804  <blockquote class="text">  <blockquote class="text">
805  <p>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0  <p>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0
806  </p>  </p>
807  <p>S: "WRN:32:This is a 24 bit patch which is not supported natively yet."  <p>S: "WRN:32:This is a 24 bit patch which is not supported natively yet."
808  </p>  </p>
809  </blockquote>  </blockquote><p>
810                        
811  <p></p>  </p>
812    <p>
813                            </p>
814  <blockquote class="text">  <blockquote class="text">
815  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"
816  </p>  </p>
817  <p>S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter 'EAR'."  <p>S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter 'EAR'."
818  </p>  </p>
819  </blockquote>  </blockquote><p>
820                        
821  <p></p>  </p>
822    <p>
823                            </p>
824  <blockquote class="text">  <blockquote class="text">
825  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"
826  </p>  </p>
827  <p>S: "ERR:9:There is no audio output device with index 123456."  <p>S: "ERR:9:There is no audio output device with index 123456."
828  </p>  </p>
829  </blockquote>  </blockquote><p>
830                        
831    </p>
832  <p>Normal result sets could be:  <p>Normal result sets could be:
833  </p>  </p>
834  <p></p>  <p>
835                            </p>
836  <ol class="text">  <ol class="text">
837  <li>Empty  <li>Empty
838  </li>  </li>
# Line 550  Intellectual Property and Copyright Stat Line 840  Intellectual Property and Copyright Stat
840  </li>  </li>
841  <li>Multi-line  <li>Multi-line
842  </li>  </li>
843  </ol>  </ol><p>
844                        
845    </p>
846  <p> Empty result set is issued when the server only  <p> Empty result set is issued when the server only
847                      needed to acknowledge the fact that the request was                      needed to acknowledge the fact that the request was
848                      received and it was processed successfully and no                      received and it was processed successfully and no
849                      additional information is available. This result set has                      additional information is available. This result set has
850                      the following format:                      the following format:
851  </p>  </p>
852  <p></p>  <p>
853                            </p>
854  <blockquote class="text">  <blockquote class="text">
855  <p>"OK"  <p>"OK"
856  </p>  </p>
857  </blockquote>  </blockquote><p>
858                        
859    </p>
860  <p>Example:  <p>Example:
861  </p>  </p>
862  <p></p>  <p>
863                            </p>
864  <blockquote class="text">  <blockquote class="text">
865  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"
866  </p>  </p>
867  <p>S: "OK"  <p>S: "OK"
868  </p>  </p>
869  </blockquote>  </blockquote><p>
870                        
871    </p>
872  <p>Single line result sets are command specific. One  <p>Single line result sets are command specific. One
873                      example of a single line result set is an empty line.                      example of a single line result set is an empty line.
874                      Multi-line result sets are command specific and may                      Multi-line result sets are command specific and may
875                      include one or more lines of information. They MUST                      include one or more lines of information. They MUST
876                      always end with the following line:                      always end with the following line:
877  </p>  </p>
878  <p></p>  <p>
879                            </p>
880  <blockquote class="text">  <blockquote class="text">
881  <p>"."  <p>"."
882  </p>  </p>
883  </blockquote>  </blockquote><p>
884                        
885    </p>
886  <p>Example:  <p>Example:
887  </p>  </p>
888  <p></p>  <p>
889                            </p>
890  <blockquote class="text">  <blockquote class="text">
891  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
892  </p>  </p>
# Line 608  Intellectual Property and Copyright Stat Line 906  Intellectual Property and Copyright Stat
906  </p>  </p>
907  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
908  </p>  </p>
909  </blockquote>  </blockquote><p>
910                        
911    </p>
912  <p>In addition to above mentioned formats, warnings and  <p>In addition to above mentioned formats, warnings and
913                      empty result sets MAY be indexed. In this case, they                      empty result sets MAY be indexed. In this case, they
914                      have the following formats respectively:                      have the following formats respectively:
915  </p>  </p>
916  <p></p>  <p>
917                            </p>
918  <ul class="text">  <ul class="text">
919  <li>"WRN[&lt;index&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;"  <li>"WRN[&lt;index&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;"
920  </li>  </li>
921  <li>"OK[&lt;index&gt;]"  <li>"OK[&lt;index&gt;]"
922  </li>  </li>
923  </ul>  </ul><p>
924                        
925    </p>
926  <p>where &lt;index&gt; is command specific and is used  <p>where &lt;index&gt; is command specific and is used
927                      to indicate channel number that the result set was                      to indicate channel number that the result set was
928                      related to or other integer value.                      related to or other integer value.
# Line 631  Intellectual Property and Copyright Stat Line 932  Intellectual Property and Copyright Stat
932  </p>  </p>
933  <p>Examples:  <p>Examples:
934  </p>  </p>
935  <p></p>  <p>
936                            </p>
937  <blockquote class="text">  <blockquote class="text">
938  <p>C: "ADD CHANNEL"  <p>C: "ADD CHANNEL"
939  </p>  </p>
940  <p>S: "OK[12]"  <p>S: "OK[12]"
941  </p>  </p>
942  </blockquote>  </blockquote><p>
943                        
944  <p></p>  </p>
945    <p>
946                            </p>
947  <blockquote class="text">  <blockquote class="text">
948  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"
949  </p>  </p>
950  <p>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."  <p>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
951  </p>  </p>
952  </blockquote>  </blockquote><p>
953                        
954  <a name="rfc.section.4.2"></a><h4><a name="anchor7">4.2</a>&nbsp;Subscribe/notify communication method</h4>  </p>
955    <a name="anchor7"></a><br /><hr />
956    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
957    <a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
958    Subscribe/notify communication method</h3>
959    
960  <p>This more sophisticated communication method is actually  <p>This more sophisticated communication method is actually
961                  only an extension of the simple request/response                  only an extension of the simple request/response
# Line 659  Intellectual Property and Copyright Stat Line 967  Intellectual Property and Copyright Stat
967                  as they happen on the server. The SUBSCRIBE command has the                  as they happen on the server. The SUBSCRIBE command has the
968                  following syntax:                  following syntax:
969  </p>  </p>
970  <p></p>  <p>
971                        </p>
972  <blockquote class="text">  <blockquote class="text">
973  <p>SUBSCRIBE &lt;event-id&gt;  <p>SUBSCRIBE &lt;event-id&gt;
974  </p>  </p>
975  </blockquote>  </blockquote><p>
976                    
977    </p>
978  <p>where &lt;event-id&gt; will be replaced by the respective  <p>where &lt;event-id&gt; will be replaced by the respective
979                  event that client wants to subscribe to. Upon receiving such                  event that client wants to subscribe to. Upon receiving such
980                  request, server SHOULD respond with OK and start sending                  request, server SHOULD respond with OK and start sending
# Line 674  Intellectual Property and Copyright Stat Line 984  Intellectual Property and Copyright Stat
984                  time nature of their generation. Event messages have the                  time nature of their generation. Event messages have the
985                  following format:                  following format:
986  </p>  </p>
987  <p></p>  <p>
988                        </p>
989  <blockquote class="text">  <blockquote class="text">
990  <p>NOTIFY:&lt;event-id&gt;:&lt;custom-event-data&gt;  <p>NOTIFY:&lt;event-id&gt;:&lt;custom-event-data&gt;
991  </p>  </p>
992  </blockquote>  </blockquote><p>
993                    
994    </p>
995  <p>where &lt;event-id&gt; uniquely identifies the event that  <p>where &lt;event-id&gt; uniquely identifies the event that
996                  has occurred and &lt;custom-event-data&gt; is event                  has occurred and &lt;custom-event-data&gt; is event
997                  specific.                  specific.
# Line 687  Intellectual Property and Copyright Stat Line 999  Intellectual Property and Copyright Stat
999  <p>Several rules must be followed by the server when  <p>Several rules must be followed by the server when
1000                  generating events:                  generating events:
1001  </p>  </p>
1002  <p></p>  <p>
1003                        </p>
1004  <ol class="text">  <ol class="text">
1005  <li>Events MUST NOT be sent to any client who has not  <li>Events MUST NOT be sent to any client who has not
1006                          issued an appropriate SUBSCRIBE command.                          issued an appropriate SUBSCRIBE command.
# Line 702  Intellectual Property and Copyright Stat Line 1015  Intellectual Property and Copyright Stat
1015                          middle of the event message as well as any other                          middle of the event message as well as any other
1016                          response.                          response.
1017  </li>  </li>
1018  </ol>  </ol><p>
1019                    
1020    </p>
1021  <p>If the client is not interested in a particular event  <p>If the client is not interested in a particular event
1022                  anymore it MAY issue UNSUBSCRIBE command using the following                  anymore it MAY issue UNSUBSCRIBE command using the following
1023                  syntax:                  syntax:
1024  </p>  </p>
1025  <p></p>  <p>
1026                        </p>
1027  <blockquote class="text">  <blockquote class="text">
1028  <p>UNSUBSCRIBE &lt;event-id&gt;  <p>UNSUBSCRIBE &lt;event-id&gt;
1029  </p>  </p>
1030  </blockquote>  </blockquote><p>
1031                    
1032    </p>
1033  <p>where &lt;event-id&gt; will be replace by the respective  <p>where &lt;event-id&gt; will be replace by the respective
1034                  event that client is no longer interested in receiving. For                  event that client is no longer interested in receiving. For
1035                  a list of supported events see <a class="info" href="#events">Section 7<span>Events</span></a>.                  a list of supported events see <a class='info' href='#events'>Section&nbsp;8<span> (</span><span class='info'>Events</span><span>)</span></a>.
1036  </p>  </p>
1037  <p>Example: the fill states of disk stream buffers have  <p>Example: the fill states of disk stream buffers have
1038                  changed on sampler channel 4 and the LinuxSampler instance                  changed on sampler channel 4 and the LinuxSampler instance
1039                  will react by sending the following message to all clients                  will react by sending the following message to all clients
1040                  who subscribed to this event:                  who subscribed to this event:
1041  </p>  </p>
1042  <p></p>  <p>
1043                        </p>
1044  <blockquote class="text">  <blockquote class="text">
1045  <p>NOTIFY:CHANNEL_BUFFER_FILL:4 [35]62%,[33]80%,[37]98%  <p>NOTIFY:CHANNEL_BUFFER_FILL:4 [35]62%,[33]80%,[37]98%
1046  </p>  </p>
1047  </blockquote>  </blockquote><p>
1048                    
1049    </p>
1050  <p>Which means there are currently three active streams on  <p>Which means there are currently three active streams on
1051                  sampler channel 4, where the stream with ID "35" is filled                  sampler channel 4, where the stream with ID "35" is filled
1052                  by 62%, stream with ID 33 is filled by 80% and stream with                  by 62%, stream with ID 33 is filled by 80% and stream with
# Line 759  Intellectual Property and Copyright Stat Line 1077  Intellectual Property and Copyright Stat
1077                  If client reconnects it MUST resubscribe to all events that                  If client reconnects it MUST resubscribe to all events that
1078                  it wants to receive.                  it wants to receive.
1079  </p>  </p>
1080  <a name="anchor8"></a><br /><hr />  <a name="control_commands"></a><br /><hr />
1081  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1082  <a name="rfc.section.5"></a><h3>5.&nbsp;Description for control commands</h3>  <a name="rfc.section.6"></a><h3>6.&nbsp;
1083    Description for control commands</h3>
1084    
1085  <p>This chapter will describe the available control commands  <p>This chapter will describe the available control commands
1086              that can be sent on the TCP connection in detail. Some certain              that can be sent on the TCP connection in detail. Some certain
1087              commands (e.g. <a class="info" href="#GET CHANNEL INFO">"GET CHANNEL INFO"<span>Getting sampler channel information</span></a>              commands (e.g. <a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
1088              or <a class="info" href="#GET ENGINE INFO">"GET ENGINE INFO"<span>Getting information about an engine</span></a>) lead to              or <a class='info' href='#GET ENGINE INFO'>"GET ENGINE INFO"<span> (</span><span class='info'>Getting information about an engine</span><span>)</span></a>) lead to
1089              multiple-line responses. In this case LinuxSampler signals the              multiple-line responses. In this case LinuxSampler signals the
1090              end of the response by a "." (single dot) line.              end of the response by a "." (single dot) line.
1091  </p>  </p>
1092  <a name="rfc.section.5.1"></a><h4><a name="anchor9">5.1</a>&nbsp;Ignored lines and comments</h4>  <a name="anchor8"></a><br /><hr />
1093    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1094    <a name="rfc.section.6.1"></a><h3>6.1.&nbsp;
1095    Ignored lines and comments</h3>
1096    
1097  <p>White lines, that is lines which only contain space and  <p>White lines, that is lines which only contain space and
1098                  tabulator characters, and lines that start with a "#"                  tabulator characters, and lines that start with a "#"
# Line 778  Intellectual Property and Copyright Stat Line 1100  Intellectual Property and Copyright Stat
1100                  group commands and to place comments in a LSCP script                  group commands and to place comments in a LSCP script
1101                  file.                  file.
1102  </p>  </p>
1103  <a name="rfc.section.5.2"></a><h4><a name="anchor10">5.2</a>&nbsp;Configuring audio drivers</h4>  <a name="anchor9"></a><br /><hr />
1104    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1105    <a name="rfc.section.6.2"></a><h3>6.2.&nbsp;
1106    Configuring audio drivers</h3>
1107    
1108  <p>Instances of drivers in LinuxSampler are called devices.  <p>Instances of drivers in LinuxSampler are called devices.
1109                  You can use multiple audio devices simultaneously, e.g. to                  You can use multiple audio devices simultaneously, e.g. to
# Line 811  Intellectual Property and Copyright Stat Line 1136  Intellectual Property and Copyright Stat
1136                  what parameters drivers are offering, how to retrieve their                  what parameters drivers are offering, how to retrieve their
1137                  possible values, etc.                  possible values, etc.
1138  </p>  </p>
1139  <a name="rfc.section.5.2.1"></a><h4><a name="GET AVAILABLE_AUDIO_OUTPUT_DRIVERS">5.2.1</a>&nbsp;Getting amount of available audio output drivers</h4>  <a name="GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"></a><br /><hr />
1140    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1141    <a name="rfc.section.6.2.1"></a><h3>6.2.1.&nbsp;
1142    Getting amount of available audio output drivers</h3>
1143    
1144  <p>Use the following command to get the number of  <p>Use the following command to get the number of
1145                      audio output drivers currently available for the                      audio output drivers currently available for the
1146                      LinuxSampler instance:                      LinuxSampler instance:
1147  </p>  </p>
1148  <p></p>  <p>
1149                            </p>
1150  <blockquote class="text">  <blockquote class="text">
1151  <p>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS  <p>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
1152  </p>  </p>
1153  </blockquote>  </blockquote><p>
1154                        
1155    </p>
1156  <p>Possible Answers:  <p>Possible Answers:
1157  </p>  </p>
1158  <p></p>  <p>
1159                            </p>
1160  <blockquote class="text">  <blockquote class="text">
1161  <p>LinuxSampler will answer by sending the  <p>LinuxSampler will answer by sending the
1162                              number of audio output drivers.                              number of audio output drivers.
1163  </p>  </p>
1164  </blockquote>  </blockquote><p>
1165                        
1166    </p>
1167  <p>Example:  <p>Example:
1168  </p>  </p>
1169  <p></p>  <p>
1170                            </p>
1171  <blockquote class="text">  <blockquote class="text">
1172  <p>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"  <p>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1173  </p>  </p>
1174  <p>S: "2"  <p>S: "2"
1175  </p>  </p>
1176  </blockquote>  </blockquote><p>
1177                        
1178  <a name="rfc.section.5.2.2"></a><h4><a name="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">5.2.2</a>&nbsp;Getting all available audio output drivers</h4>  </p>
1179    <a name="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"></a><br /><hr />
1180    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1181    <a name="rfc.section.6.2.2"></a><h3>6.2.2.&nbsp;
1182    Getting all available audio output drivers</h3>
1183    
1184  <p>Use the following command to list all audio output  <p>Use the following command to list all audio output
1185                      drivers currently available for the LinuxSampler                      drivers currently available for the LinuxSampler
1186                      instance:                      instance:
1187  </p>  </p>
1188  <p></p>  <p>
1189                            </p>
1190  <blockquote class="text">  <blockquote class="text">
1191  <p>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS  <p>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS
1192  </p>  </p>
1193  </blockquote>  </blockquote><p>
1194                        
1195    </p>
1196  <p>Possible Answers:  <p>Possible Answers:
1197  </p>  </p>
1198  <p></p>  <p>
1199                            </p>
1200  <blockquote class="text">  <blockquote class="text">
1201  <p>LinuxSampler will answer by sending comma  <p>LinuxSampler will answer by sending comma
1202                              separated character strings, each symbolizing an                              separated character strings, each symbolizing an
1203                              audio output driver.                              audio output driver.
1204  </p>  </p>
1205  </blockquote>  </blockquote><p>
1206                        
1207    </p>
1208  <p>Example:  <p>Example:
1209  </p>  </p>
1210  <p></p>  <p>
1211                            </p>
1212  <blockquote class="text">  <blockquote class="text">
1213  <p>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"  <p>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1214  </p>  </p>
1215  <p>S: "ALSA,JACK"  <p>S: "ALSA,JACK"
1216  </p>  </p>
1217  </blockquote>  </blockquote><p>
1218                        
1219  <a name="rfc.section.5.2.3"></a><h4><a name="GET AUDIO_OUTPUT_DRIVER INFO">5.2.3</a>&nbsp;Getting information about a specific audio  </p>
1220                  output driver</h4>  <a name="GET AUDIO_OUTPUT_DRIVER INFO"></a><br /><hr />
1221    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1222    <a name="rfc.section.6.2.3"></a><h3>6.2.3.&nbsp;
1223    Getting information about a specific audio
1224                    output driver</h3>
1225    
1226  <p>Use the following command to get detailed information  <p>Use the following command to get detailed information
1227                      about a specific audio output driver:                      about a specific audio output driver:
1228  </p>  </p>
1229  <p></p>  <p>
1230                            </p>
1231  <blockquote class="text">  <blockquote class="text">
1232  <p>GET AUDIO_OUTPUT_DRIVER INFO  <p>GET AUDIO_OUTPUT_DRIVER INFO
1233                               &lt;audio-output-driver&gt;                               &lt;audio-output-driver&gt;
1234  </p>  </p>
1235  </blockquote>  </blockquote><p>
1236                        
1237    </p>
1238  <p>Where &lt;audio-output-driver&gt; is the name of the  <p>Where &lt;audio-output-driver&gt; is the name of the
1239                      audio output driver, returned by the                      audio output driver, returned by the
1240                      <a class="info" href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span>Getting all available audio output drivers</span></a> command.                      <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a> command.
1241  </p>  </p>
1242  <p>Possible Answers:  <p>Possible Answers:
1243  </p>  </p>
1244  <p></p>  <p>
1245                            </p>
1246  <blockquote class="text">  <blockquote class="text">
1247  <p>LinuxSampler will answer by sending a  <p>LinuxSampler will answer by sending a
1248                              &lt;CRLF&gt; separated list. Each answer line                              &lt;CRLF&gt; separated list. Each answer line
# Line 904  Intellectual Property and Copyright Stat Line 1253  Intellectual Property and Copyright Stat
1253                              following information categories are                              following information categories are
1254                              defined:                              defined:
1255  </p>  </p>
1256  <p></p>  <p>
1257                                  </p>
1258  <blockquote class="text">  <blockquote class="text">
1259  <p>DESCRIPTION -  <p>DESCRIPTION -
1260                                      </p>                                      </p>
# Line 913  Intellectual Property and Copyright Stat Line 1263  Intellectual Property and Copyright Stat
1263                                        audio output driver                                        audio output driver
1264  </p>  </p>
1265  </blockquote>  </blockquote>
1266                                      
1267    
1268  <p>VERSION -  <p>VERSION -
1269                                      </p>                                      </p>
# Line 921  Intellectual Property and Copyright Stat Line 1272  Intellectual Property and Copyright Stat
1272                                        driver's version                                        driver's version
1273  </p>  </p>
1274  </blockquote>  </blockquote>
1275                                      
1276    
1277  <p>PARAMETERS -  <p>PARAMETERS -
1278                                      </p>                                      </p>
# Line 933  Intellectual Property and Copyright Stat Line 1285  Intellectual Property and Copyright Stat
1285                                        output drivers                                        output drivers
1286  </p>  </p>
1287  </blockquote>  </blockquote>
1288                                      
1289    
1290  </blockquote>  </blockquote>
1291                                
1292    
1293  <p>The mentioned fields above don't have to be  <p>The mentioned fields above don't have to be
1294                              in particular order.                              in particular order.
1295  </p>  </p>
1296  </blockquote>  </blockquote><p>
1297                        
1298    </p>
1299  <p>Example:  <p>Example:
1300  </p>  </p>
1301  <p></p>  <p>
1302                          </p>
1303  <blockquote class="text">  <blockquote class="text">
1304  <p>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"  <p>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"
1305  </p>  </p>
# Line 958  Intellectual Property and Copyright Stat Line 1314  Intellectual Property and Copyright Stat
1314  </p>  </p>
1315  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1316  </p>  </p>
1317  </blockquote>  </blockquote><p>
1318                        
1319  <a name="rfc.section.5.2.4"></a><h4><a name="GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO">5.2.4</a>&nbsp;Getting information about specific audio  </p>
1320                  output driver parameter</h4>  <a name="GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
1321    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1322    <a name="rfc.section.6.2.4"></a><h3>6.2.4.&nbsp;
1323    Getting information about specific audio
1324                    output driver parameter</h3>
1325    
1326  <p>Use the following command to get detailed information  <p>Use the following command to get detailed information
1327                      about a  specific audio output driver parameter:                      about a  specific audio output driver parameter:
1328  </p>  </p>
1329  <p></p>  <p>
1330                            </p>
1331  <blockquote class="text">  <blockquote class="text">
1332  <p>GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO &lt;audio&gt; &lt;prm&gt; [&lt;deplist&gt;]  <p>GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO &lt;audio&gt; &lt;prm&gt; [&lt;deplist&gt;]
1333  </p>  </p>
1334  </blockquote>  </blockquote><p>
1335                        
1336    </p>
1337  <p>Where &lt;audio&gt; is the name of the audio output  <p>Where &lt;audio&gt; is the name of the audio output
1338                      driver as returned by the <a class="info" href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span>Getting all available audio output drivers</span></a> command,                      driver as returned by the <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a> command,
1339                      &lt;prm&gt; a specific parameter name for which information should be                      &lt;prm&gt; a specific parameter name for which information should be
1340                      obtained (as returned by the                      obtained (as returned by the
1341                      <a class="info" href="#GET AUDIO_OUTPUT_DRIVER INFO">"GET AUDIO_OUTPUT_DRIVER INFO"<span>Getting information about a specific audio                 output driver</span></a> command) and                      <a class='info' href='#GET AUDIO_OUTPUT_DRIVER INFO'>"GET AUDIO_OUTPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific audio                 output driver</span><span>)</span></a> command) and
1342                      &lt;deplist&gt; is an optional list of parameters on which the sought                      &lt;deplist&gt; is an optional list of parameters on which the sought
1343                      parameter &lt;prm&gt; depends on, &lt;deplist&gt; is a list of key-value                      parameter &lt;prm&gt; depends on, &lt;deplist&gt; is a list of key-value
1344                      pairs in form of "key1=val1 key2=val2 ...", where character string values                      pairs in form of "key1=val1 key2=val2 ...", where character string values
# Line 987  Intellectual Property and Copyright Stat Line 1349  Intellectual Property and Copyright Stat
1349  </p>  </p>
1350  <p>Possible Answers:  <p>Possible Answers:
1351  </p>  </p>
1352  <p></p>  <p>
1353                            </p>
1354  <blockquote class="text">  <blockquote class="text">
1355  <p>LinuxSampler will answer by sending a  <p>LinuxSampler will answer by sending a
1356                              &lt;CRLF&gt; separated list.                              &lt;CRLF&gt; separated list.
# Line 1000  Intellectual Property and Copyright Stat Line 1363  Intellectual Property and Copyright Stat
1363                              which is only shown dependently to given driver parameter. At                              which is only shown dependently to given driver parameter. At
1364                              the moment the following information categories are defined:                              the moment the following information categories are defined:
1365  </p>  </p>
1366  </blockquote>  </blockquote><p>
1367                        
1368  <p></p>  </p>
1369    <p>
1370                            </p>
1371  <blockquote class="text">  <blockquote class="text">
1372  <p>TYPE -  <p>TYPE -
1373                                </p>                                </p>
# Line 1014  Intellectual Property and Copyright Stat Line 1379  Intellectual Property and Copyright Stat
1379                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1380  </p>  </p>
1381  </blockquote>  </blockquote>
1382                                
1383    
1384  <p>DESCRIPTION -  <p>DESCRIPTION -
1385                                </p>                                </p>
# Line 1022  Intellectual Property and Copyright Stat Line 1388  Intellectual Property and Copyright Stat
1388                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1389  </p>  </p>
1390  </blockquote>  </blockquote>
1391                                
1392    
1393  <p>MANDATORY -  <p>MANDATORY -
1394                                </p>                                </p>
1395  <blockquote class="text">  <blockquote class="text">
1396  <p>either true or false, defines if this parameter must be  <p>either true or false, defines if this parameter must be
1397                                  given when the device is to be created with the                                  given when the device is to be created with the
1398                                  <a class="info" href="#CREATE AUDIO_OUTPUT_DEVICE">'CREATE AUDIO_OUTPUT_DEVICE'<span>Creating an audio output device</span></a>                                  <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1399                                  command (always returned, no matter which driver parameter)                                  command (always returned, no matter which driver parameter)
1400  </p>  </p>
1401  </blockquote>  </blockquote>
1402                                
1403    
1404  <p>FIX -  <p>FIX -
1405                                </p>                                </p>
1406  <blockquote class="text">  <blockquote class="text">
1407  <p>either true or false, if false then this parameter can  <p>either true or false, if false then this parameter can
1408                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
1409                                  the <a class="info" href="#CREATE AUDIO_OUTPUT_DEVICE">'CREATE AUDIO_OUTPUT_DEVICE'<span>Creating an audio output device</span></a>                                  the <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1410                                  command (always returned, no matter which driver parameter)                                  command (always returned, no matter which driver parameter)
1411  </p>  </p>
1412  </blockquote>  </blockquote>
1413                                
1414    
1415  <p>MULTIPLICITY -  <p>MULTIPLICITY -
1416                                </p>                                </p>
# Line 1052  Intellectual Property and Copyright Stat Line 1421  Intellectual Property and Copyright Stat
1421                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1422  </p>  </p>
1423  </blockquote>  </blockquote>
1424                                
1425    
1426  <p>DEPENDS -  <p>DEPENDS -
1427                                </p>                                </p>
# Line 1068  Intellectual Property and Copyright Stat Line 1438  Intellectual Property and Copyright Stat
1438                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1439  </p>  </p>
1440  </blockquote>  </blockquote>
1441                                
1442    
1443  <p>DEFAULT -  <p>DEFAULT -
1444                                </p>                                </p>
1445  <blockquote class="text">  <blockquote class="text">
1446  <p>reflects the default value for this parameter which is  <p>reflects the default value for this parameter which is
1447                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
1448                                  given with the <a class="info" href="#CREATE AUDIO_OUTPUT_DEVICE">'CREATE AUDIO_OUTPUT_DEVICE'<span>Creating an audio output device</span></a> command,                                  given with the <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>'CREATE AUDIO_OUTPUT_DEVICE'<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a> command,
1449                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
1450                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
1451                                  apostrophes (')                                  apostrophes (')
1452                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1453  </p>  </p>
1454  </blockquote>  </blockquote>
1455                                
1456    
1457  <p>RANGE_MIN -  <p>RANGE_MIN -
1458                                </p>                                </p>
# Line 1092  Intellectual Property and Copyright Stat Line 1464  Intellectual Property and Copyright Stat
1464                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1465  </p>  </p>
1466  </blockquote>  </blockquote>
1467                                
1468    
1469  <p>RANGE_MAX -  <p>RANGE_MAX -
1470                                </p>                                </p>
# Line 1103  Intellectual Property and Copyright Stat Line 1476  Intellectual Property and Copyright Stat
1476                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1477  </p>  </p>
1478  </blockquote>  </blockquote>
1479                                
1480    
1481  <p>POSSIBILITIES -  <p>POSSIBILITIES -
1482                                </p>                                </p>
# Line 1113  Intellectual Property and Copyright Stat Line 1487  Intellectual Property and Copyright Stat
1487                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1488  </p>  </p>
1489  </blockquote>  </blockquote>
1490                                
1491    
1492  </blockquote>  </blockquote><p>
1493                        
1494    </p>
1495  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
1496  </p>  </p>
1497  <p>Examples:  <p>Examples:
1498  </p>  </p>
1499  <p></p>  <p>
1500                            </p>
1501  <blockquote class="text">  <blockquote class="text">
1502  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"
1503  </p>  </p>
# Line 1140  Intellectual Property and Copyright Stat Line 1517  Intellectual Property and Copyright Stat
1517  </p>  </p>
1518  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1519  </p>  </p>
1520  </blockquote>  </blockquote><p>
1521                        
1522  <p></p>  </p>
1523    <p>
1524                            </p>
1525  <blockquote class="text">  <blockquote class="text">
1526  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"
1527  </p>  </p>
# Line 1162  Intellectual Property and Copyright Stat Line 1541  Intellectual Property and Copyright Stat
1541  </p>  </p>
1542  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1543  </p>  </p>
1544  </blockquote>  </blockquote><p>
1545                        
1546  <p></p>  </p>
1547    <p>
1548                            </p>
1549  <blockquote class="text">  <blockquote class="text">
1550  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE CARD='0,0'"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE CARD='0,0'"
1551  </p>  </p>
# Line 1188  Intellectual Property and Copyright Stat Line 1569  Intellectual Property and Copyright Stat
1569  </p>  </p>
1570  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1571  </p>  </p>
1572  </blockquote>  </blockquote><p>
1573                        
1574  <a name="rfc.section.5.2.5"></a><h4><a name="CREATE AUDIO_OUTPUT_DEVICE">5.2.5</a>&nbsp;Creating an audio output device</h4>  </p>
1575    <a name="CREATE AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1576    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1577    <a name="rfc.section.6.2.5"></a><h3>6.2.5.&nbsp;
1578    Creating an audio output device</h3>
1579    
1580  <p>Use the following command to create a new audio output device for  the desired audio output system:  <p>Use the following command to create a new audio output device for  the desired audio output system:
1581  </p>  </p>
1582  <p></p>  <p>
1583                            </p>
1584  <blockquote class="text">  <blockquote class="text">
1585  <p>CREATE AUDIO_OUTPUT_DEVICE &lt;audio-output-driver&gt; [&lt;param-list&gt;]  <p>CREATE AUDIO_OUTPUT_DEVICE &lt;audio-output-driver&gt; [&lt;param-list&gt;]
1586  </p>  </p>
1587  </blockquote>  </blockquote><p>
1588                        
1589    </p>
1590  <p>Where &lt;audio-output-driver&gt; should be replaced by the desired audio  <p>Where &lt;audio-output-driver&gt; should be replaced by the desired audio
1591                      output system and &lt;param-list&gt; by an optional list of driver                      output system as returned by the
1592                        <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a>
1593                        command and &lt;param-list&gt; by an optional list of driver
1594                      specific parameters in form of "key1=val1 key2=val2 ...", where                      specific parameters in form of "key1=val1 key2=val2 ...", where
1595                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
1596                      Note that there might be drivers which require parameter(s) to be                      Note that there might be drivers which require parameter(s) to be
# Line 1210  Intellectual Property and Copyright Stat Line 1599  Intellectual Property and Copyright Stat
1599  </p>  </p>
1600  <p>Possible Answers:  <p>Possible Answers:
1601  </p>  </p>
1602  <p></p>  <p>
1603                            </p>
1604  <blockquote class="text">  <blockquote class="text">
1605  <p>"OK[&lt;device-id&gt;]" -  <p>"OK[&lt;device-id&gt;]" -
1606                                  </p>                                  </p>
# Line 1219  Intellectual Property and Copyright Stat Line 1609  Intellectual Property and Copyright Stat
1609                                      &lt;device-id&gt; is the numerical ID of the new device                                      &lt;device-id&gt; is the numerical ID of the new device
1610  </p>  </p>
1611  </blockquote>  </blockquote>
1612                                
1613    
1614  <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1615                                  </p>                                  </p>
# Line 1231  Intellectual Property and Copyright Stat Line 1622  Intellectual Property and Copyright Stat
1622                                      warning message                                      warning message
1623  </p>  </p>
1624  </blockquote>  </blockquote>
1625                                
1626    
1627  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1628                                  </p>                                  </p>
# Line 1238  Intellectual Property and Copyright Stat Line 1630  Intellectual Property and Copyright Stat
1630  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
1631  </p>  </p>
1632  </blockquote>  </blockquote>
1633                                
1634    
1635  </blockquote>  </blockquote><p>
1636                        
1637    </p>
1638  <p>Examples:  <p>Examples:
1639  </p>  </p>
1640  <p></p>  <p>
1641                            </p>
1642  <blockquote class="text">  <blockquote class="text">
1643  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"
1644  </p>  </p>
1645  <p>S: "OK[0]"  <p>S: "OK[0]"
1646  </p>  </p>
1647  </blockquote>  </blockquote><p>
1648                        
1649  <p></p>  </p>
1650    <p>
1651                            </p>
1652  <blockquote class="text">  <blockquote class="text">
1653  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"
1654  </p>  </p>
1655  <p>S: "OK[1]"  <p>S: "OK[1]"
1656  </p>  </p>
1657  </blockquote>  </blockquote><p>
1658                        
1659  <a name="rfc.section.5.2.6"></a><h4><a name="DESTROY AUDIO_OUTPUT_DEVICE">5.2.6</a>&nbsp;Destroying an audio output device</h4>  </p>
1660    <a name="DESTROY AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1661    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1662    <a name="rfc.section.6.2.6"></a><h3>6.2.6.&nbsp;
1663    Destroying an audio output device</h3>
1664    
1665  <p>Use the following command to destroy a created output device:  <p>Use the following command to destroy a created output device:
1666  </p>  </p>
1667  <p></p>  <p>
1668                            </p>
1669  <blockquote class="text">  <blockquote class="text">
1670  <p>DESTROY AUDIO_OUTPUT_DEVICE &lt;device-id&gt;  <p>DESTROY AUDIO_OUTPUT_DEVICE &lt;device-id&gt;
1671  </p>  </p>
1672  </blockquote>  </blockquote><p>
1673                        
1674    </p>
1675  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1676                      audio output device as given by the                      audio output device as given by the
1677                      <a class="info" href="#CREATE AUDIO_OUTPUT_DEVICE">"CREATE AUDIO_OUTPUT_DEVICE"<span>Creating an audio output device</span></a>                      <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1678                      or <a class="info" href="#LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"<span>Getting all created audio output device list</span></a>                      or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
1679                      command.                      command.
1680  </p>  </p>
1681  <p>Possible Answers:  <p>Possible Answers:
1682  </p>  </p>
1683  <p></p>  <p>
1684                            </p>
1685  <blockquote class="text">  <blockquote class="text">
1686  <p>"OK" -  <p>"OK" -
1687                                  </p>                                  </p>
# Line 1285  Intellectual Property and Copyright Stat Line 1689  Intellectual Property and Copyright Stat
1689  <p>in case the device was successfully destroyed  <p>in case the device was successfully destroyed
1690  </p>  </p>
1691  </blockquote>  </blockquote>
1692                                
1693    
1694  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1695                                  </p>                                  </p>
# Line 1296  Intellectual Property and Copyright Stat Line 1701  Intellectual Property and Copyright Stat
1701                                      warning code and warning message                                      warning code and warning message
1702  </p>  </p>
1703  </blockquote>  </blockquote>
1704                                
1705    
1706  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1707                                  </p>                                  </p>
# Line 1304  Intellectual Property and Copyright Stat Line 1710  Intellectual Property and Copyright Stat
1710                                      error message                                      error message
1711  </p>  </p>
1712  </blockquote>  </blockquote>
1713                                
1714    
1715  </blockquote>  </blockquote><p>
1716                        
1717    </p>
1718  <p>Example:  <p>Example:
1719  </p>  </p>
1720  <p></p>  <p>
1721                            </p>
1722  <blockquote class="text">  <blockquote class="text">
1723  <p>C: "DESTROY AUDIO_OUTPUT_DEVICE 0"  <p>C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1724  </p>  </p>
1725  <p>S: "OK"  <p>S: "OK"
1726  </p>  </p>
1727  </blockquote>  </blockquote><p>
1728                        
1729  <a name="rfc.section.5.2.7"></a><h4><a name="GET AUDIO_OUTPUT_DEVICES">5.2.7</a>&nbsp;Getting all created audio output device count</h4>  </p>
1730    <a name="GET AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1731    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1732    <a name="rfc.section.6.2.7"></a><h3>6.2.7.&nbsp;
1733    Getting all created audio output device count</h3>
1734    
1735  <p>Use the following command to count all created audio output devices:  <p>Use the following command to count all created audio output devices:
1736  </p>  </p>
1737  <p></p>  <p>
1738                            </p>
1739  <blockquote class="text">  <blockquote class="text">
1740  <p>GET AUDIO_OUTPUT_DEVICES  <p>GET AUDIO_OUTPUT_DEVICES
1741  </p>  </p>
1742  </blockquote>  </blockquote><p>
1743                        
1744    </p>
1745  <p>Possible Answers:  <p>Possible Answers:
1746  </p>  </p>
1747  <p></p>  <p>
1748                            </p>
1749  <blockquote class="text">  <blockquote class="text">
1750  <p>LinuxSampler will answer by sending the current number of all  <p>LinuxSampler will answer by sending the current number of all
1751                              audio output devices.                              audio output devices.
1752  </p>  </p>
1753  </blockquote>  </blockquote><p>
1754                        
1755    </p>
1756  <p>Example:  <p>Example:
1757  </p>  </p>
1758  <p></p>  <p>
1759                            </p>
1760  <blockquote class="text">  <blockquote class="text">
1761  <p>C: "GET AUDIO_OUTPUT_DEVICES"  <p>C: "GET AUDIO_OUTPUT_DEVICES"
1762  </p>  </p>
1763  <p>S: "4"  <p>S: "4"
1764  </p>  </p>
1765  </blockquote>  </blockquote><p>
1766                        
1767  <a name="rfc.section.5.2.8"></a><h4><a name="LIST AUDIO_OUTPUT_DEVICES">5.2.8</a>&nbsp;Getting all created audio output device list</h4>  </p>
1768    <a name="LIST AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1769    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1770    <a name="rfc.section.6.2.8"></a><h3>6.2.8.&nbsp;
1771    Getting all created audio output device list</h3>
1772    
1773  <p>Use the following command to list all created audio output devices:  <p>Use the following command to list all created audio output devices:
1774  </p>  </p>
1775  <p></p>  <p>
1776                            </p>
1777  <blockquote class="text">  <blockquote class="text">
1778  <p>LIST AUDIO_OUTPUT_DEVICES  <p>LIST AUDIO_OUTPUT_DEVICES
1779  </p>  </p>
1780  </blockquote>  </blockquote><p>
1781                        
1782    </p>
1783  <p>Possible Answers:  <p>Possible Answers:
1784  </p>  </p>
1785  <p></p>  <p>
1786                            </p>
1787  <blockquote class="text">  <blockquote class="text">
1788  <p>LinuxSampler will answer by sending a comma separated list with  <p>LinuxSampler will answer by sending a comma separated list with
1789                              the numerical IDs of all audio output devices.                              the numerical IDs of all audio output devices.
1790  </p>  </p>
1791  </blockquote>  </blockquote><p>
1792                        
1793    </p>
1794  <p>Example:  <p>Example:
1795  </p>  </p>
1796  <p></p>  <p>
1797                            </p>
1798  <blockquote class="text">  <blockquote class="text">
1799  <p>C: "LIST AUDIO_OUTPUT_DEVICES"  <p>C: "LIST AUDIO_OUTPUT_DEVICES"
1800  </p>  </p>
1801  <p>S: "0,1,4,5"  <p>S: "0,1,4,5"
1802  </p>  </p>
1803  </blockquote>  </blockquote><p>
1804                        
1805  <a name="rfc.section.5.2.9"></a><h4><a name="GET AUDIO_OUTPUT_DEVICE INFO">5.2.9</a>&nbsp;Getting current settings of an audio output device</h4>  </p>
1806    <a name="GET AUDIO_OUTPUT_DEVICE INFO"></a><br /><hr />
1807    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1808    <a name="rfc.section.6.2.9"></a><h3>6.2.9.&nbsp;
1809    Getting current settings of an audio output device</h3>
1810    
1811  <p>Use the following command to get current settings of a specific, created audio output device:  <p>Use the following command to get current settings of a specific, created audio output device:
1812  </p>  </p>
1813  <p></p>  <p>
1814                            </p>
1815  <blockquote class="text">  <blockquote class="text">
1816  <p>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;  <p>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;
1817  </p>  </p>
1818  </blockquote>  </blockquote><p>
1819                        
1820    </p>
1821  <p>Where &lt;device-id&gt; should be replaced by numerical ID  <p>Where &lt;device-id&gt; should be replaced by numerical ID
1822                      of the audio output device as e.g. returned by the                      of the audio output device as e.g. returned by the
1823                      <a class="info" href="#LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"<span>Getting all created audio output device list</span></a> command.                      <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a> command.
1824  </p>  </p>
1825  <p>Possible Answers:  <p>Possible Answers:
1826  </p>  </p>
# Line 1399  Intellectual Property and Copyright Stat Line 1832  Intellectual Property and Copyright Stat
1832                      encapsulated into apostrophes ('). At the moment the following                      encapsulated into apostrophes ('). At the moment the following
1833                      information categories are defined (independently of device):                      information categories are defined (independently of device):
1834  </p>  </p>
1835  <p></p>  <p>
1836                            </p>
1837  <blockquote class="text">  <blockquote class="text">
1838  <p>DRIVER -  <p>DRIVER -
1839                                  </p>                                  </p>
1840  <blockquote class="text">  <blockquote class="text">
1841  <p>identifier of the used audio output driver, as also  <p>identifier of the used audio output driver, as also
1842                                      returned by the                                      returned by the
1843                                      <a class="info" href="#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS">"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span>Getting all available audio output drivers</span></a>                                      <a class='info' href='#LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS'>"LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"<span> (</span><span class='info'>Getting all available audio output drivers</span><span>)</span></a>
1844                                      command                                      command
1845  </p>  </p>
1846  </blockquote>  </blockquote>
1847                                
1848    
1849  <p>CHANNELS -  <p>CHANNELS -
1850                                  </p>                                  </p>
# Line 1418  Intellectual Property and Copyright Stat Line 1853  Intellectual Property and Copyright Stat
1853                                      offers                                      offers
1854  </p>  </p>
1855  </blockquote>  </blockquote>
1856                                
1857    
1858  <p>SAMPLERATE -  <p>SAMPLERATE -
1859                                  </p>                                  </p>
# Line 1425  Intellectual Property and Copyright Stat Line 1861  Intellectual Property and Copyright Stat
1861  <p>playback sample rate the device uses  <p>playback sample rate the device uses
1862  </p>  </p>
1863  </blockquote>  </blockquote>
1864                                
1865    
1866  <p>ACTIVE -  <p>ACTIVE -
1867                                  </p>                                  </p>
# Line 1435  Intellectual Property and Copyright Stat Line 1872  Intellectual Property and Copyright Stat
1872                                      any audio                                      any audio
1873  </p>  </p>
1874  </blockquote>  </blockquote>
1875                                
1876    
1877  </blockquote>  </blockquote><p>
1878                        
1879    </p>
1880  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
1881                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
1882                      returned by all audio output devices. Every audio output driver                      returned by all audio output devices. Every audio output driver
1883                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
1884                      <a class="info" href="#GET AUDIO_OUTPUT_DRIVER INFO">Section 5.2.3<span>Getting information about a specific audio                 output driver</span></a>)                      <a class='info' href='#GET AUDIO_OUTPUT_DRIVER INFO'>Section&nbsp;6.2.3<span> (</span><span class='info'>Getting information about a specific audio                 output driver</span><span>)</span></a>)
1885                      which are also returned by this command.                      which are also returned by this command.
1886  </p>  </p>
1887  <p>Example:  <p>Example:
1888  </p>  </p>
1889  <p></p>  <p>
1890                            </p>
1891  <blockquote class="text">  <blockquote class="text">
1892  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
1893  </p>  </p>
# Line 1467  Intellectual Property and Copyright Stat Line 1907  Intellectual Property and Copyright Stat
1907  </p>  </p>
1908  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1909  </p>  </p>
1910  </blockquote>  </blockquote><p>
1911                        
1912  <a name="rfc.section.5.2.10"></a><h4><a name="SET AUDIO_OUTPUT_DEVICE_PARAMETER">5.2.10</a>&nbsp;Changing settings of audio output devices</h4>  </p>
1913    <a name="SET AUDIO_OUTPUT_DEVICE_PARAMETER"></a><br /><hr />
1914    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1915    <a name="rfc.section.6.2.10"></a><h3>6.2.10.&nbsp;
1916    Changing settings of audio output devices</h3>
1917    
1918  <p>Use the following command to alter a specific setting of a created audio output device:  <p>Use the following command to alter a specific setting of a created audio output device:
1919  </p>  </p>
1920  <p></p>  <p>
1921                            </p>
1922  <blockquote class="text">  <blockquote class="text">
1923  <p>SET AUDIO_OUTPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;  <p>SET AUDIO_OUTPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;
1924  </p>  </p>
1925  </blockquote>  </blockquote><p>
1926                        
1927    </p>
1928  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
1929                      audio output device, &lt;key&gt; by the name of the parameter to change                      audio output device as given by the
1930                        <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1931                        or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
1932                        command, &lt;key&gt; by the name of the parameter to change
1933                      and &lt;value&gt; by the new value for this parameter.                      and &lt;value&gt; by the new value for this parameter.
1934  </p>  </p>
1935  <p>Possible Answers:  <p>Possible Answers:
1936  </p>  </p>
1937  <p></p>  <p>
1938                            </p>
1939  <blockquote class="text">  <blockquote class="text">
1940  <p>"OK" -  <p>"OK" -
1941                                  </p>                                  </p>
# Line 1493  Intellectual Property and Copyright Stat Line 1943  Intellectual Property and Copyright Stat
1943  <p>in case setting was successfully changed  <p>in case setting was successfully changed
1944  </p>  </p>
1945  </blockquote>  </blockquote>
1946                                
1947    
1948  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1949                                  </p>                                  </p>
# Line 1502  Intellectual Property and Copyright Stat Line 1953  Intellectual Property and Copyright Stat
1953                                      warning code and warning message                                      warning code and warning message
1954  </p>  </p>
1955  </blockquote>  </blockquote>
1956                                
1957    
1958  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1959                                  </p>                                  </p>
# Line 1510  Intellectual Property and Copyright Stat Line 1962  Intellectual Property and Copyright Stat
1962                                      error message                                      error message
1963  </p>  </p>
1964  </blockquote>  </blockquote>
1965                                
1966    
1967  </blockquote>  </blockquote><p>
1968                        
1969    </p>
1970  <p>Example:  <p>Example:
1971  </p>  </p>
1972  <p></p>  <p>
1973                            </p>
1974  <blockquote class="text">  <blockquote class="text">
1975  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
1976  </p>  </p>
1977  <p>S: "OK"  <p>S: "OK"
1978  </p>  </p>
1979  </blockquote>  </blockquote><p>
1980                        
1981  <a name="rfc.section.5.2.11"></a><h4><a name="GET AUDIO_OUTPUT_CHANNEL INFO">5.2.11</a>&nbsp;Getting information about an audio channel</h4>  </p>
1982    <a name="GET AUDIO_OUTPUT_CHANNEL INFO"></a><br /><hr />
1983    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
1984    <a name="rfc.section.6.2.11"></a><h3>6.2.11.&nbsp;
1985    Getting information about an audio channel</h3>
1986    
1987  <p>Use the following command to get information about an audio channel:  <p>Use the following command to get information about an audio channel:
1988  </p>  </p>
1989  <p></p>  <p>
1990                            </p>
1991  <blockquote class="text">  <blockquote class="text">
1992  <p>GET AUDIO_OUTPUT_CHANNEL INFO &lt;device-id&gt; &lt;audio-chan&gt;  <p>GET AUDIO_OUTPUT_CHANNEL INFO &lt;device-id&gt; &lt;audio-chan&gt;
1993  </p>  </p>
1994  </blockquote>  </blockquote><p>
1995                        
1996  <p>Where &lt;device-id&gt; is the numerical ID of the audio output device  </p>
1997                      and &lt;audio-chan&gt; the audio channel number.  <p>Where &lt;device-id&gt; is the numerical ID of the audio output device as given by the
1998                        <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
1999                        or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2000                        command and &lt;audio-chan&gt; the audio channel number.
2001  </p>  </p>
2002  <p>Possible Answers:  <p>Possible Answers:
2003  </p>  </p>
2004  <p></p>  <p>
2005                            </p>
2006  <blockquote class="text">  <blockquote class="text">
2007  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2008                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 1546  Intellectual Property and Copyright Stat Line 2010  Intellectual Property and Copyright Stat
2010                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
2011                              the following information categories are defined:                              the following information categories are defined:
2012  </p>  </p>
2013  <p></p>  <p>
2014                                    </p>
2015  <blockquote class="text">  <blockquote class="text">
2016  <p>NAME -  <p>NAME -
2017                                          </p>                                          </p>
# Line 1555  Intellectual Property and Copyright Stat Line 2020  Intellectual Property and Copyright Stat
2020                                              doesn't have to be unique (always returned by all audio channels)                                              doesn't have to be unique (always returned by all audio channels)
2021  </p>  </p>
2022  </blockquote>  </blockquote>
2023                                        
2024    
2025  <p>IS_MIX_CHANNEL -  <p>IS_MIX_CHANNEL -
2026                                          </p>                                          </p>
# Line 1567  Intellectual Property and Copyright Stat Line 2033  Intellectual Property and Copyright Stat
2033                                              (always returned by all audio channels)                                              (always returned by all audio channels)
2034  </p>  </p>
2035  </blockquote>  </blockquote>
2036                                        
2037    
2038  <p>MIX_CHANNEL_DESTINATION -  <p>MIX_CHANNEL_DESTINATION -
2039                                          </p>                                          </p>
# Line 1578  Intellectual Property and Copyright Stat Line 2045  Intellectual Property and Copyright Stat
2045                                              (only returned in case the audio channel is mix channel)                                              (only returned in case the audio channel is mix channel)
2046  </p>  </p>
2047  </blockquote>  </blockquote>
2048                                        
2049    
2050  </blockquote>  </blockquote>
2051                                
2052    
2053  </blockquote>  </blockquote><p>
2054                        
2055    </p>
2056  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
2057                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
2058                      generally returned for the described cases by all audio                      generally returned for the described cases by all audio
# Line 1592  Intellectual Property and Copyright Stat Line 2062  Intellectual Property and Copyright Stat
2062  </p>  </p>
2063  <p>Examples:  <p>Examples:
2064  </p>  </p>
2065  <p></p>  <p>
2066                            </p>
2067  <blockquote class="text">  <blockquote class="text">
2068  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
2069  </p>  </p>
# Line 1602  Intellectual Property and Copyright Stat Line 2073  Intellectual Property and Copyright Stat
2073  </p>  </p>
2074  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2075  </p>  </p>
2076  </blockquote>  </blockquote><p>
2077                        
2078  <p></p>  </p>
2079    <p>
2080                            </p>
2081  <blockquote class="text">  <blockquote class="text">
2082  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
2083  </p>  </p>
# Line 1614  Intellectual Property and Copyright Stat Line 2087  Intellectual Property and Copyright Stat
2087  </p>  </p>
2088  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2089  </p>  </p>
2090  </blockquote>  </blockquote><p>
2091                        
2092  <p></p>  </p>
2093    <p>
2094                            </p>
2095  <blockquote class="text">  <blockquote class="text">
2096  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
2097  </p>  </p>
# Line 1628  Intellectual Property and Copyright Stat Line 2103  Intellectual Property and Copyright Stat
2103  </p>  </p>
2104  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2105  </p>  </p>
2106  </blockquote>  </blockquote><p>
2107                        
2108  <p></p>  </p>
2109    <p>
2110                            </p>
2111  <blockquote class="text">  <blockquote class="text">
2112  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
2113  </p>  </p>
# Line 1642  Intellectual Property and Copyright Stat Line 2119  Intellectual Property and Copyright Stat
2119  </p>  </p>
2120  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2121  </p>  </p>
2122  </blockquote>  </blockquote><p>
2123                        
2124  <a name="rfc.section.5.2.12"></a><h4><a name="GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO">5.2.12</a>&nbsp;Getting information about specific audio channel parameter</h4>  </p>
2125    <a name="GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO"></a><br /><hr />
2126    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2127    <a name="rfc.section.6.2.12"></a><h3>6.2.12.&nbsp;
2128    Getting information about specific audio channel parameter</h3>
2129    
2130  <p>Use the following command to get detailed information about specific audio channel parameter:  <p>Use the following command to get detailed information about specific audio channel parameter:
2131  </p>  </p>
2132  <p></p>  <p>
2133                            </p>
2134  <blockquote class="text">  <blockquote class="text">
2135  <p>GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO &lt;dev-id&gt; &lt;chan&gt; &lt;param&gt;  <p>GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO &lt;dev-id&gt; &lt;chan&gt; &lt;param&gt;
2136  </p>  </p>
2137  </blockquote>  </blockquote><p>
2138                        
2139  <p>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned  </p>
2140                      by the <a class="info" href="#LIST AUDIO_OUTPUT_DEVICES">"LIST AUDIO_OUTPUT_DEVICES"<span>Getting all created audio output device list</span></a>  <p>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned by the
2141                        <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
2142                        or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2143                      command, &lt;chan&gt; the audio channel number                      command, &lt;chan&gt; the audio channel number
2144                      and &lt;param&gt; a specific channel parameter name for which information should                      and &lt;param&gt; a specific channel parameter name for which information should
2145                      be obtained (as returned by the <a class="info" href="#GET AUDIO_OUTPUT_CHANNEL INFO">"GET AUDIO_OUTPUT_CHANNEL INFO"<span>Getting information about an audio channel</span></a> command).                      be obtained (as returned by the <a class='info' href='#GET AUDIO_OUTPUT_CHANNEL INFO'>"GET AUDIO_OUTPUT_CHANNEL INFO"<span> (</span><span class='info'>Getting information about an audio channel</span><span>)</span></a> command).
2146  </p>  </p>
2147  <p>Possible Answers:  <p>Possible Answers:
2148  </p>  </p>
2149  <p></p>  <p>
2150                            </p>
2151  <blockquote class="text">  <blockquote class="text">
2152  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2153                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 1673  Intellectual Property and Copyright Stat Line 2158  Intellectual Property and Copyright Stat
2158                              which is only shown dependently to the given audio channel. At                              which is only shown dependently to the given audio channel. At
2159                              the moment the following information categories are defined:                              the moment the following information categories are defined:
2160  </p>  </p>
2161  <p></p>  <p>
2162                                    </p>
2163  <blockquote class="text">  <blockquote class="text">
2164  <p>TYPE -  <p>TYPE -
2165                                          </p>                                          </p>
# Line 1684  Intellectual Property and Copyright Stat Line 2170  Intellectual Property and Copyright Stat
2170                                              (always returned)                                              (always returned)
2171  </p>  </p>
2172  </blockquote>  </blockquote>
2173                                        
2174    
2175  <p>DESCRIPTION -  <p>DESCRIPTION -
2176                                          </p>                                          </p>
# Line 1691  Intellectual Property and Copyright Stat Line 2178  Intellectual Property and Copyright Stat
2178  <p>arbitrary text describing the purpose of the parameter (always returned)  <p>arbitrary text describing the purpose of the parameter (always returned)
2179  </p>  </p>
2180  </blockquote>  </blockquote>
2181                                        
2182    
2183  <p>FIX -  <p>FIX -
2184                                          </p>                                          </p>
# Line 1700  Intellectual Property and Copyright Stat Line 2188  Intellectual Property and Copyright Stat
2188                                              (always returned)                                              (always returned)
2189  </p>  </p>
2190  </blockquote>  </blockquote>
2191                                        
2192    
2193  <p>MULTIPLICITY -  <p>MULTIPLICITY -
2194                                          </p>                                          </p>
# Line 1710  Intellectual Property and Copyright Stat Line 2199  Intellectual Property and Copyright Stat
2199                                              (always returned)                                              (always returned)
2200  </p>  </p>
2201  </blockquote>  </blockquote>
2202                                        
2203    
2204  <p>RANGE_MIN -  <p>RANGE_MIN -
2205                                          </p>                                          </p>
# Line 1722  Intellectual Property and Copyright Stat Line 2212  Intellectual Property and Copyright Stat
2212                                              parameter)                                              parameter)
2213  </p>  </p>
2214  </blockquote>  </blockquote>
2215                                        
2216    
2217  <p>RANGE_MAX -  <p>RANGE_MAX -
2218                                          </p>                                          </p>
# Line 1734  Intellectual Property and Copyright Stat Line 2225  Intellectual Property and Copyright Stat
2225                                              parameter)                                              parameter)
2226  </p>  </p>
2227  </blockquote>  </blockquote>
2228                                        
2229    
2230  <p>POSSIBILITIES -  <p>POSSIBILITIES -
2231                                          </p>                                          </p>
# Line 1745  Intellectual Property and Copyright Stat Line 2237  Intellectual Property and Copyright Stat
2237                                              parameter)                                              parameter)
2238  </p>  </p>
2239  </blockquote>  </blockquote>
2240                                        
2241    
2242  </blockquote>  </blockquote>
2243                                
2244    
2245  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
2246  </p>  </p>
2247  </blockquote>  </blockquote><p>
2248                        
2249    </p>
2250  <p>Example:  <p>Example:
2251  </p>  </p>
2252  <p></p>  <p>
2253                            </p>
2254  <blockquote class="text">  <blockquote class="text">
2255  <p>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"  <p>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
2256  </p>  </p>
# Line 1770  Intellectual Property and Copyright Stat Line 2266  Intellectual Property and Copyright Stat
2266  </p>  </p>
2267  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2268  </p>  </p>
2269  </blockquote>  </blockquote><p>
2270                        
2271  <a name="rfc.section.5.2.13"></a><h4><a name="SET AUDIO_OUTPUT_CHANNEL_PARAMETER">5.2.13</a>&nbsp;Changing settings of audio output channels</h4>  </p>
2272    <a name="SET AUDIO_OUTPUT_CHANNEL_PARAMETER"></a><br /><hr />
2273    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2274    <a name="rfc.section.6.2.13"></a><h3>6.2.13.&nbsp;
2275    Changing settings of audio output channels</h3>
2276    
2277  <p>Use the following command to alter a specific setting of an audio output channel:  <p>Use the following command to alter a specific setting of an audio output channel:
2278  </p>  </p>
2279  <p></p>  <p>
2280                            </p>
2281  <blockquote class="text">  <blockquote class="text">
2282  <p>SET AUDIO_OUTPUT_CHANNEL_PARAMETER &lt;dev-id&gt; &lt;chn&gt; &lt;key&gt;=&lt;value&gt;  <p>SET AUDIO_OUTPUT_CHANNEL_PARAMETER &lt;dev-id&gt; &lt;chn&gt; &lt;key&gt;=&lt;value&gt;
2283  </p>  </p>
2284  </blockquote>  </blockquote><p>
2285                        
2286  <p>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio  </p>
2287                      device, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the  <p>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio output device as returned by the
2288                        <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
2289                        or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
2290                        command, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the
2291                      parameter to change and &lt;value&gt; by the new value for this parameter.                      parameter to change and &lt;value&gt; by the new value for this parameter.
2292  </p>  </p>
2293  <p>Possible Answers:  <p>Possible Answers:
2294  </p>  </p>
2295  <p></p>  <p>
2296                            </p>
2297  <blockquote class="text">  <blockquote class="text">
2298  <p>"OK" -  <p>"OK" -
2299                                  </p>                                  </p>
# Line 1796  Intellectual Property and Copyright Stat Line 2301  Intellectual Property and Copyright Stat
2301  <p>in case setting was successfully changed  <p>in case setting was successfully changed
2302  </p>  </p>
2303  </blockquote>  </blockquote>
2304                                
2305    
2306  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2307                                  </p>                                  </p>
# Line 1805  Intellectual Property and Copyright Stat Line 2311  Intellectual Property and Copyright Stat
2311                                     warning code and warning message                                     warning code and warning message
2312  </p>  </p>
2313  </blockquote>  </blockquote>
2314                                
2315    
2316  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2317                                  </p>                                  </p>
# Line 1813  Intellectual Property and Copyright Stat Line 2320  Intellectual Property and Copyright Stat
2320                                     error message                                     error message
2321  </p>  </p>
2322  </blockquote>  </blockquote>
2323                                
2324    
2325  </blockquote>  </blockquote><p>
2326                        
2327    </p>
2328  <p>Example:  <p>Example:
2329  </p>  </p>
2330  <p></p>  <p>
2331                            </p>
2332  <blockquote class="text">  <blockquote class="text">
2333  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"
2334  </p>  </p>
2335  <p>S: "OK"  <p>S: "OK"
2336  </p>  </p>
2337  </blockquote>  </blockquote><p>
2338                        
2339  <p></p>  </p>
2340    <p>
2341                            </p>
2342  <blockquote class="text">  <blockquote class="text">
2343  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
2344  </p>  </p>
2345  <p>S: "OK"  <p>S: "OK"
2346  </p>  </p>
2347  </blockquote>  </blockquote><p>
2348                        
2349  <a name="rfc.section.5.3"></a><h4><a name="anchor11">5.3</a>&nbsp;Configuring MIDI input drivers</h4>  </p>
2350    <a name="anchor10"></a><br /><hr />
2351    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2352    <a name="rfc.section.6.3"></a><h3>6.3.&nbsp;
2353    Configuring MIDI input drivers</h3>
2354    
2355  <p>Instances of drivers in LinuxSampler are called devices. You can use  <p>Instances of drivers in LinuxSampler are called devices. You can use
2356                  multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as                  multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet as
# Line 1862  Intellectual Property and Copyright Stat Line 2378  Intellectual Property and Copyright Stat
2378                  showing how to retrieve what parameters drivers are offering, how to retrieve their                  showing how to retrieve what parameters drivers are offering, how to retrieve their
2379                  possible values, etc.                  possible values, etc.
2380  </p>  </p>
2381  <a name="rfc.section.5.3.1"></a><h4><a name="GET AVAILABLE_MIDI_INPUT_DRIVERS">5.3.1</a>&nbsp;Getting amount of available MIDI input drivers</h4>  <a name="GET AVAILABLE_MIDI_INPUT_DRIVERS"></a><br /><hr />
2382    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2383    <a name="rfc.section.6.3.1"></a><h3>6.3.1.&nbsp;
2384    Getting amount of available MIDI input drivers</h3>
2385    
2386  <p>Use the following command to get the number of  <p>Use the following command to get the number of
2387                      MIDI input drivers currently available for the                      MIDI input drivers currently available for the
2388                      LinuxSampler instance:                      LinuxSampler instance:
2389  </p>  </p>
2390  <p></p>  <p>
2391                            </p>
2392  <blockquote class="text">  <blockquote class="text">
2393  <p>GET AVAILABLE_MIDI_INPUT_DRIVERS  <p>GET AVAILABLE_MIDI_INPUT_DRIVERS
2394  </p>  </p>
2395  </blockquote>  </blockquote><p>
2396                        
2397    </p>
2398  <p>Possible Answers:  <p>Possible Answers:
2399  </p>  </p>
2400  <p></p>  <p>
2401                            </p>
2402  <blockquote class="text">  <blockquote class="text">
2403  <p>LinuxSampler will answer by sending the  <p>LinuxSampler will answer by sending the
2404                              number of available MIDI input drivers.                              number of available MIDI input drivers.
2405  </p>  </p>
2406  </blockquote>  </blockquote><p>
2407                        
2408    </p>
2409  <p>Example:  <p>Example:
2410  </p>  </p>
2411  <p></p>  <p>
2412                            </p>
2413  <blockquote class="text">  <blockquote class="text">
2414  <p>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"  <p>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
2415  </p>  </p>
2416  <p>S: "2"  <p>S: "2"
2417  </p>  </p>
2418  </blockquote>  </blockquote><p>
2419                        
2420  <a name="rfc.section.5.3.2"></a><h4><a name="LIST AVAILABLE_MIDI_INPUT_DRIVERS">5.3.2</a>&nbsp;Getting all available MIDI input drivers</h4>  </p>
2421    <a name="LIST AVAILABLE_MIDI_INPUT_DRIVERS"></a><br /><hr />
2422    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2423    <a name="rfc.section.6.3.2"></a><h3>6.3.2.&nbsp;
2424    Getting all available MIDI input drivers</h3>
2425    
2426  <p>Use the following command to list all MIDI input drivers currently available  <p>Use the following command to list all MIDI input drivers currently available
2427                      for the LinuxSampler instance:                      for the LinuxSampler instance:
2428  </p>  </p>
2429  <p></p>  <p>
2430                            </p>
2431  <blockquote class="text">  <blockquote class="text">
2432  <p>LIST AVAILABLE_MIDI_INPUT_DRIVERS  <p>LIST AVAILABLE_MIDI_INPUT_DRIVERS
2433  </p>  </p>
2434  </blockquote>  </blockquote><p>
2435                        
2436    </p>
2437  <p>Possible Answers:  <p>Possible Answers:
2438  </p>  </p>
2439  <p></p>  <p>
2440                            </p>
2441  <blockquote class="text">  <blockquote class="text">
2442  <p>LinuxSampler will answer by sending comma separated character  <p>LinuxSampler will answer by sending comma separated character
2443                              strings, each symbolizing a MIDI input driver.                              strings, each symbolizing a MIDI input driver.
2444  </p>  </p>
2445  </blockquote>  </blockquote><p>
2446                        
2447    </p>
2448  <p>Example:  <p>Example:
2449  </p>  </p>
2450  <p></p>  <p>
2451                            </p>
2452  <blockquote class="text">  <blockquote class="text">
2453  <p>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"  <p>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
2454  </p>  </p>
2455  <p>S: "ALSA,JACK"  <p>S: "ALSA,JACK"
2456  </p>  </p>
2457  </blockquote>  </blockquote><p>
2458                        
2459  <a name="rfc.section.5.3.3"></a><h4><a name="GET MIDI_INPUT_DRIVER INFO">5.3.3</a>&nbsp;Getting information about a specific MIDI input driver</h4>  </p>
2460    <a name="GET MIDI_INPUT_DRIVER INFO"></a><br /><hr />
2461    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2462    <a name="rfc.section.6.3.3"></a><h3>6.3.3.&nbsp;
2463    Getting information about a specific MIDI input driver</h3>
2464    
2465  <p>Use the following command to get detailed information about a specific MIDI input driver:  <p>Use the following command to get detailed information about a specific MIDI input driver:
2466  </p>  </p>
2467  <p></p>  <p>
2468                            </p>
2469  <blockquote class="text">  <blockquote class="text">
2470  <p>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;  <p>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;
2471  </p>  </p>
2472  </blockquote>  </blockquote><p>
2473                        
2474  <p>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver.  </p>
2475    <p>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver as returned
2476                        by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command.
2477  </p>  </p>
2478  <p>Possible Answers:  <p>Possible Answers:
2479  </p>  </p>
2480  <p></p>  <p>
2481                            </p>
2482  <blockquote class="text">  <blockquote class="text">
2483  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2484                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 1945  Intellectual Property and Copyright Stat Line 2486  Intellectual Property and Copyright Stat
2486                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
2487                              the following information categories are defined:                              the following information categories are defined:
2488  </p>  </p>
2489  <p></p>  <p>
2490                                    </p>
2491  <blockquote class="text">  <blockquote class="text">
2492  <p>DESCRIPTION -  <p>DESCRIPTION -
2493                                          </p>                                          </p>
# Line 1953  Intellectual Property and Copyright Stat Line 2495  Intellectual Property and Copyright Stat
2495  <p>arbitrary description text about the MIDI input driver  <p>arbitrary description text about the MIDI input driver
2496  </p>  </p>
2497  </blockquote>  </blockquote>
2498                                        
2499    
2500  <p>VERSION -  <p>VERSION -
2501                                          </p>                                          </p>
# Line 1960  Intellectual Property and Copyright Stat Line 2503  Intellectual Property and Copyright Stat
2503  <p>arbitrary character string regarding the driver's version  <p>arbitrary character string regarding the driver's version
2504  </p>  </p>
2505  </blockquote>  </blockquote>
2506                                        
2507    
2508  <p>PARAMETERS -  <p>PARAMETERS -
2509                                          </p>                                          </p>
# Line 1967  Intellectual Property and Copyright Stat Line 2511  Intellectual Property and Copyright Stat
2511  <p>comma separated list of all parameters available for the given MIDI input driver  <p>comma separated list of all parameters available for the given MIDI input driver
2512  </p>  </p>
2513  </blockquote>  </blockquote>
2514                                        
2515    
2516  </blockquote>  </blockquote>
2517                                
2518    
2519  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
2520  </p>  </p>
2521  </blockquote>  </blockquote><p>
2522                        
2523    </p>
2524  <p>Example:  <p>Example:
2525  </p>  </p>
2526  <p></p>  <p>
2527                            </p>
2528  <blockquote class="text">  <blockquote class="text">
2529  <p>C: "GET MIDI_INPUT_DRIVER INFO ALSA"  <p>C: "GET MIDI_INPUT_DRIVER INFO ALSA"
2530  </p>  </p>
# Line 1988  Intellectual Property and Copyright Stat Line 2536  Intellectual Property and Copyright Stat
2536  </p>  </p>
2537  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2538  </p>  </p>
2539  </blockquote>  </blockquote><p>
2540                        
2541  <a name="rfc.section.5.3.4"></a><h4><a name="GET MIDI_INPUT_DRIVER_PARAMETER INFO">5.3.4</a>&nbsp;Getting information about specific MIDI input driver parameter</h4>  </p>
2542    <a name="GET MIDI_INPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
2543    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2544    <a name="rfc.section.6.3.4"></a><h3>6.3.4.&nbsp;
2545    Getting information about specific MIDI input driver parameter</h3>
2546    
2547  <p>Use the following command to get detailed information about a specific parameter of a specific MIDI input driver:  <p>Use the following command to get detailed information about a specific parameter of a specific MIDI input driver:
2548  </p>  </p>
2549  <p></p>  <p>
2550                            </p>
2551  <blockquote class="text">  <blockquote class="text">
2552  <p>GET MIDI_INPUT_DRIVER_PARAMETER INFO &lt;midit&gt; &lt;param&gt; [&lt;deplist&gt;]  <p>GET MIDI_INPUT_DRIVER_PARAMETER INFO &lt;midit&gt; &lt;param&gt; [&lt;deplist&gt;]
2553  </p>  </p>
2554  </blockquote>  </blockquote><p>
2555                        
2556    </p>
2557  <p>Where &lt;midit&gt; is the name of the MIDI input driver as returned  <p>Where &lt;midit&gt; is the name of the MIDI input driver as returned
2558                      by the <a class="info" href="#LIST AVAILABLE_MIDI_INPUT_DRIVERS">"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span>Getting all available MIDI input drivers</span></a> command, &lt;param&gt; a specific                      by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command, &lt;param&gt; a specific
2559                      parameter name for which information should be obtained (as returned by the                      parameter name for which information should be obtained (as returned by the
2560                      <a class="info" href="#GET MIDI_INPUT_DRIVER INFO">"GET MIDI_INPUT_DRIVER INFO"<span>Getting information about a specific MIDI input driver</span></a> command) and &lt;deplist&gt; is an optional list                      <a class='info' href='#GET MIDI_INPUT_DRIVER INFO'>"GET MIDI_INPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific MIDI input driver</span><span>)</span></a> command) and &lt;deplist&gt; is an optional list
2561                      of parameters on which the sought parameter &lt;param&gt; depends on,                      of parameters on which the sought parameter &lt;param&gt; depends on,
2562                      &lt;deplist&gt; is a key-value pair list in form of "key1=val1 key2=val2 ...",                      &lt;deplist&gt; is a key-value pair list in form of "key1=val1 key2=val2 ...",
2563                      where character string values are encapsulated into apostrophes ('). Arguments                      where character string values are encapsulated into apostrophes ('). Arguments
# Line 2022  Intellectual Property and Copyright Stat Line 2576  Intellectual Property and Copyright Stat
2576                      which is only shown dependent to given driver parameter. At                      which is only shown dependent to given driver parameter. At
2577                      the moment the following information categories are defined:                      the moment the following information categories are defined:
2578  </p>  </p>
2579  <p></p>  <p>
2580                            </p>
2581  <blockquote class="text">  <blockquote class="text">
2582  <p>TYPE -  <p>TYPE -
2583                                </p>                                </p>
# Line 2033  Intellectual Property and Copyright Stat Line 2588  Intellectual Property and Copyright Stat
2588                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2589  </p>  </p>
2590  </blockquote>  </blockquote>
2591                                
2592    
2593  <p>DESCRIPTION -  <p>DESCRIPTION -
2594                                </p>                                </p>
# Line 2041  Intellectual Property and Copyright Stat Line 2597  Intellectual Property and Copyright Stat
2597                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2598  </p>  </p>
2599  </blockquote>  </blockquote>
2600                                
2601    
2602  <p>MANDATORY -  <p>MANDATORY -
2603                                </p>                                </p>
2604  <blockquote class="text">  <blockquote class="text">
2605  <p>either true or false, defines if this parameter must be  <p>either true or false, defines if this parameter must be
2606                                  given when the device is to be created with the                                  given when the device is to be created with the
2607                                  <a class="info" href="#CREATE MIDI_INPUT_DEVICE">'CREATE MIDI_INPUT_DEVICE'<span>Creating a MIDI input device</span></a> command                                  <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command
2608                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2609  </p>  </p>
2610  </blockquote>  </blockquote>
2611                                
2612    
2613  <p>FIX -  <p>FIX -
2614                                </p>                                </p>
2615  <blockquote class="text">  <blockquote class="text">
2616  <p>either true or false, if false then this parameter can  <p>either true or false, if false then this parameter can
2617                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
2618                                  the <a class="info" href="#CREATE MIDI_INPUT_DEVICE">'CREATE MIDI_INPUT_DEVICE'<span>Creating a MIDI input device</span></a> command                                  the <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command
2619                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2620  </p>  </p>
2621  </blockquote>  </blockquote>
2622                                
2623    
2624  <p>MULTIPLICITY -  <p>MULTIPLICITY -
2625                                </p>                                </p>
# Line 2071  Intellectual Property and Copyright Stat Line 2630  Intellectual Property and Copyright Stat
2630                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2631  </p>  </p>
2632  </blockquote>  </blockquote>
2633                                
2634    
2635  <p>DEPENDS -  <p>DEPENDS -
2636                                </p>                                </p>
# Line 2087  Intellectual Property and Copyright Stat Line 2647  Intellectual Property and Copyright Stat
2647                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2648  </p>  </p>
2649  </blockquote>  </blockquote>
2650                                
2651    
2652  <p>DEFAULT -  <p>DEFAULT -
2653                                </p>                                </p>
2654  <blockquote class="text">  <blockquote class="text">
2655  <p>reflects the default value for this parameter which is  <p>reflects the default value for this parameter which is
2656                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
2657                                  given with the <a class="info" href="#CREATE MIDI_INPUT_DEVICE">'CREATE MIDI_INPUT_DEVICE'<span>Creating a MIDI input device</span></a> command,                                  given with the <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>'CREATE MIDI_INPUT_DEVICE'<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a> command,
2658                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
2659                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
2660                                  apostrophes (')                                  apostrophes (')
2661                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2662  </p>  </p>
2663  </blockquote>  </blockquote>
2664                                
2665    
2666  <p>RANGE_MIN -  <p>RANGE_MIN -
2667                                </p>                                </p>
# Line 2111  Intellectual Property and Copyright Stat Line 2673  Intellectual Property and Copyright Stat
2673                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2674  </p>  </p>
2675  </blockquote>  </blockquote>
2676                                
2677    
2678  <p>RANGE_MAX -  <p>RANGE_MAX -
2679                                </p>                                </p>
# Line 2122  Intellectual Property and Copyright Stat Line 2685  Intellectual Property and Copyright Stat
2685                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2686  </p>  </p>
2687  </blockquote>  </blockquote>
2688                                
2689    
2690  <p>POSSIBILITIES -  <p>POSSIBILITIES -
2691                                </p>                                </p>
# Line 2132  Intellectual Property and Copyright Stat Line 2696  Intellectual Property and Copyright Stat
2696                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2697  </p>  </p>
2698  </blockquote>  </blockquote>
2699                                
2700    
2701  </blockquote>  </blockquote><p>
2702                        
2703    </p>
2704  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
2705  </p>  </p>
2706  <p>Example:  <p>Example:
2707  </p>  </p>
2708  <p></p>  <p>
2709                            </p>
2710  <blockquote class="text">  <blockquote class="text">
2711  <p>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"  <p>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"
2712  </p>  </p>
# Line 2157  Intellectual Property and Copyright Stat Line 2724  Intellectual Property and Copyright Stat
2724  </p>  </p>
2725  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2726  </p>  </p>
2727  </blockquote>  </blockquote><p>
2728                        
2729  <a name="rfc.section.5.3.5"></a><h4><a name="CREATE MIDI_INPUT_DEVICE">5.3.5</a>&nbsp;Creating a MIDI input device</h4>  </p>
2730    <a name="CREATE MIDI_INPUT_DEVICE"></a><br /><hr />
2731    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2732    <a name="rfc.section.6.3.5"></a><h3>6.3.5.&nbsp;
2733    Creating a MIDI input device</h3>
2734    
2735  <p>Use the following command to create a new MIDI input device for  the desired MIDI input system:  <p>Use the following command to create a new MIDI input device for  the desired MIDI input system:
2736  </p>  </p>
2737  <p></p>  <p>
2738                            </p>
2739  <blockquote class="text">  <blockquote class="text">
2740  <p>CREATE MIDI_INPUT_DEVICE &lt;midi-input-driver&gt; [&lt;param-list&gt;]  <p>CREATE MIDI_INPUT_DEVICE &lt;midi-input-driver&gt; [&lt;param-list&gt;]
2741  </p>  </p>
2742  </blockquote>  </blockquote><p>
2743                        
2744  <p>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system and &lt;param-list&gt; by an  </p>
2745    <p>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system as returned
2746                        by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a> command and &lt;param-list&gt; by an
2747                      optional list of driver specific parameters in form of "key1=val1 key2=val2 ...", where                      optional list of driver specific parameters in form of "key1=val1 key2=val2 ...", where
2748                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
2749                      Note that there might be drivers which require parameter(s) to be                      Note that there might be drivers which require parameter(s) to be
# Line 2178  Intellectual Property and Copyright Stat Line 2752  Intellectual Property and Copyright Stat
2752  </p>  </p>
2753  <p>Possible Answers:  <p>Possible Answers:
2754  </p>  </p>
2755  <p></p>  <p>
2756                            </p>
2757  <blockquote class="text">  <blockquote class="text">
2758  <p>"OK[&lt;device-id&gt;]" -  <p>"OK[&lt;device-id&gt;]" -
2759                                  </p>                                  </p>
# Line 2187  Intellectual Property and Copyright Stat Line 2762  Intellectual Property and Copyright Stat
2762                                      &lt;device-id&gt; is the numerical ID of the new device                                      &lt;device-id&gt; is the numerical ID of the new device
2763  </p>  </p>
2764  </blockquote>  </blockquote>
2765                                
2766    
2767  <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN[&lt;device-id&gt;]:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2768                                  </p>                                  </p>
# Line 2197  Intellectual Property and Copyright Stat Line 2773  Intellectual Property and Copyright Stat
2773                                      appropriate warning code and warning message                                      appropriate warning code and warning message
2774  </p>  </p>
2775  </blockquote>  </blockquote>
2776                                
2777    
2778  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2779                                  </p>                                  </p>
# Line 2204  Intellectual Property and Copyright Stat Line 2781  Intellectual Property and Copyright Stat
2781  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
2782  </p>  </p>
2783  </blockquote>  </blockquote>
2784                                
2785    
2786  </blockquote>  </blockquote><p>
2787                        
2788    </p>
2789  <p>Example:  <p>Example:
2790  </p>  </p>
2791  <p></p>  <p>
2792                            </p>
2793  <blockquote class="text">  <blockquote class="text">
2794  <p>C: "CREATE MIDI_INPUT_DEVICE ALSA"  <p>C: "CREATE MIDI_INPUT_DEVICE ALSA"
2795  </p>  </p>
2796  <p>S: "OK[0]"  <p>S: "OK[0]"
2797  </p>  </p>
2798  </blockquote>  </blockquote><p>
2799                        
2800  <a name="rfc.section.5.3.6"></a><h4><a name="DESTROY MIDI_INPUT_DEVICE">5.3.6</a>&nbsp;Destroying a MIDI input device</h4>  </p>
2801    <a name="DESTROY MIDI_INPUT_DEVICE"></a><br /><hr />
2802    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2803    <a name="rfc.section.6.3.6"></a><h3>6.3.6.&nbsp;
2804    Destroying a MIDI input device</h3>
2805    
2806  <p>Use the following command to destroy a created MIDI input device:  <p>Use the following command to destroy a created MIDI input device:
2807  </p>  </p>
2808  <p></p>  <p>
2809                            </p>
2810  <blockquote class="text">  <blockquote class="text">
2811  <p>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;  <p>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;
2812  </p>  </p>
2813  </blockquote>  </blockquote><p>
2814                        
2815  <p>Where &lt;device-id&gt; should be replaced by the device's numerical ID.  </p>
2816    <p>Where &lt;device-id&gt; should be replaced by the device's numerical ID as returned by the
2817                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
2818                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
2819                        command.
2820  </p>  </p>
2821  <p>Possible Answers:  <p>Possible Answers:
2822  </p>  </p>
2823  <p></p>  <p>
2824                            </p>
2825  <blockquote class="text">  <blockquote class="text">
2826  <p>"OK" -  <p>"OK" -
2827                                  </p>                                  </p>
# Line 2239  Intellectual Property and Copyright Stat Line 2829  Intellectual Property and Copyright Stat
2829  <p>in case the device was successfully destroyed  <p>in case the device was successfully destroyed
2830  </p>  </p>
2831  </blockquote>  </blockquote>
2832                                
2833    
2834  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2835                                  </p>                                  </p>
# Line 2248  Intellectual Property and Copyright Stat Line 2839  Intellectual Property and Copyright Stat
2839                                      warning message                                      warning message
2840  </p>  </p>
2841  </blockquote>  </blockquote>
2842                                
2843    
2844  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2845                                  </p>                                  </p>
# Line 2255  Intellectual Property and Copyright Stat Line 2847  Intellectual Property and Copyright Stat
2847  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
2848  </p>  </p>
2849  </blockquote>  </blockquote>
2850                                
2851    
2852  </blockquote>  </blockquote><p>
2853                        
2854    </p>
2855  <p>Example:  <p>Example:
2856  </p>  </p>
2857  <p></p>  <p>
2858                            </p>
2859  <blockquote class="text">  <blockquote class="text">
2860  <p>C: "DESTROY MIDI_INPUT_DEVICE 0"  <p>C: "DESTROY MIDI_INPUT_DEVICE 0"
2861  </p>  </p>
2862  <p>S: "OK"  <p>S: "OK"
2863  </p>  </p>
2864  </blockquote>  </blockquote><p>
2865                        
2866  <a name="rfc.section.5.3.7"></a><h4><a name="GET MIDI_INPUT_DEVICES">5.3.7</a>&nbsp;Getting all created MIDI input device count</h4>  </p>
2867    <a name="GET MIDI_INPUT_DEVICES"></a><br /><hr />
2868    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2869    <a name="rfc.section.6.3.7"></a><h3>6.3.7.&nbsp;
2870    Getting all created MIDI input device count</h3>
2871    
2872  <p>Use the following command to count all created MIDI input devices:  <p>Use the following command to count all created MIDI input devices:
2873  </p>  </p>
2874  <p></p>  <p>
2875                            </p>
2876  <blockquote class="text">  <blockquote class="text">
2877  <p>GET MIDI_INPUT_DEVICES  <p>GET MIDI_INPUT_DEVICES
2878  </p>  </p>
2879  </blockquote>  </blockquote><p>
2880                        
2881    </p>
2882  <p>Possible Answers:  <p>Possible Answers:
2883  </p>  </p>
2884  <p></p>  <p>
2885                            </p>
2886  <blockquote class="text">  <blockquote class="text">
2887  <p>LinuxSampler will answer by sending the current number of all  <p>LinuxSampler will answer by sending the current number of all
2888                              MIDI input devices.                              MIDI input devices.
2889  </p>  </p>
2890  </blockquote>  </blockquote><p>
2891                        
2892    </p>
2893  <p>Example:  <p>Example:
2894  </p>  </p>
2895  <p></p>  <p>
2896                            </p>
2897  <blockquote class="text">  <blockquote class="text">
2898  <p>C: "GET MIDI_INPUT_DEVICES"  <p>C: "GET MIDI_INPUT_DEVICES"
2899  </p>  </p>
2900  <p>S: "3"  <p>S: "3"
2901  </p>  </p>
2902  </blockquote>  </blockquote><p>
2903                        
2904  <a name="rfc.section.5.3.8"></a><h4><a name="LIST MIDI_INPUT_DEVICES">5.3.8</a>&nbsp;Getting all created MIDI input device list</h4>  </p>
2905    <a name="LIST MIDI_INPUT_DEVICES"></a><br /><hr />
2906    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2907    <a name="rfc.section.6.3.8"></a><h3>6.3.8.&nbsp;
2908    Getting all created MIDI input device list</h3>
2909    
2910  <p>Use the following command to list all created MIDI input devices:  <p>Use the following command to list all created MIDI input devices:
2911  </p>  </p>
2912  <p></p>  <p>
2913                            </p>
2914  <blockquote class="text">  <blockquote class="text">
2915  <p>LIST MIDI_INPUT_DEVICES  <p>LIST MIDI_INPUT_DEVICES
2916  </p>  </p>
2917  </blockquote>  </blockquote><p>
2918                        
2919    </p>
2920  <p>Possible Answers:  <p>Possible Answers:
2921  </p>  </p>
2922  <p></p>  <p>
2923                            </p>
2924  <blockquote class="text">  <blockquote class="text">
2925  <p>LinuxSampler will answer by sending a comma separated list  <p>LinuxSampler will answer by sending a comma separated list
2926                              with the numerical Ids of all created MIDI input devices.                              with the numerical Ids of all created MIDI input devices.
2927  </p>  </p>
2928  </blockquote>  </blockquote><p>
2929                        
2930    </p>
2931  <p>Examples:  <p>Examples:
2932  </p>  </p>
2933  <p></p>  <p>
2934                            </p>
2935  <blockquote class="text">  <blockquote class="text">
2936  <p>C: "LIST MIDI_INPUT_DEVICES"  <p>C: "LIST MIDI_INPUT_DEVICES"
2937  </p>  </p>
2938  <p>S: "0,1,2"  <p>S: "0,1,2"
2939  </p>  </p>
2940  </blockquote>  </blockquote><p>
2941                        
2942  <p></p>  </p>
2943    <p>
2944                            </p>
2945  <blockquote class="text">  <blockquote class="text">
2946  <p>C: "LIST MIDI_INPUT_DEVICES"  <p>C: "LIST MIDI_INPUT_DEVICES"
2947  </p>  </p>
2948  <p>S: "1,3"  <p>S: "1,3"
2949  </p>  </p>
2950  </blockquote>  </blockquote><p>
2951                        
2952  <a name="rfc.section.5.3.9"></a><h4><a name="GET MIDI_INPUT_DEVICE INFO">5.3.9</a>&nbsp;Getting current settings of a MIDI input device</h4>  </p>
2953    <a name="GET MIDI_INPUT_DEVICE INFO"></a><br /><hr />
2954    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
2955    <a name="rfc.section.6.3.9"></a><h3>6.3.9.&nbsp;
2956    Getting current settings of a MIDI input device</h3>
2957    
2958  <p>Use the following command to get current settings of a specific, created MIDI input device:  <p>Use the following command to get current settings of a specific, created MIDI input device:
2959  </p>  </p>
2960  <p></p>  <p>
2961                            </p>
2962  <blockquote class="text">  <blockquote class="text">
2963  <p>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;  <p>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;
2964  </p>  </p>
2965  </blockquote>  </blockquote><p>
2966                        
2967  <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device.  </p>
2968    <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
2969                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
2970                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
2971                        command.
2972  </p>  </p>
2973  <p>Possible Answers:  <p>Possible Answers:
2974  </p>  </p>
2975  <p></p>  <p>
2976                            </p>
2977  <blockquote class="text">  <blockquote class="text">
2978  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2979                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 2358  Intellectual Property and Copyright Stat Line 2983  Intellectual Property and Copyright Stat
2983                              encapsulated into apostrophes ('). At the moment the following                              encapsulated into apostrophes ('). At the moment the following
2984                              information categories are defined (independent of driver):                              information categories are defined (independent of driver):
2985  </p>  </p>
2986  <p></p>  <p>
2987                                    </p>
2988  <blockquote class="text">  <blockquote class="text">
2989  <p>DRIVER -  <p>DRIVER -
2990                                          </p>                                          </p>
2991  <blockquote class="text">  <blockquote class="text">
2992  <p>identifier of the used MIDI input driver, as e.g.  <p>identifier of the used MIDI input driver, as e.g.
2993                                              returned by the <a class="info" href="#LIST AVAILABLE_MIDI_INPUT_DRIVERS">"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span>Getting all available MIDI input drivers</span></a>                                              returned by the <a class='info' href='#LIST AVAILABLE_MIDI_INPUT_DRIVERS'>"LIST AVAILABLE_MIDI_INPUT_DRIVERS"<span> (</span><span class='info'>Getting all available MIDI input drivers</span><span>)</span></a>
2994                                              command                                              command
2995  </p>  </p>
2996  </blockquote>  </blockquote>
2997                                        
2998    
2999  </blockquote>  </blockquote>
3000                                    
3001  <blockquote class="text">  <blockquote class="text">
3002  <p><p>ACTIVE -  <p>ACTIVE -
3003                                          </p>                                          </p>
3004  <blockquote class="text">  <blockquote class="text">
3005  <p>either true or false, if false then the MIDI device is  <p>either true or false, if false then the MIDI device is
# Line 2380  Intellectual Property and Copyright Stat Line 3008  Intellectual Property and Copyright Stat
3008                                              channels                                              channels
3009  </p>  </p>
3010  </blockquote>  </blockquote>
3011                                        
3012    
3013  </blockquote>  </blockquote>
3014                                
3015    
3016  </blockquote>  </blockquote><p>
3017                        
3018    </p>
3019  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
3020                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
3021                      returned by all MIDI input devices. Every MIDI input driver                      returned by all MIDI input devices. Every MIDI input driver
3022                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
3023                      <a class="info" href="#GET MIDI_INPUT_DRIVER INFO">"GET MIDI_INPUT_DRIVER INFO"<span>Getting information about a specific MIDI input driver</span></a> command) which are also returned                      <a class='info' href='#GET MIDI_INPUT_DRIVER INFO'>"GET MIDI_INPUT_DRIVER INFO"<span> (</span><span class='info'>Getting information about a specific MIDI input driver</span><span>)</span></a> command) which are also returned
3024                      by this command.                      by this command.
3025  </p>  </p>
3026  <p>Example:  <p>Example:
3027  </p>  </p>
3028  <p></p>  <p>
3029                            </p>
3030  <blockquote class="text">  <blockquote class="text">
3031  <p>C: "GET MIDI_INPUT_DEVICE INFO 0"  <p>C: "GET MIDI_INPUT_DEVICE INFO 0"
3032  </p>  </p>
# Line 2404  Intellectual Property and Copyright Stat Line 3036  Intellectual Property and Copyright Stat
3036  </p>  </p>
3037  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3038  </p>  </p>
3039  </blockquote>  </blockquote><p>
3040                        
3041  <a name="rfc.section.5.3.10"></a><h4><a name="SET MIDI_INPUT_DEVICE_PARAMETER">5.3.10</a>&nbsp;Changing settings of MIDI input devices</h4>  </p>
3042    <a name="SET MIDI_INPUT_DEVICE_PARAMETER"></a><br /><hr />
3043    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3044    <a name="rfc.section.6.3.10"></a><h3>6.3.10.&nbsp;
3045    Changing settings of MIDI input devices</h3>
3046    
3047  <p>Use the following command to alter a specific setting of a created MIDI input device:  <p>Use the following command to alter a specific setting of a created MIDI input device:
3048  </p>  </p>
3049  <p></p>  <p>
3050                            </p>
3051  <blockquote class="text">  <blockquote class="text">
3052  <p>SET MIDI_INPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;  <p>SET MIDI_INPUT_DEVICE_PARAMETER &lt;device-id&gt; &lt;key&gt;=&lt;value&gt;
3053  </p>  </p>
3054  </blockquote>  </blockquote><p>
3055                        
3056    </p>
3057  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
3058                      MIDI input device, &lt;key&gt; by the name of the parameter to change and                      MIDI input device as returned by the
3059                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3060                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3061                        command, &lt;key&gt; by the name of the parameter to change and
3062                      &lt;value&gt; by the new value for this parameter.                      &lt;value&gt; by the new value for this parameter.
3063  </p>  </p>
3064  <p>Possible Answers:  <p>Possible Answers:
3065  </p>  </p>
3066  <p></p>  <p>
3067                            </p>
3068  <blockquote class="text">  <blockquote class="text">
3069  <p>"OK" -  <p>"OK" -
3070                                  </p>                                  </p>
# Line 2430  Intellectual Property and Copyright Stat Line 3072  Intellectual Property and Copyright Stat
3072  <p>in case setting was successfully changed  <p>in case setting was successfully changed
3073  </p>  </p>
3074  </blockquote>  </blockquote>
3075                                
3076    
3077  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3078                                  </p>                                  </p>
# Line 2439  Intellectual Property and Copyright Stat Line 3082  Intellectual Property and Copyright Stat
3082                                      warning code and warning message                                      warning code and warning message
3083  </p>  </p>
3084  </blockquote>  </blockquote>
3085                                
3086    
3087  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3088                                  </p>                                  </p>
# Line 2446  Intellectual Property and Copyright Stat Line 3090  Intellectual Property and Copyright Stat
3090  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
3091  </p>  </p>
3092  </blockquote>  </blockquote>
3093                                
3094    
3095  </blockquote>  </blockquote><p>
3096                        
3097    </p>
3098  <p>Example:  <p>Example:
3099  </p>  </p>
3100  <p></p>  <p>
3101                            </p>
3102  <blockquote class="text">  <blockquote class="text">
3103  <p>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"  <p>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
3104  </p>  </p>
3105  <p>S: "OK"  <p>S: "OK"
3106  </p>  </p>
3107  </blockquote>  </blockquote><p>
3108                        
3109  <a name="rfc.section.5.3.11"></a><h4><a name="GET MIDI_INPUT_PORT INFO">5.3.11</a>&nbsp;Getting information about a MIDI port</h4>  </p>
3110    <a name="GET MIDI_INPUT_PORT INFO"></a><br /><hr />
3111    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3112    <a name="rfc.section.6.3.11"></a><h3>6.3.11.&nbsp;
3113    Getting information about a MIDI port</h3>
3114    
3115  <p>Use the following command to get information about a MIDI port:  <p>Use the following command to get information about a MIDI port:
3116  </p>  </p>
3117  <p></p>  <p>
3118                            </p>
3119  <blockquote class="text">  <blockquote class="text">
3120  <p>GET MIDI_INPUT_PORT INFO &lt;device-id&gt; &lt;midi-port&gt;  <p>GET MIDI_INPUT_PORT INFO &lt;device-id&gt; &lt;midi-port&gt;
3121  </p>  </p>
3122  </blockquote>  </blockquote><p>
3123                        
3124  <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device  </p>
3125                      and &lt;midi-port&gt; the MIDI input port number.  <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
3126                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3127                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3128                        command and &lt;midi-port&gt; the MIDI input port number.
3129  </p>  </p>
3130  <p>Possible Answers:  <p>Possible Answers:
3131  </p>  </p>
3132  <p></p>  <p>
3133                            </p>
3134  <blockquote class="text">  <blockquote class="text">
3135  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3136                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 2488  Intellectual Property and Copyright Stat Line 3144  Intellectual Property and Copyright Stat
3144  <p>arbitrary character string naming the port  <p>arbitrary character string naming the port
3145  </p>  </p>
3146  </blockquote>  </blockquote>
3147                                
3148    
3149  </blockquote>  </blockquote><p>
3150                        
3151    </p>
3152  <p>The field above is only the one which is returned by all MIDI  <p>The field above is only the one which is returned by all MIDI
3153                      ports regardless of the MIDI driver and port. Every MIDI port                      ports regardless of the MIDI driver and port. Every MIDI port
3154                      might have its own, additional driver and port specific                      might have its own, additional driver and port specific
# Line 2498  Intellectual Property and Copyright Stat Line 3156  Intellectual Property and Copyright Stat
3156  </p>  </p>
3157  <p>Example:  <p>Example:
3158  </p>  </p>
3159  <p></p>  <p>
3160                            </p>
3161  <blockquote class="text">  <blockquote class="text">
3162  <p>C: "GET MIDI_INPUT_PORT INFO 0 0"  <p>C: "GET MIDI_INPUT_PORT INFO 0 0"
3163  </p>  </p>
# Line 2508  Intellectual Property and Copyright Stat Line 3167  Intellectual Property and Copyright Stat
3167  </p>  </p>
3168  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3169  </p>  </p>
3170  </blockquote>  </blockquote><p>
3171                        
3172  <a name="rfc.section.5.3.12"></a><h4><a name="GET MIDI_INPUT_PORT_PARAMETER INFO">5.3.12</a>&nbsp;Getting information about specific MIDI port parameter</h4>  </p>
3173    <a name="GET MIDI_INPUT_PORT_PARAMETER INFO"></a><br /><hr />
3174    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3175    <a name="rfc.section.6.3.12"></a><h3>6.3.12.&nbsp;
3176    Getting information about specific MIDI port parameter</h3>
3177    
3178  <p>Use the following command to get detailed information about specific MIDI port parameter:  <p>Use the following command to get detailed information about specific MIDI port parameter:
3179  </p>  </p>
3180  <p></p>  <p>
3181                            </p>
3182  <blockquote class="text">  <blockquote class="text">
3183  <p>GET MIDI_INPUT_PORT_PARAMETER INFO &lt;dev-id&gt; &lt;port&gt; &lt;param&gt;  <p>GET MIDI_INPUT_PORT_PARAMETER INFO &lt;dev-id&gt; &lt;port&gt; &lt;param&gt;
3184  </p>  </p>
3185  </blockquote>  </blockquote><p>
3186                        
3187  <p>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned  </p>
3188                      by the <a class="info" href="#LIST MIDI_INPUT_DEVICES">"LIST MIDI_INPUT_DEVICES"<span>Getting all created MIDI input device list</span></a> command, &lt;port&gt; the MIDI port number and  <p>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned by the
3189                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3190                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3191                        command, &lt;port&gt; the MIDI port number and
3192                      &lt;param&gt; a specific port parameter name for which information should be                      &lt;param&gt; a specific port parameter name for which information should be
3193                      obtained (as returned by the <a class="info" href="#GET MIDI_INPUT_PORT INFO">"GET MIDI_INPUT_PORT INFO"<span>Getting information about a MIDI port</span></a> command).                      obtained (as returned by the <a class='info' href='#GET MIDI_INPUT_PORT INFO'>"GET MIDI_INPUT_PORT INFO"<span> (</span><span class='info'>Getting information about a MIDI port</span><span>)</span></a> command).
3194  </p>  </p>
3195  <p>Possible Answers:  <p>Possible Answers:
3196  </p>  </p>
3197  <p></p>  <p>
3198                            </p>
3199  <blockquote class="text">  <blockquote class="text">
3200  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3201                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 2547  Intellectual Property and Copyright Stat Line 3215  Intellectual Property and Copyright Stat
3215                                      (always returned)                                      (always returned)
3216  </p>  </p>
3217  </blockquote>  </blockquote>
3218                                
3219    
3220  <p>DESCRIPTION -  <p>DESCRIPTION -
3221                                  </p>                                  </p>
# Line 2555  Intellectual Property and Copyright Stat Line 3224  Intellectual Property and Copyright Stat
3224                                      (always returned)                                      (always returned)
3225  </p>  </p>
3226  </blockquote>  </blockquote>
3227                                
3228    
3229  <p>FIX -  <p>FIX -
3230                                  </p>                                  </p>
# Line 2564  Intellectual Property and Copyright Stat Line 3234  Intellectual Property and Copyright Stat
3234                                      (always returned)                                      (always returned)
3235  </p>  </p>
3236  </blockquote>  </blockquote>
3237                                
3238    
3239  <p>MULTIPLICITY -  <p>MULTIPLICITY -
3240                                  </p>                                  </p>
# Line 2574  Intellectual Property and Copyright Stat Line 3245  Intellectual Property and Copyright Stat
3245                                      (always returned)                                      (always returned)
3246  </p>  </p>
3247  </blockquote>  </blockquote>
3248                                
3249    
3250  <p>RANGE_MIN -  <p>RANGE_MIN -
3251                                  </p>                                  </p>
# Line 2586  Intellectual Property and Copyright Stat Line 3258  Intellectual Property and Copyright Stat
3258                                      parameter)                                      parameter)
3259  </p>  </p>
3260  </blockquote>  </blockquote>
3261                                
3262    
3263  <p>RANGE_MAX -  <p>RANGE_MAX -
3264                                  </p>                                  </p>
# Line 2598  Intellectual Property and Copyright Stat Line 3271  Intellectual Property and Copyright Stat
3271                                      parameter)                                      parameter)
3272  </p>  </p>
3273  </blockquote>  </blockquote>
3274                                
3275    
3276  <p>POSSIBILITIES -  <p>POSSIBILITIES -
3277                                  </p>                                  </p>
# Line 2609  Intellectual Property and Copyright Stat Line 3283  Intellectual Property and Copyright Stat
3283                                      parameter)                                      parameter)
3284  </p>  </p>
3285  </blockquote>  </blockquote>
3286                                
3287    
3288  </blockquote>  </blockquote><p>
3289                        
3290    </p>
3291  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
3292  </p>  </p>
3293  <p>Example:  <p>Example:
3294  </p>  </p>
3295  <p></p>  <p>
3296                            </p>
3297  <blockquote class="text">  <blockquote class="text">
3298  <p>C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"  <p>C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
3299  </p>  </p>
# Line 2632  Intellectual Property and Copyright Stat Line 3309  Intellectual Property and Copyright Stat
3309  </p>  </p>
3310  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3311  </p>  </p>
3312  </blockquote>  </blockquote><p>
3313                        
3314  <a name="rfc.section.5.3.13"></a><h4><a name="SET MIDI_INPUT_PORT_PARAMETER">5.3.13</a>&nbsp;Changing settings of MIDI input ports</h4>  </p>
3315    <a name="SET MIDI_INPUT_PORT_PARAMETER"></a><br /><hr />
3316    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3317    <a name="rfc.section.6.3.13"></a><h3>6.3.13.&nbsp;
3318    Changing settings of MIDI input ports</h3>
3319    
3320  <p>Use the following command to alter a specific setting of a MIDI input port:  <p>Use the following command to alter a specific setting of a MIDI input port:
3321  </p>  </p>
3322  <p></p>  <p>
3323                            </p>
3324  <blockquote class="text">  <blockquote class="text">
3325  <p>SET MIDI_INPUT_PORT_PARAMETER &lt;device-id&gt; &lt;port&gt; &lt;key&gt;=&lt;value&gt;  <p>SET MIDI_INPUT_PORT_PARAMETER &lt;device-id&gt; &lt;port&gt; &lt;key&gt;=&lt;value&gt;
3326  </p>  </p>
3327  </blockquote>  </blockquote><p>
3328                        
3329    </p>
3330  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the  <p>Where &lt;device-id&gt; should be replaced by the numerical ID of the
3331                      MIDI device, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of                      MIDI device as returned by the
3332                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
3333                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a>
3334                        command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of
3335                      the parameter to change and &lt;value&gt; by the new value for this                      the parameter to change and &lt;value&gt; by the new value for this
3336                      parameter.                      parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3337                        for specifying no value for parameters allowing a list of values.
3338  </p>  </p>
3339  <p>Possible Answers:  <p>Possible Answers:
3340  </p>  </p>
3341  <p></p>  <p>
3342                            </p>
3343  <blockquote class="text">  <blockquote class="text">
3344  <p>"OK" -  <p>"OK" -
3345                                  </p>                                  </p>
# Line 2659  Intellectual Property and Copyright Stat Line 3347  Intellectual Property and Copyright Stat
3347  <p>in case setting was successfully changed  <p>in case setting was successfully changed
3348  </p>  </p>
3349  </blockquote>  </blockquote>
3350                                
3351    
3352  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3353                                  </p>                                  </p>
# Line 2668  Intellectual Property and Copyright Stat Line 3357  Intellectual Property and Copyright Stat
3357                                      warning code and warning message                                      warning code and warning message
3358  </p>  </p>
3359  </blockquote>  </blockquote>
3360                                
3361    
3362  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3363                                  </p>                                  </p>
# Line 2675  Intellectual Property and Copyright Stat Line 3365  Intellectual Property and Copyright Stat
3365  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
3366  </p>  </p>
3367  </blockquote>  </blockquote>
3368                                
3369    
3370  </blockquote>  </blockquote><p>
3371                        
3372    </p>
3373  <p>Example:  <p>Example:
3374  </p>  </p>
3375  <p></p>  <p>
3376                            </p>
3377  <blockquote class="text">  <blockquote class="text">
3378    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3379    </p>
3380    <p>S: "OK"
3381    </p>
3382    </blockquote><p>
3383                        
3384    </p>
3385  <p>  <p>
3386                            </p>
3387    <blockquote class="text">
3388    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3389  </p>  </p>
3390  </blockquote>  <p>S: "OK"
   
 <a name="rfc.section.5.4"></a><h4><a name="anchor12">5.4</a>&nbsp;Configuring sampler channels</h4>  
   
 <p>The following commands describe how to add and remove sampler channels, deploy  
                 sampler engines, load instruments and connect sampler channels to MIDI and audio devices.  
3391  </p>  </p>
3392  <a name="rfc.section.5.4.1"></a><h4><a name="LOAD INSTRUMENT">5.4.1</a>&nbsp;Loading an instrument</h4>  </blockquote><p>
3393                        
3394    </p>
3395    <a name="anchor11"></a><br /><hr />
3396    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3397    <a name="rfc.section.6.4"></a><h3>6.4.&nbsp;
3398    Configuring sampler channels</h3>
3399    
3400    <p>The following commands describe how to add and remove sampler channels, associate a
3401                    sampler channel with a sampler engine, load instruments and connect sampler channels to
3402                    MIDI and audio devices.
3403    </p>
3404    <a name="LOAD INSTRUMENT"></a><br /><hr />
3405    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3406    <a name="rfc.section.6.4.1"></a><h3>6.4.1.&nbsp;
3407    Loading an instrument</h3>
3408    
3409  <p>An instrument file can be loaded and assigned to a sampler channel by one of the following commands:  <p>An instrument file can be loaded and assigned to a sampler channel by one of the following commands:
3410  </p>  </p>
3411  <p></p>  <p>
3412                            </p>
3413  <blockquote class="text">  <blockquote class="text">
3414  <p>LOAD INSTRUMENT [NON_MODAL] '&lt;filename&gt;' &lt;instr-index&gt; &lt;sampler-channel&gt;  <p>LOAD INSTRUMENT [NON_MODAL] '&lt;filename&gt;' &lt;instr-index&gt; &lt;sampler-channel&gt;
3415  </p>  </p>
3416  </blockquote>  </blockquote><p>
3417                        
3418    </p>
3419  <p>Where &lt;filename&gt; is the name of the instrument file on the  <p>Where &lt;filename&gt; is the name of the instrument file on the
3420                      LinuxSampler instance's host system, &lt;instr-index&gt; the index of the                      LinuxSampler instance's host system, &lt;instr-index&gt; the index of the
3421                      instrument in the instrument file and &lt;sampler-channel> is the                      instrument in the instrument file and &lt;sampler-channel> is the
3422                      number of the sampler channel the instrument should be assigned to.                      number of the sampler channel the instrument should be assigned to.
3423                      Each sampler channel can only have one instrument.                      Each sampler channel can only have one instrument.
3424  </p>  </p>
3425    <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3426                        escape characters for special characters (see chapter
3427                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>"
3428                        for details) and accordingly backslash characters in the filename
3429                        MUST now be escaped as well!
3430    </p>
3431  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
3432                      is that the regular command returns OK only after the instrument has been                      is that the regular command returns OK only after the instrument has been
3433                      fully loaded and the channel is ready to be used while NON_MODAL version                      fully loaded and the channel is ready to be used while NON_MODAL version
3434                      returns immediately and a background process is launched to load the instrument                      returns immediately and a background process is launched to load the instrument
3435                      on the channel. The <a class="info" href="#GET CHANNEL INFO">GET CHANNEL INFO<span>Getting sampler channel information</span></a>                      on the channel. The <a class='info' href='#GET CHANNEL INFO'>GET CHANNEL INFO<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
3436                      command can be used to obtain loading                      command can be used to obtain loading
3437                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks
3438                      such as making sure that the file could be read and it is of a proper format                      such as making sure that the file could be read and it is of a proper format
# Line 2720  Intellectual Property and Copyright Stat Line 3441  Intellectual Property and Copyright Stat
3441  </p>  </p>
3442  <p>Possible Answers:  <p>Possible Answers:
3443  </p>  </p>
3444  <p></p>  <p>
3445                            </p>
3446  <blockquote class="text">  <blockquote class="text">
3447  <p>"OK" -  <p>"OK" -
3448                                  </p>                                  </p>
# Line 2728  Intellectual Property and Copyright Stat Line 3450  Intellectual Property and Copyright Stat
3450  <p>in case the instrument was successfully loaded  <p>in case the instrument was successfully loaded
3451  </p>  </p>
3452  </blockquote>  </blockquote>
3453                                
3454    
3455  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3456                                  </p>                                  </p>
# Line 2739  Intellectual Property and Copyright Stat Line 3462  Intellectual Property and Copyright Stat
3462                                      warning message                                      warning message
3463  </p>  </p>
3464  </blockquote>  </blockquote>
3465                                
3466    
3467  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3468                                  </p>                                  </p>
# Line 2746  Intellectual Property and Copyright Stat Line 3470  Intellectual Property and Copyright Stat
3470  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
3471  </p>  </p>
3472  </blockquote>  </blockquote>
3473                                
3474    
3475  </blockquote>  </blockquote><p>
3476                        
3477  <p>Example:  </p>
3478    <p>Example (Unix):
3479  </p>  </p>
3480  <p></p>  <p>
3481                            </p>
3482  <blockquote class="text">  <blockquote class="text">
3483    <p>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
3484    </p>
3485    <p>S: OK
3486    </p>
3487    </blockquote><p>
3488                        
3489    </p>
3490    <p>Example (Windows):
3491    </p>
3492  <p>  <p>
3493                            </p>
3494    <blockquote class="text">
3495    <p>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0
3496  </p>  </p>
3497  </blockquote>  <p>S: OK
3498    </p>
3499  <a name="rfc.section.5.4.2"></a><h4><a name="LOAD ENGINE">5.4.2</a>&nbsp;Loading a sampler engine</h4>  </blockquote><p>
3500                        
3501    </p>
3502    <a name="LOAD ENGINE"></a><br /><hr />
3503    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3504    <a name="rfc.section.6.4.2"></a><h3>6.4.2.&nbsp;
3505    Loading a sampler engine</h3>
3506    
3507  <p>A sample engine can be deployed and assigned to a specific sampler  <p>A sampler engine type can be associated to a specific sampler
3508                      channel by the following command:                      channel by the following command:
3509  </p>  </p>
3510  <p></p>  <p>
3511                            </p>
3512  <blockquote class="text">  <blockquote class="text">
3513  <p>LOAD ENGINE &lt;engine-name&gt; &lt;sampler-channel&gt;  <p>LOAD ENGINE &lt;engine-name&gt; &lt;sampler-channel&gt;
3514  </p>  </p>
3515  </blockquote>  </blockquote><p>
3516                        
3517    </p>
3518  <p>Where &lt;engine-name&gt; is an engine name as obtained by the  <p>Where &lt;engine-name&gt; is an engine name as obtained by the
3519                      <a class="info" href="#LIST AVAILABLE_ENGINES">"LIST AVAILABLE_ENGINES"<span>Getting all available engines</span></a> command and &lt;sampler-channel&gt; the sampler channel the                      <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a> command and &lt;sampler-channel&gt;
3520                      deployed engine should be assigned to. Even if the respective                      the sampler channel as returned by the
3521                      sampler channel has already a deployed engine with that engine                      <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a> or
3522                      name, a new engine instance will be assigned to the sampler channel.                      <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command where
3523                        the engine type should be assigned to. This command should be issued
3524                        after adding a new sampler channel and before any other control
3525                        commands on the new sampler channel. It can also be used to change
3526                        the engine type of a sampler channel. This command has (currently) no
3527                        way to define or force if a new engine instance should be created and
3528                        assigned to the given sampler channel or if an already existing
3529                        instance of that engine type, shared with other sampler channels,
3530                        should be used.
3531  </p>  </p>
3532  <p>Possible Answers:  <p>Possible Answers:
3533  </p>  </p>
3534  <p></p>  <p>
3535                            </p>
3536  <blockquote class="text">  <blockquote class="text">
3537  <p>"OK" -  <p>"OK" -
3538                                  </p>                                  </p>
# Line 2784  Intellectual Property and Copyright Stat Line 3540  Intellectual Property and Copyright Stat
3540  <p>in case the engine was successfully deployed  <p>in case the engine was successfully deployed
3541  </p>  </p>
3542  </blockquote>  </blockquote>
3543                                
3544    
3545  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3546                                  </p>                                  </p>
# Line 2793  Intellectual Property and Copyright Stat Line 3550  Intellectual Property and Copyright Stat
3550                                      warning code and warning message                                      warning code and warning message
3551  </p>  </p>
3552  </blockquote>  </blockquote>
3553                                
3554    
3555  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3556                                  </p>                                  </p>
# Line 2801  Intellectual Property and Copyright Stat Line 3559  Intellectual Property and Copyright Stat
3559                                      error message                                      error message
3560  </p>  </p>
3561  </blockquote>  </blockquote>
3562                                
3563    
3564  </blockquote>  </blockquote><p>
3565                        
3566    </p>
3567  <p>Example:  <p>Example:
3568  </p>  </p>
3569  <p></p>  <p>
3570                            </p>
3571  <blockquote class="text">  <blockquote class="text">
3572  <p>  <p>
3573  </p>  </p>
3574  </blockquote>  </blockquote><p>
3575                        
3576  <a name="rfc.section.5.4.3"></a><h4><a name="GET CHANNELS">5.4.3</a>&nbsp;Getting all created sampler channel count</h4>  </p>
3577    <a name="GET CHANNELS"></a><br /><hr />
3578    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3579    <a name="rfc.section.6.4.3"></a><h3>6.4.3.&nbsp;
3580    Getting all created sampler channel count</h3>
3581    
3582  <p>The number of sampler channels can change on runtime. To get the  <p>The number of sampler channels can change on runtime. To get the
3583                      current amount of sampler channels, the front-end can send the                      current amount of sampler channels, the front-end can send the
3584                      following command:                      following command:
3585  </p>  </p>
3586  <p></p>  <p>
3587                            </p>
3588  <blockquote class="text">  <blockquote class="text">
3589  <p>GET CHANNELS  <p>GET CHANNELS
3590  </p>  </p>
3591  </blockquote>  </blockquote><p>
3592                        
3593    </p>
3594  <p>Possible Answers:  <p>Possible Answers:
3595  </p>  </p>
3596  <p></p>  <p>
3597                            </p>
3598  <blockquote class="text">  <blockquote class="text">
3599  <p>LinuxSampler will answer by returning the current number of sampler channels.  <p>LinuxSampler will answer by returning the current number of sampler channels.
3600  </p>  </p>
3601  </blockquote>  </blockquote><p>
3602                        
3603    </p>
3604  <p>Example:  <p>Example:
3605  </p>  </p>
3606  <p></p>  <p>
3607                            </p>
3608  <blockquote class="text">  <blockquote class="text">
3609  <p>C: "GET CHANNELS"  <p>C: "GET CHANNELS"
3610  </p>  </p>
3611  <p>S: "12"  <p>S: "12"
3612  </p>  </p>
3613  </blockquote>  </blockquote><p>
3614                        
3615  <a name="rfc.section.5.4.4"></a><h4><a name="LIST CHANNELS">5.4.4</a>&nbsp;Getting all created sampler channel list</h4>  </p>
3616    <a name="LIST CHANNELS"></a><br /><hr />
3617    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3618    <a name="rfc.section.6.4.4"></a><h3>6.4.4.&nbsp;
3619    Getting all created sampler channel list</h3>
3620    
3621  <p>The number of sampler channels can change on runtime. To get the  <p>The number of sampler channels can change on runtime. To get the
3622                      current list of sampler channels, the front-end can send the                      current list of sampler channels, the front-end can send the
3623                      following command:                      following command:
3624  </p>  </p>
3625  <p></p>  <p>
3626                            </p>
3627  <blockquote class="text">  <blockquote class="text">
3628  <p>LIST CHANNELS  <p>LIST CHANNELS
3629  </p>  </p>
3630  </blockquote>  </blockquote><p>
3631                        
3632    </p>
3633  <p>Possible Answers:  <p>Possible Answers:
3634  </p>  </p>
3635  <p></p>  <p>
3636                            </p>
3637  <blockquote class="text">  <blockquote class="text">
3638  <p>LinuxSampler will answer by returning a comma separated list  <p>LinuxSampler will answer by returning a comma separated list
3639                              with all sampler channels numerical IDs.                              with all sampler channels numerical IDs.
3640  </p>  </p>
3641  </blockquote>  </blockquote><p>
3642                        
3643    </p>
3644  <p>Example:  <p>Example:
3645  </p>  </p>
3646  <p></p>  <p>
3647                            </p>
3648  <blockquote class="text">  <blockquote class="text">
3649  <p>C: "LIST CHANNELS"  <p>C: "LIST CHANNELS"
3650  </p>  </p>
3651  <p>S: "0,1,2,3,4,5,6,9,10,11,15,20"  <p>S: "0,1,2,3,4,5,6,9,10,11,15,20"
3652  </p>  </p>
3653  </blockquote>  </blockquote><p>
3654                        
3655  <a name="rfc.section.5.4.5"></a><h4><a name="ADD CHANNEL">5.4.5</a>&nbsp;Adding a new sampler channel</h4>  </p>
3656    <a name="ADD CHANNEL"></a><br /><hr />
3657    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3658    <a name="rfc.section.6.4.5"></a><h3>6.4.5.&nbsp;
3659    Adding a new sampler channel</h3>
3660    
3661  <p>A new sampler channel can be added to the end of the sampler  <p>A new sampler channel can be added to the end of the sampler
3662                      channel list by sending the following command:                      channel list by sending the following command:
3663  </p>  </p>
3664  <p></p>  <p>
3665                            </p>
3666  <blockquote class="text">  <blockquote class="text">
3667  <p>ADD CHANNEL  <p>ADD CHANNEL
3668  </p>  </p>
3669  </blockquote>  </blockquote><p>
3670                        
3671    </p>
3672  <p>This will increment the sampler channel count by one and the new  <p>This will increment the sampler channel count by one and the new
3673                      sampler channel will be appended to the end of the sampler channel                      sampler channel will be appended to the end of the sampler channel
3674                      list. The front-end should send the respective, related commands                      list. The front-end should send the respective, related commands
# Line 2896  Intellectual Property and Copyright Stat Line 3681  Intellectual Property and Copyright Stat
3681  </p>  </p>
3682  <p>Possible Answers:  <p>Possible Answers:
3683  </p>  </p>
3684  <p></p>  <p>
3685                            </p>
3686  <blockquote class="text">  <blockquote class="text">
3687  <p>"OK[&lt;sampler-channel&gt;]" -  <p>"OK[&lt;sampler-channel&gt;]" -
3688                                  </p>                                  </p>
# Line 2908  Intellectual Property and Copyright Stat Line 3694  Intellectual Property and Copyright Stat
3694                                      commands                                      commands
3695  </p>  </p>
3696  </blockquote>  </blockquote>
3697                                
3698    
3699  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3700                                  </p>                                  </p>
# Line 2917  Intellectual Property and Copyright Stat Line 3704  Intellectual Property and Copyright Stat
3704                                      warning code and warning message                                      warning code and warning message
3705  </p>  </p>
3706  </blockquote>  </blockquote>
3707                                
3708    
3709  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3710                                  </p>                                  </p>
# Line 2925  Intellectual Property and Copyright Stat Line 3713  Intellectual Property and Copyright Stat
3713                                      error message                                      error message
3714  </p>  </p>
3715  </blockquote>  </blockquote>
3716                                
3717    
3718  </blockquote>  </blockquote><p>
3719                        
3720    </p>
3721  <p>Example:  <p>Example:
3722  </p>  </p>
3723  <p></p>  <p>
3724                            </p>
3725  <blockquote class="text">  <blockquote class="text">
3726  <p>  <p>
3727  </p>  </p>
3728  </blockquote>  </blockquote><p>
3729                        
3730  <a name="rfc.section.5.4.6"></a><h4><a name="REMOVE CHANNEL">5.4.6</a>&nbsp;Removing a sampler channel</h4>  </p>
3731    <a name="REMOVE CHANNEL"></a><br /><hr />
3732    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3733    <a name="rfc.section.6.4.6"></a><h3>6.4.6.&nbsp;
3734    Removing a sampler channel</h3>
3735    
3736  <p>A sampler channel can be removed by sending the following command:  <p>A sampler channel can be removed by sending the following command:
3737  </p>  </p>
3738  <p></p>  <p>
3739                            </p>
3740  <blockquote class="text">  <blockquote class="text">
3741  <p>REMOVE CHANNEL &lt;sampler-channel&gt;  <p>REMOVE CHANNEL &lt;sampler-channel&gt;
3742  </p>  </p>
3743  </blockquote>  </blockquote><p>
3744                        
3745    </p>
3746  <p>Where &lt;sampler-channel&gt; should be replaced by the  <p>Where &lt;sampler-channel&gt; should be replaced by the
3747                      number of the sampler channel as given by the                      number of the sampler channel as given by the
3748                      <a class="info" href="#ADD CHANNEL">"ADD CHANNEL"<span>Adding a new sampler channel</span></a>                      <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
3749                      or <a class="info" href="#LIST CHANNELS">"LIST CHANNELS"<span>Getting all created sampler channel list</span></a>                      or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
3750                      command. The channel numbers of all subsequent sampler channels                      command. The channel numbers of all subsequent sampler channels
3751                      remain the same.                      remain the same.
3752  </p>  </p>
3753  <p>Possible Answers:  <p>Possible Answers:
3754  </p>  </p>
3755  <p></p>  <p>
3756                            </p>
3757  <blockquote class="text">  <blockquote class="text">
3758  <p>"OK" -  <p>"OK" -
3759                                  </p>                                  </p>
# Line 2963  Intellectual Property and Copyright Stat Line 3761  Intellectual Property and Copyright Stat
3761  <p>in case the given sampler channel could be removed  <p>in case the given sampler channel could be removed
3762  </p>  </p>
3763  </blockquote>  </blockquote>
3764                                
3765    
3766  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3767                                  </p>                                  </p>
# Line 2972  Intellectual Property and Copyright Stat Line 3771  Intellectual Property and Copyright Stat
3771                                      warning code and warning message                                      warning code and warning message
3772  </p>  </p>
3773  </blockquote>  </blockquote>
3774                                
3775    
3776  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3777                                  </p>                                  </p>
# Line 2980  Intellectual Property and Copyright Stat Line 3780  Intellectual Property and Copyright Stat
3780                                      error message                                      error message
3781  </p>  </p>
3782  </blockquote>  </blockquote>
3783                                
3784    
3785  </blockquote>  </blockquote><p>
3786                        
3787    </p>
3788  <p>Example:  <p>Example:
3789  </p>  </p>
3790  <p></p>  <p>
3791                            </p>
3792  <blockquote class="text">  <blockquote class="text">
3793  <p>  <p>
3794  </p>  </p>
3795  </blockquote>  </blockquote><p>
3796                        
3797  <a name="rfc.section.5.4.7"></a><h4><a name="GET AVAILABLE_ENGINES">5.4.7</a>&nbsp;Getting amount of available engines</h4>  </p>
3798    <a name="GET AVAILABLE_ENGINES"></a><br /><hr />
3799    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3800    <a name="rfc.section.6.4.7"></a><h3>6.4.7.&nbsp;
3801    Getting amount of available engines</h3>
3802    
3803  <p>The front-end can ask for the number of available engines by sending the following command:  <p>The front-end can ask for the number of available engines by sending the following command:
3804  </p>  </p>
3805  <p></p>  <p>
3806                            </p>
3807  <blockquote class="text">  <blockquote class="text">
3808  <p>GET AVAILABLE_ENGINES  <p>GET AVAILABLE_ENGINES
3809  </p>  </p>
3810  </blockquote>  </blockquote><p>
3811                        
3812    </p>
3813  <p>Possible Answers:  <p>Possible Answers:
3814  </p>  </p>
3815  <p></p>  <p>
3816                            </p>
3817  <blockquote class="text">  <blockquote class="text">
3818  <p>LinuxSampler will answer by sending the number of available engines.  <p>LinuxSampler will answer by sending the number of available engines.
3819  </p>  </p>
3820  </blockquote>  </blockquote><p>
3821                        
3822    </p>
3823  <p>Example:  <p>Example:
3824  </p>  </p>
3825  <p></p>  <p>
3826                            </p>
3827  <blockquote class="text">  <blockquote class="text">
3828  <p>C: "GET AVAILABLE_ENGINES"  <p>C: "GET AVAILABLE_ENGINES"
3829  </p>  </p>
3830  <p>S: "4"  <p>S: "4"
3831  </p>  </p>
3832  </blockquote>  </blockquote><p>
3833                        
3834  <a name="rfc.section.5.4.8"></a><h4><a name="LIST AVAILABLE_ENGINES">5.4.8</a>&nbsp;Getting all available engines</h4>  </p>
3835    <a name="LIST AVAILABLE_ENGINES"></a><br /><hr />
3836    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3837    <a name="rfc.section.6.4.8"></a><h3>6.4.8.&nbsp;
3838    Getting all available engines</h3>
3839    
3840  <p>The front-end can ask for a list of all available engines by sending the following command:  <p>The front-end can ask for a list of all available engines by sending the following command:
3841  </p>  </p>
3842  <p></p>  <p>
3843                            </p>
3844  <blockquote class="text">  <blockquote class="text">
3845  <p>LIST AVAILABLE_ENGINES  <p>LIST AVAILABLE_ENGINES
3846  </p>  </p>
3847  </blockquote>  </blockquote><p>
3848                        
3849    </p>
3850  <p>Possible Answers:  <p>Possible Answers:
3851  </p>  </p>
3852  <p></p>  <p>
3853                            </p>
3854  <blockquote class="text">  <blockquote class="text">
3855  <p>LinuxSampler will answer by sending a comma separated list  <p>LinuxSampler will answer by sending a comma separated list
3856                              of the engines' names encapsulated into apostrophes (').                              of the engines' names encapsulated into apostrophes (').
3857                              Engine names can consist of lower and upper cases,                              Engine names can consist of lower and upper cases,
3858                              digits and underlines ("_" character).                              digits and underlines ("_" character).
3859  </p>  </p>
3860  </blockquote>  </blockquote><p>
3861                        
3862    </p>
3863  <p>Example:  <p>Example:
3864  </p>  </p>
3865  <p></p>  <p>
3866                            </p>
3867  <blockquote class="text">  <blockquote class="text">
3868  <p>C: "LIST AVAILABLE_ENGINES"  <p>C: "LIST AVAILABLE_ENGINES"
3869  </p>  </p>
3870  <p>S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"  <p>S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"
3871  </p>  </p>
3872  </blockquote>  </blockquote><p>
3873                        
3874  <a name="rfc.section.5.4.9"></a><h4><a name="GET ENGINE INFO">5.4.9</a>&nbsp;Getting information about an engine</h4>  </p>
3875    <a name="GET ENGINE INFO"></a><br /><hr />
3876    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3877    <a name="rfc.section.6.4.9"></a><h3>6.4.9.&nbsp;
3878    Getting information about an engine</h3>
3879    
3880  <p>The front-end can ask for information about a specific engine by  <p>The front-end can ask for information about a specific engine by
3881                      sending the following command:                      sending the following command:
3882  </p>  </p>
3883  <p></p>  <p>
3884                            </p>
3885  <blockquote class="text">  <blockquote class="text">
3886  <p>GET ENGINE INFO &lt;engine-name&gt;  <p>GET ENGINE INFO &lt;engine-name&gt;
3887  </p>  </p>
3888  </blockquote>  </blockquote><p>
3889                        
3890    </p>
3891  <p>Where &lt;engine-name&gt; is an engine name as obtained by the  <p>Where &lt;engine-name&gt; is an engine name as obtained by the
3892                      <a class="info" href="#LIST AVAILABLE_ENGINES">"LIST AVAILABLE_ENGINES"<span>Getting all available engines</span></a> command.                      <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a> command.
3893  </p>  </p>
3894  <p>Possible Answers:  <p>Possible Answers:
3895  </p>  </p>
3896  <p></p>  <p>
3897                            </p>
3898  <blockquote class="text">  <blockquote class="text">
3899  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3900                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 3074  Intellectual Property and Copyright Stat Line 3902  Intellectual Property and Copyright Stat
3902                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
3903                              the following categories are defined:                              the following categories are defined:
3904  </p>  </p>
3905  <p></p>  <p>
3906                                    </p>
3907  <blockquote class="text">  <blockquote class="text">
3908  <p>DESCRIPTION -  <p>DESCRIPTION -
3909                                          </p>                                          </p>
3910  <blockquote class="text">  <blockquote class="text">
3911  <p>arbitrary description text about the engine  <p>arbitrary description text about the engine
3912                                                (note that the character string may contain
3913                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
3914  </p>  </p>
3915  </blockquote>  </blockquote>
3916                                        
3917    
3918  <p>VERSION -  <p>VERSION -
3919                                          </p>                                          </p>
# Line 3089  Intellectual Property and Copyright Stat Line 3921  Intellectual Property and Copyright Stat
3921  <p>arbitrary character string regarding the engine's version  <p>arbitrary character string regarding the engine's version
3922  </p>  </p>
3923  </blockquote>  </blockquote>
3924                                        
3925    
3926  </blockquote>  </blockquote>
3927                                
3928    
3929  </blockquote>  </blockquote><p>
3930                        
3931    </p>
3932  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
3933  </p>  </p>
3934  <p>Example:  <p>Example:
3935  </p>  </p>
3936  <p></p>  <p>
3937                            </p>
3938  <blockquote class="text">  <blockquote class="text">
3939  <p>C: "GET ENGINE INFO JoesCustomEngine"  <p>C: "GET ENGINE INFO JoesCustomEngine"
3940  </p>  </p>
# Line 3108  Intellectual Property and Copyright Stat Line 3944  Intellectual Property and Copyright Stat
3944  </p>  </p>
3945  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3946  </p>  </p>
3947  </blockquote>  </blockquote><p>
3948                        
3949  <a name="rfc.section.5.4.10"></a><h4><a name="GET CHANNEL INFO">5.4.10</a>&nbsp;Getting sampler channel information</h4>  </p>
3950    <a name="GET CHANNEL INFO"></a><br /><hr />
3951    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
3952    <a name="rfc.section.6.4.10"></a><h3>6.4.10.&nbsp;
3953    Getting sampler channel information</h3>
3954    
3955  <p>The front-end can ask for the current settings of a sampler channel  <p>The front-end can ask for the current settings of a sampler channel
3956                      by sending the following command:                      by sending the following command:
3957  </p>  </p>
3958  <p></p>  <p>
3959                            </p>
3960  <blockquote class="text">  <blockquote class="text">
3961  <p>GET CHANNEL INFO &lt;sampler-channel&gt;  <p>GET CHANNEL INFO &lt;sampler-channel&gt;
3962  </p>  </p>
3963  </blockquote>  </blockquote><p>
3964                        
3965  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
3966    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
3967                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
3968                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
3969  </p>  </p>
3970  <p>Possible Answers:  <p>Possible Answers:
3971  </p>  </p>
3972  <p></p>  <p>
3973                            </p>
3974  <blockquote class="text">  <blockquote class="text">
3975  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3976                              Each answer line begins with the settings category name                              Each answer line begins with the settings category name
# Line 3133  Intellectual Property and Copyright Stat Line 3978  Intellectual Property and Copyright Stat
3978                              the info character string to that setting category. At the                              the info character string to that setting category. At the
3979                              moment the following categories are defined:                              moment the following categories are defined:
3980  </p>  </p>
3981  <p></p>  <p>
3982                                    </p>
3983  <blockquote class="text">  <blockquote class="text">
3984  <p>ENGINE_NAME -  <p>ENGINE_NAME -
3985                                          </p>                                          </p>
3986  <blockquote class="text">  <blockquote class="text">
3987  <p>name of the engine that is deployed on the sampler  <p>name of the engine that is associated with the sampler
3988                                              channel, "NONE" if there's no engine deployed yet for                                              channel, "NONE" if there's no engine associated yet for
3989                                              this sampler channel                                              this sampler channel
3990  </p>  </p>
3991  </blockquote>  </blockquote>
3992                                        
3993    
3994  <p>AUDIO_OUTPUT_DEVICE -  <p>AUDIO_OUTPUT_DEVICE -
3995                                          </p>                                          </p>
3996  <blockquote class="text">  <blockquote class="text">
3997  <p>numerical ID of the audio output device which is  <p>numerical ID of the audio output device which is
3998                                              currently connected to this sampler channel to output                                              currently connected to this sampler channel to output
3999                                              the audio signal, "NONE" if there's no device                                              the audio signal, "-1" if there's no device
4000                                              connected to this sampler channel                                              connected to this sampler channel
4001  </p>  </p>
4002  </blockquote>  </blockquote>
4003                                        
4004    
4005  <p>AUDIO_OUTPUT_CHANNELS -  <p>AUDIO_OUTPUT_CHANNELS -
4006                                          </p>                                          </p>
# Line 3161  Intellectual Property and Copyright Stat Line 4009  Intellectual Property and Copyright Stat
4009                                              (dependent to used sampler engine and loaded instrument)                                              (dependent to used sampler engine and loaded instrument)
4010  </p>  </p>
4011  </blockquote>  </blockquote>
4012                                        
4013    
4014  <p>AUDIO_OUTPUT_ROUTING -  <p>AUDIO_OUTPUT_ROUTING -
4015                                          </p>                                          </p>
# Line 3174  Intellectual Property and Copyright Stat Line 4023  Intellectual Property and Copyright Stat
4023                                              output device                                              output device
4024  </p>  </p>
4025  </blockquote>  </blockquote>
4026                                        
4027    
4028  <p>INSTRUMENT_FILE -  <p>INSTRUMENT_FILE -
4029                                          </p>                                          </p>
4030  <blockquote class="text">  <blockquote class="text">
4031  <p>the file name of the loaded instrument, "NONE" if  <p>the file name of the loaded instrument, "NONE" if
4032                                              there's no instrument yet loaded for this sampler                                              there's no instrument yet loaded for this sampler
4033                                              channel                                              channel (note: since LSCP 1.2 this path may contain
4034                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4035  </p>  </p>
4036  </blockquote>  </blockquote>
4037                                        
4038    
4039  <p>INSTRUMENT_NR -  <p>INSTRUMENT_NR -
4040                                          </p>                                          </p>
4041  <blockquote class="text">  <blockquote class="text">
4042  <p>the instrument index number of the loaded instrument  <p>the instrument index number of the loaded instrument,
4043                                                "-1" if there's no instrument loaded for this sampler
4044                                                channel
4045  </p>  </p>
4046  </blockquote>  </blockquote>
4047                                        
4048    
4049  <p>INSTRUMENT_NAME -  <p>INSTRUMENT_NAME -
4050                                          </p>                                          </p>
4051  <blockquote class="text">  <blockquote class="text">
4052  <p>the instrument name of the loaded instrument  <p>the instrument name of the loaded instrument
4053                                                (note: since LSCP 1.2 this character string may contain
4054                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4055  </p>  </p>
4056  </blockquote>  </blockquote>
4057                                        
4058    
4059  <p>INSTRUMENT_STATUS -  <p>INSTRUMENT_STATUS -
4060                                          </p>                                          </p>
4061  <blockquote class="text">  <blockquote class="text">
4062  <p>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative  <p>Integer values 0 to 100 indicating loading progress
4063                                              value indicates a loading exception. Value of 100 indicates that the instrument is fully                                              percentage for the instrument. Negative
4064                                                value indicates a loading exception (also returns "-1" in case no
4065                                                instrument was yet to be loaded on the sampler channel).
4066                                                Value of 100 indicates that the instrument is fully
4067                                              loaded.                                              loaded.
4068  </p>  </p>
4069  </blockquote>  </blockquote>
4070                                        
4071    
4072  <p>MIDI_INPUT_DEVICE -  <p>MIDI_INPUT_DEVICE -
4073                                          </p>                                          </p>
4074  <blockquote class="text">  <blockquote class="text">
4075  <p>numerical ID of the MIDI input device which is  <p>numerical ID of the MIDI input device which is
4076                                              currently connected to this sampler channel to deliver                                              currently connected to this sampler channel to deliver
4077                                              MIDI input commands, "NONE" if there's no device                                              MIDI input commands, "-1" if there's no device
4078                                              connected to this sampler channel                                              connected to this sampler channel
4079  </p>  </p>
4080  </blockquote>  </blockquote>
4081                                        
4082    
4083  <p>MIDI_INPUT_PORT -  <p>MIDI_INPUT_PORT -
4084                                          </p>                                          </p>
4085  <blockquote class="text">  <blockquote class="text">
4086  <p>port number of the MIDI input device  <p>port number of the MIDI input device (in case a
4087                                                MIDI device was already assigned to the sampler
4088                                                channel)
4089  </p>  </p>
4090  </blockquote>  </blockquote>
4091                                        
4092    
4093  <p>MIDI_INPUT_CHANNEL -  <p>MIDI_INPUT_CHANNEL -
4094                                          </p>                                          </p>
# Line 3231  Intellectual Property and Copyright Stat Line 4097  Intellectual Property and Copyright Stat
4097                                              should listen to or "ALL" to listen on all MIDI channels                                              should listen to or "ALL" to listen on all MIDI channels
4098  </p>  </p>
4099  </blockquote>  </blockquote>
4100                                        
4101    
4102  <p>VOLUME -  <p>VOLUME -
4103                                          </p>                                          </p>
4104  <blockquote class="text">  <blockquote class="text">
4105  <p>optionally dotted number for the channel volume factor  <p>optionally dotted number for the channel volume factor
4106                                              (where a value < 1.0 means attenuation and a value >                                              (where a value &lt; 1.0 means attenuation and a value >
4107                                              1.0 means amplification)                                              1.0 means amplification)
4108  </p>  </p>
4109  </blockquote>  </blockquote>
4110                                        
4111    
4112    <p>MUTE -
4113                                            </p>
4114    <blockquote class="text">
4115    <p>Determines whether the channel is muted, "true" if the
4116                                                channel is muted, "false" if the channel is not muted, and
4117                                                "MUTED_BY_SOLO" if the channel is muted because of the
4118                                                presence of a solo channel and will be unmuted when
4119                                                there are no solo channels left
4120    </p>
4121  </blockquote>  </blockquote>
4122                                        
4123    
4124    <p>SOLO -
4125                                            </p>
4126    <blockquote class="text">
4127    <p>Determines whether this is a solo channel, "true" if
4128                                                the channel is a solo channel; "false" otherwise
4129    </p>
4130  </blockquote>  </blockquote>
4131                                        
4132    
4133    <p>MIDI_INSTRUMENT_MAP -
4134                                            </p>
4135    <blockquote class="text">
4136    <p>Determines to which MIDI instrument map this sampler
4137                                                channel is assigned to. Read chapter
4138                                                <a class='info' href='#SET CHANNEL MIDI_INSTRUMENT_MAP'>"SET CHANNEL MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Assigning a MIDI instrument map to a sampler channel</span><span>)</span></a>
4139                                                for a list of possible values.
4140    </p>
4141    </blockquote>
4142                                        
4143    
4144    </blockquote>
4145                                
4146    
4147    </blockquote><p>
4148                        
4149    </p>
4150  <p>The mentioned fields above don't have to be in particular order.  <p>The mentioned fields above don't have to be in particular order.
4151  </p>  </p>
4152  <p>Example:  <p>Example:
4153  </p>  </p>
4154  <p></p>  <p>
4155                            </p>
4156  <blockquote class="text">  <blockquote class="text">
4157  <p>C: "GET CHANNEL INFO 34"  <p>C: "GET CHANNEL INFO 34"
4158  </p>  </p>
# Line 3277  Intellectual Property and Copyright Stat Line 4180  Intellectual Property and Copyright Stat
4180  </p>  </p>
4181  <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"  <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"
4182  </p>  </p>
4183    <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4184    </p>
4185    <p>&nbsp;&nbsp;&nbsp;"MUTE: false"
4186    </p>
4187    <p>&nbsp;&nbsp;&nbsp;"SOLO: false"
4188    </p>
4189    <p>&nbsp;&nbsp;&nbsp;"MIDI_INSTRUMENT_MAP: NONE"
4190    </p>
4191  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
4192  </p>  </p>
4193  </blockquote>  </blockquote><p>
4194                        
4195  <a name="rfc.section.5.4.11"></a><h4><a name="GET CHANNEL VOICE_COUNT">5.4.11</a>&nbsp;Current number of active voices</h4>  </p>
4196    <a name="GET CHANNEL VOICE_COUNT"></a><br /><hr />
4197    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4198    <a name="rfc.section.6.4.11"></a><h3>6.4.11.&nbsp;
4199    Current number of active voices</h3>
4200    
4201  <p>The front-end can ask for the current number of active voices on a  <p>The front-end can ask for the current number of active voices on a
4202                      sampler channel by sending the following command:                      sampler channel by sending the following command:
4203  </p>  </p>
4204  <p></p>  <p>
4205                            </p>
4206  <blockquote class="text">  <blockquote class="text">
4207  <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;  <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;
4208  </p>  </p>
4209  </blockquote>  </blockquote><p>
4210                        
4211  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
4212    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4213                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4214                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4215  </p>  </p>
4216  <p>Possible Answers:  <p>Possible Answers:
4217  </p>  </p>
4218  <p></p>  <p>
4219                            </p>
4220  <blockquote class="text">  <blockquote class="text">
4221  <p>LinuxSampler will answer by returning the number of active  <p>LinuxSampler will answer by returning the number of active
4222                              voices on that channel.                              voices on that channel.
4223  </p>  </p>
4224  </blockquote>  </blockquote><p>
4225                        
4226    </p>
4227  <p>Example:  <p>Example:
4228  </p>  </p>
4229  <p></p>  <p>
4230                            </p>
4231  <blockquote class="text">  <blockquote class="text">
4232  <p>  <p>
4233  </p>  </p>
4234  </blockquote>  </blockquote><p>
4235                        
4236  <a name="rfc.section.5.4.12"></a><h4><a name="GET CHANNEL STREAM_COUNT">5.4.12</a>&nbsp;Current number of active disk streams</h4>  </p>
4237    <a name="GET CHANNEL STREAM_COUNT"></a><br /><hr />
4238    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4239    <a name="rfc.section.6.4.12"></a><h3>6.4.12.&nbsp;
4240    Current number of active disk streams</h3>
4241    
4242  <p>The front-end can ask for the current number of active disk streams  <p>The front-end can ask for the current number of active disk streams
4243                      on a sampler channel by sending the following command:                      on a sampler channel by sending the following command:
4244  </p>  </p>
4245  <p></p>  <p>
4246                            </p>
4247  <blockquote class="text">  <blockquote class="text">
4248  <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;  <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;
4249  </p>  </p>
4250  </blockquote>  </blockquote><p>
4251                        
4252  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
4253    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4254                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4255                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4256  </p>  </p>
4257  <p>Possible Answers:  <p>Possible Answers:
4258  </p>  </p>
4259  <p></p>  <p>
4260                            </p>
4261  <blockquote class="text">  <blockquote class="text">
4262  <p>LinuxSampler will answer by returning the number of active  <p>LinuxSampler will answer by returning the number of active
4263                              disk streams on that channel in case the engine supports disk                              disk streams on that channel in case the engine supports disk
4264                              streaming, if the engine doesn't support disk streaming it will                              streaming, if the engine doesn't support disk streaming it will
4265                              return "NA" for not available.                              return "NA" for not available.
4266  </p>  </p>
4267  </blockquote>  </blockquote><p>
4268                        
4269    </p>
4270  <p>Example:  <p>Example:
4271  </p>  </p>
4272  <p></p>  <p>
4273                            </p>
4274  <blockquote class="text">  <blockquote class="text">
4275  <p>  <p>
4276  </p>  </p>
4277  </blockquote>  </blockquote><p>
4278                        
4279  <a name="rfc.section.5.4.13"></a><h4><a name="GET CHANNEL BUFFER_FILL">5.4.13</a>&nbsp;Current fill state of disk stream buffers</h4>  </p>
4280    <a name="GET CHANNEL BUFFER_FILL"></a><br /><hr />
4281    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4282    <a name="rfc.section.6.4.13"></a><h3>6.4.13.&nbsp;
4283    Current fill state of disk stream buffers</h3>
4284    
4285  <p>The front-end can ask for the current fill state of all disk streams  <p>The front-end can ask for the current fill state of all disk streams
4286                      on a sampler channel by sending the following command:                      on a sampler channel by sending the following command:
4287  </p>  </p>
4288  <p></p>  <p>
4289                            </p>
4290  <blockquote class="text">  <blockquote class="text">
4291  <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;  <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;
4292  </p>  </p>
4293  </blockquote>  </blockquote><p>
4294                        
4295    </p>
4296  <p>to get the fill state in bytes or  <p>to get the fill state in bytes or
4297  </p>  </p>
4298  <p></p>  <p>
4299                            </p>
4300  <blockquote class="text">  <blockquote class="text">
4301  <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;  <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;
4302  </p>  </p>
4303  </blockquote>  </blockquote><p>
4304                        
4305    </p>
4306  <p>to get the fill state in percent, where &lt;sampler-channel&gt; is the  <p>to get the fill state in percent, where &lt;sampler-channel&gt; is the
4307                      sampler channel number the front-end is interested in.                      sampler channel number the front-end is interested in
4308                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4309                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
4310  </p>  </p>
4311  <p>Possible Answers:  <p>Possible Answers:
4312  </p>  </p>
4313  <p></p>  <p>
4314                            </p>
4315  <blockquote class="text">  <blockquote class="text">
4316  <p>LinuxSampler will either answer by returning a comma separated  <p>LinuxSampler will either answer by returning a comma separated
4317                              string with the fill state of all disk stream buffers on that                              string with the fill state of all disk stream buffers on that
# Line 3380  Intellectual Property and Copyright Stat Line 4324  Intellectual Property and Copyright Stat
4324                              the response are not in particular order, thus the front-end has                              the response are not in particular order, thus the front-end has
4325                              to sort them by itself if necessary.                              to sort them by itself if necessary.
4326  </p>  </p>
4327  </blockquote>  </blockquote><p>
4328                        
4329    </p>
4330  <p>Examples:  <p>Examples:
4331  </p>  </p>
4332  <p></p>  <p>
4333                            </p>
4334  <blockquote class="text">  <blockquote class="text">
4335  <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"  <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"
4336  </p>  </p>
4337  <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"  <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"
4338  </p>  </p>
4339  </blockquote>  </blockquote><p>
4340    
4341                            </p>
4342  <blockquote class="text">  <blockquote class="text">
4343  <p><p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"  <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4344  </p>  </p>
4345  <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"  <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"
4346  </p>  </p>
4347  </blockquote>  </blockquote><p>
4348    
4349                            </p>
4350  <blockquote class="text">  <blockquote class="text">
4351  <p><p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"  <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4352  </p>  </p>
4353  <p>S: ""  <p>S: ""
4354  </p>  </p>
4355  </blockquote>  </blockquote><p>
4356                        
4357  <a name="rfc.section.5.4.14"></a><h4><a name="SET CHANNEL AUDIO_OUTPUT_DEVICE">5.4.14</a>&nbsp;Setting audio output device</h4>  </p>
4358    <a name="SET CHANNEL AUDIO_OUTPUT_DEVICE"></a><br /><hr />
4359    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4360    <a name="rfc.section.6.4.14"></a><h3>6.4.14.&nbsp;
4361    Setting audio output device</h3>
4362    
4363  <p>The front-end can set the audio output device on a specific sampler  <p>The front-end can set the audio output device on a specific sampler
4364                      channel by sending the following command:                      channel by sending the following command:
4365  </p>  </p>
4366  <p></p>  <p>
4367                            </p>
4368  <blockquote class="text">  <blockquote class="text">
4369  <p>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;  <p>SET CHANNEL AUDIO_OUTPUT_DEVICE &lt;sampler-channel&gt; &lt;audio-device-id&gt;
4370  </p>  </p>
4371  </blockquote>  </blockquote><p>
4372                        
4373  <p>Where &lt;audio-device-id&gt; is the numerical ID of the audio output  </p>
4374                      device and &lt;sampler-channel&gt; is the respective sampler channel  <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4375                      number.                      number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4376                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
4377                        &lt;audio-device-id&gt; is the numerical ID of the audio output device as given by the
4378                        <a class='info' href='#CREATE AUDIO_OUTPUT_DEVICE'>"CREATE AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Creating an audio output device</span><span>)</span></a>
4379                        or <a class='info' href='#LIST AUDIO_OUTPUT_DEVICES'>"LIST AUDIO_OUTPUT_DEVICES"<span> (</span><span class='info'>Getting all created audio output device list</span><span>)</span></a>
4380                        command.
4381  </p>  </p>
4382  <p>Possible Answers:  <p>Possible Answers:
4383  </p>  </p>
4384  <p></p>  <p>
4385                            </p>
4386  <blockquote class="text">  <blockquote class="text">
4387  <p>"OK" -  <p>"OK" -
4388                                  </p>                                  </p>
# Line 3429  Intellectual Property and Copyright Stat Line 4390  Intellectual Property and Copyright Stat
4390  <p>on success  <p>on success
4391  </p>  </p>
4392  </blockquote>  </blockquote>
4393                                
4394    
4395  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4396                                  </p>                                  </p>
# Line 3438  Intellectual Property and Copyright Stat Line 4400  Intellectual Property and Copyright Stat
4400                                      warning message                                      warning message
4401  </p>  </p>
4402  </blockquote>  </blockquote>
4403                                
4404    
4405  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4406                                  </p>                                  </p>
# Line 3445  Intellectual Property and Copyright Stat Line 4408  Intellectual Property and Copyright Stat
4408  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4409  </p>  </p>
4410  </blockquote>  </blockquote>
4411                                
4412    
4413  </blockquote>  </blockquote><p>
4414                        
4415    </p>
4416  <p>Examples:  <p>Examples:
4417  </p>  </p>
4418  <p></p>  <p>
4419                            </p>
4420  <blockquote class="text">  <blockquote class="text">
4421  <p>  <p>
4422  </p>  </p>
4423  </blockquote>  </blockquote><p>
4424                        
4425  <a name="rfc.section.5.4.15"></a><h4><a name="SET CHANNEL AUDIO_OUTPUT_TYP">5.4.15</a>&nbsp;Setting audio output type</h4>  </p>
4426    <a name="SET CHANNEL AUDIO_OUTPUT_TYPE"></a><br /><hr />
4427    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4428    <a name="rfc.section.6.4.15"></a><h3>6.4.15.&nbsp;
4429    Setting audio output type</h3>
4430    
4431  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
4432  </p>  </p>
4433  <p>The front-end can alter the audio output type on a specific sampler  <p>The front-end can alter the audio output type on a specific sampler
4434                      channel by sending the following command:                      channel by sending the following command:
4435  </p>  </p>
4436  <p></p>  <p>
4437                            </p>
4438  <blockquote class="text">  <blockquote class="text">
4439  <p>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;  <p>SET CHANNEL AUDIO_OUTPUT_TYPE &lt;sampler-channel&gt; &lt;audio-output-type&gt;
4440  </p>  </p>
4441  </blockquote>  </blockquote><p>
4442                        
4443    </p>
4444  <p>Where &lt;audio-output-type&gt; is currently either "ALSA" or "JACK" and  <p>Where &lt;audio-output-type&gt; is currently either "ALSA" or "JACK" and
4445                      &lt;sampler-channel&gt; is the respective sampler channel number.                      &lt;sampler-channel&gt; is the respective sampler channel number.
4446  </p>  </p>
4447  <p>Possible Answers:  <p>Possible Answers:
4448  </p>  </p>
4449  <p></p>  <p>
4450                            </p>
4451  <blockquote class="text">  <blockquote class="text">
4452  <p>"OK" -  <p>"OK" -
4453                                  </p>                                  </p>
# Line 3482  Intellectual Property and Copyright Stat Line 4455  Intellectual Property and Copyright Stat
4455  <p>on success  <p>on success
4456  </p>  </p>
4457  </blockquote>  </blockquote>
4458                                
4459    
4460  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4461                                  </p>                                  </p>
# Line 3491  Intellectual Property and Copyright Stat Line 4465  Intellectual Property and Copyright Stat
4465                                      warning message                                      warning message
4466  </p>  </p>
4467  </blockquote>  </blockquote>
4468                                
4469    
4470  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4471                                  </p>                                  </p>
# Line 3498  Intellectual Property and Copyright Stat Line 4473  Intellectual Property and Copyright Stat
4473  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4474  </p>  </p>
4475  </blockquote>  </blockquote>
4476                                
4477    
4478  </blockquote>  </blockquote><p>
4479                        
4480    </p>
4481  <p>Examples:  <p>Examples:
4482  </p>  </p>
4483  <p></p>  <p>
4484                            </p>
4485  <blockquote class="text">  <blockquote class="text">
4486  <p>  <p>
4487  </p>  </p>
4488  </blockquote>  </blockquote><p>
4489                        
4490  <a name="rfc.section.5.4.16"></a><h4><a name="SET CHANNEL AUDIO_OUTPUT_CHANNEL">5.4.16</a>&nbsp;Setting audio output channel</h4>  </p>
4491    <a name="SET CHANNEL AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
4492    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4493    <a name="rfc.section.6.4.16"></a><h3>6.4.16.&nbsp;
4494    Setting audio output channel</h3>
4495    
4496  <p>The front-end can alter the audio output channel on a specific  <p>The front-end can alter the audio output channel on a specific
4497                      sampler channel by sending the following command:                      sampler channel by sending the following command:
4498  </p>  </p>
4499  <p></p>  <p>
4500                            </p>
4501  <blockquote class="text">  <blockquote class="text">
4502  <p>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;  <p>SET CHANNEL AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;audio-out&gt; &lt;audio-in&gt;
4503  </p>  </p>
4504  </blockquote>  </blockquote><p>
4505                        
4506  <p>Where &lt;sampler-chan&gt; is the sampler channel number, &lt;audio-out&gt; is the  </p>
4507    <p>Where &lt;sampler-chan&gt; is the sampler channel number
4508                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4509                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, &lt;audio-out&gt; is the
4510                      numerical ID of the sampler channel's audio output channel which should be                      numerical ID of the sampler channel's audio output channel which should be
4511                      rerouted and &lt;audio-in&gt; is the numerical ID of the audio channel of the selected audio                      rerouted and &lt;audio-in&gt; is the numerical ID of the audio channel of the selected audio
4512                      output device where &lt;audio-out&gt; should be routed to.                      output device where &lt;audio-out&gt; should be routed to.
4513  </p>  </p>
4514  <p>Possible Answers:  <p>Possible Answers:
4515  </p>  </p>
4516  <p></p>  <p>
4517                            </p>
4518  <blockquote class="text">  <blockquote class="text">
4519  <p>"OK" -  <p>"OK" -
4520                                  </p>                                  </p>
# Line 3535  Intellectual Property and Copyright Stat Line 4522  Intellectual Property and Copyright Stat
4522  <p>on success  <p>on success
4523  </p>  </p>
4524  </blockquote>  </blockquote>
4525                                
4526    
4527  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4528                                  </p>                                  </p>
# Line 3544  Intellectual Property and Copyright Stat Line 4532  Intellectual Property and Copyright Stat
4532                                      warning message                                      warning message
4533  </p>  </p>
4534  </blockquote>  </blockquote>
4535                                
4536    
4537  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4538                                  </p>                                  </p>
# Line 3551  Intellectual Property and Copyright Stat Line 4540  Intellectual Property and Copyright Stat
4540  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4541  </p>  </p>
4542  </blockquote>  </blockquote>
4543                                
4544    
4545  </blockquote>  </blockquote><p>
4546                        
4547    </p>
4548  <p>Examples:  <p>Examples:
4549  </p>  </p>
4550  <p></p>  <p>
4551                            </p>
4552  <blockquote class="text">  <blockquote class="text">
4553  <p>  <p>
4554  </p>  </p>
4555  </blockquote>  </blockquote><p>
4556                        
4557  <a name="rfc.section.5.4.17"></a><h4><a name="SET CHANNEL MIDI_INPUT_DEVICE">5.4.17</a>&nbsp;Setting MIDI input device</h4>  </p>
4558    <a name="SET CHANNEL MIDI_INPUT_DEVICE"></a><br /><hr />
4559    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4560    <a name="rfc.section.6.4.17"></a><h3>6.4.17.&nbsp;
4561    Setting MIDI input device</h3>
4562    
4563  <p>The front-end can set the MIDI input device on a specific sampler  <p>The front-end can set the MIDI input device on a specific sampler
4564                      channel by sending the following command:                      channel by sending the following command:
4565  </p>  </p>
4566  <p></p>  <p>
4567                            </p>
4568  <blockquote class="text">  <blockquote class="text">
4569  <p>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;  <p>SET CHANNEL MIDI_INPUT_DEVICE &lt;sampler-channel&gt; &lt;midi-device-id&gt;
4570  </p>  </p>
4571  </blockquote>  </blockquote><p>
4572                        
4573  <p>Where &lt;sampler-channel&gt; is the sampler channel number and &lt;midi-device-id&gt; is the  </p>
4574                      the numerical ID of the MIDI input device.  <p>Where &lt;sampler-channel&gt; is the sampler channel number
4575                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4576                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command
4577                        and &lt;midi-device-id&gt; is  the numerical ID of the MIDI input device as returned by the
4578                        <a class='info' href='#CREATE MIDI_INPUT_DEVICE'>"CREATE MIDI_INPUT_DEVICE"<span> (</span><span class='info'>Creating a MIDI input device</span><span>)</span></a>
4579                        or <a class='info' href='#LIST MIDI_INPUT_DEVICES'>"LIST MIDI_INPUT_DEVICES"<span> (</span><span class='info'>Getting all created MIDI input device list</span><span>)</span></a> command.
4580  </p>  </p>
4581  <p>Possible Answers:  <p>Possible Answers:
4582  </p>  </p>
4583  <p></p>  <p>
4584                            </p>
4585  <blockquote class="text">  <blockquote class="text">
4586  <p>"OK" -  <p>"OK" -
4587                                  </p>                                  </p>
# Line 3586  Intellectual Property and Copyright Stat Line 4589  Intellectual Property and Copyright Stat
4589  <p>on success  <p>on success
4590  </p>  </p>
4591  </blockquote>  </blockquote>
4592                                
4593    
4594  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4595                                  </p>                                  </p>
# Line 3595  Intellectual Property and Copyright Stat Line 4599  Intellectual Property and Copyright Stat
4599                                      warning message                                      warning message
4600  </p>  </p>
4601  </blockquote>  </blockquote>
4602                                
4603    
4604  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4605                                  </p>                                  </p>
# Line 3602  Intellectual Property and Copyright Stat Line 4607  Intellectual Property and Copyright Stat
4607  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4608  </p>  </p>
4609  </blockquote>  </blockquote>
4610                                
4611    
4612  </blockquote>  </blockquote><p>
4613                        
4614    </p>
4615  <p>Examples:  <p>Examples:
4616  </p>  </p>
4617  <p></p>  <p>
4618                            </p>
4619  <blockquote class="text">  <blockquote class="text">
4620  <p>  <p>
4621  </p>  </p>
4622  </blockquote>  </blockquote><p>
4623                        
4624  <a name="rfc.section.5.4.18"></a><h4><a name="SET CHANNEL MIDI_INPUT_TYPE">5.4.18</a>&nbsp;Setting MIDI input type</h4>  </p>
4625    <a name="SET CHANNEL MIDI_INPUT_TYPE"></a><br /><hr />
4626    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4627    <a name="rfc.section.6.4.18"></a><h3>6.4.18.&nbsp;
4628    Setting MIDI input type</h3>
4629    
4630  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
4631  </p>  </p>
4632  <p>The front-end can alter the MIDI input type on a specific sampler  <p>The front-end can alter the MIDI input type on a specific sampler
4633                      channel by sending the following command:                      channel by sending the following command:
4634  </p>  </p>
4635  <p></p>  <p>
4636                            </p>
4637  <blockquote class="text">  <blockquote class="text">
4638  <p>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;  <p>SET CHANNEL MIDI_INPUT_TYPE &lt;sampler-channel&gt; &lt;midi-input-type&gt;
4639  </p>  </p>
4640  </blockquote>  </blockquote><p>
4641                        
4642    </p>
4643  <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and  <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and
4644                      &lt;sampler-channel&gt; is the respective sampler channel number.                      &lt;sampler-channel&gt; is the respective sampler channel number.
4645  </p>  </p>
4646  <p>Possible Answers:  <p>Possible Answers:
4647  </p>  </p>
4648  <p></p>  <p>
4649                            </p>
4650  <blockquote class="text">  <blockquote class="text">
4651  <p>"OK" -  <p>"OK" -
4652                                  </p>                                  </p>
# Line 3639  Intellectual Property and Copyright Stat Line 4654  Intellectual Property and Copyright Stat
4654  <p>on success  <p>on success
4655  </p>  </p>
4656  </blockquote>  </blockquote>
4657                                
4658    
4659  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4660                                  </p>                                  </p>
# Line 3648  Intellectual Property and Copyright Stat Line 4664  Intellectual Property and Copyright Stat
4664                                      warning message                                      warning message
4665  </p>  </p>
4666  </blockquote>  </blockquote>
4667                                
4668    
4669  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4670                                  </p>                                  </p>
# Line 3655  Intellectual Property and Copyright Stat Line 4672  Intellectual Property and Copyright Stat
4672  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4673  </p>  </p>
4674  </blockquote>  </blockquote>
4675                                
4676    
4677  </blockquote>  </blockquote><p>
4678                        
4679    </p>
4680  <p>Examples:  <p>Examples:
4681  </p>  </p>
4682  <p></p>  <p>
4683                            </p>
4684  <blockquote class="text">  <blockquote class="text">
4685  <p>  <p>
4686  </p>  </p>
4687  </blockquote>  </blockquote><p>
4688                        
4689  <a name="rfc.section.5.4.19"></a><h4><a name="SET CHANNEL MIDI_INPUT_PORT">5.4.19</a>&nbsp;Setting MIDI input port</h4>  </p>
4690    <a name="SET CHANNEL MIDI_INPUT_PORT"></a><br /><hr />
4691    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4692    <a name="rfc.section.6.4.19"></a><h3>6.4.19.&nbsp;
4693    Setting MIDI input port</h3>
4694    
4695  <p>The front-end can alter the MIDI input port on a specific sampler  <p>The front-end can alter the MIDI input port on a specific sampler
4696                      channel by sending the following command:                      channel by sending the following command:
4697  </p>  </p>
4698  <p></p>  <p>
4699                            </p>
4700  <blockquote class="text">  <blockquote class="text">
4701  <p>SET CHANNEL MIDI_INPUT_PORT &lt;sampler-channel&gt; &lt;midi-input-port&gt;  <p>SET CHANNEL MIDI_INPUT_PORT &lt;sampler-channel&gt; &lt;midi-input-port&gt;
4702  </p>  </p>
4703  </blockquote>  </blockquote><p>
4704                        
4705    </p>
4706  <p>Where &lt;midi-input-port&gt; is a MIDI input port number of the  <p>Where &lt;midi-input-port&gt; is a MIDI input port number of the
4707                      MIDI input device connected to the sampler channel given by                      MIDI input device connected to the sampler channel given by
4708                      &lt;sampler-channel&gt;.                      &lt;sampler-channel&gt;.
4709  </p>  </p>
4710  <p>Possible Answers:  <p>Possible Answers:
4711  </p>  </p>
4712  <p></p>  <p>
4713                            </p>
4714  <blockquote class="text">  <blockquote class="text">
4715  <p>"OK" -  <p>"OK" -
4716                                  </p>                                  </p>
# Line 3691  Intellectual Property and Copyright Stat Line 4718  Intellectual Property and Copyright Stat
4718  <p>on success  <p>on success
4719  </p>  </p>
4720  </blockquote>  </blockquote>
4721                                
4722    
4723  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4724                                  </p>                                  </p>
# Line 3700  Intellectual Property and Copyright Stat Line 4728  Intellectual Property and Copyright Stat
4728                                      warning message                                      warning message
4729  </p>  </p>
4730  </blockquote>  </blockquote>
4731                                
4732    
4733  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4734                                  </p>                                  </p>
# Line 3707  Intellectual Property and Copyright Stat Line 4736  Intellectual Property and Copyright Stat
4736  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4737  </p>  </p>
4738  </blockquote>  </blockquote>
4739                                
4740    
4741  </blockquote>  </blockquote><p>
4742                        
4743    </p>
4744  <p>Examples:  <p>Examples:
4745  </p>  </p>
4746  <p></p>  <p>
4747                            </p>
4748  <blockquote class="text">  <blockquote class="text">
4749  <p>  <p>
4750  </p>  </p>
4751  </blockquote>  </blockquote><p>
4752                        
4753  <a name="rfc.section.5.4.20"></a><h4><a name="SET CHANNEL MIDI_INPUT_CHANNEL">5.4.20</a>&nbsp;Setting MIDI input channel</h4>  </p>
4754    <a name="SET CHANNEL MIDI_INPUT_CHANNEL"></a><br /><hr />
4755    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4756    <a name="rfc.section.6.4.20"></a><h3>6.4.20.&nbsp;
4757    Setting MIDI input channel</h3>
4758    
4759  <p>The front-end can alter the MIDI channel a sampler channel should  <p>The front-end can alter the MIDI channel a sampler channel should
4760                      listen to by sending the following command:                      listen to by sending the following command:
4761  </p>  </p>
4762  <p></p>  <p>
4763                            </p>
4764  <blockquote class="text">  <blockquote class="text">
4765  <p>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;  <p>SET CHANNEL MIDI_INPUT_CHANNEL &lt;sampler-channel&gt; &lt;midi-input-chan&gt;
4766  </p>  </p>
4767  </blockquote>  </blockquote><p>
4768                        
4769    </p>
4770  <p>Where &lt;midi-input-chan&gt; is the number of the new MIDI input channel where  <p>Where &lt;midi-input-chan&gt; is the number of the new MIDI input channel where
4771                      &lt;sampler-channel&gt; should listen to or "ALL" to listen on all 16 MIDI                      &lt;sampler-channel&gt; should listen to or "ALL" to listen on all 16 MIDI
4772                      channels.                      channels.
4773  </p>  </p>
4774  <p>Possible Answers:  <p>Possible Answers:
4775  </p>  </p>
4776  <p></p>  <p>
4777                            </p>
4778  <blockquote class="text">  <blockquote class="text">
4779  <p>"OK" -  <p>"OK" -
4780                                  </p>                                  </p>
# Line 3743  Intellectual Property and Copyright Stat Line 4782  Intellectual Property and Copyright Stat
4782  <p>on success  <p>on success
4783  </p>  </p>
4784  </blockquote>  </blockquote>
4785                                
4786    
4787  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4788                                  </p>                                  </p>
# Line 3752  Intellectual Property and Copyright Stat Line 4792  Intellectual Property and Copyright Stat
4792                                      warning message                                      warning message
4793  </p>  </p>
4794  </blockquote>  </blockquote>
4795                                
4796    
4797  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4798                                  </p>                                  </p>
# Line 3759  Intellectual Property and Copyright Stat Line 4800  Intellectual Property and Copyright Stat
4800  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4801  </p>  </p>
4802  </blockquote>  </blockquote>
4803                                
4804    
4805  </blockquote>  </blockquote><p>
4806                        
4807    </p>
4808  <p>Examples:  <p>Examples:
4809  </p>  </p>
4810  <p></p>  <p>
4811                            </p>
4812  <blockquote class="text">  <blockquote class="text">
4813  <p>  <p>
4814  </p>  </p>
4815  </blockquote>  </blockquote><p>
4816                        
4817  <a name="rfc.section.5.4.21"></a><h4><a name="SET CHANNEL VOLUME">5.4.21</a>&nbsp;Setting channel volume</h4>  </p>
4818    <a name="SET CHANNEL VOLUME"></a><br /><hr />
4819    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4820    <a name="rfc.section.6.4.21"></a><h3>6.4.21.&nbsp;
4821    Setting channel volume</h3>
4822    
4823  <p>The front-end can alter the volume of a sampler channel by sending  <p>The front-end can alter the volume of a sampler channel by sending
4824                      the following command:                      the following command:
4825  </p>  </p>
4826  <p></p>  <p>
4827                            </p>
4828  <blockquote class="text">  <blockquote class="text">
4829  <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;  <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;
4830  </p>  </p>
4831  </blockquote>  </blockquote><p>
4832                        
4833    </p>
4834  <p>Where &lt;volume&gt; is an optionally dotted positive number (a value  <p>Where &lt;volume&gt; is an optionally dotted positive number (a value
4835                      smaller than 1.0 means attenuation, whereas a value greater than                      smaller than 1.0 means attenuation, whereas a value greater than
4836                      1.0 means amplification) and &lt;sampler-channel&gt; defines the sampler                      1.0 means amplification) and &lt;sampler-channel&gt; defines the sampler
# Line 3788  Intellectual Property and Copyright Stat Line 4838  Intellectual Property and Copyright Stat
4838  </p>  </p>
4839  <p>Possible Answers:  <p>Possible Answers:
4840  </p>  </p>
4841  <p></p>  <p>
4842                            </p>
4843  <blockquote class="text">  <blockquote class="text">
4844  <p>"OK" -  <p>"OK" -
4845                                  </p>                                  </p>
# Line 3796  Intellectual Property and Copyright Stat Line 4847  Intellectual Property and Copyright Stat
4847  <p>on success  <p>on success
4848  </p>  </p>
4849  </blockquote>  </blockquote>
4850                                
4851    
4852  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4853                                  </p>                                  </p>
# Line 3805  Intellectual Property and Copyright Stat Line 4857  Intellectual Property and Copyright Stat
4857                                      warning message                                      warning message
4858  </p>  </p>
4859  </blockquote>  </blockquote>
4860                                
4861    
4862  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4863                                  </p>                                  </p>
# Line 3812  Intellectual Property and Copyright Stat Line 4865  Intellectual Property and Copyright Stat
4865  <p>in case it failed, providing an appropriate error code and error message  <p>in case it failed, providing an appropriate error code and error message
4866  </p>  </p>
4867  </blockquote>  </blockquote>
4868                                
4869    
4870    </blockquote><p>
4871                        
4872    </p>
4873    <p>Examples:
4874    </p>
4875    <p>
4876                            </p>
4877    <blockquote class="text">
4878    <p>
4879    </p>
4880    </blockquote><p>
4881                        
4882    </p>
4883    <a name="SET CHANNEL MUTE"></a><br /><hr />
4884    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4885    <a name="rfc.section.6.4.22"></a><h3>6.4.22.&nbsp;
4886    Muting a sampler channel</h3>
4887    
4888    <p>The front-end can mute/unmute a specific sampler
4889                        channel by sending the following command:
4890    </p>
4891    <p>
4892                            </p>
4893    <blockquote class="text">
4894    <p>SET CHANNEL MUTE &lt;sampler-channel&gt; &lt;mute&gt;
4895    </p>
4896    </blockquote><p>
4897                        
4898    </p>
4899    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4900                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4901                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
4902                        &lt;mute&gt; should be replaced either by "1" to mute the channel or "0"
4903                        to unmute the channel.
4904    </p>
4905    <p>Possible Answers:
4906    </p>
4907    <p>
4908                            </p>
4909    <blockquote class="text">
4910    <p>"OK" -
4911                                    </p>
4912    <blockquote class="text">
4913    <p>on success
4914    </p>
4915    </blockquote>
4916                                
4917    
4918    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4919                                    </p>
4920    <blockquote class="text">
4921    <p>if the channel was muted/unmuted, but there are noteworthy
4922                                        issue(s) related, providing an appropriate warning code and
4923                                        warning message
4924    </p>
4925    </blockquote>
4926                                
4927    
4928    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4929                                    </p>
4930    <blockquote class="text">
4931    <p>in case it failed, providing an appropriate error code and error message
4932    </p>
4933  </blockquote>  </blockquote>
4934                                
4935    
4936    </blockquote><p>
4937                        
4938    </p>
4939  <p>Examples:  <p>Examples:
4940  </p>  </p>
4941  <p></p>  <p>
4942                            </p>
4943    <blockquote class="text">
4944    <p>
4945    </p>
4946    </blockquote><p>
4947                        
4948    </p>
4949    <a name="SET CHANNEL SOLO"></a><br /><hr />
4950    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
4951    <a name="rfc.section.6.4.23"></a><h3>6.4.23.&nbsp;
4952    Soloing a sampler channel</h3>
4953    
4954    <p>The front-end can solo/unsolo a specific sampler channel
4955                        by sending the following command:
4956    </p>
4957    <p>
4958                            </p>
4959  <blockquote class="text">  <blockquote class="text">
4960    <p>SET CHANNEL SOLO &lt;sampler-channel&gt; &lt;solo&gt;
4961    </p>
4962    </blockquote><p>
4963                        
4964    </p>
4965    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4966                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
4967                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
4968                        &lt;solo&gt; should be replaced either by "1" to solo the channel or "0"
4969                        to unsolo the channel.
4970    </p>
4971    <p>Possible Answers:
4972    </p>
4973  <p>  <p>
4974                            </p>
4975    <blockquote class="text">
4976    <p>"OK" -
4977                                    </p>
4978    <blockquote class="text">
4979    <p>on success
4980  </p>  </p>
4981  </blockquote>  </blockquote>
4982                                
4983    
4984  <a name="rfc.section.5.4.22"></a><h4><a name="RESET CHANNEL">5.4.22</a>&nbsp;Resetting a sampler channel</h4>  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4985                                    </p>
4986    <blockquote class="text">
4987    <p>if the channel was soloed/unsoloed, but there are noteworthy
4988                                        issue(s) related, providing an appropriate warning code and
4989                                        warning message
4990    </p>
4991    </blockquote>
4992                                
4993    
4994  <p>The front-end can reset a particular sampler channel by sending the following command:  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4995                                    </p>
4996    <blockquote class="text">
4997    <p>in case it failed, providing an appropriate error code and error message
4998  </p>  </p>
4999  <p></p>  </blockquote>
5000                                
5001    
5002    </blockquote><p>
5003                        
5004    </p>
5005    <p>Examples:
5006    </p>
5007    <p>
5008                            </p>
5009  <blockquote class="text">  <blockquote class="text">
5010  <p>RESET CHANNEL &lt;sampler-channel&gt;  <p>
5011    </p>
5012    </blockquote><p>
5013                        
5014    </p>
5015    <a name="SET CHANNEL MIDI_INSTRUMENT_MAP"></a><br /><hr />
5016    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5017    <a name="rfc.section.6.4.24"></a><h3>6.4.24.&nbsp;
5018    Assigning a MIDI instrument map to a sampler channel</h3>
5019    
5020    <p>The front-end can assign a MIDI instrument map to a specific sampler channel
5021                        by sending the following command:
5022    </p>
5023    <p>
5024                            </p>
5025    <blockquote class="text">
5026    <p>SET CHANNEL MIDI_INSTRUMENT_MAP &lt;sampler-channel&gt; &lt;map&gt;
5027    </p>
5028    </blockquote><p>
5029                        
5030    </p>
5031    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5032                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5033                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5034                        &lt;map&gt; can have the following possibilites:
5035    </p>
5036    <p>
5037                            </p>
5038    <blockquote class="text">
5039    <p>"NONE" -
5040                                    </p>
5041    <blockquote class="text">
5042    <p>This is the default setting. In this case
5043                                        the sampler channel is not assigned any MIDI
5044                                        instrument map and thus will ignore all MIDI
5045                                        program change messages.
5046    </p>
5047    </blockquote>
5048                                
5049    
5050    <p>"DEFAULT" -
5051                                    </p>
5052    <blockquote class="text">
5053    <p>The sampler channel will always use the
5054                                        default MIDI instrument map to handle MIDI
5055                                        program change messages.
5056    </p>
5057    </blockquote>
5058                                
5059    
5060    <p>numeric ID -
5061                                    </p>
5062    <blockquote class="text">
5063    <p>You can assign a specific MIDI instrument map
5064                                        by replacing &lt;map&gt; with the respective numeric
5065                                        ID of the MIDI instrument map as returned by the
5066                                        <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
5067                                        command. Once that map will be deleted, the sampler
5068                                        channel would fall back to "NONE".
5069  </p>  </p>
5070  </blockquote>  </blockquote>
5071                                
5072    
5073    </blockquote><p>
5074                        
5075    </p>
5076    <p>Read chapter <a class='info' href='#MIDI Instrument Mapping'>"MIDI Instrument Mapping"<span> (</span><span class='info'>MIDI Instrument Mapping</span><span>)</span></a>
5077                        for details regarding MIDI instrument mapping.
5078    </p>
5079    <p>Possible Answers:
5080    </p>
5081    <p>
5082                            </p>
5083    <blockquote class="text">
5084    <p>"OK" -
5085                                    </p>
5086    <blockquote class="text">
5087    <p>on success
5088    </p>
5089    </blockquote>
5090                                
5091    
5092    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5093                                    </p>
5094    <blockquote class="text">
5095    <p>in case it failed, providing an appropriate error code and error message
5096    </p>
5097    </blockquote>
5098                                
5099    
5100    </blockquote><p>
5101                        
5102    </p>
5103    <p>Examples:
5104    </p>
5105    <p>
5106                            </p>
5107    <blockquote class="text">
5108    <p>
5109    </p>
5110    </blockquote><p>
5111                        
5112    </p>
5113    <a name="CREATE FX_SEND"></a><br /><hr />
5114    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5115    <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;
5116    Adding an effect send to a sampler channel</h3>
5117    
5118    <p>The front-end can create an additional effect send on a specific sampler channel
5119                        by sending the following command:
5120    </p>
5121    <p>
5122                            </p>
5123    <blockquote class="text">
5124    <p>CREATE FX_SEND &lt;sampler-channel&gt; &lt;midi-ctrl&gt; [&lt;name&gt;]
5125    </p>
5126    </blockquote><p>
5127                        
5128    </p>
5129    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5130                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5131                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, that is the
5132                        sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5133                        is a number between 0..127 defining the MIDI controller which can alter the
5134                        effect send level and &lt;name&gt; is an optional argument defining a name
5135                        for the effect send entity. The name does not have to be unique, but MUST be
5136                        encapsulated into apostrophes and supports escape sequences as described in chapter
5137                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
5138    </p>
5139    <p>By default, that is as initial routing, the effect send's audio channels
5140                        are automatically routed to the last audio channels of the sampler channel's
5141                        audio output device, that way you can i.e. first increase the amount of audio
5142                        channels on the audio output device for having dedicated effect send output
5143                        channels and when "CREATE FX_SEND" is called, those channels will automatically
5144                        be picked. You can alter the destination channels however with
5145                        <a class='info' href='#SET FX_SEND AUDIO_OUTPUT_CHANNEL'>"SET FX_SEND AUDIO_OUTPUT_CHANNEL"<span> (</span><span class='info'>Altering effect send's audio routing</span><span>)</span></a>.
5146                        
5147    </p>
5148    <p>Note: Create effect sends on a sampler channel only when needed, because having effect
5149                        sends on a sampler channel will decrease runtime performance, because for implementing channel
5150                        effect sends, separate (sampler channel local) audio buffers are needed to render and mix
5151                        the voices and route the audio signal afterwards to the master outputs and effect send
5152                        outputs (along with their respective effect send levels). A sampler channel without effect
5153                        sends however can mix its voices directly into the audio output devices's audio buffers
5154                        and is thus faster.
5155                        
5156    </p>
5157    <p>Possible Answers:
5158    </p>
5159    <p>
5160                            </p>
5161    <blockquote class="text">
5162    <p>"OK[&lt;fx-send-id&gt;]" -
5163                                    </p>
5164    <blockquote class="text">
5165    <p>in case a new effect send could be added to the
5166                                        sampler channel, where &lt;fx-send-id&gt; reflects the
5167                                        unique ID of the newly created effect send entity
5168    </p>
5169    </blockquote>
5170                                
5171    
5172    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5173                                    </p>
5174    <blockquote class="text">
5175    <p>when a new effect send could not be added, i.e.
5176                                        due to invalid parameters
5177    </p>
5178    </blockquote>
5179                                
5180    
5181    </blockquote><p>
5182                        
5183    </p>
5184    <p>Examples:
5185    </p>
5186    <p>
5187                            </p>
5188    <blockquote class="text">
5189    <p>C: "CREATE FX_SEND 0 91 'Reverb Send'"
5190    </p>
5191    <p>S: "OK[0]"
5192    </p>
5193    </blockquote><p>
5194                        
5195    </p>
5196    <p>
5197                            </p>
5198    <blockquote class="text">
5199    <p>C: "CREATE FX_SEND 0 93"
5200    </p>
5201    <p>S: "OK[1]"
5202    </p>
5203    </blockquote><p>
5204                        
5205    </p>
5206    <a name="DESTROY FX_SEND"></a><br /><hr />
5207    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5208    <a name="rfc.section.6.4.26"></a><h3>6.4.26.&nbsp;
5209    Removing an effect send from a sampler channel</h3>
5210    
5211    <p>The front-end can remove an existing effect send on a specific sampler channel
5212                        by sending the following command:
5213    </p>
5214    <p>
5215                            </p>
5216    <blockquote class="text">
5217    <p>DESTROY FX_SEND &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5218    </p>
5219    </blockquote><p>
5220                        
5221    </p>
5222    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5223                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5224                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command, that is the
5225                        sampler channel from which the effect send should be removed from and
5226                        &lt;fx-send-id&gt; is the respective effect send number as returned by the
5227                        <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5228                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command.
5229    </p>
5230    <p>Possible Answers:
5231    </p>
5232    <p>
5233                            </p>
5234    <blockquote class="text">
5235    <p>"OK" -
5236                                    </p>
5237    <blockquote class="text">
5238    <p>on success
5239    </p>
5240    </blockquote>
5241                                
5242    
5243    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5244                                    </p>
5245    <blockquote class="text">
5246    <p>in case it failed, providing an appropriate error code and
5247                                        error message
5248    </p>
5249    </blockquote>
5250                                
5251    
5252    </blockquote><p>
5253                        
5254    </p>
5255    <p>Example:
5256    </p>
5257    <p>
5258                            </p>
5259    <blockquote class="text">
5260    <p>C: "DESTROY FX_SEND 0 0"
5261    </p>
5262    <p>S: "OK"
5263    </p>
5264    </blockquote><p>
5265                        
5266    </p>
5267    <a name="GET FX_SENDS"></a><br /><hr />
5268    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5269    <a name="rfc.section.6.4.27"></a><h3>6.4.27.&nbsp;
5270    Getting amount of effect sends on a sampler channel</h3>
5271    
5272    <p>The front-end can ask for the amount of effect sends on a specific sampler channel
5273                        by sending the following command:
5274    </p>
5275    <p>
5276                            </p>
5277    <blockquote class="text">
5278    <p>GET FX_SENDS &lt;sampler-channel&gt;
5279    </p>
5280    </blockquote><p>
5281                        
5282    </p>
5283    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5284                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5285                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
5286    </p>
5287    <p>Possible Answers:
5288    </p>
5289    <p>
5290                            </p>
5291    <blockquote class="text">
5292    <p>The sampler will answer by returning the number of effect
5293                                sends on the given sampler channel.
5294    </p>
5295    </blockquote><p>
5296                        
5297    </p>
5298    <p>Example:
5299    </p>
5300    <p>
5301                            </p>
5302    <blockquote class="text">
5303    <p>C: "GET FX_SENDS 0"
5304    </p>
5305    <p>S: "2"
5306    </p>
5307    </blockquote><p>
5308                        
5309    </p>
5310    <a name="LIST FX_SENDS"></a><br /><hr />
5311    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5312    <a name="rfc.section.6.4.28"></a><h3>6.4.28.&nbsp;
5313    Listing all effect sends on a sampler channel</h3>
5314    
5315    <p>The front-end can ask for a list of effect sends on a specific sampler channel
5316                        by sending the following command:
5317    </p>
5318    <p>
5319                            </p>
5320    <blockquote class="text">
5321    <p>LIST FX_SENDS &lt;sampler-channel&gt;
5322    </p>
5323    </blockquote><p>
5324                        
5325    </p>
5326    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5327                        number as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5328                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command.
5329    </p>
5330    <p>Possible Answers:
5331    </p>
5332    <p>
5333                            </p>
5334    <blockquote class="text">
5335    <p>The sampler will answer by returning a comma separated list
5336                                with all effect sends' numerical IDs on the given sampler
5337                                channel.
5338    </p>
5339    </blockquote><p>
5340                        
5341    </p>
5342    <p>Examples:
5343    </p>
5344    <p>
5345                            </p>
5346    <blockquote class="text">
5347    <p>C: "LIST FX_SENDS 0"
5348    </p>
5349    <p>S: "0,1"
5350    </p>
5351    </blockquote><p>
5352                        
5353    </p>
5354    <p>
5355                            </p>
5356    <blockquote class="text">
5357    <p>C: "LIST FX_SENDS 1"
5358    </p>
5359    <p>S: ""
5360    </p>
5361    </blockquote><p>
5362                        
5363    </p>
5364    <a name="GET FX_SEND INFO"></a><br /><hr />
5365    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5366    <a name="rfc.section.6.4.29"></a><h3>6.4.29.&nbsp;
5367    Getting effect send information</h3>
5368    
5369    <p>The front-end can ask for the current settings of an effect send entity
5370                        by sending the following command:
5371    </p>
5372    <p>
5373                            </p>
5374    <blockquote class="text">
5375    <p>GET FX_SEND INFO &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5376    </p>
5377    </blockquote><p>
5378                        
5379    </p>
5380    <p>Where &lt;sampler-channel&gt; is the sampler channel number
5381                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5382                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command and
5383                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5384                        as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5385                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command.
5386                      
5387    </p>
5388    <p>Possible Answers:
5389    </p>
5390    <p>
5391                            </p>
5392    <blockquote class="text">
5393    <p>The sampler will answer by sending a &lt;CRLF&gt; separated list.
5394                                Each answer line begins with the settings category name
5395                                followed by a colon and then a space character &lt;SP&gt; and finally
5396                                the info character string to that setting category. At the
5397                                moment the following categories are defined:
5398    </p>
5399    <p>
5400                                    </p>
5401    <blockquote class="text">
5402    <p>NAME -
5403                                            </p>
5404    <blockquote class="text">
5405    <p>name of the effect send entity
5406                                                (note that this character string may contain
5407                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5408    </p>
5409    </blockquote>
5410                                        
5411    
5412    <p>MIDI_CONTROLLER -
5413                                            </p>
5414    <blockquote class="text">
5415    <p>a value between 0 and 127 reflecting the MIDI controller
5416                                                which is able to modify the effect send's send level
5417    </p>
5418    </blockquote>
5419                                        
5420    
5421    <p>LEVEL -
5422                                            </p>
5423    <blockquote class="text">
5424    <p>optionally dotted number reflecting the effect send's
5425                                                current send level (where a value &lt; 1.0 means attenuation
5426                                                and a value > 1.0 means amplification)
5427    </p>
5428    </blockquote>
5429                                        
5430    
5431    <p>AUDIO_OUTPUT_ROUTING -
5432                                            </p>
5433    <blockquote class="text">
5434    <p>comma separated list which reflects to which audio
5435                                                channel of the selected audio output device each
5436                                                effect send output channel is routed to, e.g. "0,3" would
5437                                                mean the effect send's output channel 0 is routed to channel
5438                                                0 of the audio output device and the effect send's output
5439                                                channel 1 is routed to the channel 3 of the audio
5440                                                output device (see
5441                                                <a class='info' href='#SET FX_SEND AUDIO_OUTPUT_CHANNEL'>"SET FX_SEND AUDIO_OUTPUT_CHANNEL"<span> (</span><span class='info'>Altering effect send's audio routing</span><span>)</span></a>
5442                                                for details)
5443    </p>
5444    </blockquote>
5445                                        
5446    
5447    </blockquote>
5448                                
5449    
5450    </blockquote><p>
5451                        
5452    </p>
5453    <p>The mentioned fields above don't have to be in particular order.
5454    </p>
5455    <p>Example:
5456    </p>
5457    <p>
5458                            </p>
5459    <blockquote class="text">
5460    <p>C: "GET FX_SEND INFO 0 0"
5461    </p>
5462    <p>S: "NAME: Reverb Send"
5463    </p>
5464    <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5465    </p>
5466    <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5467    </p>
5468    <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5469    </p>
5470    <p>&nbsp;&nbsp;&nbsp;"."
5471    </p>
5472    </blockquote><p>
5473                        
5474    </p>
5475    <a name="SET FX_SEND NAME"></a><br /><hr />
5476    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5477    <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5478    Changing effect send's name</h3>
5479    
5480    <p>The front-end can alter the current name of an effect
5481                        send entity by sending the following command:
5482    </p>
5483    <p>
5484                            </p>
5485    <blockquote class="text">
5486    <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5487    </p>
5488    </blockquote><p>
5489                        
5490    </p>
5491    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5492                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5493                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5494                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5495                        as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5496                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
5497                        &lt;name&gt; is the new name of the effect send entity, which
5498                        does not have to be unique (name MUST be encapsulated into apostrophes
5499                        and supports escape sequences as described in chapter
5500                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
5501                        
5502    </p>
5503    <p>Possible Answers:
5504    </p>
5505    <p>
5506                            </p>
5507    <blockquote class="text">
5508    <p>"OK" -
5509                                    </p>
5510    <blockquote class="text">
5511    <p>on success
5512    </p>
5513    </blockquote>
5514                                
5515    
5516    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5517                                    </p>
5518    <blockquote class="text">
5519    <p>in case it failed, providing an appropriate error code and error message
5520    </p>
5521    </blockquote>
5522                                
5523    
5524    </blockquote><p>
5525                        
5526    </p>
5527    <p>Example:
5528    </p>
5529    <p>
5530                            </p>
5531    <blockquote class="text">
5532    <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
5533    </p>
5534    <p>S: "OK"
5535    </p>
5536    </blockquote><p>
5537                        
5538    </p>
5539    <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
5540    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5541    <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5542    Altering effect send's audio routing</h3>
5543    
5544    <p>The front-end can alter the destination of an effect send's audio channel on a specific
5545                        sampler channel by sending the following command:
5546    </p>
5547    <p>
5548                            </p>
5549    <blockquote class="text">
5550    <p>SET FX_SEND AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;audio-src&gt; &lt;audio-dst&gt;
5551    </p>
5552    </blockquote><p>
5553                        
5554    </p>
5555    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5556                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5557                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5558                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5559                        as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5560                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command,
5561                        &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
5562                        which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
5563                        the audio channel of the selected audio output device where &lt;audio-src&gt;
5564                        should be routed to.
5565    </p>
5566    <p>Note that effect sends can only route audio to the same audio output
5567                        device as assigned to the effect send's sampler channel. Also note that an
5568                        effect send entity does always have exactly as much audio channels as its
5569                        sampler channel. So if the sampler channel is stereo, the effect send does
5570                        have two audio channels as well. Also keep in mind that the amount of audio
5571                        channels on a sampler channel might be dependant not only to the deployed
5572                        sampler engine on the sampler channel, but also dependant to the instrument
5573                        currently loaded. However you can (effectively) turn an i.e. stereo effect
5574                        send into a mono one by simply altering its audio routing appropriately.
5575    </p>
5576    <p>Possible Answers:
5577    </p>
5578    <p>
5579                            </p>
5580    <blockquote class="text">
5581    <p>"OK" -
5582                                    </p>
5583    <blockquote class="text">
5584    <p>on success
5585    </p>
5586    </blockquote>
5587                                
5588    
5589    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5590                                    </p>
5591    <blockquote class="text">
5592    <p>if audio output channel was set, but there are noteworthy
5593                                        issue(s) related, providing an appropriate warning code and
5594                                        warning message
5595    </p>
5596    </blockquote>
5597                                
5598    
5599    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5600                                    </p>
5601    <blockquote class="text">
5602    <p>in case it failed, providing an appropriate error code and error message
5603    </p>
5604    </blockquote>
5605                                
5606    
5607    </blockquote><p>
5608                        
5609    </p>
5610    <p>Example:
5611    </p>
5612    <p>
5613                            </p>
5614    <blockquote class="text">
5615    <p>C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2"
5616    </p>
5617    <p>S: "OK"
5618    </p>
5619    </blockquote><p>
5620                        
5621    </p>
5622    <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
5623    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5624    <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5625    Altering effect send's MIDI controller</h3>
5626    
5627    <p>The front-end can alter the MIDI controller of an effect
5628                        send entity by sending the following command:
5629    </p>
5630    <p>
5631                            </p>
5632    <blockquote class="text">
5633    <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
5634    </p>
5635    </blockquote><p>
5636                        
5637    </p>
5638    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5639                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5640                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5641                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5642                        as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5643                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
5644                        &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
5645                        able to modify the effect send's send level.
5646    </p>
5647    <p>Possible Answers:
5648    </p>
5649    <p>
5650                            </p>
5651    <blockquote class="text">
5652    <p>"OK" -
5653                                    </p>
5654    <blockquote class="text">
5655    <p>on success
5656    </p>
5657    </blockquote>
5658                                
5659    
5660    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5661                                    </p>
5662    <blockquote class="text">
5663    <p>if MIDI controller was set, but there are noteworthy
5664                                        issue(s) related, providing an appropriate warning code and
5665                                        warning message
5666    </p>
5667    </blockquote>
5668                                
5669    
5670    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5671                                    </p>
5672    <blockquote class="text">
5673    <p>in case it failed, providing an appropriate error code and error message
5674    </p>
5675    </blockquote>
5676                                
5677    
5678    </blockquote><p>
5679                        
5680    </p>
5681    <p>Example:
5682    </p>
5683    <p>
5684                            </p>
5685    <blockquote class="text">
5686    <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
5687    </p>
5688    <p>S: "OK"
5689    </p>
5690    </blockquote><p>
5691                        
5692    </p>
5693    <a name="SET FX_SEND LEVEL"></a><br /><hr />
5694    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5695    <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5696    Altering effect send's send level</h3>
5697    
5698    <p>The front-end can alter the current send level of an effect
5699                        send entity by sending the following command:
5700    </p>
5701    <p>
5702                            </p>
5703    <blockquote class="text">
5704    <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
5705    </p>
5706    </blockquote><p>
5707                        
5708    </p>
5709    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5710                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5711                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5712                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5713                        as returned by the <a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
5714                        or <a class='info' href='#LIST FX_SENDS'>"LIST FX_SENDS"<span> (</span><span class='info'>Listing all effect sends on a sampler channel</span><span>)</span></a> command and
5715                        &lt;volume&gt; is an optionally dotted positive number (a value
5716                        smaller than 1.0 means attenuation, whereas a value greater than
5717                        1.0 means amplification) reflecting the new send level.
5718    </p>
5719    <p>Possible Answers:
5720    </p>
5721    <p>
5722                            </p>
5723    <blockquote class="text">
5724    <p>"OK" -
5725                                    </p>
5726    <blockquote class="text">
5727    <p>on success
5728    </p>
5729    </blockquote>
5730                                
5731    
5732    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5733                                    </p>
5734    <blockquote class="text">
5735    <p>if new send level was set, but there are noteworthy
5736                                        issue(s) related, providing an appropriate warning code and
5737                                        warning message
5738    </p>
5739    </blockquote>
5740                                
5741    
5742    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5743                                    </p>
5744    <blockquote class="text">
5745    <p>in case it failed, providing an appropriate error code and error message
5746    </p>
5747    </blockquote>
5748                                
5749    
5750    </blockquote><p>
5751                        
5752    </p>
5753    <p>Example:
5754    </p>
5755    <p>
5756                            </p>
5757    <blockquote class="text">
5758    <p>C: "SET FX_SEND LEVEL 0 0 0.15"
5759    </p>
5760    <p>S: "OK"
5761    </p>
5762    </blockquote><p>
5763                        
5764    </p>
5765    <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
5766    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5767    <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
5768    Sending MIDI messages to sampler channel</h3>
5769    
5770    <p>The front-end can send MIDI events to a specific sampler channel
5771                        by sending the following command:
5772    </p>
5773    <p>
5774                            </p>
5775    <blockquote class="text">
5776    <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
5777    </p>
5778    </blockquote><p>
5779                        
5780    </p>
5781    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5782                        as returned by the <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
5783                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a> command,
5784                        &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
5785                        specifies the MIDI message type. Currently, the following MIDI messages are supported:
5786    </p>
5787    <p>
5788                            </p>
5789    <blockquote class="text">
5790    <p>"NOTE_ON" -
5791                                    </p>
5792    <blockquote class="text">
5793    <p>For turning on MIDI notes, where &lt;arg1&gt;
5794                                        specifies the key number and &lt;arg2&gt; the velocity
5795                                        as described in the MIDI specification.
5796    </p>
5797    </blockquote>
5798                                
5799    
5800    <p>"NOTE_OFF" -
5801                                    </p>
5802    <blockquote class="text">
5803    <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
5804                                        specifies the key number and &lt;arg2&gt; the velocity
5805                                        as described in the MIDI specification.
5806    </p>
5807    </blockquote>
5808                                
5809    
5810    <p>"CC" -
5811                                    </p>
5812    <blockquote class="text">
5813    <p>For changing a MIDI controller, where &lt;arg1&gt;
5814                                        specifies the controller number and &lt;arg2&gt; the
5815                                        new value of the controller as described in the Control
5816                                        Change section of the MIDI specification.
5817    </p>
5818    </blockquote>
5819                                
5820    
5821    </blockquote><p>
5822                        
5823    </p>
5824    <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
5825                        and no realtime guarantee whatsoever will be made!
5826    </p>
5827    <p>Possible Answers:
5828    </p>
5829    <p>
5830                            </p>
5831    <blockquote class="text">
5832    <p>"OK" -
5833                                    </p>
5834    <blockquote class="text">
5835    <p>on success
5836    </p>
5837    </blockquote>
5838                                
5839    
5840    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5841                                    </p>
5842    <blockquote class="text">
5843    <p>in case it failed, providing an appropriate error code and error message
5844    </p>
5845    </blockquote>
5846                                
5847    
5848    </blockquote><p>
5849                        
5850    </p>
5851    <p>Example:
5852    </p>
5853    <p>
5854                            </p>
5855    <blockquote class="text">
5856    <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
5857    </p>
5858    <p>S: "OK"
5859    </p>
5860    </blockquote><p>
5861                        
5862    </p>
5863    <a name="RESET CHANNEL"></a><br /><hr />
5864    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5865    <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
5866    Resetting a sampler channel</h3>
5867    
5868    <p>The front-end can reset a particular sampler channel by sending the following command:
5869    </p>
5870    <p>
5871                            </p>
5872    <blockquote class="text">
5873    <p>RESET CHANNEL &lt;sampler-channel&gt;
5874    </p>
5875    </blockquote><p>
5876                        
5877    </p>
5878  <p>  <p>
5879                      Where &lt;sampler-channel&gt; defines the sampler channel to be reset.                      Where &lt;sampler-channel&gt; defines the sampler channel to be reset.
5880                      This will cause the engine on that sampler channel, its voices and                      This will cause the engine on that sampler channel, its voices and
# Line 3841  Intellectual Property and Copyright Stat Line 5883  Intellectual Property and Copyright Stat
5883  </p>  </p>
5884  <p>Possible Answers:  <p>Possible Answers:
5885  </p>  </p>
5886  <p></p>  <p>
5887                            </p>
5888  <blockquote class="text">  <blockquote class="text">
5889  <p>"OK" -  <p>"OK" -
5890                                  </p>                                  </p>
# Line 3849  Intellectual Property and Copyright Stat Line 5892  Intellectual Property and Copyright Stat
5892  <p>on success  <p>on success
5893  </p>  </p>
5894  </blockquote>  </blockquote>
5895                                
5896    
5897  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5898                                  </p>                                  </p>
# Line 3858  Intellectual Property and Copyright Stat Line 5902  Intellectual Property and Copyright Stat
5902                                      message                                      message
5903  </p>  </p>
5904  </blockquote>  </blockquote>
5905                                
5906    
5907  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5908                                  </p>                                  </p>
# Line 3866  Intellectual Property and Copyright Stat Line 5911  Intellectual Property and Copyright Stat
5911                                      error message                                      error message
5912  </p>  </p>
5913  </blockquote>  </blockquote>
5914                                
5915    
5916  </blockquote>  </blockquote><p>
5917                        
5918    </p>
5919  <p>Examples:  <p>Examples:
5920  </p>  </p>
5921  <p></p>  <p>
5922                            </p>
5923  <blockquote class="text">  <blockquote class="text">
5924  <p>  <p>
5925  </p>  </p>
5926  </blockquote>  </blockquote><p>
5927                        
5928  <a name="rfc.section.5.5"></a><h4><a name="anchor13">5.5</a>&nbsp;Controlling connection</h4>  </p>
5929    <a name="anchor12"></a><br /><hr />
5930    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5931    <a name="rfc.section.6.5"></a><h3>6.5.&nbsp;
5932    Controlling connection</h3>
5933    
5934  <p>The following commands are used to control the connection to LinuxSampler.  <p>The following commands are used to control the connection to LinuxSampler.
5935  </p>  </p>
5936  <a name="rfc.section.5.5.1"></a><h4><a name="SUBSCRIBE">5.5.1</a>&nbsp;Register front-end for receiving event messages</h4>  <a name="SUBSCRIBE"></a><br /><hr />
5937    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
5938    <a name="rfc.section.6.5.1"></a><h3>6.5.1.&nbsp;
5939    Register front-end for receiving event messages</h3>
5940    
5941  <p>The front-end can register itself to the LinuxSampler application to  <p>The front-end can register itself to the LinuxSampler application to
5942                      be informed about noteworthy events by sending this command:                      be informed about noteworthy events by sending this command:
5943  </p>  </p>
5944  <p></p>  <p>
5945                            </p>
5946  <blockquote class="text">  <blockquote class="text">
5947  <p>SUBSCRIBE &lt;event-id&gt;  <p>SUBSCRIBE &lt;event-id&gt;
5948  </p>  </p>
5949  </blockquote>  </blockquote><p>
5950                        
5951    </p>
5952  <p>where &lt;event-id&gt; will be replaced by the respective event that  <p>where &lt;event-id&gt; will be replaced by the respective event that
5953                      client wants to subscribe to.                      client wants to subscribe to.
5954  </p>  </p>
5955  <p>Possible Answers:  <p>Possible Answers:
5956  </p>  </p>
5957  <p></p>  <p>
5958                            </p>
5959  <blockquote class="text">  <blockquote class="text">
5960  <p>"OK" -  <p>"OK" -
5961                                  </p>                                  </p>
# Line 3905  Intellectual Property and Copyright Stat Line 5963  Intellectual Property and Copyright Stat
5963  <p>on success  <p>on success
5964  </p>  </p>
5965  </blockquote>  </blockquote>
5966                                
5967    
5968  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5969                                  </p>                                  </p>
# Line 3914  Intellectual Property and Copyright Stat Line 5973  Intellectual Property and Copyright Stat
5973                                      warning message                                      warning message
5974  </p>  </p>
5975  </blockquote>  </blockquote>
5976                                
5977    
5978  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5979                                  </p>                                  </p>
# Line 3922  Intellectual Property and Copyright Stat Line 5982  Intellectual Property and Copyright Stat
5982                                      error message                                      error message
5983  </p>  </p>
5984  </blockquote>  </blockquote>
5985                                
5986    
5987  </blockquote>  </blockquote><p>
5988                        
5989    </p>
5990  <p>Examples:  <p>Examples:
5991  </p>  </p>
5992  <p></p>  <p>
5993                            </p>
5994  <blockquote class="text">  <blockquote class="text">
5995  <p>  <p>
5996  </p>  </p>
5997  </blockquote>  </blockquote><p>
5998                        
5999  <a name="rfc.section.5.5.2"></a><h4><a name="UNSUBSCRIBE">5.5.2</a>&nbsp;Unregister front-end for not receiving event messages</h4>  </p>
6000    <a name="UNSUBSCRIBE"></a><br /><hr />
6001    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6002    <a name="rfc.section.6.5.2"></a><h3>6.5.2.&nbsp;
6003    Unregister front-end for not receiving event messages</h3>
6004    
6005  <p>The front-end can unregister itself if it doesn't want to receive event  <p>The front-end can unregister itself if it doesn't want to receive event
6006                      messages anymore by sending the following command:                      messages anymore by sending the following command:
6007  </p>  </p>
6008  <p></p>  <p>
6009                            </p>
6010  <blockquote class="text">  <blockquote class="text">
6011  <p>UNSUBSCRIBE &lt;event-id&gt;  <p>UNSUBSCRIBE &lt;event-id&gt;
6012  </p>  </p>
6013  </blockquote>  </blockquote><p>
6014                        
6015    </p>
6016  <p>Where &lt;event-id&gt; will be replaced by the respective event that  <p>Where &lt;event-id&gt; will be replaced by the respective event that
6017                      client doesn't want to receive anymore.                      client doesn't want to receive anymore.
6018  </p>  </p>
6019  <p>Possible Answers:  <p>Possible Answers:
6020  </p>  </p>
6021  <p></p>  <p>
6022                            </p>
6023  <blockquote class="text">  <blockquote class="text">
6024  <p>"OK" -  <p>"OK" -
6025                                  </p>                                  </p>
# Line 3957  Intellectual Property and Copyright Stat Line 6027  Intellectual Property and Copyright Stat
6027  <p>on success  <p>on success
6028  </p>  </p>
6029  </blockquote>  </blockquote>
6030                                
6031    
6032  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6033                                  </p>                                  </p>
# Line 3966  Intellectual Property and Copyright Stat Line 6037  Intellectual Property and Copyright Stat
6037                                      warning message                                      warning message
6038  </p>  </p>
6039  </blockquote>  </blockquote>
6040                                
6041    
6042  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6043                                  </p>                                  </p>
# Line 3974  Intellectual Property and Copyright Stat Line 6046  Intellectual Property and Copyright Stat
6046                                      error message                                      error message
6047  </p>  </p>
6048  </blockquote>  </blockquote>
6049                                
6050    
6051  </blockquote>  </blockquote><p>
6052                        
6053    </p>
6054  <p>Examples:  <p>Examples:
6055  </p>  </p>
6056  <p></p>  <p>
6057                            </p>
6058  <blockquote class="text">  <blockquote class="text">
6059  <p>  <p>
6060  </p>  </p>
6061  </blockquote>  </blockquote><p>
6062                        
6063  <a name="rfc.section.5.5.3"></a><h4><a name="SET ECHO">5.5.3</a>&nbsp;Enable or disable echo of commands</h4>  </p>
6064    <a name="SET ECHO"></a><br /><hr />
6065    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6066    <a name="rfc.section.6.5.3"></a><h3>6.5.3.&nbsp;
6067    Enable or disable echo of commands</h3>
6068    
6069  <p>To enable or disable back sending of commands to the client the following command can be used:  <p>To enable or disable back sending of commands to the client the following command can be used:
6070  </p>  </p>
6071  <p></p>  <p>
6072                            </p>
6073  <blockquote class="text">  <blockquote class="text">
6074  <p>SET ECHO &lt;value&gt;  <p>SET ECHO &lt;value&gt;
6075  </p>  </p>
6076  </blockquote>  </blockquote><p>
6077                        
6078    </p>
6079  <p>Where &lt;value&gt; should be replaced either by "1" to enable echo mode  <p>Where &lt;value&gt; should be replaced either by "1" to enable echo mode
6080                      or "0" to disable echo mode. When echo mode is enabled, all                      or "0" to disable echo mode. When echo mode is enabled, all
6081                      commands send to LinuxSampler will be immediately send back and                      commands send to LinuxSampler will be immediately send back and
# Line 4005  Intellectual Property and Copyright Stat Line 6086  Intellectual Property and Copyright Stat
6086  </p>  </p>
6087  <p>Possible Answers:  <p>Possible Answers:
6088  </p>  </p>
6089  <p></p>  <p>
6090                            </p>
6091  <blockquote class="text">  <blockquote class="text">
6092  <p>"OK" -  <p>"OK" -
6093                                  </p>                                  </p>
# Line 4013  Intellectual Property and Copyright Stat Line 6095  Intellectual Property and Copyright Stat
6095  <p>usually  <p>usually
6096  </p>  </p>
6097  </blockquote>  </blockquote>
6098                                
6099    
6100  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6101                                  </p>                                  </p>
# Line 4020  Intellectual Property and Copyright Stat Line 6103  Intellectual Property and Copyright Stat
6103  <p>on syntax error, e.g. non boolean value  <p>on syntax error, e.g. non boolean value
6104  </p>  </p>
6105  </blockquote>  </blockquote>
6106                                
6107    
6108  </blockquote>  </blockquote><p>
6109                        
6110    </p>
6111  <p>Examples:  <p>Examples:
6112  </p>  </p>
6113  <p></p>  <p>
6114                            </p>
6115  <blockquote class="text">  <blockquote class="text">
6116  <p>  <p>
6117  </p>  </p>
6118  </blockquote>  </blockquote><p>
6119                        
6120  <a name="rfc.section.5.5.4"></a><h4><a name="QUIT">5.5.4</a>&nbsp;Close client connection</h4>  </p>
6121    <a name="QUIT"></a><br /><hr />
6122    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6123    <a name="rfc.section.6.5.4"></a><h3>6.5.4.&nbsp;
6124    Close client connection</h3>
6125    
6126  <p>The client can close its network connection to LinuxSampler by sending the following command:  <p>The client can close its network connection to LinuxSampler by sending the following command:
6127  </p>  </p>
6128  <p></p>  <p>
6129                            </p>
6130  <blockquote class="text">  <blockquote class="text">
6131  <p>QUIT  <p>QUIT
6132  </p>  </p>
6133  </blockquote>  </blockquote><p>
6134                        
6135    </p>
6136  <p>This is probably more interesting for manual telnet connections to  <p>This is probably more interesting for manual telnet connections to
6137                      LinuxSampler than really useful for a front-end implementation.                      LinuxSampler than really useful for a front-end implementation.
6138  </p>  </p>
6139  <a name="rfc.section.5.6"></a><h4><a name="anchor14">5.6</a>&nbsp;Global commands</h4>  <a name="anchor13"></a><br /><hr />
6140    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6141    <a name="rfc.section.6.6"></a><h3>6.6.&nbsp;
6142    Global commands</h3>
6143    
6144  <p>The following commands have global impact on the sampler.  <p>The following commands have global impact on the sampler.
6145  </p>  </p>
6146  <a name="rfc.section.5.6.1"></a><h4><a name="RESET">5.6.1</a>&nbsp;Reset sampler</h4>  <a name="GET TOTAL_VOICE_COUNT"></a><br /><hr />
6147    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6148    <a name="rfc.section.6.6.1"></a><h3>6.6.1.&nbsp;
6149    Current number of active voices</h3>
6150    
6151    <p>The front-end can ask for the current number of active voices on
6152                        the sampler by sending the following command:
6153    </p>
6154    <p>
6155                            </p>
6156    <blockquote class="text">
6157    <p>GET TOTAL_VOICE_COUNT
6158    </p>
6159    </blockquote><p>
6160                        
6161    </p>
6162    <p>Possible Answers:
6163    </p>
6164    <p>
6165                            </p>
6166    <blockquote class="text">
6167    <p>LinuxSampler will answer by returning the number of all active
6168                                voices on the sampler.
6169    </p>
6170    </blockquote><p>
6171                        
6172    </p>
6173    <a name="GET TOTAL_VOICE_COUNT_MAX"></a><br /><hr />
6174    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6175    <a name="rfc.section.6.6.2"></a><h3>6.6.2.&nbsp;
6176    Maximum amount of active voices</h3>
6177    
6178    <p>The front-end can ask for the maximum number of active voices
6179                        by sending the following command:
6180    </p>
6181    <p>
6182                            </p>
6183    <blockquote class="text">
6184    <p>GET TOTAL_VOICE_COUNT_MAX
6185    </p>
6186    </blockquote><p>
6187                        
6188    </p>
6189    <p>Possible Answers:
6190    </p>
6191    <p>
6192                            </p>
6193    <blockquote class="text">
6194    <p>LinuxSampler will answer by returning the maximum number
6195                                of active voices.
6196    </p>
6197    </blockquote><p>
6198                        
6199    </p>
6200    <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6201    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6202    <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;
6203    Current number of active disk streams</h3>
6204    
6205    <p>The front-end can ask for the current number of active disk streams on
6206                        the sampler by sending the following command:
6207    </p>
6208    <p>
6209                            </p>
6210    <blockquote class="text">
6211    <p>GET TOTAL_STREAM_COUNT
6212    </p>
6213    </blockquote><p>
6214                        
6215    </p>
6216    <p>Possible Answers:
6217    </p>
6218    <p>
6219                            </p>
6220    <blockquote class="text">
6221    <p>LinuxSampler will answer by returning the number of all active
6222                                disk streams on the sampler.
6223    </p>
6224    </blockquote><p>
6225                        
6226    </p>
6227    <a name="RESET"></a><br /><hr />
6228    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6229    <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6230    Reset sampler</h3>
6231    
6232  <p>The front-end can reset the whole sampler by sending the following command:  <p>The front-end can reset the whole sampler by sending the following command:
6233  </p>  </p>
6234  <p></p>  <p>
6235                            </p>
6236  <blockquote class="text">  <blockquote class="text">
6237  <p>RESET  <p>RESET
6238  </p>  </p>
6239    </blockquote><p>
6240                        
6241    </p>
6242    <p>Possible Answers:
6243    </p>
6244    <p>
6245                            </p>
6246    <blockquote class="text">
6247    <p>"OK" -
6248                                    </p>
6249    <blockquote class="text">
6250    <p>always
6251    </p>
6252    </blockquote>
6253                                
6254    
6255    </blockquote><p>
6256                        
6257    </p>
6258    <p>Examples:
6259    </p>
6260    <p>
6261                            </p>
6262    <blockquote class="text">
6263    <p>
6264    </p>
6265    </blockquote><p>
6266                        
6267    </p>
6268    <a name="GET SERVER INFO"></a><br /><hr />
6269    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6270    <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6271    General sampler informations</h3>
6272    
6273    <p>The client can ask for general informations about the LinuxSampler
6274                           instance by sending the following command:
6275    </p>
6276    <p>
6277                            </p>
6278    <blockquote class="text">
6279    <p>GET SERVER INFO
6280    </p>
6281    </blockquote><p>
6282                        
6283    </p>
6284    <p>Possible Answers:
6285    </p>
6286    <p>
6287                            </p>
6288    <blockquote class="text">
6289    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6290                                   Each answer line begins with the information category name
6291                                   followed by a colon and then a space character &lt;SP&gt; and finally
6292                                   the info character string to that information category. At the
6293                                   moment the following categories are defined:
6294                                
6295    </p>
6296    <p>
6297                                    </p>
6298    <blockquote class="text">
6299    <p>DESCRIPTION -
6300                                            </p>
6301    <blockquote class="text">
6302    <p>arbitrary textual description about the sampler
6303                                                (note that the character string may contain
6304                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6305    </p>
6306    </blockquote>
6307                                        
6308    
6309    <p>VERSION -
6310                                            </p>
6311    <blockquote class="text">
6312    <p>version of the sampler
6313    </p>
6314    </blockquote>
6315                                        
6316    
6317    <p>PROTOCOL_VERSION -
6318                                            </p>
6319    <blockquote class="text">
6320    <p>version of the LSCP specification the sampler
6321                                                complies with (see <a class='info' href='#LSCP versioning'>Section&nbsp;2<span> (</span><span class='info'>Versioning of this specification</span><span>)</span></a> for details)
6322    </p>
6323    </blockquote>
6324                                        
6325    
6326    <p>INSTRUMENTS_DB_SUPPORT -
6327                                            </p>
6328    <blockquote class="text">
6329    <p>either yes or no, specifies whether the
6330                                                sampler is build with instruments database support.
6331    </p>
6332    </blockquote>
6333                                        
6334    
6335    </blockquote>
6336                                
6337    
6338    </blockquote><p>
6339                        
6340    </p>
6341    <p>The mentioned fields above don't have to be in particular order.
6342                        Other fields might be added in future.
6343    </p>
6344    <a name="GET VOLUME"></a><br /><hr />
6345    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6346    <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6347    Getting global volume attenuation</h3>
6348    
6349    <p>The client can ask for the current global sampler-wide volume
6350                        attenuation by sending the following command:
6351    </p>
6352    <p>
6353                            </p>
6354    <blockquote class="text">
6355    <p>GET VOLUME
6356    </p>
6357    </blockquote><p>
6358                        
6359    </p>
6360    <p>Possible Answers:
6361    </p>
6362    <p>
6363                            </p>
6364    <blockquote class="text">
6365    <p>The sampler will always answer by returning the optional
6366                                dotted floating point coefficient, reflecting the current
6367                                global volume attenuation.
6368                                
6369    </p>
6370    </blockquote><p>
6371                        
6372    </p>
6373    <p>Note: it is up to the respective sampler engine whether to obey
6374                        that global volume parameter or not, but in general all engines SHOULD
6375                        use this parameter.
6376    </p>
6377    <a name="SET VOLUME"></a><br /><hr />
6378    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6379    <a name="rfc.section.6.6.7"></a><h3>6.6.7.&nbsp;
6380    Setting global volume attenuation</h3>
6381    
6382    <p>The client can alter the current global sampler-wide volume
6383                        attenuation by sending the following command:
6384    </p>
6385    <p>
6386                            </p>
6387    <blockquote class="text">
6388    <p>SET VOLUME &lt;volume&gt;
6389    </p>
6390    </blockquote><p>
6391                        
6392    </p>
6393    <p>Where &lt;volume&gt; should be replaced by the optional dotted
6394                       floating point value, reflecting the new global volume parameter.
6395                       This value might usually be in the range between 0.0 and 1.0, that
6396                       is for attenuating the overall volume.
6397    </p>
6398    <p>Possible Answers:
6399    </p>
6400    <p>
6401                            </p>
6402    <blockquote class="text">
6403    <p>"OK" -
6404                                    </p>
6405    <blockquote class="text">
6406    <p>on success
6407    </p>
6408    </blockquote>
6409                                
6410    
6411    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6412                                    </p>
6413    <blockquote class="text">
6414    <p>if the global volume was set, but there are noteworthy
6415                                        issue(s) related, providing an appropriate warning code and
6416                                        warning message
6417    </p>
6418    </blockquote>
6419                                
6420    
6421    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6422                                    </p>
6423    <blockquote class="text">
6424    <p>in case it failed, providing an appropriate error code and error message
6425    </p>
6426    </blockquote>
6427                                
6428    
6429    </blockquote><p>
6430                        
6431    </p>
6432    <a name="GET VOICES"></a><br /><hr />
6433    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6434    <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
6435    Getting global voice limit</h3>
6436    
6437    <p>The client can ask for the current global sampler-wide limit
6438                           for maximum voices by sending the following command:
6439    </p>
6440    <p>
6441                            </p>
6442    <blockquote class="text">
6443    <p>GET VOICES
6444    </p>
6445    </blockquote><p>
6446                        
6447    </p>
6448    <p>Possible Answers:
6449    </p>
6450    <p>
6451                            </p>
6452    <blockquote class="text">
6453    <p>LinuxSampler will answer by returning the number for
6454                                   the current limit of maximum voices.
6455    </p>
6456    </blockquote><p>
6457                        
6458    </p>
6459    <p>The voice limit setting defines how many voices should maximum
6460                           be processed by the sampler at the same time. If the user
6461                           triggers new notes which would exceed that voice limit, the
6462                           sampler engine will react by stealing old voices for those
6463                           newly triggered notes. Note that the amount of voices triggered
6464                           by a new note can be larger than one and is dependent to the
6465                           respective instrument and probably further criterias.
6466    </p>
6467    <a name="SET VOICES"></a><br /><hr />
6468    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6469    <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
6470    Setting global voice limit</h3>
6471    
6472    <p>The client can alter the current global sampler-wide limit
6473                        for maximum voices by sending the following command:
6474    </p>
6475    <p>
6476                            </p>
6477    <blockquote class="text">
6478    <p>SET VOICES &lt;max-voices&gt;
6479    </p>
6480    </blockquote><p>
6481                        
6482    </p>
6483    <p>Where &lt;max-voices&gt; should be replaced by the integer
6484                       value, reflecting the new global amount limit of maximum voices.
6485                       This value has to be larger than 0.
6486    </p>
6487    <p>Possible Answers:
6488    </p>
6489    <p>
6490                            </p>
6491    <blockquote class="text">
6492    <p>"OK" -
6493                                    </p>
6494    <blockquote class="text">
6495    <p>on success
6496    </p>
6497    </blockquote>
6498                                
6499    
6500    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6501                                    </p>
6502    <blockquote class="text">
6503    <p>if the voice limit was set, but there are noteworthy
6504                                        issue(s) related, providing an appropriate warning code and
6505                                        warning message
6506    </p>
6507    </blockquote>
6508                                
6509    
6510    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6511                                    </p>
6512    <blockquote class="text">
6513    <p>in case it failed, providing an appropriate error code and error message
6514    </p>
6515    </blockquote>
6516                                
6517    
6518    </blockquote><p>
6519                        
6520    </p>
6521    <p>Note: the given value will be passed to all sampler engine instances.
6522                           The total amount of maximum voices on the running system might thus
6523                           be as big as the given value multiplied by the current amount of engine
6524                           instances.
6525    </p>
6526    <p>Caution: when adjusting the voice limit, you SHOULD also
6527                            adjust the disk stream limit respectively and vice versa.
6528    </p>
6529    <a name="GET STREAMS"></a><br /><hr />
6530    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6531    <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
6532    Getting global disk stream limit</h3>
6533    
6534    <p>The client can ask for the current global sampler-wide limit
6535                           for maximum disk streams by sending the following command:
6536    </p>
6537    <p>
6538                            </p>
6539    <blockquote class="text">
6540    <p>GET STREAMS
6541    </p>
6542    </blockquote><p>
6543                        
6544    </p>
6545    <p>Possible Answers:
6546    </p>
6547    <p>
6548                            </p>
6549    <blockquote class="text">
6550    <p>LinuxSampler will answer by returning the number for
6551                                   the current limit of maximum disk streams.
6552    </p>
6553    </blockquote><p>
6554                        
6555    </p>
6556    <p>The disk stream limit setting defines how many disk streams should
6557                           maximum be processed by a sampler engine at the same time. The
6558                           higher this value, the more memory (RAM) will be occupied, since
6559                           every disk streams allocates a certain buffer size for being able
6560                           to perform its streaming operations.
6561    </p>
6562    <a name="SET STREAMS"></a><br /><hr />
6563    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6564    <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
6565    Setting global disk stream limit</h3>
6566    
6567    <p>The client can alter the current global sampler-wide limit
6568                        for maximum disk streams by sending the following command:
6569    </p>
6570    <p>
6571                            </p>
6572    <blockquote class="text">
6573    <p>SET STREAMS &lt;max-streams&gt;
6574    </p>
6575    </blockquote><p>
6576                        
6577    </p>
6578    <p>Where &lt;max-streams&gt; should be replaced by the integer
6579                       value, reflecting the new global amount limit of maximum disk streams.
6580                       This value has to be positive.
6581    </p>
6582    <p>Possible Answers:
6583    </p>
6584    <p>
6585                            </p>
6586    <blockquote class="text">
6587    <p>"OK" -
6588                                    </p>
6589    <blockquote class="text">
6590    <p>on success
6591    </p>
6592    </blockquote>
6593                                
6594    
6595    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6596                                    </p>
6597    <blockquote class="text">
6598    <p>if the disk stream limit was set, but there are noteworthy
6599                                        issue(s) related, providing an appropriate warning code and
6600                                        warning message
6601    </p>
6602    </blockquote>
6603                                
6604    
6605    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6606                                    </p>
6607    <blockquote class="text">
6608    <p>in case it failed, providing an appropriate error code and error message
6609    </p>
6610    </blockquote>
6611                                
6612    
6613    </blockquote><p>
6614                        
6615    </p>
6616    <p>Note: the given value will be passed to all sampler engine instances.
6617                           The total amount of maximum disk streams on the running system might
6618                           thus be as big as the given value multiplied by the current amount of
6619                           engine instances.
6620    </p>
6621    <p>Caution: when adjusting the disk stream limit, you SHOULD also
6622                            adjust the voice limit respectively and vice versa.
6623    </p>
6624    <a name="MIDI Instrument Mapping"></a><br /><hr />
6625    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6626    <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
6627    MIDI Instrument Mapping</h3>
6628    
6629    <p>The MIDI protocol provides a way to switch between instruments
6630                    by sending so called MIDI bank select and MIDI program change
6631                    messages which are essentially just numbers. The following commands
6632                    allow to actually map arbitrary MIDI bank select / program change
6633                    numbers with real instruments.
6634    </p>
6635    <p>The sampler allows to manage an arbitrary amount of MIDI
6636                    instrument maps which define which instrument to load on
6637                    which MIDI program change message.
6638    </p>
6639    <p>By default, that is when the sampler is launched, there is no
6640                    map, thus the sampler will simply ignore all program change
6641                    messages. The front-end has to explicitly create at least one
6642                    map, add entries to the map and tell the respective sampler
6643                    channel(s) which MIDI instrument map to use, so the sampler
6644                    knows how to react on a given program change message on the
6645                    respective sampler channel, that is by switching to the
6646                    respectively defined engine type and loading the respective
6647                    instrument. See command
6648                    <a class='info' href='#SET CHANNEL MIDI_INSTRUMENT_MAP'>"SET CHANNEL MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Assigning a MIDI instrument map to a sampler channel</span><span>)</span></a>
6649                    for how to assign a MIDI instrument map to a sampler channel.
6650    </p>
6651    <p>Also note per MIDI specification a bank select message does not
6652                    cause to switch to another instrument. Instead when receiving a
6653                    bank select message the bank value will be stored and a subsequent
6654                    program change message (which may occur at any time) will finally
6655                    cause the sampler to switch to the respective instrument as
6656                    reflected by the current MIDI instrument map.
6657    </p>
6658    <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
6659    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6660    <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;
6661    Create a new MIDI instrument map</h3>
6662    
6663    <p>The front-end can add a new MIDI instrument map by sending
6664                        the following command:
6665    </p>
6666    <p>
6667                            </p>
6668    <blockquote class="text">
6669    <p>ADD MIDI_INSTRUMENT_MAP [&lt;name&gt;]
6670    </p>
6671    </blockquote><p>
6672                        
6673    </p>
6674    <p>Where &lt;name&gt; is an optional argument allowing to
6675                        assign a custom name to the new map. MIDI instrument Map
6676                        names do not have to be unique, but MUST be encapsulated
6677                        into apostrophes and support escape sequences as described
6678                        in chapter "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
6679                        
6680    </p>
6681    <p>Possible Answers:
6682    </p>
6683    <p>
6684                            </p>
6685    <blockquote class="text">
6686    <p>"OK[&lt;map&gt;]" -
6687                                    </p>
6688    <blockquote class="text">
6689    <p>in case a new MIDI instrument map could
6690                                        be added, where &lt;map&gt; reflects the
6691                                        unique ID of the newly created MIDI
6692                                        instrument map
6693    </p>
6694    </blockquote>
6695                                
6696    
6697    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6698                                    </p>
6699    <blockquote class="text">
6700    <p>when a new map could not be created, which
6701                                        might never occur in practice
6702    </p>
6703    </blockquote>
6704                                
6705    
6706    </blockquote><p>
6707                        
6708    </p>
6709    <p>Examples:
6710    </p>
6711    <p>
6712                            </p>
6713    <blockquote class="text">
6714    <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Map'"
6715    </p>
6716    <p>S: "OK[0]"
6717    </p>
6718    </blockquote><p>
6719                        
6720    </p>
6721    <p>
6722                            </p>
6723    <blockquote class="text">
6724    <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Drumkit'"
6725    </p>
6726    <p>S: "OK[1]"
6727    </p>
6728    </blockquote><p>
6729                        
6730    </p>
6731    <p>
6732                            </p>
6733    <blockquote class="text">
6734    <p>C: "ADD MIDI_INSTRUMENT_MAP"
6735    </p>
6736    <p>S: "OK[5]"
6737    </p>
6738    </blockquote><p>
6739                        
6740    </p>
6741    <a name="REMOVE MIDI_INSTRUMENT_MAP"></a><br /><hr />
6742    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6743    <a name="rfc.section.6.7.2"></a><h3>6.7.2.&nbsp;
6744    Delete one particular or all MIDI instrument maps</h3>
6745    
6746    <p>The front-end can delete a particular MIDI instrument map
6747                        by sending the following command:
6748    </p>
6749    <p>
6750                            </p>
6751    <blockquote class="text">
6752    <p>REMOVE MIDI_INSTRUMENT_MAP &lt;map&gt;
6753    </p>
6754    </blockquote><p>
6755                        
6756    </p>
6757    <p>Where &lt;map&gt; reflects the unique ID of the map to delete
6758                        as returned by the <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
6759                        command.
6760    </p>
6761    <p>The front-end can delete all MIDI instrument maps by
6762                        sending the following command:
6763    </p>
6764    <p>
6765                            </p>
6766    <blockquote class="text">
6767    <p>REMOVE MIDI_INSTRUMENT_MAP ALL
6768    </p>
6769    </blockquote><p>
6770                        
6771    </p>
6772    <p>Possible Answers:
6773    </p>
6774    <p>
6775                            </p>
6776    <blockquote class="text">
6777    <p>"OK" -
6778                                    </p>
6779    <blockquote class="text">
6780    <p>in case the map(s) could be deleted
6781    </p>
6782    </blockquote>
6783                                
6784    
6785    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6786                                    </p>
6787    <blockquote class="text">
6788    <p>when the given map does not exist
6789    </p>
6790    </blockquote>
6791                                
6792    
6793    </blockquote><p>
6794                        
6795    </p>
6796    <p>Examples:
6797    </p>
6798    <p>
6799                            </p>
6800    <blockquote class="text">
6801    <p>C: "REMOVE MIDI_INSTRUMENT_MAP 0"
6802    </p>
6803    <p>S: "OK"
6804    </p>
6805    </blockquote><p>
6806                        
6807    </p>
6808    <p>
6809                            </p>
6810    <blockquote class="text">
6811    <p>C: "REMOVE MIDI_INSTRUMENT_MAP ALL"
6812    </p>
6813    <p>S: "OK"
6814    </p>
6815    </blockquote><p>
6816                        
6817    </p>
6818    <a name="GET MIDI_INSTRUMENT_MAPS"></a><br /><hr />
6819    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6820    <a name="rfc.section.6.7.3"></a><h3>6.7.3.&nbsp;
6821    Get amount of existing MIDI instrument maps</h3>
6822    
6823    <p>The front-end can retrieve the current amount of MIDI
6824                        instrument maps by sending the following command:
6825    </p>
6826    <p>
6827                            </p>
6828    <blockquote class="text">
6829    <p>GET MIDI_INSTRUMENT_MAPS
6830    </p>
6831    </blockquote><p>
6832                        
6833    </p>
6834    <p>Possible Answers:
6835    </p>
6836    <p>
6837                            </p>
6838    <blockquote class="text">
6839    <p>The sampler will answer by returning the current
6840                                number of MIDI instrument maps.
6841    </p>
6842    </blockquote><p>
6843                        
6844    </p>
6845    <p>Example:
6846    </p>
6847    <p>
6848                            </p>
6849    <blockquote class="text">
6850    <p>C: "GET MIDI_INSTRUMENT_MAPS"
6851    </p>
6852    <p>S: "2"
6853    </p>
6854    </blockquote><p>
6855                        
6856    </p>
6857    <a name="LIST MIDI_INSTRUMENT_MAPS"></a><br /><hr />
6858    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6859    <a name="rfc.section.6.7.4"></a><h3>6.7.4.&nbsp;
6860    Getting all created MIDI instrument maps</h3>
6861    
6862    <p>The number of MIDI instrument maps can change on runtime. To get the
6863                        current list of MIDI instrument maps, the front-end can send the
6864                        following command:
6865    </p>
6866    <p>
6867                            </p>
6868    <blockquote class="text">
6869    <p>LIST MIDI_INSTRUMENT_MAPS
6870    </p>
6871    </blockquote><p>
6872                        
6873    </p>
6874    <p>Possible Answers:
6875    </p>
6876    <p>
6877                            </p>
6878    <blockquote class="text">
6879    <p>The sampler will answer by returning a comma separated list
6880                                with all MIDI instrument maps' numerical IDs.
6881    </p>
6882    </blockquote><p>
6883                        
6884    </p>
6885    <p>Example:
6886    </p>
6887    <p>
6888                            </p>
6889    <blockquote class="text">
6890    <p>C: "LIST MIDI_INSTRUMENT_MAPS"
6891    </p>
6892    <p>S: "0,1,5,12"
6893    </p>
6894    </blockquote><p>
6895                        
6896    </p>
6897    <a name="GET MIDI_INSTRUMENT_MAP INFO"></a><br /><hr />
6898    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6899    <a name="rfc.section.6.7.5"></a><h3>6.7.5.&nbsp;
6900    Getting MIDI instrument map information</h3>
6901    
6902    <p>The front-end can ask for the current settings of a MIDI
6903                        instrument map by sending the following command:
6904    </p>
6905    <p>
6906                            </p>
6907    <blockquote class="text">
6908    <p>GET MIDI_INSTRUMENT_MAP INFO &lt;map&gt;
6909    </p>
6910    </blockquote><p>
6911                        
6912    </p>
6913    <p>Where &lt;map&gt; is the numerical ID of the map the
6914                        front-end is interested in as returned by the
6915                        <a class='info' href='#LIST MIDI_INSTRUMENT_MAPS'>"LIST MIDI_INSTRUMENT_MAPS"<span> (</span><span class='info'>Getting all created MIDI instrument maps</span><span>)</span></a>
6916                        command.
6917    </p>
6918    <p>Possible Answers:
6919    </p>
6920    <p>
6921                            </p>
6922    <blockquote class="text">
6923    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6924                                Each answer line begins with the settings category name
6925                                followed by a colon and then a space character &lt;SP&gt; and finally
6926                                the info character string to that setting category. At the
6927                                moment the following categories are defined:
6928    </p>
6929    <p>
6930                                    </p>
6931    <blockquote class="text">
6932    <p>NAME -
6933                                            </p>
6934    <blockquote class="text">
6935    <p>custom name of the given map,
6936                                                which does not have to be unique
6937                                                (note that this character string may contain
6938                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6939    </p>
6940    </blockquote>
6941                                        
6942    
6943    <p>DEFAULT -
6944                                            </p>
6945    <blockquote class="text">
6946    <p>either true or false,
6947                                                defines whether this map is the default map
6948    </p>
6949    </blockquote>
6950                                        
6951    
6952    </blockquote>
6953                                
6954    
6955    </blockquote><p>
6956                        
6957    </p>
6958    <p>The mentioned fields above don't have to be in particular order.
6959    </p>
6960    <p>Example:
6961    </p>
6962    <p>
6963                            </p>
6964    <blockquote class="text">
6965    <p>C: "GET MIDI_INSTRUMENT_MAP INFO 0"
6966    </p>
6967    <p>S: "NAME: Standard Map"
6968    </p>
6969    <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
6970    </p>
6971    <p>&nbsp;&nbsp;&nbsp;"."
6972    </p>
6973    </blockquote><p>
6974                        
6975    </p>
6976    <a name="SET MIDI_INSTRUMENT_MAP NAME"></a><br /><hr />
6977    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
6978    <a name="rfc.section.6.7.6"></a><h3>6.7.6.&nbsp;
6979    Renaming a MIDI instrument map</h3>
6980    
6981    <p>The front-end can alter the custom name of a MIDI
6982                        instrument map by sending the following command:
6983    </p>
6984    <p>
6985                            </p>
6986    <blockquote class="text">
6987    <p>SET MIDI_INSTRUMENT_MAP NAME &lt;map&gt; &lt;name&gt;
6988    </p>
6989    </blockquote><p>
6990                        
6991    </p>
6992    <p>Where &lt;map&gt; is the numerical ID of the map and
6993                        &lt;name&gt; the new custom name of the map, which does not
6994                        have to be unique (name MUST be encapsulated into apostrophes
6995                        and supports escape sequences as described in chapter
6996                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
6997                        
6998    </p>
6999    <p>Possible Answers:
7000    </p>
7001    <p>
7002                            </p>
7003    <blockquote class="text">
7004    <p>"OK" -
7005                                    </p>
7006    <blockquote class="text">
7007    <p>on success
7008    </p>
7009    </blockquote>
7010                                
7011    
7012    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7013                                    </p>
7014    <blockquote class="text">
7015    <p>in case the given map does not exist
7016    </p>
7017    </blockquote>
7018                                
7019    
7020    </blockquote><p>
7021                        
7022    </p>
7023    <p>Example:
7024    </p>
7025    <p>
7026                            </p>
7027    <blockquote class="text">
7028    <p>C: "SET MIDI_INSTRUMENT_MAP NAME 0 'Foo instruments'"
7029    </p>
7030    <p>S: "OK"
7031    </p>
7032    </blockquote><p>
7033                        
7034    </p>
7035    <a name="MAP MIDI_INSTRUMENT"></a><br /><hr />
7036    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7037    <a name="rfc.section.6.7.7"></a><h3>6.7.7.&nbsp;
7038    Create or replace a MIDI instrument map entry</h3>
7039    
7040    <p>The front-end can create a new or replace an existing entry
7041                        in a sampler's MIDI instrument map by sending the following
7042                        command:
7043    </p>
7044    <p>
7045                            </p>
7046    <blockquote class="text">
7047    <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
7048                                &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
7049                                &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
7050                                [&lt;instr_load_mode&gt;] [&lt;name&gt;]
7051    </p>
7052    </blockquote><p>
7053                        
7054    </p>
7055    <p>Where &lt;map&gt; is the numeric ID of the map to alter,
7056                        &lt;midi_bank&gt; is an integer value between
7057                        0..16383 reflecting the MIDI bank select index,
7058                        &lt;midi_prog&gt; an
7059                        integer value between 0..127 reflecting the MIDI program change
7060                        index, &lt;engine_name&gt; a sampler engine name as returned by
7061                        the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>
7062                        command (not encapsulated into apostrophes), &lt;filename&gt; the name
7063                        of the instrument's file to be deployed (encapsulated into apostrophes,
7064                        supporting escape sequences as described in chapter
7065                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>"),
7066                        &lt;instrument_index&gt; the index (integer value) of the instrument
7067                        within the given file, &lt;volume_value&gt; reflects the master
7068                        volume of the instrument as optionally dotted number (where a
7069                        value &lt; 1.0 means attenuation and a value > 1.0 means
7070                        amplification). This parameter easily allows to adjust the
7071                        volume of all intruments within a custom instrument map
7072                        without having to adjust their instrument files. The
7073                        OPTIONAL &lt;instr_load_mode&gt; argument defines the life
7074                        time of the instrument, that is when the instrument should
7075                        be loaded, when freed and has exactly the following
7076                        possibilities:
7077    </p>
7078    <p>
7079                            </p>
7080    <blockquote class="text">
7081    <p>"ON_DEMAND" -
7082                                    </p>
7083    <blockquote class="text">
7084    <p>The instrument will be loaded when needed,
7085                                        that is when demanded by at least one sampler
7086                                        channel. It will immediately be freed from memory
7087                                        when not needed by any sampler channel anymore.
7088    </p>
7089    </blockquote>
7090                                
7091    
7092    <p>"ON_DEMAND_HOLD" -
7093                                    </p>
7094    <blockquote class="text">
7095    <p>The instrument will be loaded when needed,
7096                                        that is when demanded by at least one sampler
7097                                        channel. It will be kept in memory even when
7098                                        not needed by any sampler channel anymore.
7099                                        Instruments with this mode are only freed
7100                                        when the sampler is reset or all mapping
7101                                        entries with this mode (and respective
7102                                        instrument) are explicitly changed to
7103                                        "ON_DEMAND" and no sampler channel is using
7104                                        the instrument anymore.
7105    </p>
7106    </blockquote>
7107                                
7108    
7109    <p>"PERSISTENT" -
7110                                    </p>
7111    <blockquote class="text">
7112    <p>The instrument will immediately be loaded
7113                                        into memory when this mapping
7114                                        command is sent and the instrument is kept all
7115                                        the time. Instruments with this mode are
7116                                        only freed when the sampler is reset or all
7117                                        mapping entries with this mode (and
7118                                        respective instrument) are explicitly
7119                                        changed to "ON_DEMAND" and no sampler
7120                                        channel is using the instrument anymore.
7121    </p>
7122    </blockquote>
7123                                
7124    
7125    <p>not supplied -
7126                                    </p>
7127    <blockquote class="text">
7128    <p>In case there is no &lt;instr_load_mode&gt;
7129                                        argument given, it will be up to the
7130                                        InstrumentManager to decide which mode to use.
7131                                        Usually it will use "ON_DEMAND" if an entry
7132                                        for the given instrument does not exist in
7133                                        the InstrumentManager's list yet, otherwise
7134                                        if an entry already exists, it will simply
7135                                        stick with the mode currently reflected by
7136                                        the already existing entry, that is it will
7137                                        not change the mode.
7138    </p>
7139    </blockquote>
7140                                
7141    
7142    </blockquote><p>
7143                        
7144    </p>
7145    <p>
7146                        The &lt;instr_load_mode&gt; argument thus allows to define an
7147                        appropriate strategy (low memory consumption vs. fast
7148                        instrument switching) for each instrument individually. Note, the
7149                        following restrictions apply to this argument: "ON_DEMAND_HOLD" and
7150                        "PERSISTENT" have to be supported by the respective sampler engine
7151                        (which is technically the case when the engine provides an
7152                        InstrumentManager for its format). If this is not the case the
7153                        argument will automatically fall back to the default value
7154                        "ON_DEMAND". Also the load mode of one instrument may
7155                        automatically change the laod mode of other instrument(s), i.e.
7156                        because the instruments are part of the same file and the
7157                        engine does not allow a way to manage load modes for them
7158                        individually. Due to this, in case the frontend shows the
7159                        load modes of entries, the frontend should retrieve the actual
7160                        mode by i.e. sending
7161                        <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
7162                        command(s). Finally the OPTIONAL &lt;name&gt; argument allows to set a custom name
7163                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
7164                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") for the
7165                        mapping entry, useful for frontends for displaying an appropriate name for
7166                        mapped instruments (using
7167                        <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>).
7168                        
7169    </p>
7170    <p>
7171                        By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
7172                        completely established in the sampler. The OPTIONAL "NON_MODAL" argument
7173                        however causes the respective "MAP MIDI_INSTRUMENT" command to return
7174                        immediately, that is to let the sampler establish the mapping in the
7175                        background. So this argument might be especially useful for mappings with
7176                        a "PERSISTENT" type, because these have to load the respective instruments
7177                        immediately and might thus block for a very long time. It is recommended
7178                        however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
7179                        because it has the following drawbacks: as "NON_MODAL" instructions return
7180                        immediately, they may not necessarily return an error i.e. when the given
7181                        instrument file turns out to be corrupt, beside that subsequent commands
7182                        in a LSCP instruction sequence might fail, because mandatory mappings are
7183                        not yet completed.
7184                        
7185    </p>
7186    <p>Possible Answers:
7187    </p>
7188    <p>
7189                            </p>
7190    <blockquote class="text">
7191    <p>"OK" -
7192                                    </p>
7193    <blockquote class="text">
7194    <p>usually
7195    </p>
7196    </blockquote>
7197                                
7198    
7199    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7200                                    </p>
7201    <blockquote class="text">
7202    <p>when the given map or engine does not exist or a value
7203                                        is out of range
7204    </p>
7205    </blockquote>
7206                                
7207    
7208    </blockquote><p>
7209                        
7210    </p>
7211    <p>Examples:
7212    </p>
7213    <p>
7214                            </p>
7215    <blockquote class="text">
7216    <p>C: "MAP MIDI_INSTRUMENT 0 3 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"
7217    </p>
7218    <p>S: "OK"
7219    </p>
7220    </blockquote><p>
7221                        
7222    </p>
7223    <p>
7224                            </p>
7225    <blockquote class="text">
7226    <p>C: "MAP MIDI_INSTRUMENT 0 4 50 gig '/home/john/foostrings.gig' 7 1.0"
7227    </p>
7228    <p>S: "OK"
7229    </p>
7230    </blockquote><p>
7231                        
7232    </p>
7233    <p>
7234                            </p>
7235    <blockquote class="text">
7236    <p>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"
7237    </p>
7238    <p>S: "OK"
7239    </p>
7240    <p>C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"
7241    </p>
7242    <p>S: "OK"
7243    </p>
7244    </blockquote><p>
7245                        
7246    </p>
7247    <p>
7248                            </p>
7249    <blockquote class="text">
7250    <p>C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
7251    </p>
7252    <p>S: "OK"
7253    </p>
7254    </blockquote><p>
7255                        
7256    </p>
7257    <a name="GET MIDI_INSTRUMENTS"></a><br /><hr />
7258    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7259    <a name="rfc.section.6.7.8"></a><h3>6.7.8.&nbsp;
7260    Getting ammount of MIDI instrument map entries</h3>
7261    
7262    <p>The front-end can query the amount of currently existing
7263                        entries in a MIDI instrument map by sending the following
7264                        command:
7265    </p>
7266    <p>
7267                            </p>
7268    <blockquote class="text">
7269    <p>GET MIDI_INSTRUMENTS &lt;map&gt;
7270    </p>
7271    </blockquote><p>
7272                        
7273    </p>
7274    <p>The front-end can query the amount of currently existing
7275                        entries in all MIDI instrument maps by sending the following
7276                        command:
7277    </p>
7278    <p>
7279                            </p>
7280    <blockquote class="text">
7281    <p>GET MIDI_INSTRUMENTS ALL
7282    </p>
7283    </blockquote><p>
7284                        
7285    </p>
7286    <p>Possible Answers:
7287    </p>
7288    <p>
7289                            </p>
7290    <blockquote class="text">
7291    <p>The sampler will answer by sending the current number of
7292                                entries in the MIDI instrument map(s).
7293    </p>
7294    </blockquote><p>
7295                        
7296    </p>
7297    <p>Example:
7298    </p>
7299    <p>
7300                            </p>
7301    <blockquote class="text">
7302    <p>C: "GET MIDI_INSTRUMENTS 0"
7303    </p>
7304    <p>S: "234"
7305    </p>
7306    </blockquote><p>
7307                        
7308    </p>
7309    <p>
7310                            </p>
7311    <blockquote class="text">
7312    <p>C: "GET MIDI_INSTRUMENTS ALL"
7313    </p>
7314    <p>S: "954"
7315    </p>
7316    </blockquote><p>
7317                        
7318    </p>
7319    <a name="LIST MIDI_INSTRUMENTS"></a><br /><hr />
7320    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7321    <a name="rfc.section.6.7.9"></a><h3>6.7.9.&nbsp;
7322    Getting indeces of all entries of a MIDI instrument map</h3>
7323    
7324    <p>The front-end can query a list of all currently existing
7325                        entries in a certain MIDI instrument map by sending the following
7326                        command:
7327    </p>
7328    <p>
7329                            </p>
7330    <blockquote class="text">
7331    <p>LIST MIDI_INSTRUMENTS &lt;map&gt;
7332    </p>
7333    </blockquote><p>
7334                        
7335    </p>
7336    <p>Where &lt;map&gt; is the numeric ID of the MIDI instrument map.
7337    </p>
7338    <p>The front-end can query a list of all currently existing
7339                        entries of all MIDI instrument maps by sending the following
7340                        command:
7341    </p>
7342    <p>
7343                            </p>
7344    <blockquote class="text">
7345    <p>LIST MIDI_INSTRUMENTS ALL
7346    </p>
7347    </blockquote><p>
7348                        
7349    </p>
7350    <p>Possible Answers:
7351    </p>
7352    <p>
7353                            </p>
7354    <blockquote class="text">
7355    <p>The sampler will answer by sending a comma separated
7356                                list of map ID - MIDI bank - MIDI program triples, where
7357                                each triple is encapsulated into curly braces. The
7358                                list is returned in one single line. Each triple
7359                                just reflects the key of the respective map entry,
7360                                thus subsequent
7361                                <a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
7362                                command(s) are necessary to retrieve detailed informations
7363                                about each entry.
7364    </p>
7365    </blockquote><p>
7366                        
7367    </p>
7368    <p>Example:
7369    </p>
7370    <p>
7371                            </p>
7372    <blockquote class="text">
7373    <p>C: "LIST MIDI_INSTRUMENTS 0"
7374    </p>
7375    <p>S: "{0,0,0},{0,0,1},{0,0,3},{0,1,4},{1,127,127}"
7376    </p>
7377    </blockquote><p>
7378                        
7379    </p>
7380    <a name="UNMAP MIDI_INSTRUMENT"></a><br /><hr />
7381    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7382    <a name="rfc.section.6.7.10"></a><h3>6.7.10.&nbsp;
7383    Remove an entry from the MIDI instrument map</h3>
7384    
7385    <p>The front-end can delete an entry from a MIDI instrument
7386                        map by sending the following command:
7387    </p>
7388    <p>
7389                            </p>
7390    <blockquote class="text">
7391    <p>UNMAP MIDI_INSTRUMENT &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
7392    </p>
7393    </blockquote><p>
7394                        
7395    </p>
7396    <p>
7397                        Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
7398                        &lt;midi_bank&gt; is an integer value between 0..16383
7399                        reflecting the MIDI bank value and
7400                        &lt;midi_prog&gt; an integer value between
7401                        0..127 reflecting the MIDI program value of the map's entrie's key
7402                        index triple.
7403                        
7404    </p>
7405    <p>Possible Answers:
7406    </p>
7407    <p>
7408                            </p>
7409    <blockquote class="text">
7410    <p>"OK" -
7411                                    </p>
7412    <blockquote class="text">
7413    <p>usually
7414    </p>
7415    </blockquote>
7416                                
7417    
7418    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7419                                    </p>
7420    <blockquote class="text">
7421    <p>when index out of bounds
7422    </p>
7423    </blockquote>
7424                                
7425    
7426    </blockquote><p>
7427                        
7428    </p>
7429    <p>Example:
7430    </p>
7431    <p>
7432                            </p>
7433    <blockquote class="text">
7434    <p>C: "UNMAP MIDI_INSTRUMENT 0 2 127"
7435    </p>
7436    <p>S: "OK"
7437    </p>
7438    </blockquote><p>
7439                        
7440    </p>
7441    <a name="GET MIDI_INSTRUMENT INFO"></a><br /><hr />
7442    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7443    <a name="rfc.section.6.7.11"></a><h3>6.7.11.&nbsp;
7444    Get current settings of MIDI instrument map entry</h3>
7445    
7446    <p>The front-end can retrieve the current settings of a certain
7447                        instrument map entry by sending the following command:
7448    </p>
7449    <p>
7450                            </p>
7451    <blockquote class="text">
7452    <p>GET MIDI_INSTRUMENT INFO &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
7453    </p>
7454    </blockquote><p>
7455                        
7456    </p>
7457    <p>
7458                        Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
7459                        &lt;midi_bank&gt; is an integer value between 0..16383
7460                        reflecting the MIDI bank value, &lt;midi_bank&gt;
7461                        and &lt;midi_prog&gt; an integer value between
7462                        0..127 reflecting the MIDI program value of the map's entrie's key
7463                        index triple.
7464                        
7465    </p>
7466    <p>Possible Answers:
7467    </p>
7468    <p>
7469                            </p>
7470    <blockquote class="text">
7471    <p>LinuxSampler will answer by sending a &lt;CRLF&gt;
7472                                separated list. Each answer line begins with the
7473                                information category name followed by a colon and then
7474                                a space character &lt;SP&gt; and finally the info
7475                                character string to that info category. At the moment
7476                                the following categories are defined:
7477    </p>
7478    <p>"NAME" -
7479                                    </p>
7480    <blockquote class="text">
7481    <p>Name for this MIDI instrument map entry (if defined).
7482                                        This name shall be used by frontends for displaying a
7483                                        name for this mapped instrument. It can be set and
7484                                        changed with the
7485                                        <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
7486                                        command and does not have to be unique.
7487                                        (note that this character string may contain
7488                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7489    </p>
7490    </blockquote>
7491                                
7492    
7493    <p>"ENGINE_NAME" -
7494                                    </p>
7495    <blockquote class="text">
7496    <p>Name of the engine to be deployed for this
7497                                        instrument.
7498    </p>
7499    </blockquote>
7500                                
7501    
7502    <p>"INSTRUMENT_FILE" -
7503                                    </p>
7504    <blockquote class="text">
7505    <p>File name of the instrument
7506                                        (note that this path may contain
7507                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7508    </p>
7509    </blockquote>
7510                                
7511    
7512    <p>"INSTRUMENT_NR" -
7513                                    </p>
7514    <blockquote class="text">
7515    <p>Index of the instrument within the file.
7516    </p>
7517    </blockquote>
7518                                
7519    
7520    <p>"INSTRUMENT_NAME" -
7521                                    </p>
7522    <blockquote class="text">
7523    <p>Name of the loaded instrument as reflected by its file.
7524                                        In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
7525                                        cannot be changed (note that this character string may contain
7526                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
7527    </p>
7528    </blockquote>
7529                                
7530    
7531    <p>"LOAD_MODE" -
7532                                    </p>
7533    <blockquote class="text">
7534    <p>Life time of instrument
7535                                        (see <a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a> for details about this setting).
7536    </p>
7537    </blockquote>
7538                                
7539    
7540    <p>"VOLUME" -
7541                                    </p>
7542    <blockquote class="text">
7543    <p>master volume of the instrument as optionally
7544                                        dotted number (where a value &lt; 1.0 means attenuation
7545                                        and a value > 1.0 means amplification)
7546    </p>
7547  </blockquote>  </blockquote>
7548                                
7549    
7550    <p>The mentioned fields above don't have to be in particular order.
7551    </p>
7552    </blockquote><p>
7553                        
7554    </p>
7555    <p>Example:
7556    </p>
7557    <p>
7558                            </p>
7559    <blockquote class="text">
7560    <p>C: "GET MIDI_INSTRUMENT INFO 1 45 120"
7561    </p>
7562    <p>S: "NAME: Drums for Foo Song"
7563    </p>
7564    <p>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"
7565    </p>
7566    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
7567    </p>
7568    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
7569    </p>
7570    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Joe's Drumkit"
7571    </p>
7572    <p>&nbsp;&nbsp;&nbsp;"LOAD_MODE: PERSISTENT"
7573    </p>
7574    <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
7575    </p>
7576    <p>&nbsp;&nbsp;&nbsp;"."
7577    </p>
7578    </blockquote><p>
7579                        
7580    </p>
7581    <a name="CLEAR MIDI_INSTRUMENTS"></a><br /><hr />
7582    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7583    <a name="rfc.section.6.7.12"></a><h3>6.7.12.&nbsp;
7584    Clear MIDI instrument map</h3>
7585    
7586    <p>The front-end can clear a whole MIDI instrument map, that
7587                        is delete all its entries by sending the following command:
7588    </p>
7589    <p>
7590                            </p>
7591    <blockquote class="text">
7592    <p>CLEAR MIDI_INSTRUMENTS &lt;map&gt;
7593    </p>
7594    </blockquote><p>
7595                        
7596    </p>
7597    <p>Where &lt;map&gt; is the numeric ID of the map to clear.
7598    </p>
7599    <p>The front-end can clear all MIDI instrument maps, that
7600                        is delete all entries of all maps by sending the following
7601                        command:
7602    </p>
7603    <p>
7604                            </p>
7605    <blockquote class="text">
7606    <p>CLEAR MIDI_INSTRUMENTS ALL
7607    </p>
7608    </blockquote><p>
7609                        
7610    </p>
7611    <p>The command "CLEAR MIDI_INSTRUMENTS ALL" does not delete the
7612                        maps, only their entries, thus the map's settings like
7613                        custom name will be preservevd.
7614    </p>
7615  <p>Possible Answers:  <p>Possible Answers:
7616  </p>  </p>
7617  <p></p>  <p>
7618                            </p>
7619  <blockquote class="text">  <blockquote class="text">
7620  <p>"OK" -  <p>"OK" -
7621                                  </p>                                  </p>
# Line 4068  Intellectual Property and Copyright Stat Line 7623  Intellectual Property and Copyright Stat
7623  <p>always  <p>always
7624  </p>  </p>
7625  </blockquote>  </blockquote>
7626                                
7627    
7628    </blockquote><p>
7629                        
7630    </p>
7631    <p>Examples:
7632    </p>
7633    <p>
7634                           </p>
7635    <blockquote class="text">
7636    <p>C: "CLEAR MIDI_INSTRUMENTS 0"
7637    </p>
7638    <p>S: "OK"
7639    </p>
7640    </blockquote><p>
7641                        
7642    </p>
7643    <p>
7644                           </p>
7645    <blockquote class="text">
7646    <p>C: "CLEAR MIDI_INSTRUMENTS ALL"
7647    </p>
7648    <p>S: "OK"
7649    </p>
7650    </blockquote><p>
7651                        
7652    </p>
7653    <a name="Managing Instruments Database"></a><br /><hr />
7654    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7655    <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
7656    Managing Instruments Database</h3>
7657    
7658    <p>The following commands describe how to use and manage
7659                    the instruments database.
7660    </p>
7661    <p>Notice:
7662    </p>
7663    <p>
7664                            </p>
7665    <blockquote class="text">
7666    <p>All command arguments representing a path or
7667                                instrument/directory name support escape sequences as described in chapter
7668                                "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>".
7669                                
7670    </p>
7671    <p>All occurrences of a forward slash in instrument and directory
7672                                   names are escaped with its hex (\x2f) or octal (\057) escape sequence.
7673                                
7674    </p>
7675    </blockquote><p>
7676                        
7677    </p>
7678    <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7679    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7680    <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
7681    Creating a new instrument directory</h3>
7682    
7683    <p>The front-end can add a new instrument directory to the
7684                        instruments database by sending the following command:
7685    </p>
7686    <p>
7687                            </p>
7688    <blockquote class="text">
7689    <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
7690    </p>
7691    </blockquote><p>
7692                        
7693    </p>
7694    <p>Where &lt;dir&gt; is the absolute path name of the directory
7695                        to be created (encapsulated into apostrophes).
7696    </p>
7697    <p>Possible Answers:
7698    </p>
7699    <p>
7700                            </p>
7701    <blockquote class="text">
7702    <p>"OK" -
7703                                    </p>
7704    <blockquote class="text">
7705    <p>on success
7706    </p>
7707    </blockquote>
7708                                
7709    
7710    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7711                                    </p>
7712    <blockquote class="text">
7713    <p>when the directory could not be created, which
7714                                        can happen if the directory already exists or the
7715                                        name contains not allowed symbols
7716    </p>
7717    </blockquote>
7718                                
7719    
7720    </blockquote><p>
7721                        
7722    </p>
7723    <p>Examples:
7724    </p>
7725    <p>
7726                            </p>
7727    <blockquote class="text">
7728    <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
7729    </p>
7730    <p>S: "OK"
7731    </p>
7732    </blockquote><p>
7733                        
7734    </p>
7735    <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
7736    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7737    <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
7738    Deleting an instrument directory</h3>
7739    
7740    <p>The front-end can delete a particular instrument directory
7741                        from the instruments database by sending the following command:
7742    </p>
7743    <p>
7744                            </p>
7745    <blockquote class="text">
7746    <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
7747    </p>
7748    </blockquote><p>
7749                        
7750    </p>
7751    <p>Where &lt;dir&gt; is the absolute path name of the directory
7752                        to delete. The optional FORCE argument can be used to
7753                        force the deletion of a non-empty directory and all its content.
7754    </p>
7755    <p>Possible Answers:
7756    </p>
7757    <p>
7758                            </p>
7759    <blockquote class="text">
7760    <p>"OK" -
7761                                    </p>
7762    <blockquote class="text">
7763    <p>if the directory is deleted successfully
7764    </p>
7765    </blockquote>
7766                                
7767    
7768    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7769                                    </p>
7770    <blockquote class="text">
7771    <p>if the given directory does not exist, or
7772                                        if trying to delete a non-empty directory,
7773                                        without using the FORCE argument.
7774    </p>
7775    </blockquote>
7776                                
7777    
7778    </blockquote><p>
7779                        
7780    </p>
7781    <p>Examples:
7782    </p>
7783    <p>
7784                            </p>
7785    <blockquote class="text">
7786    <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
7787    </p>
7788    <p>S: "OK"
7789    </p>
7790    </blockquote><p>
7791                        
7792    </p>
7793    <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7794    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7795    <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
7796    Getting amount of instrument directories</h3>
7797    
7798    <p>The front-end can retrieve the current amount of
7799                        directories in a specific directory by sending the following command:
7800    </p>
7801    <p>
7802                            </p>
7803    <blockquote class="text">
7804    <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7805    </p>
7806    </blockquote><p>
7807                        
7808    </p>
7809    <p>Where &lt;dir&gt; should be replaced by the absolute path
7810                        name of the directory. If RECURSIVE is specified, the number of
7811                        all directories, including those located in subdirectories of the
7812                        specified directory, will be returned.
7813    </p>
7814    <p>Possible Answers:
7815    </p>
7816    <p>
7817                            </p>
7818    <blockquote class="text">
7819    <p>The current number of instrument directories
7820                                in the specified directory.
7821    </p>
7822    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7823                                    </p>
7824    <blockquote class="text">
7825    <p>if the given directory does not exist.
7826    </p>
7827    </blockquote>
7828                                
7829    
7830    </blockquote><p>
7831                        
7832    </p>
7833    <p>Example:
7834    </p>
7835    <p>
7836                            </p>
7837    <blockquote class="text">
7838    <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
7839    </p>
7840    <p>S: "2"
7841    </p>
7842    </blockquote><p>
7843                        
7844    </p>
7845    <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
7846    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7847    <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
7848    Listing all directories in specific directory</h3>
7849    
7850    <p>The front-end can retrieve the current list of directories
7851                        in specific directory by sending the following command:
7852    </p>
7853    <p>
7854                            </p>
7855    <blockquote class="text">
7856    <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
7857    </p>
7858    </blockquote><p>
7859                        
7860    </p>
7861    <p>Where &lt;dir&gt; should be replaced by the absolute path
7862                        name of the directory. If RECURSIVE is specified, the absolute path names
7863                        of all directories, including those located in subdirectories of the
7864                        specified directory, will be returned.
7865    </p>
7866    <p>Possible Answers:
7867    </p>
7868    <p>
7869                            </p>
7870    <blockquote class="text">
7871    <p>A comma separated list of all instrument directories
7872                                (encapsulated into apostrophes) in the specified directory.
7873    </p>
7874    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7875                                    </p>
7876    <blockquote class="text">
7877    <p>if the given directory does not exist.
7878    </p>
7879    </blockquote>
7880                                
7881    
7882    </blockquote><p>
7883                        
7884    </p>
7885    <p>Example:
7886    </p>
7887    <p>
7888                            </p>
7889    <blockquote class="text">
7890    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
7891    </p>
7892    <p>S: "'Piano Collection','Percussion Collection'"
7893    </p>
7894    </blockquote><p>
7895                        
7896    </p>
7897    <p>
7898                            </p>
7899    <blockquote class="text">
7900    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
7901    </p>
7902    <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
7903    </p>
7904    </blockquote><p>
7905                        
7906    </p>
7907    <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
7908    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7909    <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
7910    Getting instrument directory information</h3>
7911    
7912    <p>The front-end can ask for the current settings of an
7913                        instrument directory by sending the following command:
7914    </p>
7915    <p>
7916                            </p>
7917    <blockquote class="text">
7918    <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
7919    </p>
7920    </blockquote><p>
7921                        
7922    </p>
7923    <p>Where &lt;dir&gt; should be replaced by the absolute path
7924                        name of the directory the front-end is interested in.
7925    </p>
7926    <p>Possible Answers:
7927    </p>
7928    <p>
7929                            </p>
7930    <blockquote class="text">
7931    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7932                                Each answer line begins with the settings category name
7933                                followed by a colon and then a space character &lt;SP&gt; and finally
7934                                the info character string to that setting category. At the
7935                                moment the following categories are defined:
7936    </p>
7937    <p>
7938                                    </p>
7939    <blockquote class="text">
7940    <p>DESCRIPTION -
7941                                            </p>
7942    <blockquote class="text">
7943    <p>A brief description of the directory content.
7944                                                Note that the character string may contain
7945                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
7946    </p>
7947    </blockquote>
7948                                        
7949    
7950    <p>CREATED -
7951                                            </p>
7952    <blockquote class="text">
7953    <p>The creation date and time of the directory,
7954                                                represented in "YYYY-MM-DD HH:MM:SS" format
7955    </p>
7956    </blockquote>
7957                                        
7958    
7959    <p>MODIFIED -
7960                                            </p>
7961    <blockquote class="text">
7962    <p>The date and time of the last modification of the
7963                                                directory, represented in "YYYY-MM-DD HH:MM:SS" format
7964    </p>
7965    </blockquote>
7966                                        
7967    
7968    </blockquote>
7969                                
7970    
7971    </blockquote><p>
7972                        
7973    </p>
7974    <p>The mentioned fields above don't have to be in particular order.
7975    </p>
7976    <p>Example:
7977    </p>
7978    <p>
7979                            </p>
7980    <blockquote class="text">
7981    <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
7982    </p>
7983    <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
7984    </p>
7985    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
7986    </p>
7987    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
7988    </p>
7989    <p>&nbsp;&nbsp;&nbsp;"."
7990    </p>
7991    </blockquote><p>
7992                        
7993    </p>
7994    <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
7995    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
7996    <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
7997    Renaming an instrument directory</h3>
7998    
7999    <p>The front-end can alter the name of a specific
8000                        instrument directory by sending the following command:
8001    </p>
8002    <p>
8003                            </p>
8004    <blockquote class="text">
8005    <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
8006    </p>
8007    </blockquote><p>
8008                        
8009    </p>
8010    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8011                        &lt;name&gt; is the new name for that directory.
8012    </p>
8013    <p>Possible Answers:
8014    </p>
8015    <p>
8016                            </p>
8017    <blockquote class="text">
8018    <p>"OK" -
8019                                    </p>
8020    <blockquote class="text">
8021    <p>on success
8022    </p>
8023    </blockquote>
8024                                
8025    
8026    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8027                                    </p>
8028    <blockquote class="text">
8029    <p>in case the given directory does not exists,
8030                                        or if a directory with name equal to the new
8031                                        name already exists.
8032    </p>
8033    </blockquote>
8034                                
8035    
8036    </blockquote><p>
8037                        
8038    </p>
8039    <p>Example:
8040    </p>
8041    <p>
8042                            </p>
8043    <blockquote class="text">
8044    <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
8045    </p>
8046    <p>S: "OK"
8047    </p>
8048    </blockquote><p>
8049                        
8050    </p>
8051    <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8052    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8053    <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
8054    Moving an instrument directory</h3>
8055    
8056    <p>The front-end can move a specific
8057                        instrument directory by sending the following command:
8058    </p>
8059    <p>
8060                            </p>
8061    <blockquote class="text">
8062    <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8063    </p>
8064    </blockquote><p>
8065                        
8066    </p>
8067    <p>Where &lt;dir&gt; is the absolute path name of the directory
8068                        to move and &lt;dst&gt; is the location where the directory will
8069                        be moved to.
8070    </p>
8071    <p>Possible Answers:
8072    </p>
8073    <p>
8074                            </p>
8075    <blockquote class="text">
8076    <p>"OK" -
8077                                    </p>
8078    <blockquote class="text">
8079    <p>on success
8080    </p>
8081    </blockquote>
8082                                
8083    
8084    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8085                                    </p>
8086    <blockquote class="text">
8087    <p>in case a given directory does not exists,
8088                                        or if a directory with name equal to the name
8089                                        of the specified directory already exists in
8090                                        the destination directory. Error is also thrown
8091                                        when trying to move a directory to a subdirectory
8092                                        of itself.
8093    </p>
8094    </blockquote>
8095                                
8096    
8097    </blockquote><p>
8098                        
8099    </p>
8100    <p>Example:
8101    </p>
8102    <p>
8103                            </p>
8104    <blockquote class="text">
8105    <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
8106    </p>
8107    <p>S: "OK"
8108    </p>
8109    </blockquote><p>
8110                        
8111    </p>
8112    <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8113    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8114    <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
8115    Copying instrument directories</h3>
8116    
8117    <p>The front-end can copy a specific
8118                        instrument directory by sending the following command:
8119    </p>
8120    <p>
8121                            </p>
8122    <blockquote class="text">
8123    <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8124    </p>
8125    </blockquote><p>
8126                        
8127    </p>
8128    <p>Where &lt;dir&gt; is the absolute path name of the directory
8129                        to copy and &lt;dst&gt; is the location where the directory will
8130                        be copied to.
8131    </p>
8132    <p>Possible Answers:
8133    </p>
8134    <p>
8135                            </p>
8136    <blockquote class="text">
8137    <p>"OK" -
8138                                    </p>
8139    <blockquote class="text">
8140    <p>on success
8141    </p>
8142    </blockquote>
8143                                
8144    
8145    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8146                                    </p>
8147    <blockquote class="text">
8148    <p>in case a given directory does not exists,
8149                                        or if a directory with name equal to the name
8150                                        of the specified directory already exists in
8151                                        the destination directory. Error is also thrown
8152                                        when trying to copy a directory to a subdirectory
8153                                        of itself.
8154    </p>
8155    </blockquote>
8156                                
8157    
8158    </blockquote><p>
8159                        
8160    </p>
8161    <p>Example:
8162    </p>
8163    <p>
8164                            </p>
8165    <blockquote class="text">
8166    <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
8167    </p>
8168    <p>S: "OK"
8169    </p>
8170    </blockquote><p>
8171                        
8172    </p>
8173    <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
8174    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8175    <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
8176    Changing the description of directory</h3>
8177    
8178    <p>The front-end can alter the description of a specific
8179                        instrument directory by sending the following command:
8180    </p>
8181    <p>
8182                            </p>
8183    <blockquote class="text">
8184    <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
8185    </p>
8186    </blockquote><p>
8187                        
8188    </p>
8189    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8190                        &lt;desc&gt; is the new description for the directory
8191                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
8192                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8193    </p>
8194    <p>Possible Answers:
8195    </p>
8196    <p>
8197                            </p>
8198    <blockquote class="text">
8199    <p>"OK" -
8200                                    </p>
8201    <blockquote class="text">
8202    <p>on success
8203    </p>
8204    </blockquote>
8205                                
8206    
8207    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8208                                    </p>
8209    <blockquote class="text">
8210    <p>in case the given directory does not exists.
8211    </p>
8212  </blockquote>  </blockquote>
8213                                
8214    
8215    </blockquote><p>
8216                        
8217    </p>
8218    <p>Example:
8219    </p>
8220    <p>
8221                            </p>
8222    <blockquote class="text">
8223    <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
8224    </p>
8225    <p>S: "OK"
8226    </p>
8227    </blockquote><p>
8228                        
8229    </p>
8230    <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8231    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8232    <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
8233    Finding directories</h3>
8234    
8235    <p>The front-end can search for directories
8236                        in specific directory by sending the following command:
8237    </p>
8238    <p>
8239                            </p>
8240    <blockquote class="text">
8241    <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8242    </p>
8243    </blockquote><p>
8244                        
8245    </p>
8246    <p>Where &lt;dir&gt; should be replaced by the absolute path
8247                        name of the directory to search in. If NON_RECURSIVE is specified, the
8248                        directories located in subdirectories of the specified directory will not
8249                        be searched. &lt;criteria-list&gt; is a list of search criterias
8250                        in form of "key1=val1 key2=val2 ...". The following criterias are
8251                        allowed:
8252    </p>
8253    <p>
8254                          
8255    <p>NAME='&lt;search-string&gt;'
8256                              </p>
8257    <blockquote class="text">
8258    <p>Restricts the search to directories, which names
8259                                  satisfy the supplied search string (encapsulated into apostrophes,
8260                                  supporting escape sequences as described in chapter
8261                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8262    </p>
8263    </blockquote><p>
8264                          
8265    </p>
8266    
8267                          
8268    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8269                              </p>
8270    <blockquote class="text">
8271    <p>Restricts the search to directories, which creation
8272                                  date satisfies the specified period, where &lt;date-after&gt;
8273                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8274                                  If &lt;date-after&gt; is omitted the search is restricted to
8275                                  directories created before &lt;date-before&gt;. If
8276                                  &lt;date-before&gt; is omitted, the search is restricted
8277                                  to directories created after &lt;date-after&gt;.
8278    </p>
8279    </blockquote><p>
8280                          
8281    </p>
8282    
8283                          
8284    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8285                              </p>
8286    <blockquote class="text">
8287    <p>Restricts the search to directories, which
8288                                  date of last modification satisfies the specified period, where
8289                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8290                                  format. If &lt;date-after&gt; is omitted the search is restricted to
8291                                  directories, which are last modified before &lt;date-before&gt;. If
8292                                  &lt;date-before&gt; is omitted, the search is restricted to directories,
8293                                  which are last modified after &lt;date-after&gt;.
8294    </p>
8295    </blockquote><p>
8296                          
8297    </p>
8298    
8299                          
8300    <p>DESCRIPTION='&lt;search-string&gt;'
8301                              </p>
8302    <blockquote class="text">
8303    <p>Restricts the search to directories with description
8304                                  that satisfies the supplied search string
8305                                  (encapsulated into apostrophes, supporting escape
8306                                  sequences as described in chapter
8307                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
8308    </p>
8309    </blockquote><p>
8310                          
8311    </p>
8312                        
8313    
8314    <p>Where &lt;search-string&gt; is either a regular expression, or a
8315                        word list separated with spaces for OR search and with '+' for AND search.
8316    </p>
8317    <p>Possible Answers:
8318    </p>
8319    <p>
8320                            </p>
8321    <blockquote class="text">
8322    <p>A comma separated list with the absolute path names (encapsulated into
8323                                apostrophes) of all directories in the specified directory that satisfy
8324                                the supplied search criterias.
8325    </p>
8326    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8327                                    </p>
8328    <blockquote class="text">
8329    <p>if the given directory does not exist.
8330    </p>
8331    </blockquote>
8332                                
8333    
8334    </blockquote><p>
8335                        
8336    </p>
8337    <p>Example:
8338    </p>
8339    <p>
8340                            </p>
8341    <blockquote class="text">
8342    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8343    </p>
8344    <p>S: "'/Piano Collection'"
8345    </p>
8346    </blockquote><p>
8347                        
8348    </p>
8349    <p>
8350                            </p>
8351    <blockquote class="text">
8352    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8353    </p>
8354    <p>S: "'/Piano Collection','/Percussions'"
8355    </p>
8356    </blockquote><p>
8357                        
8358    </p>
8359    <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8360    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8361    <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8362    Adding instruments to the instruments database</h3>
8363    
8364    <p>The front-end can add one or more instruments
8365                        to the instruments database by sending the following command:
8366    </p>
8367    <p>
8368                            </p>
8369    <blockquote class="text">
8370    <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8371    </p>
8372    </blockquote><p>
8373                        
8374    </p>
8375    <p>Where &lt;db_dir&gt; is the absolute path name of a directory
8376                        (encapsulated into apostrophes) in the instruments database in which
8377                        only the new instruments (that are not already in the database) will
8378                        be added, &lt;file_path&gt; is the absolute path name of a file or
8379                        directory in the file system (encapsulated into apostrophes). In case
8380                        an instrument file is supplied, only the instruments in the specified
8381                        file will be added to the instruments database. If the optional
8382                        &lt;instr_index&gt; (the index of the instrument within the given file)
8383                        is supplied too, then only the specified instrument will be added.
8384                        In case a directory is supplied, the instruments in that directory
8385                        will be added. The OPTIONAL &lt;mode&gt; argument is only applied
8386                        when a directory is provided as &lt;file_path&gt; and specifies how the
8387                        scanning will be done and has exactly the following possibilities:
8388    </p>
8389    <p>
8390                            </p>
8391    <blockquote class="text">
8392    <p>"RECURSIVE" -
8393                                    </p>
8394    <blockquote class="text">
8395    <p>All instruments will be processed, including those
8396                                        in the subdirectories, and the respective subdirectory
8397                                        tree structure will be recreated in the instruments
8398                                        database
8399    </p>
8400    </blockquote>
8401                                
8402    
8403    <p>"NON_RECURSIVE" -
8404                                    </p>
8405    <blockquote class="text">
8406    <p>Only the instruments in the specified directory
8407                                        will be added, the instruments in the subdirectories
8408                                        will not be processed.
8409    </p>
8410    </blockquote>
8411                                
8412    
8413    <p>"FLAT" -
8414                                    </p>
8415    <blockquote class="text">
8416    <p>All instruments will be processed, including those
8417                                        in the subdirectories, but the respective subdirectory
8418                                        structure will not be recreated in the instruments
8419                                        database. All instruments will be added directly in
8420                                        the specified database directory.
8421    </p>
8422    </blockquote>
8423                                
8424    
8425    </blockquote><p>
8426                        
8427    </p>
8428    <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
8429                     file will be added to a separate directory in the instruments database, which
8430                     name will be the name of the instrument file with the file extension stripped off.
8431                    
8432    </p>
8433    <p>The difference between regular and NON_MODAL versions of the command
8434                        is that the regular command returns when the scanning is finished
8435                        while NON_MODAL version returns immediately and a background process is launched.
8436                        The <a class='info' href='#GET DB_INSTRUMENTS_JOB INFO'>GET DB_INSTRUMENTS_JOB INFO<span> (</span><span class='info'>Getting job status information</span><span>)</span></a>
8437                        command can be used to monitor the scanning progress.
8438    </p>
8439    <p>Possible Answers:
8440    </p>
8441    <p>
8442                            </p>
8443    <blockquote class="text">
8444    <p>"OK" -
8445                                    </p>
8446    <blockquote class="text">
8447    <p>on success when NON_MODAL is not supplied
8448    </p>
8449    </blockquote>
8450                                
8451    
8452    <p>"OK[&lt;job-id&gt;]" -
8453                                    </p>
8454    <blockquote class="text">
8455    <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
8456                                        is a numerical ID used to obtain status information about the job progress.
8457                                        See <a class='info' href='#GET DB_INSTRUMENTS_JOB INFO'>GET DB_INSTRUMENTS_JOB INFO<span> (</span><span class='info'>Getting job status information</span><span>)</span></a>
8458                                        
8459    </p>
8460    </blockquote>
8461                                
8462    
8463    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8464                                    </p>
8465    <blockquote class="text">
8466    <p>if an invalid path is specified.
8467    </p>
8468    </blockquote>
8469                                
8470    
8471    </blockquote><p>
8472                        
8473    </p>
8474  <p>Examples:  <p>Examples:
8475  </p>  </p>
8476  <p></p>  <p>
8477                            </p>
8478    <blockquote class="text">
8479    <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
8480    </p>
8481    <p>S: "OK"
8482    </p>
8483    </blockquote><p>
8484                        
8485    </p>
8486    <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
8487    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8488    <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
8489    Removing an instrument</h3>
8490    
8491    <p>The front-end can remove a particular instrument
8492                        from the instruments database by sending the following command:
8493    </p>
8494    <p>
8495                            </p>
8496  <blockquote class="text">  <blockquote class="text">
8497    <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
8498    </p>
8499    </blockquote><p>
8500                        
8501    </p>
8502    <p>Where &lt;instr_path&gt; is the absolute path name
8503                        (in the instruments database) of the instrument to remove.
8504    </p>
8505    <p>Possible Answers:
8506    </p>
8507  <p>  <p>
8508                            </p>
8509    <blockquote class="text">
8510    <p>"OK" -
8511                                    </p>
8512    <blockquote class="text">
8513    <p>if the instrument is removed successfully
8514  </p>  </p>
8515  </blockquote>  </blockquote>
8516                                
8517    
8518    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8519                                    </p>
8520    <blockquote class="text">
8521    <p>if the given path does not exist or
8522                                        is a directory.
8523    </p>
8524    </blockquote>
8525                                
8526    
8527    </blockquote><p>
8528                        
8529    </p>
8530    <p>Examples:
8531    </p>
8532    <p>
8533                            </p>
8534    <blockquote class="text">
8535    <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
8536    </p>
8537    <p>S: "OK"
8538    </p>
8539    </blockquote><p>
8540                        
8541    </p>
8542    <a name="GET DB_INSTRUMENTS"></a><br /><hr />
8543    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8544    <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
8545    Getting amount of instruments</h3>
8546    
8547    <p>The front-end can retrieve the current amount of
8548                        instruments in a specific directory by sending the following command:
8549    </p>
8550    <p>
8551                            </p>
8552    <blockquote class="text">
8553    <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8554    </p>
8555    </blockquote><p>
8556                        
8557    </p>
8558    <p>Where &lt;dir&gt; should be replaced by the absolute path name
8559                        of the directory. If RECURSIVE is specified, the number of all
8560                        instruments, including those located in subdirectories of the
8561                        specified directory, will be returned.
8562    </p>
8563    <p>Possible Answers:
8564    </p>
8565    <p>
8566                            </p>
8567    <blockquote class="text">
8568    <p>The current number of instruments
8569                                in the specified directory.
8570    </p>
8571    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8572                                    </p>
8573    <blockquote class="text">
8574    <p>if the given directory does not exist.
8575    </p>
8576    </blockquote>
8577                                
8578    
8579    </blockquote><p>
8580                        
8581    </p>
8582    <p>Example:
8583    </p>
8584    <p>
8585                            </p>
8586    <blockquote class="text">
8587    <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
8588    </p>
8589    <p>S: "2"
8590    </p>
8591    </blockquote><p>
8592                        
8593    </p>
8594    <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
8595    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8596    <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
8597    Listing all instruments in specific directory</h3>
8598    
8599    <p>The front-end can retrieve the current list of instruments
8600                        in specific directory by sending the following command:
8601    </p>
8602    <p>
8603                            </p>
8604    <blockquote class="text">
8605    <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
8606    </p>
8607    </blockquote><p>
8608                        
8609    </p>
8610    <p>Where &lt;dir&gt; should be replaced by the absolute path
8611                        name of the directory. If RECURSIVE is specified, the absolute path
8612                        names of all instruments, including those located in subdirectories
8613                        of the specified directory, will be returned.
8614    </p>
8615    <p>Possible Answers:
8616    </p>
8617    <p>
8618                            </p>
8619    <blockquote class="text">
8620    <p>A comma separated list of all instruments
8621                                (encapsulated into apostrophes) in the specified directory.
8622    </p>
8623    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8624                                    </p>
8625    <blockquote class="text">
8626    <p>if the given directory does not exist.
8627    </p>
8628    </blockquote>
8629                                
8630    
8631    </blockquote><p>
8632                        
8633    </p>
8634    <p>Example:
8635    </p>
8636    <p>
8637                            </p>
8638    <blockquote class="text">
8639    <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
8640    </p>
8641    <p>S: "'Bosendorfer 290','Steinway D'"
8642    </p>
8643    </blockquote><p>
8644                        
8645    </p>
8646    <p>
8647                            </p>
8648    <blockquote class="text">
8649    <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
8650    </p>
8651    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
8652    </p>
8653    </blockquote><p>
8654                        
8655    </p>
8656    <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
8657    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8658    <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
8659    Getting instrument information</h3>
8660    
8661    <p>The front-end can ask for the current settings of an
8662                        instrument by sending the following command:
8663    </p>
8664    <p>
8665                            </p>
8666    <blockquote class="text">
8667    <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
8668    </p>
8669    </blockquote><p>
8670                        
8671    </p>
8672    <p>Where &lt;instr_path&gt; should be replaced by the absolute path
8673                        name of the instrument the front-end is interested in.
8674    </p>
8675    <p>Possible Answers:
8676    </p>
8677    <p>
8678                            </p>
8679    <blockquote class="text">
8680    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8681                                Each answer line begins with the settings category name
8682                                followed by a colon and then a space character &lt;SP&gt; and finally
8683                                the info character string to that setting category. At the
8684                                moment the following categories are defined:
8685    </p>
8686    <p>
8687                                    </p>
8688    <blockquote class="text">
8689    <p>INSTRUMENT_FILE -
8690                                            </p>
8691    <blockquote class="text">
8692    <p>File name of the instrument.
8693                                                Note that the character string may contain
8694                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8695    </p>
8696    </blockquote>
8697                                        
8698    
8699    <p>INSTRUMENT_NR -
8700                                            </p>
8701    <blockquote class="text">
8702    <p>Index of the instrument within the file.
8703    </p>
8704    </blockquote>
8705                                        
8706    
8707    <p>FORMAT_FAMILY -
8708                                            </p>
8709    <blockquote class="text">
8710    <p>The format family of the instrument.
8711    </p>
8712    </blockquote>
8713                                        
8714    
8715    <p>FORMAT_VERSION -
8716                                            </p>
8717    <blockquote class="text">
8718    <p>The format version of the instrument.
8719    </p>
8720    </blockquote>
8721                                        
8722    
8723    <p>SIZE -
8724                                            </p>
8725    <blockquote class="text">
8726    <p>The size of the instrument in bytes.
8727    </p>
8728    </blockquote>
8729                                        
8730    
8731    <p>CREATED -
8732                                            </p>
8733    <blockquote class="text">
8734    <p>The date and time when the instrument is added
8735                                                in the instruments database, represented in
8736                                               "YYYY-MM-DD HH:MM:SS" format
8737    </p>
8738    </blockquote>
8739                                        
8740    
8741    <p>MODIFIED -
8742                                            </p>
8743    <blockquote class="text">
8744    <p>The date and time of the last modification of the
8745                                                instrument's database settings, represented in
8746                                                "YYYY-MM-DD HH:MM:SS" format
8747    </p>
8748    </blockquote>
8749                                        
8750    
8751    <p>DESCRIPTION -
8752                                            </p>
8753    <blockquote class="text">
8754    <p>A brief description of the instrument.
8755                                                Note that the character string may contain
8756                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8757    </p>
8758    </blockquote>
8759                                        
8760    
8761    <p>IS_DRUM -
8762                                            </p>
8763    <blockquote class="text">
8764    <p>either true or false, determines whether the
8765                                                instrument is a drumkit or a chromatic instrument
8766    </p>
8767    </blockquote>
8768                                        
8769    
8770    <p>PRODUCT -
8771                                            </p>
8772    <blockquote class="text">
8773    <p>The product title of the instrument.
8774                                                Note that the character string may contain
8775                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8776    </p>
8777    </blockquote>
8778                                        
8779    
8780    <p>ARTISTS -
8781                                            </p>
8782    <blockquote class="text">
8783    <p>Lists the artist names.
8784                                                Note that the character string may contain
8785                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8786    </p>
8787    </blockquote>
8788                                        
8789    
8790    <p>KEYWORDS -
8791                                            </p>
8792    <blockquote class="text">
8793    <p>Provides a list of keywords that refer to the instrument.
8794                                                Keywords are separated with semicolon and blank.
8795                                                Note that the character string may contain
8796                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8797    </p>
8798    </blockquote>
8799                                        
8800    
8801    </blockquote>
8802                                
8803    
8804    </blockquote><p>
8805                        
8806    </p>
8807    <p>The mentioned fields above don't have to be in particular order.
8808    </p>
8809    <p>Example:
8810    </p>
8811    <p>
8812                            </p>
8813    <blockquote class="text">
8814    <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
8815    </p>
8816    <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
8817    </p>
8818    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8819    </p>
8820    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
8821    </p>
8822    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
8823    </p>
8824    <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
8825    </p>
8826    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8827    </p>
8828    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8829    </p>
8830    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
8831    </p>
8832    <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
8833    </p>
8834    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
8835    </p>
8836    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
8837    </p>
8838    <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
8839    </p>
8840    <p>&nbsp;&nbsp;&nbsp;"."
8841    </p>
8842    </blockquote><p>
8843                        
8844    </p>
8845    <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
8846    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8847    <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
8848    Renaming an instrument</h3>
8849    
8850    <p>The front-end can alter the name of a specific
8851                        instrument by sending the following command:
8852    </p>
8853    <p>
8854                            </p>
8855    <blockquote class="text">
8856    <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
8857    </p>
8858    </blockquote><p>
8859                        
8860    </p>
8861    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
8862                        &lt;name&gt; is the new name for that instrument.
8863    </p>
8864    <p>Possible Answers:
8865    </p>
8866    <p>
8867                            </p>
8868    <blockquote class="text">
8869    <p>"OK" -
8870                                    </p>
8871    <blockquote class="text">
8872    <p>on success
8873    </p>
8874    </blockquote>
8875                                
8876    
8877    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8878                                    </p>
8879    <blockquote class="text">
8880    <p>in case the given instrument does not exists,
8881                                        or if an instrument with name equal to the new
8882                                        name already exists.
8883    </p>
8884    </blockquote>
8885                                
8886    
8887    </blockquote><p>
8888                        
8889    </p>
8890    <p>Example:
8891    </p>
8892    <p>
8893                            </p>
8894    <blockquote class="text">
8895    <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
8896    </p>
8897    <p>S: "OK"
8898    </p>
8899    </blockquote><p>
8900                        
8901    </p>
8902    <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
8903    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8904    <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
8905    Moving an instrument</h3>
8906    
8907    <p>The front-end can move a specific instrument to another directory by
8908                        sending the following command:
8909    </p>
8910    <p>
8911                            </p>
8912    <blockquote class="text">
8913    <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8914    </p>
8915    </blockquote><p>
8916                        
8917    </p>
8918    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8919                        to move and &lt;dst&gt; is the directory where the instrument will
8920                        be moved to.
8921    </p>
8922    <p>Possible Answers:
8923    </p>
8924    <p>
8925                            </p>
8926    <blockquote class="text">
8927    <p>"OK" -
8928                                    </p>
8929    <blockquote class="text">
8930    <p>on success
8931    </p>
8932    </blockquote>
8933                                
8934    
8935    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8936                                    </p>
8937    <blockquote class="text">
8938    <p>in case the given instrument does not exists,
8939                                        or if an instrument with name equal to the name of the
8940                                        specified instrument already exists in the destination
8941                                        directory.
8942    </p>
8943    </blockquote>
8944                                
8945    
8946    </blockquote><p>
8947                        
8948    </p>
8949    <p>Example:
8950    </p>
8951    <p>
8952                            </p>
8953    <blockquote class="text">
8954    <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
8955    </p>
8956    <p>S: "OK"
8957    </p>
8958    </blockquote><p>
8959                        
8960    </p>
8961    <a name="COPY DB_INSTRUMENT"></a><br /><hr />
8962    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
8963    <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
8964    Copying instruments</h3>
8965    
8966    <p>The front-end can copy a specific instrument to another directory by
8967                        sending the following command:
8968    </p>
8969    <p>
8970                            </p>
8971    <blockquote class="text">
8972    <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
8973    </p>
8974    </blockquote><p>
8975                        
8976    </p>
8977    <p>Where &lt;instr&gt; is the absolute path name of the instrument
8978                        to copy and &lt;dst&gt; is the directory where the instrument will
8979                        be copied to.
8980    </p>
8981    <p>Possible Answers:
8982    </p>
8983    <p>
8984                            </p>
8985    <blockquote class="text">
8986    <p>"OK" -
8987                                    </p>
8988    <blockquote class="text">
8989    <p>on success
8990    </p>
8991    </blockquote>
8992                                
8993    
8994    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8995                                    </p>
8996    <blockquote class="text">
8997    <p>in case the given instrument does not exists,
8998                                        or if an instrument with name equal to the name of the
8999                                        specified instrument already exists in the destination
9000                                        directory.
9001    </p>
9002    </blockquote>
9003                                
9004    
9005    </blockquote><p>
9006                        
9007    </p>
9008    <p>Example:
9009    </p>
9010    <p>
9011                            </p>
9012    <blockquote class="text">
9013    <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
9014    </p>
9015    <p>S: "OK"
9016    </p>
9017    </blockquote><p>
9018                        
9019    </p>
9020    <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
9021    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9022    <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
9023    Changing the description of instrument</h3>
9024    
9025    <p>The front-end can alter the description of a specific
9026                        instrument by sending the following command:
9027    </p>
9028    <p>
9029                            </p>
9030    <blockquote class="text">
9031    <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
9032    </p>
9033    </blockquote><p>
9034                        
9035    </p>
9036    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9037                        &lt;desc&gt; is the new description for the instrument
9038                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
9039                        "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9040    </p>
9041    <p>Possible Answers:
9042    </p>
9043    <p>
9044                            </p>
9045    <blockquote class="text">
9046    <p>"OK" -
9047                                    </p>
9048    <blockquote class="text">
9049    <p>on success
9050    </p>
9051    </blockquote>
9052                                
9053    
9054    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9055                                    </p>
9056    <blockquote class="text">
9057    <p>in case the given instrument does not exists.
9058    </p>
9059    </blockquote>
9060                                
9061    
9062    </blockquote><p>
9063                        
9064    </p>
9065    <p>Example:
9066    </p>
9067    <p>
9068                            </p>
9069    <blockquote class="text">
9070    <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
9071    </p>
9072    <p>S: "OK"
9073    </p>
9074    </blockquote><p>
9075                        
9076    </p>
9077    <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
9078    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9079    <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
9080    Finding instruments</h3>
9081    
9082    <p>The front-end can search for instruments
9083                        in specific directory by sending the following command:
9084    </p>
9085    <p>
9086                            </p>
9087    <blockquote class="text">
9088    <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
9089    </p>
9090    </blockquote><p>
9091                        
9092    </p>
9093    <p>Where &lt;dir&gt; should be replaced by the absolute path
9094                        name of the directory to search in. If NON_RECURSIVE is specified, the
9095                        directories located in subdirectories of the specified directory will not
9096                        be searched. &lt;criteria-list&gt; is a list of search criterias
9097                        in form of "key1=val1 key2=val2 ...". The following criterias are
9098                        allowed:
9099    </p>
9100    <p>
9101                          
9102    <p>NAME='&lt;search-string&gt;'
9103                              </p>
9104    <blockquote class="text">
9105    <p>Restricts the search to instruments, which names
9106                                  satisfy the supplied search string (encapsulated into apostrophes,
9107                                  supporting escape sequences as described in chapter
9108                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9109    </p>
9110    </blockquote><p>
9111                          
9112    </p>
9113    
9114                          
9115    <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
9116                              </p>
9117    <blockquote class="text">
9118    <p>Restricts the search to instruments, which
9119                                  size is in the specified range. If &lt;min&gt; is omitted,
9120                                  the search results are restricted to instruments with size less then
9121                                  or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
9122                                  search is restricted to instruments with size greater then
9123                                  or equal to &lt;min&gt;.
9124    </p>
9125    </blockquote><p>
9126                          
9127    </p>
9128    
9129                          
9130    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9131                              </p>
9132    <blockquote class="text">
9133    <p>Restricts the search to instruments, which creation
9134                                  date satisfies the specified period, where &lt;date-after&gt;
9135                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
9136                                  If &lt;date-after&gt; is omitted the search is restricted to
9137                                  instruments created before &lt;date-before&gt;. If
9138                                  &lt;date-before&gt; is omitted, the search is restricted
9139                                  to instruments created after &lt;date-after&gt;.
9140    </p>
9141    </blockquote><p>
9142                          
9143    </p>
9144    
9145                          
9146    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9147                              </p>
9148    <blockquote class="text">
9149    <p>Restricts the search to instruments, which
9150                                  date of last modification satisfies the specified period, where
9151                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
9152                                  format. If &lt;date-after&gt; is omitted the search is restricted to
9153                                  instruments, which are last modified before &lt;date-before&gt;. If
9154                                  &lt;date-before&gt; is omitted, the search is restricted to instruments,
9155                                  which are last modified after &lt;date-after&gt;.
9156    </p>
9157    </blockquote><p>
9158                          
9159    </p>
9160    
9161                          
9162    <p>DESCRIPTION='&lt;search-string&gt;'
9163                              </p>
9164    <blockquote class="text">
9165    <p>Restricts the search to instruments with description
9166                                  that satisfies the supplied search string (encapsulated into apostrophes,
9167                                  supporting escape sequences as described in chapter
9168                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9169    </p>
9170    </blockquote><p>
9171                          
9172    </p>
9173    
9174                          
9175    <p>PRODUCT='&lt;search-string&gt;'
9176                              </p>
9177    <blockquote class="text">
9178    <p>Restricts the search to instruments with product info
9179                                  that satisfies the supplied search string (encapsulated into apostrophes,
9180                                  supporting escape sequences as described in chapter
9181                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9182    </p>
9183    </blockquote><p>
9184                          
9185    </p>
9186    
9187                          
9188    <p>ARTISTS='&lt;search-string&gt;'
9189                              </p>
9190    <blockquote class="text">
9191    <p>Restricts the search to instruments with artists info
9192                                  that satisfies the supplied search string (encapsulated into apostrophes,
9193                                  supporting escape sequences as described in chapter
9194                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9195    </p>
9196    </blockquote><p>
9197                          
9198    </p>
9199    
9200                          
9201    <p>KEYWORDS='&lt;search-string&gt;'
9202                              </p>
9203    <blockquote class="text">
9204    <p>Restricts the search to instruments with keyword list
9205                                  that satisfies the supplied search string (encapsulated into apostrophes,
9206                                  supporting escape sequences as described in chapter
9207                                  "<a class='info' href='#character_set'>Character Set and Escape Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9208    </p>
9209    </blockquote><p>
9210                          
9211    </p>
9212    
9213                          
9214    <p>IS_DRUM=true | false
9215                              </p>
9216    <blockquote class="text">
9217    <p>Either true or false. Restricts the search to
9218                                  drum kits or chromatic instruments.
9219    </p>
9220    </blockquote><p>
9221                          
9222    </p>
9223    
9224                          
9225    <p>FORMAT_FAMILIES='&lt;format-list&gt;'
9226                              </p>
9227    <blockquote class="text">
9228    <p>Restricts the search to instruments of the supplied format families,
9229                                  where &lt;format-list&gt; is a comma separated list of format families.
9230    </p>
9231    </blockquote><p>
9232                          
9233    </p>
9234                        
9235    
9236    <p>Where &lt;search-string&gt; is either a regular expression, or a
9237                        word list separated with spaces for OR search and with '+' for AND search.
9238    </p>
9239    <p>Possible Answers:
9240    </p>
9241    <p>
9242                            </p>
9243    <blockquote class="text">
9244    <p>A comma separated list with the absolute path names (encapsulated into
9245                                apostrophes) of all instruments in the specified directory that satisfy
9246                                the supplied search criterias.
9247    </p>
9248    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9249                                    </p>
9250    <blockquote class="text">
9251    <p>if the given directory does not exist.
9252    </p>
9253    </blockquote>
9254                                
9255    
9256    </blockquote><p>
9257                        
9258    </p>
9259    <p>Example:
9260    </p>
9261    <p>
9262                            </p>
9263    <blockquote class="text">
9264    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
9265    </p>
9266    <p>S: "'/Piano Collection/Bosendorfer 290'"
9267    </p>
9268    </blockquote><p>
9269                        
9270    </p>
9271    <p>
9272                            </p>
9273    <blockquote class="text">
9274    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
9275    </p>
9276    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
9277    </p>
9278    </blockquote><p>
9279                        
9280    </p>
9281    <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
9282    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9283    <a name="rfc.section.6.8.21"></a><h3>6.8.21.&nbsp;
9284    Getting job status information</h3>
9285    
9286    <p>The front-end can ask for the current status of a
9287                        particular database instruments job by sending the following command:
9288    </p>
9289    <p>
9290                            </p>
9291    <blockquote class="text">
9292    <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
9293    </p>
9294    </blockquote><p>
9295                        
9296    </p>
9297    <p>Where &lt;job-id&gt; should be replaced by the numerical ID
9298                        of the job the front-end is interested in.
9299    </p>
9300    <p>Possible Answers:
9301    </p>
9302    <p>
9303                            </p>
9304    <blockquote class="text">
9305    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9306                                Each answer line begins with the settings category name
9307                                followed by a colon and then a space character &lt;SP&gt; and finally
9308                                the info character string to that setting category. At the
9309                                moment the following categories are defined:
9310    </p>
9311    <p>
9312                                    </p>
9313    <blockquote class="text">
9314    <p>FILES_TOTAL -
9315                                            </p>
9316    <blockquote class="text">
9317    <p>The total number of files scheduled for scanning
9318    </p>
9319    </blockquote>
9320                                        
9321    
9322    <p>FILES_SCANNED -
9323                                            </p>
9324    <blockquote class="text">
9325    <p>The current number of scanned files
9326    </p>
9327    </blockquote>
9328                                        
9329    
9330    <p>SCANNING -
9331                                            </p>
9332    <blockquote class="text">
9333    <p>The absolute path name of the file which is currently
9334                                                being scanned
9335    </p>
9336    </blockquote>
9337                                        
9338    
9339    <p>STATUS -
9340                                            </p>
9341    <blockquote class="text">
9342    <p>An integer value between 0 and 100 indicating the
9343                                                scanning progress percentage of the file which is
9344                                                currently being scanned
9345    </p>
9346    </blockquote>
9347                                        
9348    
9349    </blockquote>
9350                                
9351    
9352    </blockquote><p>
9353                        
9354    </p>
9355    <p>The mentioned fields above don't have to be in particular order.
9356    </p>
9357    <p>Example:
9358    </p>
9359    <p>
9360                            </p>
9361    <blockquote class="text">
9362    <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9363    </p>
9364    <p>S: "FILES_TOTAL: 12"
9365    </p>
9366    <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
9367    </p>
9368    <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
9369    </p>
9370    <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
9371    </p>
9372    <p>&nbsp;&nbsp;&nbsp;"."
9373    </p>
9374    </blockquote><p>
9375                        
9376    </p>
9377    <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
9378    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9379    <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
9380    Formatting the instruments database</h3>
9381    
9382    <p>The front-end can remove all instruments and directories and re-create
9383                        the instruments database structure (e.g., in case of a database corruption)
9384                        by sending the following command:
9385    </p>
9386    <p>
9387                            </p>
9388    <blockquote class="text">
9389    <p>FORMAT INSTRUMENTS_DB
9390    </p>
9391    </blockquote><p>
9392                        
9393    </p>
9394    <p>Possible Answers:
9395    </p>
9396    <p>
9397                            </p>
9398    <blockquote class="text">
9399    <p>"OK" -
9400                                    </p>
9401    <blockquote class="text">
9402    <p>on success
9403    </p>
9404    </blockquote>
9405                                
9406    
9407    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9408                                    </p>
9409    <blockquote class="text">
9410    <p>If the formatting of the instruments database
9411                                        failed.
9412    </p>
9413    </blockquote>
9414                                
9415    
9416    </blockquote><p>
9417                        
9418    </p>
9419    <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
9420    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9421    <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
9422    Checking for lost instrument files</h3>
9423    
9424    <p>The front-end can retrieve the list of all instrument files in the instruments database
9425                        that don't exist in the filesystem by sending the following command:
9426    </p>
9427    <p>
9428                            </p>
9429    <blockquote class="text">
9430    <p>FIND LOST DB_INSTRUMENT_FILES
9431    </p>
9432    </blockquote><p>
9433                        
9434    </p>
9435    <p>Possible Answers:
9436    </p>
9437    <p>
9438                            </p>
9439    <blockquote class="text">
9440    <p>A comma separated list with the absolute path names
9441                                (encapsulated into apostrophes) of all lost instrument files.
9442    </p>
9443    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9444                                    </p>
9445    <blockquote class="text">
9446    <p>in case it failed, providing an appropriate error code and error message.
9447    </p>
9448    </blockquote>
9449                                
9450    
9451    </blockquote><p>
9452                        
9453    </p>
9454    <p>Example:
9455    </p>
9456    <p>
9457                            </p>
9458    <blockquote class="text">
9459    <p>C: "FIND LOST DB_INSTRUMENT_FILES"
9460    </p>
9461    <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
9462    </p>
9463    </blockquote><p>
9464                        
9465    </p>
9466    <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
9467    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9468    <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
9469    Replacing an instrument file</h3>
9470    
9471    <p>The front-end can substitute all occurrences of an instrument file
9472                        in the instruments database with a new one by sending the following command:
9473    </p>
9474    <p>
9475                            </p>
9476    <blockquote class="text">
9477    <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
9478    </p>
9479    </blockquote><p>
9480                        
9481    </p>
9482    <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
9483                        to substitute with &lt;new_path&gt;.
9484    </p>
9485    <p>Possible Answers:
9486    </p>
9487    <p>
9488                            </p>
9489    <blockquote class="text">
9490    <p>"OK" -
9491                                    </p>
9492    <blockquote class="text">
9493    <p>on success
9494    </p>
9495    </blockquote>
9496                                
9497    
9498    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9499                                    </p>
9500    <blockquote class="text">
9501    <p>in case it failed, providing an appropriate error code and error message.
9502    </p>
9503    </blockquote>
9504                                
9505    
9506    </blockquote><p>
9507                        
9508    </p>
9509    <p>Example:
9510    </p>
9511    <p>
9512                            </p>
9513    <blockquote class="text">
9514    <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
9515    </p>
9516    <p>S: "OK"
9517    </p>
9518    </blockquote><p>
9519                        
9520    </p>
9521    <a name="editing_instruments"></a><br /><hr />
9522    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9523    <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
9524    Editing Instruments</h3>
9525    
9526    <p>The sampler allows to edit instruments while playing with the
9527                    sampler by spawning an external (3rd party) instrument editor
9528                    application for a given instrument. The 3rd party instrument
9529                    editor applications have to place a respective plugin DLL file
9530                    into the sampler's plugins directory. The sampler will
9531                    automatically try to load all plugin DLLs in that directory on
9532                    startup and only on startup!
9533    </p>
9534    <p>At the moment there is only one command for this feature set,
9535                    but this will most probably change in future.
9536    </p>
9537    <a name="EDIT INSTRUMENT"></a><br /><hr />
9538    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9539    <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
9540    Opening an appropriate instrument editor application</h3>
9541    
9542    <p>The front-end can request to open an appropriate instrument
9543                        editor application by sending the following command:
9544    </p>
9545    <p>
9546                            </p>
9547    <blockquote class="text">
9548    <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
9549    </p>
9550    </blockquote><p>
9551                        
9552    </p>
9553    <p>Where &lt;sampler-channel&gt; should be replaced by the
9554                        number of the sampler channel as given by the
9555                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
9556                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
9557                        command.
9558    </p>
9559    <p>The sampler will try to ask all registered instrument
9560                        editors (or to be more specific: their sampler plugins)
9561                        whether they are capable to handle the instrument on the
9562                        given sampler channel. The sampler will simply use the first
9563                        instrument editor application which replied with a positive
9564                        answer and spawn that instrument editor application within
9565                        the sampler's process and provide that application access
9566                        to the instrument's data structures, so both applications
9567                        can share and access the same instruments data at the same
9568                        time, thus allowing to immediately hear changes with the
9569                        sampler made by the instrument editor.
9570    </p>
9571    <p>Note: consequently instrument editors are always spawned
9572                        locally on the same machine where the sampler is running
9573                        on!
9574    </p>
9575    <p>Possible Answers:
9576    </p>
9577    <p>
9578                            </p>
9579    <blockquote class="text">
9580    <p>"OK" -
9581                                    </p>
9582    <blockquote class="text">
9583    <p>when an appropriate instrument editor was
9584                                        launched
9585    </p>
9586    </blockquote>
9587                                
9588    
9589    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
9590                                    </p>
9591    <blockquote class="text">
9592    <p>when an appropriate instrument editor was
9593                                        launched, but there are noteworthy issues
9594    </p>
9595    </blockquote>
9596                                
9597    
9598    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9599                                    </p>
9600    <blockquote class="text">
9601    <p>when an appropriate instrument editor
9602                                        could not be launched
9603    </p>
9604    </blockquote>
9605                                
9606    
9607    </blockquote><p>
9608                        
9609    </p>
9610    <p>Examples:
9611    </p>
9612    <p>
9613                            </p>
9614    <blockquote class="text">
9615    <p>C: "EDIT CHANNEL INSTRUMENT 0"
9616    </p>
9617    <p>S: "OK"
9618    </p>
9619    </blockquote><p>
9620                        
9621    </p>
9622    <a name="file_management"></a><br /><hr />
9623    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9624    <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
9625    Managing Files</h3>
9626    
9627    <p>You can query detailed informations about files located
9628                    at the same system where the sampler instance is running on.
9629                    Using this command set allows to retrieve file informations
9630                    even remotely from another machine.
9631    </p>
9632    <a name="GET FILE INSTRUMENTS"></a><br /><hr />
9633    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9634    <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
9635    Retrieving amount of instruments of a file</h3>
9636    
9637    <p>The front-end can retrieve the amount of instruments
9638                        within a given instrument file by sending the
9639                        following command:
9640    </p>
9641    <p>
9642                            </p>
9643    <blockquote class="text">
9644    <p>GET FILE INSTRUMENTS &lt;filename&gt;
9645    </p>
9646    </blockquote><p>
9647                        
9648    </p>
9649    <p>Where &lt;filename&gt; is the name of the instrument
9650                        file (encapsulated into apostrophes, supporting escape
9651                        sequences as described in chapter
9652                        "<a class='info' href='#character_set'>Character Set and Escape
9653                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9654    </p>
9655    <p>The sampler will try to ask all sampler engines,
9656                        whether they support the given file and ask the first
9657                        engine with a positive answer for the amount of
9658                        instruments.
9659    </p>
9660    <p>Possible Answers:
9661    </p>
9662    <p>
9663                            </p>
9664    <blockquote class="text">
9665    <p>On success, the sampler will answer by
9666                                   returning the amount of instruments.
9667                                
9668    </p>
9669    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9670                                    </p>
9671    <blockquote class="text">
9672    <p>if the file could not be handled
9673    </p>
9674    </blockquote>
9675                                
9676    
9677    </blockquote><p>
9678                        
9679    </p>
9680    <p>Examples:
9681    </p>
9682    <p>
9683                            </p>
9684    <blockquote class="text">
9685    <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9686    </p>
9687    <p>S: "10"
9688    </p>
9689    </blockquote><p>
9690                        
9691    </p>
9692    <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
9693    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9694    <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
9695    Retrieving all instruments of a file</h3>
9696    
9697    <p>The front-end can retrieve a list of all instruments
9698                        within a given instrument file by sending the
9699                        following command:
9700    </p>
9701    <p>
9702                            </p>
9703    <blockquote class="text">
9704    <p>LIST FILE INSTRUMENTS &lt;filename&gt;
9705    </p>
9706    </blockquote><p>
9707                        
9708    </p>
9709    <p>Where &lt;filename&gt; is the name of the instrument
9710                        file (encapsulated into apostrophes, supporting escape
9711                        sequences as described in chapter
9712                        "<a class='info' href='#character_set'>Character Set and Escape
9713                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
9714    </p>
9715    <p>The sampler will try to ask all sampler engines,
9716                        whether they support the given file and ask the first
9717                        engine with a positive answer for a list of IDs for the
9718                        instruments in the given file.
9719    </p>
9720    <p>Possible Answers:
9721    </p>
9722    <p>
9723                            </p>
9724    <blockquote class="text">
9725    <p>On success, the sampler will answer by
9726                                   returning a comma separated list of
9727                                   instrument IDs.
9728                                
9729    </p>
9730    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9731                                    </p>
9732    <blockquote class="text">
9733    <p>if the file could not be handled
9734    </p>
9735    </blockquote>
9736                                
9737    
9738    </blockquote><p>
9739                        
9740    </p>
9741    <p>Examples:
9742    </p>
9743    <p>
9744                            </p>
9745    <blockquote class="text">
9746    <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
9747    </p>
9748    <p>S: "0,1,2,3,4,5,6,7,8,9"
9749    </p>
9750    </blockquote><p>
9751                        
9752    </p>
9753    <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
9754    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9755    <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
9756    Retrieving informations about one instrument in a file</h3>
9757    
9758    <p>The front-end can retrieve detailed informations
9759                        about a specific instrument within a given instrument
9760                        file by sending the following command:
9761    </p>
9762    <p>
9763                            </p>
9764    <blockquote class="text">
9765    <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
9766                                &lt;instr-id&gt;
9767    </p>
9768    </blockquote><p>
9769                        
9770    </p>
9771    <p>Where &lt;filename&gt; is the name of the instrument
9772                        file (encapsulated into apostrophes, supporting escape
9773                        sequences as described in chapter
9774                        "<a class='info' href='#character_set'>Character Set and Escape
9775                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
9776                        instrument ID as returned by the
9777                        <a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a> command.
9778    </p>
9779    <p>The sampler will try to ask all sampler engines,
9780                        whether they support the given file and ask the first
9781                        engine with a positive answer for informations about the
9782                        specific instrument in the given file.
9783    </p>
9784    <p>Possible Answers:
9785    </p>
9786    <p>
9787                            </p>
9788    <blockquote class="text">
9789    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9790                                Each answer line begins with the settings category name
9791                                followed by a colon and then a space character &lt;SP&gt; and finally
9792                                the info character string to that setting category. At the
9793                                moment the following categories are defined:
9794    </p>
9795    <p>
9796                                    </p>
9797    <blockquote class="text">
9798    <p>NAME -
9799                                            </p>
9800    <blockquote class="text">
9801    <p>name of the instrument as
9802                                                stored in the instrument file
9803    </p>
9804    </blockquote>
9805                                        
9806    
9807    <p>FORMAT_FAMILY -
9808                                            </p>
9809    <blockquote class="text">
9810    <p>name of the sampler format
9811                                                of the given instrument
9812    </p>
9813    </blockquote>
9814                                        
9815    
9816    <p>FORMAT_VERSION -
9817                                            </p>
9818    <blockquote class="text">
9819    <p>version of the sampler format
9820                                                the instrumen is stored as
9821    </p>
9822    </blockquote>
9823                                        
9824    
9825    <p>PRODUCT -
9826                                            </p>
9827    <blockquote class="text">
9828    <p>official product name of the
9829                                                instrument as stored in the file
9830                                                
9831    </p>
9832    </blockquote>
9833                                        
9834    
9835    <p>ARTISTS -
9836                                            </p>
9837    <blockquote class="text">
9838    <p>artists / sample library
9839                                                vendor of the instrument
9840    </p>
9841    </blockquote>
9842                                        
9843    
9844    <p>KEY_BINDINGS -
9845                                            </p>
9846    <blockquote class="text">
9847    <p>comma separated list of integer values representing
9848                                                   the instrument's key mapping in the range between 0 .. 127,
9849                                                   reflecting the analog meaning of the MIDI specification.
9850    </p>
9851    </blockquote>
9852                                        
9853    
9854    <p>KEYSWITCH_BINDINGS -
9855                                            </p>
9856    <blockquote class="text">
9857    <p>comma separated list of integer values representing
9858                                                   the instrument's keyswitch mapping in the range between 0 .. 127,
9859                                                   reflecting the analog meaning of the MIDI specification.
9860    </p>
9861    </blockquote>
9862                                        
9863    
9864    </blockquote>
9865                                
9866    
9867    </blockquote><p>
9868                        
9869    </p>
9870    <p>The mentioned fields above don't have to be in particular order.
9871    </p>
9872    <p>Example:
9873    </p>
9874    <p>
9875                            </p>
9876    <blockquote class="text">
9877    <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
9878    </p>
9879    <p>S: "NAME: Lunatic Loops"
9880    </p>
9881    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9882    </p>
9883    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
9884    </p>
9885    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
9886    </p>
9887    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
9888    </p>
9889    <p>&nbsp;&nbsp;&nbsp;"."
9890    </p>
9891    </blockquote><p>
9892                        
9893    </p>
9894  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
9895  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
9896  <a name="rfc.section.6"></a><h3>6.&nbsp;Command Syntax</h3>  <a name="rfc.section.7"></a><h3>7.&nbsp;
9897    Command Syntax</h3>
9898    
9899    <p>The grammar of the control protocol as descibed in <a class='info' href='#control_commands'>Section&nbsp;6<span> (</span><span class='info'>Description for control commands</span><span>)</span></a>
9900                is defined below using Backus-Naur Form (BNF as described in <a class='info' href='#RFC2234'>[RFC2234]<span> (</span><span class='info'>Crocker, D. and P. Overell, &ldquo;Augmented BNF for Syntax Specifications,&rdquo; 1997.</span><span>)</span></a>)
9901                where applicable.
9902                
9903    </p>
9904    <p>input =
9905            </p>
9906    <blockquote class="text">
9907    <p>line LF
9908                    
9909    </p>
9910    <p>/ line CR LF
9911                    
9912    </p>
9913    </blockquote><p>
9914    
9915    </p>
9916    <p>line =
9917            </p>
9918    <blockquote class="text">
9919    <p>/* epsilon (empty line ignored) */
9920                    
9921    </p>
9922    <p>/ comment
9923                    
9924    </p>
9925    <p>/ command
9926                    
9927    </p>
9928    <p>/ error
9929                    
9930    </p>
9931    </blockquote><p>
9932    
9933    </p>
9934    <p>comment =
9935            </p>
9936    <blockquote class="text">
9937    <p>'#'
9938                    
9939    </p>
9940    <p>/ comment '#'
9941                    
9942    </p>
9943    <p>/ comment SP
9944                    
9945    </p>
9946    <p>/ comment number
9947                    
9948    </p>
9949    <p>/ comment string
9950                    
9951    </p>
9952    </blockquote><p>
9953    
9954    </p>
9955    <p>command =
9956            </p>
9957    <blockquote class="text">
9958    <p>ADD SP add_instruction
9959                    
9960    </p>
9961    <p>/ MAP SP map_instruction
9962                    
9963    </p>
9964    <p>/ UNMAP SP unmap_instruction
9965                    
9966    </p>
9967    <p>/ GET SP get_instruction
9968                    
9969    </p>
9970    <p>/ CREATE SP create_instruction
9971                    
9972    </p>
9973    <p>/ DESTROY SP destroy_instruction
9974                    
9975    </p>
9976    <p>/ LIST SP list_instruction
9977                    
9978    </p>
9979    <p>/ LOAD SP load_instruction
9980                    
9981    </p>
9982    <p>/ REMOVE SP remove_instruction
9983                    
9984    </p>
9985    <p>/ SET SP set_instruction
9986                    
9987    </p>
9988    <p>/ SUBSCRIBE SP subscribe_event
9989                    
9990    </p>
9991    <p>/ UNSUBSCRIBE SP unsubscribe_event
9992                    
9993    </p>
9994    <p>/ RESET SP reset_instruction
9995                    
9996    </p>
9997    <p>/ CLEAR SP clear_instruction
9998                    
9999    </p>
10000    <p>/ FIND SP find_instruction
10001                    
10002    </p>
10003    <p>/ MOVE SP move_instruction
10004                    
10005    </p>
10006    <p>/ COPY SP copy_instruction
10007                    
10008    </p>
10009    <p>/ EDIT SP edit_instruction
10010                    
10011    </p>
10012    <p>/ FORMAT SP format_instruction
10013                    
10014    </p>
10015    <p>/ SEND SP send_instruction
10016                    
10017    </p>
10018    <p>/ RESET
10019                    
10020    </p>
10021    <p>/ QUIT
10022                    
10023    </p>
10024    </blockquote><p>
10025    
10026    </p>
10027    <p>add_instruction =
10028            </p>
10029    <blockquote class="text">
10030    <p>CHANNEL
10031                    
10032    </p>
10033    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
10034                    
10035    </p>
10036    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
10037                    
10038    </p>
10039    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10040                    
10041    </p>
10042    <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
10043                    
10044    </p>
10045    <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
10046                    
10047    </p>
10048    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
10049                    
10050    </p>
10051    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
10052                    
10053    </p>
10054    <p>/ DB_INSTRUMENTS SP db_path SP filename
10055                    
10056    </p>
10057    <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
10058                    
10059    </p>
10060    <p>/ MIDI_INSTRUMENT_MAP
10061                    
10062    </p>
10063    <p>/ MIDI_INSTRUMENT_MAP SP map_name
10064                    
10065    </p>
10066    </blockquote><p>
10067    
10068    </p>
10069    <p>subscribe_event =
10070            </p>
10071    <blockquote class="text">
10072    <p>AUDIO_OUTPUT_DEVICE_COUNT
10073                    
10074    </p>
10075    <p>/ AUDIO_OUTPUT_DEVICE_INFO
10076                    
10077    </p>
10078    <p>/ MIDI_INPUT_DEVICE_COUNT
10079                    
10080    </p>
10081    <p>/ MIDI_INPUT_DEVICE_INFO
10082                    
10083    </p>
10084    <p>/ CHANNEL_COUNT
10085                    
10086    </p>
10087    <p>/ CHANNEL_MIDI
10088                    
10089    </p>
10090    <p>/ DEVICE_MIDI
10091                    
10092    </p>
10093    <p>/ VOICE_COUNT
10094                    
10095    </p>
10096    <p>/ STREAM_COUNT
10097                    
10098    </p>
10099    <p>/ BUFFER_FILL
10100                    
10101    </p>
10102    <p>/ CHANNEL_INFO
10103                    
10104    </p>
10105    <p>/ FX_SEND_COUNT
10106                    
10107    </p>
10108    <p>/ FX_SEND_INFO
10109                    
10110    </p>
10111    <p>/ MIDI_INSTRUMENT_MAP_COUNT
10112                    
10113    </p>
10114    <p>/ MIDI_INSTRUMENT_MAP_INFO
10115                    
10116    </p>
10117    <p>/ MIDI_INSTRUMENT_COUNT
10118                    
10119    </p>
10120    <p>/ MIDI_INSTRUMENT_INFO
10121                    
10122    </p>
10123    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
10124                    
10125    </p>
10126    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
10127                    
10128    </p>
10129    <p>/ DB_INSTRUMENT_COUNT
10130                    
10131    </p>
10132    <p>/ DB_INSTRUMENT_INFO
10133                    
10134    </p>
10135    <p>/ DB_INSTRUMENTS_JOB_INFO
10136                    
10137    </p>
10138    <p>/ MISCELLANEOUS
10139                    
10140    </p>
10141    <p>/ TOTAL_STREAM_COUNT
10142                    
10143    </p>
10144    <p>/ TOTAL_VOICE_COUNT
10145                    
10146    </p>
10147    <p>/ GLOBAL_INFO
10148                    
10149    </p>
10150    </blockquote><p>
10151    
10152    </p>
10153    <p>unsubscribe_event =
10154            </p>
10155    <blockquote class="text">
10156    <p>AUDIO_OUTPUT_DEVICE_COUNT
10157                    
10158    </p>
10159    <p>/ AUDIO_OUTPUT_DEVICE_INFO
10160                    
10161    </p>
10162    <p>/ MIDI_INPUT_DEVICE_COUNT
10163                    
10164    </p>
10165    <p>/ MIDI_INPUT_DEVICE_INFO
10166                    
10167    </p>
10168    <p>/ CHANNEL_COUNT
10169                    
10170    </p>
10171    <p>/ CHANNEL_MIDI
10172                    
10173    </p>
10174    <p>/ DEVICE_MIDI
10175                    
10176    </p>
10177    <p>/ VOICE_COUNT
10178                    
10179    </p>
10180    <p>/ STREAM_COUNT
10181                    
10182    </p>
10183    <p>/ BUFFER_FILL
10184                    
10185    </p>
10186    <p>/ CHANNEL_INFO
10187                    
10188    </p>
10189    <p>/ FX_SEND_COUNT
10190                    
10191    </p>
10192    <p>/ FX_SEND_INFO
10193                    
10194    </p>
10195    <p>/ MIDI_INSTRUMENT_MAP_COUNT
10196                    
10197    </p>
10198    <p>/ MIDI_INSTRUMENT_MAP_INFO
10199                    
10200    </p>
10201    <p>/ MIDI_INSTRUMENT_COUNT
10202                    
10203    </p>
10204    <p>/ MIDI_INSTRUMENT_INFO
10205                    
10206    </p>
10207    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
10208                    
10209    </p>
10210    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
10211                    
10212    </p>
10213    <p>/ DB_INSTRUMENT_COUNT
10214                    
10215    </p>
10216    <p>/ DB_INSTRUMENT_INFO
10217                    
10218    </p>
10219    <p>/ DB_INSTRUMENTS_JOB_INFO
10220                    
10221    </p>
10222    <p>/ MISCELLANEOUS
10223                    
10224    </p>
10225    <p>/ TOTAL_STREAM_COUNT
10226                    
10227    </p>
10228    <p>/ TOTAL_VOICE_COUNT
10229                    
10230    </p>
10231    <p>/ GLOBAL_INFO
10232                    
10233    </p>
10234    </blockquote><p>
10235    
10236    </p>
10237    <p>map_instruction =
10238            </p>
10239    <blockquote class="text">
10240    <p>MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value
10241                    
10242    </p>
10243    <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode
10244                    
10245    </p>
10246    <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP entry_name
10247                    
10248    </p>
10249    <p>/ MIDI_INSTRUMENT SP modal_arg midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value SP instr_load_mode SP entry_name
10250                    
10251    </p>
10252    </blockquote><p>
10253    
10254    </p>
10255    <p>unmap_instruction =
10256            </p>
10257    <blockquote class="text">
10258    <p>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog
10259                    
10260    </p>
10261    </blockquote><p>
10262    
10263    </p>
10264    <p>remove_instruction =
10265            </p>
10266    <blockquote class="text">
10267    <p>CHANNEL SP sampler_channel
10268                    
10269    </p>
10270    <p>/ MIDI_INSTRUMENT_MAP SP midi_map
10271                    
10272    </p>
10273    <p>/ MIDI_INSTRUMENT_MAP SP ALL
10274                    
10275    </p>
10276    <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
10277                    
10278    </p>
10279    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
10280                    
10281    </p>
10282    <p>/ DB_INSTRUMENT SP db_path
10283                    
10284    </p>
10285    </blockquote><p>
10286    
10287    </p>
10288    <p>get_instruction =
10289            </p>
10290    <blockquote class="text">
10291    <p>AVAILABLE_ENGINES
10292                    
10293    </p>
10294    <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
10295                    
10296    </p>
10297    <p>/ MIDI_INPUT_DRIVER SP INFO SP string
10298                    
10299    </p>
10300    <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
10301                    
10302    </p>
10303    <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
10304                    
10305    </p>
10306    <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
10307                    
10308    </p>
10309    <p>/ AUDIO_OUTPUT_DRIVER SP INFO SP string
10310                    
10311    </p>
10312    <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
10313                    
10314    </p>
10315    <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
10316                    
10317    </p>
10318    <p>/ AUDIO_OUTPUT_DEVICES
10319                    
10320    </p>
10321    <p>/ MIDI_INPUT_DEVICES
10322                    
10323    </p>
10324    <p>/ AUDIO_OUTPUT_DEVICE SP INFO SP number
10325                    
10326    </p>
10327    <p>/ MIDI_INPUT_DEVICE SP INFO SP number
10328                    
10329    </p>
10330    <p>/ MIDI_INPUT_PORT SP INFO SP number SP number
10331                    
10332    </p>
10333    <p>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
10334                    
10335    </p>
10336    <p>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
10337                    
10338    </p>
10339    <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string
10340                    
10341    </p>
10342    <p>/ CHANNELS
10343                    
10344    </p>
10345    <p>/ CHANNEL SP INFO SP sampler_channel
10346                    
10347    </p>
10348    <p>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
10349                    
10350    </p>
10351    <p>/ CHANNEL SP STREAM_COUNT SP sampler_channel
10352                    
10353    </p>
10354    <p>/ CHANNEL SP VOICE_COUNT SP sampler_channel
10355                    
10356    </p>
10357    <p>/ ENGINE SP INFO SP engine_name
10358                    
10359    </p>
10360    <p>/ SERVER SP INFO
10361                    
10362    </p>
10363    <p>/ TOTAL_STREAM_COUNT
10364                    
10365    </p>
10366    <p>/ TOTAL_VOICE_COUNT
10367                    
10368    </p>
10369    <p>/ TOTAL_VOICE_COUNT_MAX
10370                    
10371    </p>
10372    <p>/ MIDI_INSTRUMENTS SP midi_map
10373                    
10374    </p>
10375    <p>/ MIDI_INSTRUMENTS SP ALL
10376                    
10377    </p>
10378    <p>/ MIDI_INSTRUMENT SP INFO SP midi_map SP midi_bank SP midi_prog
10379                    
10380    </p>
10381    <p>/ MIDI_INSTRUMENT_MAPS
10382                    
10383    </p>
10384    <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
10385                    
10386    </p>
10387    <p>/ FX_SENDS SP sampler_channel
10388                    
10389    </p>
10390    <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
10391                    
10392    </p>
10393    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10394                    
10395    </p>
10396    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10397                    
10398    </p>
10399    <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
10400                    
10401    </p>
10402    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10403                    
10404    </p>
10405    <p>/ DB_INSTRUMENTS SP db_path
10406                    
10407    </p>
10408    <p>/ DB_INSTRUMENT SP INFO SP db_path
10409                    
10410    </p>
10411    <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
10412                    
10413    </p>
10414    <p>/ VOLUME
10415                    
10416    </p>
10417    <p>/ VOICES
10418                    
10419    </p>
10420    <p>/ STREAMS
10421                    
10422    </p>
10423    <p>/ FILE SP INSTRUMENTS SP filename
10424                    
10425    </p>
10426    <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
10427                    
10428    </p>
10429    </blockquote><p>
10430    
10431    </p>
10432    <p>set_instruction =
10433            </p>
10434    <blockquote class="text">
10435    <p>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
10436                    
10437    </p>
10438    <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list
10439                    
10440    </p>
10441    <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
10442                    
10443    </p>
10444    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
10445                    
10446    </p>
10447    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
10448                    
10449    </p>
10450    <p>/ CHANNEL SP set_chan_instruction
10451                    
10452    </p>
10453    <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
10454                    
10455    </p>
10456    <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
10457                    
10458    </p>
10459    <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
10460                    
10461    </p>
10462    <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
10463                    
10464    </p>
10465    <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
10466                    
10467    </p>
10468    <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
10469                    
10470    </p>
10471    <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
10472                    
10473    </p>
10474    <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
10475                    
10476    </p>
10477    <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
10478                    
10479    </p>
10480    <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
10481                    
10482    </p>
10483    <p>/ ECHO SP boolean
10484                    
10485    </p>
10486    <p>/ VOLUME SP volume_value
10487                    
10488    </p>
10489    <p>/ VOICES SP number
10490                    
10491    </p>
10492    <p>/ STREAMS SP number
10493                    
10494    </p>
10495    </blockquote><p>
10496    
10497    </p>
10498    <p>create_instruction =
10499            </p>
10500    <blockquote class="text">
10501    <p>AUDIO_OUTPUT_DEVICE SP string SP key_val_list
10502                    
10503    </p>
10504    <p>/ AUDIO_OUTPUT_DEVICE SP string
10505                    
10506    </p>
10507    <p>/ MIDI_INPUT_DEVICE SP string SP key_val_list
10508                    
10509    </p>
10510    <p>/ MIDI_INPUT_DEVICE SP string
10511                    
10512    </p>
10513    <p>/ FX_SEND SP sampler_channel SP midi_ctrl
10514                    
10515    </p>
10516    <p>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
10517                    
10518    </p>
10519    </blockquote><p>
10520    
10521    </p>
10522    <p>reset_instruction =
10523            </p>
10524    <blockquote class="text">
10525    <p>CHANNEL SP sampler_channel
10526                    
10527    </p>
10528    </blockquote><p>
10529    
10530    </p>
10531    <p>clear_instruction =
10532            </p>
10533    <blockquote class="text">
10534    <p>MIDI_INSTRUMENTS SP midi_map
10535                    
10536    </p>
10537    <p>/ MIDI_INSTRUMENTS SP ALL
10538                    
10539    </p>
10540    </blockquote><p>
10541    
10542    </p>
10543    <p>find_instruction =
10544            </p>
10545    <blockquote class="text">
10546    <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
10547                    
10548    </p>
10549    <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
10550                    
10551    </p>
10552    <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
10553                    
10554    </p>
10555    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
10556                    
10557    </p>
10558    <p>/ LOST SP DB_INSTRUMENT_FILES
10559                    
10560    </p>
10561    </blockquote><p>
10562    
10563    </p>
10564    <p>move_instruction =
10565            </p>
10566    <blockquote class="text">
10567    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10568                    
10569    </p>
10570    <p>/ DB_INSTRUMENT SP db_path SP db_path
10571                    
10572    </p>
10573    </blockquote><p>
10574    
10575    </p>
10576    <p>copy_instruction =
10577            </p>
10578    <blockquote class="text">
10579    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
10580                    
10581    </p>
10582    <p>/ DB_INSTRUMENT SP db_path SP db_path
10583                    
10584    </p>
10585    </blockquote><p>
10586    
10587    </p>
10588    <p>destroy_instruction =
10589            </p>
10590    <blockquote class="text">
10591    <p>AUDIO_OUTPUT_DEVICE SP number
10592                    
10593    </p>
10594    <p>/ MIDI_INPUT_DEVICE SP number
10595                    
10596    </p>
10597    <p>/ FX_SEND SP sampler_channel SP fx_send_id
10598                    
10599    </p>
10600    </blockquote><p>
10601    
10602    </p>
10603    <p>load_instruction =
10604            </p>
10605    <blockquote class="text">
10606    <p>INSTRUMENT SP load_instr_args
10607                    
10608    </p>
10609    <p>/ ENGINE SP load_engine_args
10610                    
10611    </p>
10612    </blockquote><p>
10613    
10614    </p>
10615    <p>set_chan_instruction =
10616            </p>
10617    <blockquote class="text">
10618    <p>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
10619                    
10620    </p>
10621    <p>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index
10622                    
10623    </p>
10624    <p>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
10625                    
10626    </p>
10627    <p>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index
10628                    
10629    </p>
10630    <p>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index
10631                    
10632    </p>
10633    <p>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
10634                    
10635    </p>
10636    <p>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index
10637                    
10638    </p>
10639    <p>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
10640                    
10641    </p>
10642    <p>/ VOLUME SP sampler_channel SP volume_value
10643                    
10644    </p>
10645    <p>/ MUTE SP sampler_channel SP boolean
10646                    
10647    </p>
10648    <p>/ SOLO SP sampler_channel SP boolean
10649                    
10650    </p>
10651    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map
10652                    
10653    </p>
10654    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE
10655                    
10656    </p>
10657    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT
10658                    
10659    </p>
10660    </blockquote><p>
10661    
10662    </p>
10663    <p>edit_instruction =
10664            </p>
10665    <blockquote class="text">
10666    <p>CHANNEL SP INSTRUMENT SP sampler_channel
10667                    
10668    </p>
10669    </blockquote><p>
10670    
10671    </p>
10672    <p>format_instruction =
10673            </p>
10674    <blockquote class="text">
10675    <p>INSTRUMENTS_DB
10676                    
10677    </p>
10678    </blockquote><p>
10679    
10680    </p>
10681    <p>modal_arg =
10682            </p>
10683    <blockquote class="text">
10684    <p>/* epsilon (empty argument) */
10685                    
10686    </p>
10687    <p>/ NON_MODAL SP
10688                    
10689    </p>
10690    </blockquote><p>
10691    
10692    </p>
10693    <p>key_val_list =
10694            </p>
10695    <blockquote class="text">
10696    <p>string '=' param_val_list
10697                    
10698    </p>
10699    <p>/ key_val_list SP string '=' param_val_list
10700                    
10701    </p>
10702    </blockquote><p>
10703    
10704    </p>
10705    <p>buffer_size_type =
10706            </p>
10707    <blockquote class="text">
10708    <p>BYTES
10709                    
10710    </p>
10711    <p>/ PERCENTAGE
10712                    
10713    </p>
10714    </blockquote><p>
10715    
10716    </p>
10717    <p>list_instruction =
10718            </p>
10719    <blockquote class="text">
10720    <p>AUDIO_OUTPUT_DEVICES
10721                    
10722    </p>
10723    <p>/ MIDI_INPUT_DEVICES
10724                    
10725    </p>
10726    <p>/ CHANNELS
10727                    
10728    </p>
10729    <p>/ AVAILABLE_ENGINES
10730                    
10731    </p>
10732    <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
10733                    
10734    </p>
10735    <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
10736                    
10737    </p>
10738    <p>/ MIDI_INSTRUMENTS SP midi_map
10739                    
10740    </p>
10741    <p>/ MIDI_INSTRUMENTS SP ALL
10742                    
10743    </p>
10744    <p>/ MIDI_INSTRUMENT_MAPS
10745                    
10746    </p>
10747    <p>/ FX_SENDS SP sampler_channel
10748                    
10749    </p>
10750    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
10751                    
10752    </p>
10753    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
10754                    
10755    </p>
10756    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
10757                    
10758    </p>
10759    <p>/ DB_INSTRUMENTS SP db_path
10760                    
10761    </p>
10762    <p>/ FILE SP INSTRUMENTS SP filename
10763                    
10764    </p>
10765    </blockquote><p>
10766    
10767    </p>
10768    <p>send_instruction =
10769            </p>
10770    <blockquote class="text">
10771    <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
10772                    
10773    </p>
10774    </blockquote><p>
10775    
10776    </p>
10777    <p>load_instr_args =
10778            </p>
10779    <blockquote class="text">
10780    <p>filename SP instrument_index SP sampler_channel
10781                    
10782    </p>
10783    <p>/ NON_MODAL SP filename SP instrument_index SP sampler_channel
10784                    
10785    </p>
10786    </blockquote><p>
10787    
10788    </p>
10789    <p>load_engine_args =
10790            </p>
10791    <blockquote class="text">
10792    <p>engine_name SP sampler_channel
10793                    
10794    </p>
10795    </blockquote><p>
10796    
10797    </p>
10798    <p>instr_load_mode =
10799            </p>
10800    <blockquote class="text">
10801    <p>ON_DEMAND
10802                    
10803    </p>
10804    <p>/ ON_DEMAND_HOLD
10805                    
10806    </p>
10807    <p>/ PERSISTENT
10808                    
10809    </p>
10810    </blockquote><p>
10811    
10812    </p>
10813    <p>device_index =
10814            </p>
10815    <blockquote class="text">
10816    <p>number
10817                    
10818    </p>
10819    </blockquote><p>
10820    
10821    </p>
10822    <p>audio_channel_index =
10823            </p>
10824    <blockquote class="text">
10825    <p>number
10826                    
10827    </p>
10828    </blockquote><p>
10829    
10830    </p>
10831    <p>audio_output_type_name =
10832            </p>
10833    <blockquote class="text">
10834    <p>string
10835                    
10836    </p>
10837    </blockquote><p>
10838    
10839    </p>
10840    <p>midi_input_port_index =
10841            </p>
10842    <blockquote class="text">
10843    <p>number
10844                    
10845    </p>
10846    </blockquote><p>
10847    
10848    </p>
10849    <p>midi_input_channel_index =
10850            </p>
10851    <blockquote class="text">
10852    <p>number
10853                    
10854    </p>
10855    <p>/ ALL
10856                    
10857    </p>
10858    </blockquote><p>
10859    
10860    </p>
10861    <p>midi_input_type_name =
10862            </p>
10863    <blockquote class="text">
10864    <p>string
10865                    
10866    </p>
10867    </blockquote><p>
10868    
10869    </p>
10870    <p>midi_map =
10871            </p>
10872    <blockquote class="text">
10873    <p>number
10874                    
10875    </p>
10876    </blockquote><p>
10877    
10878    </p>
10879    <p>midi_bank =
10880            </p>
10881    <blockquote class="text">
10882    <p>number
10883                    
10884    </p>
10885    </blockquote><p>
10886    
10887    </p>
10888    <p>midi_prog =
10889            </p>
10890    <blockquote class="text">
10891    <p>number
10892                    
10893    </p>
10894    </blockquote><p>
10895    
10896    </p>
10897    <p>midi_ctrl =
10898            </p>
10899    <blockquote class="text">
10900    <p>number
10901                    
10902    </p>
10903    </blockquote><p>
10904    
10905    </p>
10906    <p>volume_value =
10907            </p>
10908    <blockquote class="text">
10909    <p>dotnum
10910                    
10911    </p>
10912    <p>/ number
10913                    
10914    </p>
10915    </blockquote><p>
10916    
10917    </p>
10918    <p>sampler_channel =
10919            </p>
10920    <blockquote class="text">
10921    <p>number
10922                    
10923    </p>
10924    </blockquote><p>
10925    
10926    </p>
10927    <p>instrument_index =
10928            </p>
10929    <blockquote class="text">
10930    <p>number
10931                    
10932    </p>
10933    </blockquote><p>
10934    
10935    </p>
10936    <p>fx_send_id =
10937            </p>
10938    <blockquote class="text">
10939    <p>number
10940                    
10941    </p>
10942    </blockquote><p>
10943    
10944    </p>
10945    <p>engine_name =
10946            </p>
10947    <blockquote class="text">
10948    <p>string
10949                    
10950    </p>
10951    </blockquote><p>
10952    
10953    </p>
10954    <p>filename =
10955            </p>
10956    <blockquote class="text">
10957    <p>path
10958                    
10959    </p>
10960    </blockquote><p>
10961    
10962    </p>
10963    <p>db_path =
10964            </p>
10965    <blockquote class="text">
10966    <p>path
10967                    
10968    </p>
10969    </blockquote><p>
10970    
10971    </p>
10972    <p>map_name =
10973            </p>
10974    <blockquote class="text">
10975    <p>stringval_escaped
10976                    
10977    </p>
10978    </blockquote><p>
10979    
10980    </p>
10981    <p>entry_name =
10982            </p>
10983    <blockquote class="text">
10984    <p>stringval_escaped
10985                    
10986    </p>
10987    </blockquote><p>
10988    
10989    </p>
10990    <p>fx_send_name =
10991            </p>
10992    <blockquote class="text">
10993    <p>stringval_escaped
10994                    
10995    </p>
10996    </blockquote><p>
10997    
10998    </p>
10999    <p>param_val_list =
11000            </p>
11001    <blockquote class="text">
11002    <p>param_val
11003                    
11004    </p>
11005    <p>/ param_val_list','param_val
11006                    
11007    </p>
11008    </blockquote><p>
11009    
11010    </p>
11011    <p>param_val =
11012            </p>
11013    <blockquote class="text">
11014    <p>string
11015                    
11016    </p>
11017    <p>/ stringval
11018                    
11019    </p>
11020    <p>/ number
11021                    
11022    </p>
11023    <p>/ dotnum
11024                    
11025    </p>
11026    </blockquote><p>
11027    
11028    </p>
11029    <p>query_val_list =
11030            </p>
11031    <blockquote class="text">
11032    <p>string '=' query_val
11033                    
11034    </p>
11035    <p>/ query_val_list SP string '=' query_val
11036                    
11037    </p>
11038    </blockquote><p>
11039    
11040    </p>
11041    <p>query_val =
11042            </p>
11043    <blockquote class="text">
11044    <p>text_escaped
11045                    
11046    </p>
11047    <p>/ stringval_escaped
11048                    
11049    </p>
11050    </blockquote><p>
11051    
11052    </p>
11053    <p>scan_mode =
11054            </p>
11055    <blockquote class="text">
11056    <p>RECURSIVE
11057                    
11058    </p>
11059    <p>/ NON_RECURSIVE
11060                    
11061    </p>
11062    <p>/ FLAT
11063                    
11064    </p>
11065    </blockquote><p>
11066    
11067    </p>
11068    <a name="character_set"></a><br /><hr />
11069    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11070    <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
11071    Character Set and Escape Sequences</h3>
11072    
11073    <p>Older versions of this protocol up to and including v1.1 only
11074                    supported the standard ASCII character set (ASCII code 0 - 127)
11075                    <a class='info' href='#RFC20'>[RFC20]<span> (</span><span class='info'>UCLA, &ldquo;ASCII format for Network Interchange,&rdquo; 1969.</span><span>)</span></a>, all younger versions of this protocol
11076                    however support the Extended ASCII character set (ASCII code
11077                    0 - 255). The same group of younger protocols also support
11078                    escape sequences, but only for certain, explicitly declared
11079                    parts of the protocol. The supported escape sequences are
11080                    defined as follows:
11081    </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
11082    <col align="left"><col align="left">
11083    <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
11084    <tr>
11085    <td align="left">\n</td>
11086    <td align="left">new line</td>
11087    </tr>
11088    <tr>
11089    <td align="left">\r</td>
11090    <td align="left">carriage return</td>
11091    </tr>
11092    <tr>
11093    <td align="left">\f</td>
11094    <td align="left">form feed</td>
11095    </tr>
11096    <tr>
11097    <td align="left">\t</td>
11098    <td align="left">horizontal tab</td>
11099    </tr>
11100    <tr>
11101    <td align="left">\v</td>
11102    <td align="left">vertical tab</td>
11103    </tr>
11104    <tr>
11105    <td align="left">\'</td>
11106    <td align="left">apostrophe</td>
11107    </tr>
11108    <tr>
11109    <td align="left">\"</td>
11110    <td align="left">quotation mark</td>
11111    </tr>
11112    <tr>
11113    <td align="left">\\</td>
11114    <td align="left">backslash</td>
11115    </tr>
11116    <tr>
11117    <td align="left">\OOO</td>
11118    <td align="left">three digit octal ASCII code of the character</td>
11119    </tr>
11120    <tr>
11121    <td align="left">\xHH</td>
11122    <td align="left">two digit hex ASCII code of the character</td>
11123    </tr>
11124    </table>
11125    <br clear="all" />
11126    
11127  <p>TODO: will soon automatically included from src/network/lscp.y,  <p>Notice: due to the transition of certain parts of the
11128              meanwhile have a look at that file to get the exact definition of                  protocol which now support escape sequences, a slight backward
11129              the command syntax.                  incompatibility to protocols version v1.1 and younger has been
11130                    introduced. The only difference is that in parts of the protocol
11131                    where escape characters are now supported, a backslash characters
11132                    MUST be escaped as well (that is as double backslash), whereas
11133                    in the old versions a single backslash was sufficient.
11134    </p>
11135    <p>The following LSCP commands support escape sequences as part
11136                    of their filename / path based arguments and / or may contain
11137                    a filename / path with escape sequences in their response:
11138                    </p>
11139    <blockquote class="text">
11140    <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
11141    </p>
11142    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
11143    </p>
11144    <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
11145    </p>
11146    <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
11147    </p>
11148    <p><a class='info' href='#ADD DB_INSTRUMENT_DIRECTORY'>"ADD DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Creating a new instrument directory</span><span>)</span></a>
11149    </p>
11150    <p><a class='info' href='#ADD DB_INSTRUMENTS'>"ADD DB_INSTRUMENTS"<span> (</span><span class='info'>Adding instruments to the instruments database</span><span>)</span></a>
11151    </p>
11152    <p><a class='info' href='#REMOVE DB_INSTRUMENT_DIRECTORY'>"REMOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Deleting an instrument directory</span><span>)</span></a>
11153    </p>
11154    <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
11155    </p>
11156    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORIES'>"GET DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Getting amount of instrument directories</span><span>)</span></a>
11157    </p>
11158    <p><a class='info' href='#LIST DB_INSTRUMENT_DIRECTORIES'>"LIST DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Listing all directories in specific directory</span><span>)</span></a>
11159    </p>
11160    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
11161    </p>
11162    <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
11163    </p>
11164    <p><a class='info' href='#LIST DB_INSTRUMENTS'>"LIST DB_INSTRUMENTS"<span> (</span><span class='info'>Listing all instruments in specific directory</span><span>)</span></a>
11165    </p>
11166    <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
11167    </p>
11168    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
11169    </p>
11170    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
11171    </p>
11172    <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
11173    </p>
11174    <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
11175    </p>
11176    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
11177    </p>
11178    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
11179    </p>
11180    <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
11181    </p>
11182    <p><a class='info' href='#MOVE DB_INSTRUMENT_DIRECTORY'>"MOVE DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Moving an instrument directory</span><span>)</span></a>
11183    </p>
11184    <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
11185    </p>
11186    <p><a class='info' href='#COPY DB_INSTRUMENT_DIRECTORY'>"COPY DB_INSTRUMENT_DIRECTORY"<span> (</span><span class='info'>Copying instrument directories</span><span>)</span></a>
11187    </p>
11188    <p><a class='info' href='#FIND LOST DB_INSTRUMENT_FILES'>"FIND LOST DB_INSTRUMENT_FILES"<span> (</span><span class='info'>Checking for lost instrument files</span><span>)</span></a>
11189    </p>
11190    <p><a class='info' href='#SET DB_INSTRUMENT FILE_PATH'>"SET DB_INSTRUMENT FILE_PATH"<span> (</span><span class='info'>Replacing an instrument file</span><span>)</span></a>
11191    </p>
11192    <p><a class='info' href='#GET FILE INSTRUMENTS'>"GET FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving amount of instruments of a file</span><span>)</span></a>
11193    </p>
11194    <p><a class='info' href='#LIST FILE INSTRUMENTS'>"LIST FILE INSTRUMENTS"<span> (</span><span class='info'>Retrieving all instruments of a file</span><span>)</span></a>
11195    </p>
11196    <p><a class='info' href='#GET FILE INSTRUMENT INFO'>"GET FILE INSTRUMENT INFO"<span> (</span><span class='info'>Retrieving informations about one instrument in a file</span><span>)</span></a>
11197    </p>
11198    </blockquote><p>
11199                    Note that the forward slash character ('/') has a special meaning in
11200                    filename / path based arguments: it acts as separator of the nodes in
11201                    the path, thus if a directory- or filename includes a forward slash
11202                    (not intended as path node separator), you MUST escape that slash
11203                    either with the respective hex escape sequence ("\x2f") or with the
11204                    respective octal escape sequence ("\057").
11205                    
11206    </p>
11207    <p>
11208                    Note for Windows: file path arguments in LSCP are expected
11209                    to use forward slashes as directory node separator similar
11210                    to Unix based operating systems. In contrast to Unix however
11211                    a Windows typical drive character is expected to be
11212                    prefixed to the path. That is an original Windows file path
11213                    like "D:\Sounds\My.gig" would become in LSCP:
11214                    "D:/Sounds/My.gig".
11215                    
11216    </p>
11217    <p>
11218                    The following LSCP commands even support escape sequences as
11219                    part of at least one of their text-based arguments (i.e. entity name,
11220                    description) and / or may contain escape sequences in at least one of
11221                    their text-based fields in their response:
11222                    </p>
11223    <blockquote class="text">
11224    <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
11225    </p>
11226    <p><a class='info' href='#GET ENGINE INFO'>"GET ENGINE INFO"<span> (</span><span class='info'>Getting information about an engine</span><span>)</span></a>
11227    </p>
11228    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
11229    </p>
11230    <p><a class='info' href='#CREATE FX_SEND'>"CREATE FX_SEND"<span> (</span><span class='info'>Adding an effect send to a sampler channel</span><span>)</span></a>
11231    </p>
11232    <p><a class='info' href='#GET FX_SEND INFO'>"GET FX_SEND INFO"<span> (</span><span class='info'>Getting effect send information</span><span>)</span></a>
11233    </p>
11234    <p><a class='info' href='#SET FX_SEND NAME'>"SET FX_SEND NAME"<span> (</span><span class='info'>Changing effect send's name</span><span>)</span></a>
11235    </p>
11236    <p><a class='info' href='#GET MIDI_INSTRUMENT INFO'>"GET MIDI_INSTRUMENT INFO"<span> (</span><span class='info'>Get current settings of MIDI instrument map entry</span><span>)</span></a>
11237    </p>
11238    <p><a class='info' href='#GET MIDI_INSTRUMENT_MAP INFO'>"GET MIDI_INSTRUMENT_MAP INFO"<span> (</span><span class='info'>Getting MIDI instrument map information</span><span>)</span></a>
11239    </p>
11240    <p><a class='info' href='#ADD MIDI_INSTRUMENT_MAP'>"ADD MIDI_INSTRUMENT_MAP"<span> (</span><span class='info'>Create a new MIDI instrument map</span><span>)</span></a>
11241    </p>
11242    <p><a class='info' href='#MAP MIDI_INSTRUMENT'>"MAP MIDI_INSTRUMENT"<span> (</span><span class='info'>Create or replace a MIDI instrument map entry</span><span>)</span></a>
11243    </p>
11244    <p><a class='info' href='#SET MIDI_INSTRUMENT_MAP NAME'>"SET MIDI_INSTRUMENT_MAP NAME"<span> (</span><span class='info'>Renaming a MIDI instrument map</span><span>)</span></a>
11245    </p>
11246    <p><a class='info' href='#GET DB_INSTRUMENT_DIRECTORY INFO'>"GET DB_INSTRUMENT_DIRECTORY INFO"<span> (</span><span class='info'>Getting instrument directory information</span><span>)</span></a>
11247    </p>
11248    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY NAME'>"SET DB_INSTRUMENT_DIRECTORY NAME"<span> (</span><span class='info'>Renaming an instrument directory</span><span>)</span></a>
11249    </p>
11250    <p><a class='info' href='#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION'>"SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"<span> (</span><span class='info'>Changing the description of directory</span><span>)</span></a>
11251    </p>
11252    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
11253    </p>
11254    <p><a class='info' href='#GET DB_INSTRUMENT INFO'>"GET DB_INSTRUMENT INFO"<span> (</span><span class='info'>Getting instrument information</span><span>)</span></a>
11255    </p>
11256    <p><a class='info' href='#SET DB_INSTRUMENT NAME'>"SET DB_INSTRUMENT NAME"<span> (</span><span class='info'>Renaming an instrument</span><span>)</span></a>
11257    </p>
11258    <p><a class='info' href='#SET DB_INSTRUMENT DESCRIPTION'>"SET DB_INSTRUMENT DESCRIPTION"<span> (</span><span class='info'>Changing the description of instrument</span><span>)</span></a>
11259    </p>
11260    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
11261    </p>
11262    </blockquote><p>
11263                    Please note that these lists are manually maintained. If you
11264                    find a command that also supports escape sequences we forgot to
11265                    mention here, please report it!
11266                    
11267  </p>  </p>
11268  <a name="events"></a><br /><hr />  <a name="events"></a><br /><hr />
11269  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11270  <a name="rfc.section.7"></a><h3>7.&nbsp;Events</h3>  <a name="rfc.section.8"></a><h3>8.&nbsp;
11271    Events</h3>
11272    
11273  <p>This chapter will describe all currently defined events supported by LinuxSampler.  <p>This chapter will describe all currently defined events supported by LinuxSampler.
11274  </p>  </p>
11275  <a name="rfc.section.7.1"></a><h4><a name="SUBSCRIBE CHANNEL">7.1</a>&nbsp;Number of sampler channels changed</h4>  <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT"></a><br /><hr />
11276    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11277    <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;
11278    Number of audio output devices changed</h3>
11279    
11280    <p>Client may want to be notified when the total number of audio output devices on the
11281                    back-end changes by issuing the following command:
11282    </p>
11283    <p>
11284                        </p>
11285    <blockquote class="text">
11286    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT
11287    </p>
11288    </blockquote><p>
11289                    
11290    </p>
11291    <p>Server will start sending the following notification messages:
11292    </p>
11293    <p>
11294                        </p>
11295    <blockquote class="text">
11296    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:&lt;devices&gt;"
11297    </p>
11298    </blockquote><p>
11299                    
11300    </p>
11301    <p>where &lt;devices&gt; will be replaced by the new number
11302                    of audio output devices.
11303    </p>
11304    <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO"></a><br /><hr />
11305    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11306    <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;
11307    Audio output device's settings changed</h3>
11308    
11309    <p>Client may want to be notified when changes were made to audio output devices on the
11310                    back-end by issuing the following command:
11311    </p>
11312    <p>
11313                        </p>
11314    <blockquote class="text">
11315    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO
11316    </p>
11317    </blockquote><p>
11318                    
11319    </p>
11320    <p>Server will start sending the following notification messages:
11321    </p>
11322    <p>
11323                        </p>
11324    <blockquote class="text">
11325    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:&lt;device-id&gt;"
11326    </p>
11327    </blockquote><p>
11328                    
11329    </p>
11330    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio output device,
11331                    which settings has been changed. The front-end will have to send
11332                    the respective command to actually get the audio output device info. Because these messages
11333                    will be triggered by LSCP commands issued by other clients rather than real
11334                    time events happening on the server, it is believed that an empty notification
11335                    message is sufficient here.
11336    </p>
11337    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_COUNT"></a><br /><hr />
11338    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11339    <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;
11340    Number of MIDI input devices changed</h3>
11341    
11342    <p>Client may want to be notified when the total number of MIDI input devices on the
11343                    back-end changes by issuing the following command:
11344    </p>
11345    <p>
11346                        </p>
11347    <blockquote class="text">
11348    <p>SUBSCRIBE MIDI_INPUT_DEVICE_COUNT
11349    </p>
11350    </blockquote><p>
11351                    
11352    </p>
11353    <p>Server will start sending the following notification messages:
11354    </p>
11355    <p>
11356                        </p>
11357    <blockquote class="text">
11358    <p>"NOTIFY:MIDI_INPUT_DEVICE_COUNT:&lt;devices&gt;"
11359    </p>
11360    </blockquote><p>
11361                    
11362    </p>
11363    <p>where &lt;devices&gt; will be replaced by the new number
11364                    of MIDI input devices.
11365    </p>
11366    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_INFO"></a><br /><hr />
11367    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11368    <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;
11369    MIDI input device's settings changed</h3>
11370    
11371    <p>Client may want to be notified when changes were made to MIDI input devices on the
11372                    back-end by issuing the following command:
11373    </p>
11374    <p>
11375                        </p>
11376    <blockquote class="text">
11377    <p>SUBSCRIBE MIDI_INPUT_DEVICE_INFO
11378    </p>
11379    </blockquote><p>
11380                    
11381    </p>
11382    <p>Server will start sending the following notification messages:
11383    </p>
11384    <p>
11385                        </p>
11386    <blockquote class="text">
11387    <p>"NOTIFY:MIDI_INPUT_DEVICE_INFO:&lt;device-id&gt;"
11388    </p>
11389    </blockquote><p>
11390                    
11391    </p>
11392    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the MIDI input device,
11393                    which settings has been changed. The front-end will have to send
11394                    the respective command to actually get the MIDI input device info. Because these messages
11395                    will be triggered by LSCP commands issued by other clients rather than real
11396                    time events happening on the server, it is believed that an empty notification
11397                    message is sufficient here.
11398    </p>
11399    <a name="SUBSCRIBE CHANNEL_COUNT"></a><br /><hr />
11400    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11401    <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;
11402    Number of sampler channels changed</h3>
11403    
11404  <p>Client may want to be notified when the total number of channels on the  <p>Client may want to be notified when the total number of channels on the
11405                  back-end changes by issuing the following command:                  back-end changes by issuing the following command:
11406  </p>  </p>
11407  <p></p>  <p>
11408                        </p>
11409  <blockquote class="text">  <blockquote class="text">
11410  <p>SUBSCRIBE CHANNEL_COUNT  <p>SUBSCRIBE CHANNEL_COUNT
11411  </p>  </p>
11412  </blockquote>  </blockquote><p>
11413                    
11414    </p>
11415  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
11416  </p>  </p>
11417  <p></p>  <p>
11418                        </p>
11419  <blockquote class="text">  <blockquote class="text">
11420  <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"  <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"
11421  </p>  </p>
11422  </blockquote>  </blockquote><p>
11423                    
11424    </p>
11425  <p>where &lt;channels&gt; will be replaced by the new number  <p>where &lt;channels&gt; will be replaced by the new number
11426                  of sampler channels.                  of sampler channels.
11427  </p>  </p>
11428  <a name="rfc.section.7.2"></a><h4><a name="SUBSCRIBE VOICE_COUNT">7.2</a>&nbsp;Number of active voices changed</h4>  <a name="SUBSCRIBE CHANNEL_MIDI"></a><br /><hr />
11429    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11430    <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
11431    MIDI data on a sampler channel arrived</h3>
11432    
11433    <p>Client may want to be notified when MIDI data arrive on sampler channels on
11434                    back-end side, by issuing the following command:
11435    </p>
11436    <p>
11437                        </p>
11438    <blockquote class="text">
11439    <p>SUBSCRIBE CHANNEL_MIDI
11440    </p>
11441    </blockquote><p>
11442                    
11443    </p>
11444    <p>Server will start sending one of the the following notification messages:
11445    </p>
11446    <p>
11447                        </p>
11448    <blockquote class="text">
11449    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON  &lt;note&gt; &lt;velocity&gt;"
11450    </p>
11451    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11452    </p>
11453    </blockquote><p>
11454                    
11455    </p>
11456    <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
11457                    data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11458                    0 .. 127, reflecting the analog meaning of the MIDI specification.
11459                    
11460    </p>
11461    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11462                    delivered by this mechanism! With other words: events could be lost at any time!
11463                    This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11464                    thread unaffected by this feature.
11465    </p>
11466    <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
11467    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11468    <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
11469    MIDI data on a MIDI input device arrived</h3>
11470    
11471    <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
11472    </p>
11473    <p>
11474                                </p>
11475    <blockquote class="text">
11476    <p>SUBSCRIBE DEVICE_MIDI
11477    </p>
11478    </blockquote><p>
11479                        
11480    </p>
11481    <p>Server will start sending one of the the following notification messages:
11482    </p>
11483    <p>
11484                                </p>
11485    <blockquote class="text">
11486    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
11487    </p>
11488    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
11489    </p>
11490    </blockquote><p>
11491                        
11492    </p>
11493    <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
11494                           by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
11495                           data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
11496                           0 .. 127, reflecting the analog meaning of the MIDI specification.
11497                        
11498    </p>
11499    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
11500                           delivered by this mechanism! With other words: events could be lost at any time!
11501                           This restriction was made to keep the RT-safeness of the backend's MIDI and audio
11502                           thread unaffected by this feature.
11503    </p>
11504    <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
11505    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11506    <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
11507    Number of active voices changed</h3>
11508    
11509  <p>Client may want to be notified when the number of voices on the  <p>Client may want to be notified when the number of voices on the
11510                  back-end changes by issuing the following command:                  back-end changes by issuing the following command:
11511  </p>  </p>
11512  <p></p>  <p>
11513                        </p>
11514  <blockquote class="text">  <blockquote class="text">
11515  <p>SUBSCRIBE VOICE_COUNT  <p>SUBSCRIBE VOICE_COUNT
11516  </p>  </p>
11517  </blockquote>  </blockquote><p>
11518                    
11519    </p>
11520  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
11521  </p>  </p>
11522  <p></p>  <p>
11523                        </p>
11524  <blockquote class="text">  <blockquote class="text">
11525  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
11526    </p>
11527    </blockquote><p>
11528                    
11529  </p>  </p>
 </blockquote>  
   
11530  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
11531                  voice count change occurred and &lt;voices&gt; by the new number of                  voice count change occurred and &lt;voices&gt; by the new number of
11532                  active voices on that channel.                  active voices on that channel.
11533  </p>  </p>
11534  <a name="rfc.section.7.3"></a><h4><a name="SUBSCRIBE STREAM_COUNT">7.3</a>&nbsp;Number of active disk streams changed</h4>  <a name="SUBSCRIBE STREAM_COUNT"></a><br /><hr />
11535    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11536    <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
11537    Number of active disk streams changed</h3>
11538    
11539  <p>Client may want to be notified when the number of streams on the back-end  <p>Client may want to be notified when the number of streams on the back-end
11540                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT
11541  </p>  </p>
11542  <p></p>  <p>
11543                        </p>
11544  <blockquote class="text">  <blockquote class="text">
11545  <p>SUBSCRIBE STREAM_COUNT  <p>SUBSCRIBE STREAM_COUNT
11546  </p>  </p>
11547  </blockquote>  </blockquote><p>
11548                    
11549    </p>
11550  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
11551  </p>  </p>
11552  <p></p>  <p>
11553                        </p>
11554  <blockquote class="text">  <blockquote class="text">
11555  <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"  <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"
11556  </p>  </p>
11557  </blockquote>  </blockquote><p>
11558                    
11559    </p>
11560  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
11561                  stream count change occurred and &lt;streams&gt; by the new number of                  stream count change occurred and &lt;streams&gt; by the new number of
11562                  active disk streams on that channel.                  active disk streams on that channel.
11563  </p>  </p>
11564  <a name="rfc.section.7.4"></a><h4><a name="SUBSCRIBE BUFFER_FILL">7.4</a>&nbsp;Disk stream buffer fill state changed</h4>  <a name="SUBSCRIBE BUFFER_FILL"></a><br /><hr />
11565    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11566    <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
11567    Disk stream buffer fill state changed</h3>
11568    
11569  <p>Client may want to be notified when the buffer fill state of a disk stream  <p>Client may want to be notified when the buffer fill state of a disk stream
11570                  on the back-end changes by issuing the following command:                  on the back-end changes by issuing the following command:
11571  </p>  </p>
11572  <p></p>  <p>
11573                        </p>
11574  <blockquote class="text">  <blockquote class="text">
11575  <p>SUBSCRIBE BUFFER_FILL  <p>SUBSCRIBE BUFFER_FILL
11576  </p>  </p>
11577  </blockquote>  </blockquote><p>
11578                    
11579    </p>
11580  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
11581  </p>  </p>
11582  <p></p>  <p>
11583                        </p>
11584  <blockquote class="text">  <blockquote class="text">
11585  <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"  <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"
11586  </p>  </p>
11587  </blockquote>  </blockquote><p>
11588                    
11589    </p>
11590  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
11591                  buffer fill state change occurred on and &lt;fill-data&gt; will be replaced by the                  buffer fill state change occurred on and &lt;fill-data&gt; will be replaced by the
11592                  buffer fill data for this channel as described in <a class="info" href="#GET CHANNEL BUFFER_FILL">Section 5.4.13<span>Current fill state of disk stream buffers</span></a>                  buffer fill data for this channel as described in <a class='info' href='#GET CHANNEL BUFFER_FILL'>Section&nbsp;6.4.13<span> (</span><span class='info'>Current fill state of disk stream buffers</span><span>)</span></a>
11593                  as if the <a class="info" href="#GET CHANNEL BUFFER_FILL">"GET CHANNEL BUFFER_FILL PERCENTAGE"<span>Current fill state of disk stream buffers</span></a> command was issued on this channel.                  as if the <a class='info' href='#GET CHANNEL BUFFER_FILL'>"GET CHANNEL BUFFER_FILL PERCENTAGE"<span> (</span><span class='info'>Current fill state of disk stream buffers</span><span>)</span></a> command was issued on this channel.
11594  </p>  </p>
11595  <a name="rfc.section.7.5"></a><h4><a name="SUBSCRIBE INFO">7.5</a>&nbsp;Channel information changed</h4>  <a name="SUBSCRIBE CHANNEL_INFO"></a><br /><hr />
11596    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11597    <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
11598    Channel information changed</h3>
11599    
11600  <p>Client may want to be notified when changes were made to sampler channels on the  <p>Client may want to be notified when changes were made to sampler channels on the
11601                  back-end by issuing the following command:                  back-end by issuing the following command:
11602  </p>  </p>
11603  <p></p>  <p>
11604                        </p>
11605  <blockquote class="text">  <blockquote class="text">
11606  <p>SUBSCRIBE CHANNEL_INFO  <p>SUBSCRIBE CHANNEL_INFO
11607  </p>  </p>
11608  </blockquote>  </blockquote><p>
11609                    
11610    </p>
11611  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
11612  </p>  </p>
11613  <p></p>  <p>
11614                        </p>
11615  <blockquote class="text">  <blockquote class="text">
11616  <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"  <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"
11617  </p>  </p>
11618  </blockquote>  </blockquote><p>
11619                    
11620    </p>
11621  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the  <p>where &lt;sampler-channel&gt; will be replaced by the sampler channel the
11622                  channel info change occurred. The front-end will have to send                  channel info change occurred. The front-end will have to send
11623                  the respective command to actually get the channel info. Because these messages                  the respective command to actually get the channel info. Because these messages
# Line 4211  Intellectual Property and Copyright Stat Line 11625  Intellectual Property and Copyright Stat
11625                  time events happening on the server, it is believed that an empty notification                  time events happening on the server, it is believed that an empty notification
11626                  message is sufficient here.                  message is sufficient here.
11627  </p>  </p>
11628  <a name="rfc.section.7.6"></a><h4><a name="SUBSCRIBE MISCELLANEOUS">7.6</a>&nbsp;Miscellaneous and debugging events</h4>  <a name="SUBSCRIBE FX_SEND_COUNT"></a><br /><hr />
11629    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11630    <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
11631    Number of effect sends changed</h3>
11632    
11633    <p>Client may want to be notified when the number of effect sends on
11634                    a particular sampler channel is changed by issuing the following command:
11635    </p>
11636    <p>
11637                        </p>
11638    <blockquote class="text">
11639    <p>SUBSCRIBE FX_SEND_COUNT
11640    </p>
11641    </blockquote><p>
11642                    
11643    </p>
11644    <p>Server will start sending the following notification messages:
11645    </p>
11646    <p>
11647                        </p>
11648    <blockquote class="text">
11649    <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
11650    </p>
11651    </blockquote><p>
11652                    
11653    </p>
11654    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
11655                    channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
11656                    be replaced by the new number of effect sends on that channel.
11657    </p>
11658    <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
11659    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11660    <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
11661    Effect send information changed</h3>
11662    
11663    <p>Client may want to be notified when changes were made to effect sends on a
11664                    a particular sampler channel by issuing the following command:
11665    </p>
11666    <p>
11667                        </p>
11668    <blockquote class="text">
11669    <p>SUBSCRIBE FX_SEND_INFO
11670    </p>
11671    </blockquote><p>
11672                    
11673    </p>
11674    <p>Server will start sending the following notification messages:
11675    </p>
11676    <p>
11677                        </p>
11678    <blockquote class="text">
11679    <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
11680    </p>
11681    </blockquote><p>
11682                    
11683    </p>
11684    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
11685                    channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
11686                    be replaced by the numerical ID of the changed effect send.
11687    </p>
11688    <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
11689    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11690    <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
11691    Total number of active voices changed</h3>
11692    
11693    <p>Client may want to be notified when the total number of voices on the
11694                    back-end changes by issuing the following command:
11695    </p>
11696    <p>
11697                        </p>
11698    <blockquote class="text">
11699    <p>SUBSCRIBE TOTAL_VOICE_COUNT
11700    </p>
11701    </blockquote><p>
11702                    
11703    </p>
11704    <p>Server will start sending the following notification messages:
11705    </p>
11706    <p>
11707                        </p>
11708    <blockquote class="text">
11709    <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
11710    </p>
11711    </blockquote><p>
11712                    
11713    </p>
11714    <p>where &lt;voices&gt; will be replaced by the new number of
11715                    all currently active voices.
11716    </p>
11717    <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
11718    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11719    <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
11720    Total number of active disk streams changed</h3>
11721    
11722    <p>Client may want to be notified when the total number of disk streams on the
11723                    back-end changes by issuing the following command:
11724    </p>
11725    <p>
11726                        </p>
11727    <blockquote class="text">
11728    <p>SUBSCRIBE TOTAL_STREAM_COUNT
11729    </p>
11730    </blockquote><p>
11731                    
11732    </p>
11733    <p>Server will start sending the following notification messages:
11734    </p>
11735    <p>
11736                        </p>
11737    <blockquote class="text">
11738    <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
11739    </p>
11740    </blockquote><p>
11741                    
11742    </p>
11743    <p>where &lt;streams&gt; will be replaced by the new number of
11744                    all currently active disk streams.
11745    </p>
11746    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
11747    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11748    <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
11749    Number of MIDI instrument maps changed</h3>
11750    
11751    <p>Client may want to be notified when the number of MIDI instrument maps on the
11752                    back-end changes by issuing the following command:
11753    </p>
11754    <p>
11755                        </p>
11756    <blockquote class="text">
11757    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT
11758    </p>
11759    </blockquote><p>
11760                    
11761    </p>
11762    <p>Server will start sending the following notification messages:
11763    </p>
11764    <p>
11765                        </p>
11766    <blockquote class="text">
11767    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:&lt;maps&gt;"
11768    </p>
11769    </blockquote><p>
11770                    
11771    </p>
11772    <p>where &lt;maps&gt; will be replaced by the new number
11773                    of MIDI instrument maps.
11774    </p>
11775    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
11776    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11777    <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
11778    MIDI instrument map information changed</h3>
11779    
11780    <p>Client may want to be notified when changes were made to MIDI instrument maps on the
11781                    back-end by issuing the following command:
11782    </p>
11783    <p>
11784                        </p>
11785    <blockquote class="text">
11786    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO
11787    </p>
11788    </blockquote><p>
11789                    
11790    </p>
11791    <p>Server will start sending the following notification messages:
11792    </p>
11793    <p>
11794                        </p>
11795    <blockquote class="text">
11796    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_INFO:&lt;map-id&gt;"
11797    </p>
11798    </blockquote><p>
11799                    
11800    </p>
11801    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
11802                    for which information changes occurred. The front-end will have to send
11803                    the respective command to actually get the MIDI instrument map info. Because these messages
11804                    will be triggered by LSCP commands issued by other clients rather than real
11805                    time events happening on the server, it is believed that an empty notification
11806                    message is sufficient here.
11807    </p>
11808    <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
11809    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11810    <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
11811    Number of MIDI instruments changed</h3>
11812    
11813    <p>Client may want to be notified when the number of MIDI instrument maps on the
11814                    back-end changes by issuing the following command:
11815    </p>
11816    <p>
11817                        </p>
11818    <blockquote class="text">
11819    <p>SUBSCRIBE MIDI_INSTRUMENT_COUNT
11820    </p>
11821    </blockquote><p>
11822                    
11823    </p>
11824    <p>Server will start sending the following notification messages:
11825    </p>
11826    <p>
11827                        </p>
11828    <blockquote class="text">
11829    <p>"NOTIFY:MIDI_INSTRUMENT_COUNT:&lt;map-id&gt; &lt;instruments&gt;"
11830    </p>
11831    </blockquote><p>
11832                    
11833    </p>
11834    <p>where &lt;map-id&gt; is the numerical ID of the MIDI instrument map, in which
11835                    the nuber of instruments has changed and &lt;instruments&gt; will be replaced by
11836                    the new number of MIDI instruments in the specified map.
11837    </p>
11838    <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
11839    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11840    <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
11841    MIDI instrument information changed</h3>
11842    
11843    <p>Client may want to be notified when changes were made to MIDI instruments on the
11844                    back-end by issuing the following command:
11845    </p>
11846    <p>
11847                        </p>
11848    <blockquote class="text">
11849    <p>SUBSCRIBE MIDI_INSTRUMENT_INFO
11850    </p>
11851    </blockquote><p>
11852                    
11853    </p>
11854    <p>Server will start sending the following notification messages:
11855    </p>
11856    <p>
11857                        </p>
11858    <blockquote class="text">
11859    <p>"NOTIFY:MIDI_INSTRUMENT_INFO:&lt;map-id&gt; &lt;bank&gt; &lt;program&gt;"
11860    </p>
11861    </blockquote><p>
11862                    
11863    </p>
11864    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
11865                    in which a MIDI instrument is changed. &lt;bank&gt; and &lt;program&gt; specifies
11866                    the location of the changed MIDI instrument in the map. The front-end will have to send
11867                    the respective command to actually get the MIDI instrument info. Because these messages
11868                    will be triggered by LSCP commands issued by other clients rather than real
11869                    time events happening on the server, it is believed that an empty notification
11870                    message is sufficient here.
11871    </p>
11872    <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
11873    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11874    <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
11875    Global settings changed</h3>
11876    
11877    <p>Client may want to be notified when changes to the global settings
11878                    of the sampler were made by issuing the following command:
11879    </p>
11880    <p>
11881                        </p>
11882    <blockquote class="text">
11883    <p>SUBSCRIBE GLOBAL_INFO
11884    </p>
11885    </blockquote><p>
11886                    
11887    </p>
11888    <p>Server will start sending the following types of notification messages:
11889    </p>
11890    <p>
11891                        </p>
11892    <blockquote class="text">
11893    <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
11894                            golbal volume of the sampler is changed, where &lt;volume&gt; will be
11895                            replaced by the optional dotted floating point value, reflecting the
11896                            new global volume parameter.
11897    </p>
11898    </blockquote><p>
11899                        </p>
11900    <blockquote class="text">
11901    <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
11902                            golbal limit of the sampler for maximum voices is changed, where
11903                            &lt;max-voices&gt; will be an integer value, reflecting the
11904                            new global voice limit parameter.
11905    </p>
11906    </blockquote><p>
11907                        </p>
11908    <blockquote class="text">
11909    <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
11910                            golbal limit of the sampler for maximum disk streams is changed, where
11911                            &lt;max-streams&gt; will be an integer value, reflecting the
11912                            new global disk streams limit parameter.
11913    </p>
11914    </blockquote><p>
11915                    
11916    </p>
11917    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
11918    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11919    <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
11920    Number of database instrument directories changed</h3>
11921    
11922    <p>Client may want to be notified when the number of instrument
11923                    directories in a particular directory in the instruments database
11924                    is changed by issuing the following command:
11925    </p>
11926    <p>
11927                        </p>
11928    <blockquote class="text">
11929    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
11930    </p>
11931    </blockquote><p>
11932                    
11933    </p>
11934    <p>Server will start sending the following notification messages:
11935    </p>
11936    <p>
11937                        </p>
11938    <blockquote class="text">
11939    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
11940    </p>
11941    </blockquote><p>
11942                    
11943    </p>
11944    <p>where &lt;dir-path&gt; will be replaced by the absolute path
11945                    name of the directory in the instruments database,
11946                    in which the number of directories is changed.
11947    </p>
11948    <p>Note that when a non-empty directory is removed, this event
11949                    is not sent for the subdirectories in that directory.
11950    </p>
11951    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
11952    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11953    <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
11954    Database instrument directory information changed</h3>
11955    
11956    <p>Client may want to be notified when changes were made to directories
11957                    in the instruments database by issuing the following command:
11958    </p>
11959    <p>
11960                        </p>
11961    <blockquote class="text">
11962    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
11963    </p>
11964    </blockquote><p>
11965                    
11966    </p>
11967    <p>Server will start sending the following notification messages:
11968    </p>
11969    <p>
11970                        </p>
11971    <blockquote class="text">
11972    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
11973    </p>
11974    </blockquote><p>
11975                    
11976    </p>
11977    <p>where &lt;dir-path&gt; will be replaced by the absolute path name
11978                    of the directory, for which information changes occurred. The front-end will have to send
11979                    the respective command to actually get the updated directory info. Because these messages
11980                    will be triggered by LSCP commands issued by other clients rather than real
11981                    time events happening on the server, it is believed that an empty notification
11982                    message is sufficient here.
11983    </p>
11984    <p>
11985                        </p>
11986    <blockquote class="text">
11987    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
11988    </p>
11989    </blockquote><p>
11990                    
11991    </p>
11992    <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
11993                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
11994                    the new name of the directory, encapsulated into apostrophes.
11995    </p>
11996    <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
11997    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
11998    <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
11999    Number of database instruments changed</h3>
12000    
12001    <p>Client may want to be notified when the number of instruments
12002                    in a particular directory in the instruments database
12003                    is changed by issuing the following command:
12004    </p>
12005    <p>
12006                        </p>
12007    <blockquote class="text">
12008    <p>SUBSCRIBE DB_INSTRUMENT_COUNT
12009    </p>
12010    </blockquote><p>
12011                    
12012    </p>
12013    <p>Server will start sending the following notification messages:
12014    </p>
12015    <p>
12016                        </p>
12017    <blockquote class="text">
12018    <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
12019    </p>
12020    </blockquote><p>
12021                    
12022    </p>
12023    <p>where &lt;dir-path&gt; will be replaced by the absolute path
12024                    name of the directory in the instruments database,
12025                    in which the number of instruments is changed.
12026    </p>
12027    <p>Note that when a non-empty directory is removed, this event
12028                    is not sent for the instruments in that directory.
12029    </p>
12030    <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
12031    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12032    <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
12033    Database instrument information changed</h3>
12034    
12035    <p>Client may want to be notified when changes were made to instruments
12036                    in the instruments database by issuing the following command:
12037    </p>
12038    <p>
12039                        </p>
12040    <blockquote class="text">
12041    <p>SUBSCRIBE DB_INSTRUMENT_INFO
12042    </p>
12043    </blockquote><p>
12044                    
12045    </p>
12046    <p>Server will start sending the following notification messages:
12047    </p>
12048    <p>
12049                        </p>
12050    <blockquote class="text">
12051    <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
12052    </p>
12053    </blockquote><p>
12054                    
12055    </p>
12056    <p>where &lt;instr-path&gt; will be replaced by the absolute path name
12057                    of the instrument, which settings are changed. The front-end will have to send
12058                    the respective command to actually get the updated directory info. Because these messages
12059                    will be triggered by LSCP commands issued by other clients rather than real
12060                    time events happening on the server, it is believed that an empty notification
12061                    message is sufficient here.
12062    </p>
12063    <p>
12064                        </p>
12065    <blockquote class="text">
12066    <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
12067    </p>
12068    </blockquote><p>
12069                    
12070    </p>
12071    <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
12072                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
12073                    the new name of the instrument, encapsulated into apostrophes.
12074    </p>
12075    <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
12076    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12077    <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
12078    Database job status information changed</h3>
12079    
12080    <p>Client may want to be notified when the status of particular database
12081                    instruments job is changed by issuing the following command:
12082    </p>
12083    <p>
12084                        </p>
12085    <blockquote class="text">
12086    <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
12087    </p>
12088    </blockquote><p>
12089                    
12090    </p>
12091    <p>Server will start sending the following notification messages:
12092    </p>
12093    <p>
12094                        </p>
12095    <blockquote class="text">
12096    <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
12097    </p>
12098    </blockquote><p>
12099                    
12100    </p>
12101    <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
12102                    which status is changed. The front-end will have to send the respective
12103                    command to actually get the status info. Because these messages
12104                    will be triggered by LSCP commands issued by other clients rather than real
12105                    time events happening on the server, it is believed that an empty notification
12106                    message is sufficient here.
12107    </p>
12108    <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
12109    <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12110    <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
12111    Miscellaneous and debugging events</h3>
12112    
12113  <p>Client may want to be notified of miscellaneous and debugging events occurring at  <p>Client may want to be notified of miscellaneous and debugging events occurring at
12114                  the server by issuing the following command:                  the server by issuing the following command:
12115  </p>  </p>
12116  <p></p>  <p>
12117                        </p>
12118  <blockquote class="text">  <blockquote class="text">
12119  <p>SUBSCRIBE MISCELLANEOUS  <p>SUBSCRIBE MISCELLANEOUS
12120  </p>  </p>
12121  </blockquote>  </blockquote><p>
12122                    
12123    </p>
12124  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
12125  </p>  </p>
12126  <p></p>  <p>
12127                        </p>
12128  <blockquote class="text">  <blockquote class="text">
12129  <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"  <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"
12130  </p>  </p>
12131  </blockquote>  </blockquote><p>
12132                    
12133    </p>
12134  <p>where &lt;string&gt; will be replaced by whatever data server  <p>where &lt;string&gt; will be replaced by whatever data server
12135                  wants to send to the client. Client MAY display this data to the                  wants to send to the client. Client MAY display this data to the
12136                  user AS IS to facilitate debugging.                  user AS IS to facilitate debugging.
12137  </p>  </p>
12138  <a name="anchor15"></a><br /><hr />  <a name="anchor14"></a><br /><hr />
12139  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12140  <a name="rfc.section.8"></a><h3>8.&nbsp;Security Considerations</h3>  <a name="rfc.section.9"></a><h3>9.&nbsp;
12141    Security Considerations</h3>
12142    
12143  <p>As there is so far no method of authentication and authorization  <p>As there is so far no method of authentication and authorization
12144              defined and so not required for a client applications to succeed to              defined and so not required for a client applications to succeed to
12145              connect, running LinuxSampler might be a security risk for the host              connect, running LinuxSampler might be a security risk for the host
12146              system the LinuxSampler instance is running on.              system the LinuxSampler instance is running on.
12147  </p>  </p>
12148  <a name="anchor16"></a><br /><hr />  <a name="anchor15"></a><br /><hr />
12149  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12150  <a name="rfc.section.9"></a><h3>9.&nbsp;Acknowledgments</h3>  <a name="rfc.section.10"></a><h3>10.&nbsp;
12151    Acknowledgments</h3>
12152    
12153  <p>This document has benefited greatly from the comments of the  <p>This document has benefited greatly from the comments of the
12154              following people, discussed on the LinuxSampler developer's mailing              following people, discussed on the LinuxSampler developer's mailing
12155              list:              list:
12156  </p>  </p>
12157  <p></p>  <p>
12158                    </p>
12159  <blockquote class="text">  <blockquote class="text">
12160  <p>Rui Nuno Capela  <p>Rui Nuno Capela
12161  </p>  </p>
# Line 4261  Intellectual Property and Copyright Stat Line 12165  Intellectual Property and Copyright Stat
12165  </p>  </p>
12166  <p>Grigor Iliev  <p>Grigor Iliev
12167  </p>  </p>
12168  </blockquote>  </blockquote><p>
12169                
12170    </p>
12171  <a name="rfc.references1"></a><br /><hr />  <a name="rfc.references1"></a><br /><hr />
12172  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12173  <h3>10&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
12174  <table width="99%" border="0">  <table width="99%" border="0">
12175    <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
12176    <td class="author-text">UCLA, &ldquo;<a href="http://tools.ietf.org/html/rfc20">ASCII format for Network Interchange</a>,&rdquo; RFC&nbsp;20, 1969.</td></tr>
12177  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>  <tr><td class="author-text" valign="top"><a name="RFC2119">[RFC2119]</a></td>
12178  <td class="author-text"><a href="mailto:sob@harvard.edu">Bradner, S.</a>, "<a href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">Key words for use in RFCs to Indicate Requirement Levels</a>", BCP 14, RFC 2119, March 1997 (<a href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2119.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2119.xml">XML</a>).</td></tr>  <td class="author-text">Bradner, S., &ldquo;<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>,&rdquo; RFC&nbsp;2119, 1997.</td></tr>
12179    <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
12180    <td class="author-text">Crocker, D. and P. Overell, &ldquo;<a href="http://tools.ietf.org/html/rfc2234">Augmented BNF for Syntax Specifications</a>,&rdquo; RFC&nbsp;2234, 1997.</td></tr>
12181    <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
12182    <td class="author-text">Defense Advanced Research Projects Agency, &ldquo;<a href="http://tools.ietf.org/html/rfc793">TRANSMISSION CONTROL PROTOCOL</a>,&rdquo; RFC&nbsp;793, 1981.</td></tr>
12183  </table>  </table>
12184    
12185  <a name="rfc.authors"></a><br /><hr />  <a name="rfc.authors"></a><br /><hr />
12186  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
12187  <h3>Author's Address</h3>  <h3>Author's Address</h3>
12188  <table width="99%" border="0" cellpadding="0" cellspacing="0">  <table width="99%" border="0" cellpadding="0" cellspacing="0">
12189  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
# Line 4286  Schoenebeck</td></tr> Line 12197  Schoenebeck</td></tr>
12197  <td class="author-text">74081 Heilbronn</td></tr>  <td class="author-text">74081 Heilbronn</td></tr>
12198  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
12199  <td class="author-text">Germany</td></tr>  <td class="author-text">Germany</td></tr>
12200  <tr><td class="author" align="right">EMail:&nbsp;</td>  <tr><td class="author" align="right">Email:&nbsp;</td>
12201  <td class="author-text"><a href="mailto:schoenebeck at software minus engineering dot org">schoenebeck at software minus engineering dot org</a></td></tr>  <td class="author-text"><a href="mailto:schoenebeck at software minus engineering dot org">schoenebeck at software minus engineering dot org</a></td></tr>
12202  </table>  </table>
12203  <a name="rfc.copyright"></a><br /><hr />  <a name="rfc.copyright"></a><br /><hr />
12204  <table summary="layout" cellpadding="0" cellspacing="2" class="bug" align="right"><tr><td class="bug"><a href="#toc" class="link2">&nbsp;TOC&nbsp;</a></td></tr></table>  <table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
 <h3>Intellectual Property Statement</h3>  
 <p class='copyright'>  
 The IETF takes no position regarding the validity or scope of  
 any intellectual property or other rights that might be claimed  
 to  pertain to the implementation or use of the technology  
 described in this document or the extent to which any license  
 under such rights might or might not be available; neither does  
 it represent that it has made any effort to identify any such  
 rights. Information on the IETF's procedures with respect to  
 rights in standards-track and standards-related documentation  
 can be found in BCP-11. Copies of claims of rights made  
 available for publication and any assurances of licenses to  
 be made available, or the result of an attempt made  
 to obtain a general license or permission for the use of such  
 proprietary rights by implementors or users of this  
 specification can be obtained from the IETF Secretariat.</p>  
 <p class='copyright'>  
 The IETF invites any interested party to bring to its  
 attention any copyrights, patents or patent applications, or  
 other proprietary rights which may cover technology that may be  
 required to practice this standard. Please address the  
 information to the IETF Executive Director.</p>  
12205  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
12206  <p class='copyright'>  <p class='copyright'>
12207  Copyright (C) The Internet Society (2005). All Rights Reserved.</p>  Copyright &copy; The IETF Trust (2009).</p>
12208  <p class='copyright'>  <p class='copyright'>
12209  This document and translations of it may be copied and furnished to  This document is subject to the rights,
12210  others, and derivative works that comment on or otherwise explain it  licenses and restrictions contained in BCP&nbsp;78,
12211  or assist in its implementation may be prepared, copied, published and  and except as set forth therein,
12212  distributed, in whole or in part, without restriction of any kind,  the authors retain all their rights.</p>
 provided that the above copyright notice and this paragraph are  
 included on all such copies and derivative works. However, this  
 document itself may not be modified in any way, such as by removing  
 the copyright notice or references to the Internet Society or other  
 Internet organizations, except as needed for the purpose of  
 developing Internet standards in which case the procedures for  
 copyrights defined in the Internet Standards process must be  
 followed, or as required to translate it into languages other than  
 English.</p>  
12213  <p class='copyright'>  <p class='copyright'>
12214  The limited permissions granted above are perpetual and will not be  This document and the information contained herein are provided
12215  revoked by the Internet Society or its successors or assignees.</p>  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
12216    THE ORGANIZATION HE/SHE REPRESENTS
12217    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
12218    AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
12219    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
12220    THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
12221    IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
12222    PURPOSE.</p>
12223    <h3>Intellectual Property</h3>
12224  <p class='copyright'>  <p class='copyright'>
12225  This document and the information contained herein is provided on an  The IETF takes no position regarding the validity or scope of any
12226  &quot;AS IS&quot; basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING  Intellectual Property Rights or other rights that might be claimed
12227  TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING  to pertain to the implementation or use of the technology
12228  BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION  described in this document or the extent to which any license
12229  HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF  under such rights might or might not be available; nor does it
12230  MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>  represent that it has made any independent effort to identify any
12231  <h3>Acknowledgment</h3>  such rights.
12232    Information on the procedures with respect to
12233    rights in RFC documents can be found in BCP&nbsp;78 and BCP&nbsp;79.</p>
12234    <p class='copyright'>
12235    Copies of IPR disclosures made to the IETF Secretariat and any
12236    assurances of licenses to be made available,
12237    or the result of an attempt made to obtain a general license or
12238    permission for the use of such proprietary rights by implementers or
12239    users of this specification can be obtained from the IETF on-line IPR
12240    repository at <a href='http://www.ietf.org/ipr'>http://www.ietf.org/ipr</a>.</p>
12241  <p class='copyright'>  <p class='copyright'>
12242  Funding for the RFC Editor function is currently provided by the  The IETF invites any interested party to bring to its attention
12243  Internet Society.</p>  any copyrights,
12244    patents or patent applications,
12245    or other
12246    proprietary rights that may cover technology that may be required
12247    to implement this standard.
12248    Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
12249  </body></html>  </body></html>
12250    

Legend:
Removed from v.561  
changed lines
  Added in v.2023

  ViewVC Help
Powered by ViewVC