/[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 558 by schoenebeck, Sat May 21 01:30:30 2005 UTC revision 2498 by schoenebeck, Thu Jan 9 22:05:21 2014 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.35 (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; }
         font-family: helvetica, arial, sans-serif;  
         background-color: transparent; }  
     td.rfcbug { background-color: #000000 ; width: 30px ; height: 30px ;  
         text-align: justify; vertical-align: middle ; padding-top: 2px ; }  
     td.rfcbug span.RFC { color: #666666; font-weight: bold; text-decoration: none;  
         background-color: #000000 ;  
         font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;  
         font-size: x-small ; }  
     td.rfcbug span.hotText { color: #ffffff; font-weight: normal; text-decoration: none;  
         text-align: center ;  
         font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;  
         font-size: x-small ; background-color: #000000; }  
 /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */  
     div#counter{margin-top: 100px}  
   
     a.info{  
         position:relative; /*this is the key*/  
         z-index:24;  
         text-decoration:none}  
   
     a.info:hover{z-index:25; background-color:#990000 ; color: #ffffff ;}  
   
     a.info span{display: none}  
   
     a.info:hover span{ /*the span will display just on :hover state*/  
         display:block;  
         position:absolute;  
         font-size: smaller ;  
         top:2em; left:2em; width:15em;  
         padding: 2px ;  
         border:1px solid #333333;  
         background-color:#eeeeee; color:#990000;  
         text-align: left ;}  
   
      A { font-weight: bold; }  
      A:link { color: #990000; background-color: transparent ; }  
      A:visited { color: #333333; background-color: transparent ; }  
      A:active { color: #333333; background-color: transparent ; }  
   
     p { margin-left: 2em; margin-right: 2em; }  
     p.copyright { font-size: x-small ; }  
     p.toc { font-size: small ; font-weight: bold ; margin-left: 3em ;}  
   
     span.emph { font-style: italic; }  
     span.strong { font-weight: bold; }  
     span.verb { font-family: "Courier New", Courier, monospace ; }  
   
     ol.text { margin-left: 2em; margin-right: 2em; }  
     ul.text { margin-left: 2em; margin-right: 2em; }  
     li { margin-left: 3em;  }  
19    
20      pre { margin-left: 3em; color: #333333;  background-color: transparent;          td.RFCbug {
21          font-family: "Courier New", Courier, monospace ; font-size: small ;                  font-size: x-small; text-decoration: none;
22                    width: 30px; height: 30px; padding-top: 2px;
23                    text-align: justify; vertical-align: middle;
24                    background-color: #000;
25            }
26            td.RFCbug span.RFC {
27                    font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
28                    font-weight: bold; color: #666;
29            }
30            td.RFCbug span.hotText {
31                    font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
32                    font-weight: normal; text-align: center; color: #FFF;
33          }          }
34    
35      h3 { color: #333333; font-size: medium ;          table.TOCbug { width: 30px; height: 15px; }
36          font-family: helvetica, arial, sans-serif ;          td.TOCbug {
37          background-color: transparent; }                  text-align: center; width: 30px; height: 15px;
38      h4 { font-size: small; font-family: helvetica, arial, sans-serif ; }                  color: #FFF; background-color: #900;
39            }
40      table.bug { width: 30px ; height: 15px ; }          td.TOCbug a {
41      td.bug { color: #ffffff ; background-color: #990000 ;                  font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
42          text-align: center ; width: 30px ; height: 15px ;                  font-weight: bold; font-size: x-small; text-decoration: none;
43           }                  color: #FFF; background-color: transparent;
44      td.bug A.link2 { color: #ffffff ; font-weight: bold;          }
45          text-decoration: none;  
46          font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;          td.header {
47          font-size: x-small ; background-color: transparent }                  font-family: arial, helvetica, sans-serif; font-size: x-small;
48                    vertical-align: top; width: 33%;
49      td.header { color: #ffffff; font-size: x-small ;                  color: #FFF; background-color: #666;
50          font-family: arial, helvetica, sans-serif; vertical-align: top;          }
51          background-color: #666666 ; width: 33% ; }          td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
52      td.author { font-weight: bold; margin-left: 4em; font-size: x-small ; }          td.author-text { font-size: x-small; }
53      td.author-text { font-size: x-small; }  
54      table.data { vertical-align: top ; border-collapse: collapse ;          /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
55          border-style: solid solid solid solid ;          a.info {
56          border-color: black black black black ;                  /* This is the key. */
57          font-size: small ; text-align: center ; }                  position: relative;
58      table.data th { font-weight: bold ;                  z-index: 24;
59          border-style: solid solid solid solid ;                  text-decoration: none;
60          border-color: black black black black ; }          }
61      table.data td {          a.info:hover {
62          border-style: solid solid solid solid ;                  z-index: 25;
63          border-color: #333333 #333333 #333333 #333333 ; }                  color: #FFF; background-color: #900;
64            }
65      hr { height: 1px }          a.info span { display: none; }
66  -->          a.info:hover span.info {
67  </style>                  /* The span will display just on :hover state. */
68                    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            a { font-weight: bold; }
78            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            hr { height: 1px; }
136            hr.insert {
137                    width: 80%; border-style: none; border-width: 0;
138                    color: #CCC; background-color: #CCC;
139            }
140    --></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">LinuxSampler.org</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">January 9, 2014</td></tr>
148  <tr><td class="header">&nbsp;</td><td class="header">May 21, 2005</td></tr>  <tr><td class="header">Expires: July 13, 2014</td><td class="header">&nbsp;</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.6</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).  Note that other groups may also distribute
171  Note that other groups may also distribute working documents as  working documents as Internet-Drafts.  The list of current
172  Internet-Drafts.</p>  Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.</p>
173  <p>  <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>
 <p>  
 The list of current Internet-Drafts can be accessed at  
 <a href='http://www.ietf.org/ietf/1id-abstracts.txt'>http://www.ietf.org/ietf/1id-abstracts.txt</a>.</p>  
178  <p>  <p>
179  The list of Internet-Draft Shadow Directories can be accessed at  This Internet-Draft will expire on July 13, 2014.</p>
180  <a href='http://www.ietf.org/shadow.html'>http://www.ietf.org/shadow.html</a>.</p>  <a name="toc"></a><br /><hr />
 <p>  
 This Internet-Draft will expire on November 19, 2005.</p>  
   
 <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 />  
181  <h3>Table of Contents</h3>  <h3>Table of Contents</h3>
182  <p class="toc">  <p class="toc">
183  <a href="#anchor1">1.</a>&nbsp;  <a href="#anchor1">1.</a>&nbsp;
184  Requirements notation<br />  Requirements notation<br />
185  <a href="#anchor2">2.</a>&nbsp;  <a href="#LSCP versioning">2.</a>&nbsp;
186    Versioning of this specification<br />
187    <a href="#anchor2">3.</a>&nbsp;
188  Introduction<br />  Introduction<br />
189  <a href="#anchor3">3.</a>&nbsp;  <a href="#anchor3">4.</a>&nbsp;
190  Focus of this protocol<br />  Focus of this protocol<br />
191  <a href="#anchor4">4.</a>&nbsp;  <a href="#anchor4">5.</a>&nbsp;
192  Communication Overview<br />  Communication Overview<br />
193  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">4.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor5">5.1.</a>&nbsp;
194  Request/response communication method<br />  Request/response communication method<br />
195  &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;
196  Result format<br />  Result format<br />
197  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">4.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor7">5.2.</a>&nbsp;
198  Subscribe/notify communication method<br />  Subscribe/notify communication method<br />
199  <a href="#anchor8">5.</a>&nbsp;  <a href="#control_commands">6.</a>&nbsp;
200  Description for control commands<br />  Description for control commands<br />
201  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">5.1</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor8">6.1.</a>&nbsp;
202  Ignored lines and comments<br />  Ignored lines and comments<br />
203  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">5.2</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor9">6.2.</a>&nbsp;
204  Configuring audio drivers<br />  Configuring audio drivers<br />
205  &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;
206  Getting amount of available audio output drivers<br />  Getting amount of available audio output drivers<br />
207  &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;
208  Getting all available audio output drivers<br />  Getting all available audio output drivers<br />
209  &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;
210  Getting information about a specific audio  Getting information about a specific audio
211                  output driver<br />                  output driver<br />
212  &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;
213  Getting information about specific audio  Getting information about specific audio
214                  output driver parameter<br />                  output driver parameter<br />
215  &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;
216  Creating an audio output device<br />  Creating an audio output device<br />
217  &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;
218  Destroying an audio output device<br />  Destroying an audio output device<br />
219  &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;
220  Getting all created audio output device count<br />  Getting all created audio output device count<br />
221  &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;
222  Getting all created audio output device list<br />  Getting all created audio output device list<br />
223  &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;
224  Getting current settings of an audio output device<br />  Getting current settings of an audio output device<br />
225  &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;
226  Changing settings of audio output devices<br />  Changing settings of audio output devices<br />
227  &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;
228  Getting information about an audio channel<br />  Getting information about an audio channel<br />
229  &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;
230  Getting information about specific audio channel parameter<br />  Getting information about specific audio channel parameter<br />
231  &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;
232  Changing settings of audio output channels<br />  Changing settings of audio output channels<br />
233  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">5.3</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor10">6.3.</a>&nbsp;
234  Configuring MIDI input drivers<br />  Configuring MIDI input drivers<br />
235  &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;
236  Getting amount of available MIDI input drivers<br />  Getting amount of available MIDI input drivers<br />
237  &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;
238  Getting all available MIDI input drivers<br />  Getting all available MIDI input drivers<br />
239  &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;
240  Getting information about a specific MIDI input driver<br />  Getting information about a specific MIDI input driver<br />
241  &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;
242  Getting information about specific MIDI input driver parameter<br />  Getting information about specific MIDI input driver parameter<br />
243  &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;
244  Creating a MIDI input device<br />  Creating a MIDI input device<br />
245  &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;
246  Destroying a MIDI input device<br />  Destroying a MIDI input device<br />
247  &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;
248  Getting all created MIDI input device count<br />  Getting all created MIDI input device count<br />
249  &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;
250  Getting all created MIDI input device list<br />  Getting all created MIDI input device list<br />
251  &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;
252  Getting current settings of a MIDI input device<br />  Getting current settings of a MIDI input device<br />
253  &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;
254  Changing settings of MIDI input devices<br />  Changing settings of MIDI input devices<br />
255  &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;
256  Getting information about a MIDI port<br />  Getting information about a MIDI port<br />
257  &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;
258  Getting information about specific MIDI port parameter<br />  Getting information about specific MIDI port parameter<br />
259  &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;
260  Changing settings of MIDI input ports<br />  Changing settings of MIDI input ports<br />
261  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">5.4</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor11">6.4.</a>&nbsp;
262  Configuring sampler channels<br />  Configuring sampler channels<br />
263  &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;
264  Loading an instrument<br />  Loading an instrument<br />
265  &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;
266  Loading a sampler engine<br />  Loading a sampler engine<br />
267  &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;
268  Getting all created sampler channel count<br />  Getting all created sampler channel count<br />
269  &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;
270  Getting all created sampler channel list<br />  Getting all created sampler channel list<br />
271  &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;
272  Adding a new sampler channel<br />  Adding a new sampler channel<br />
273  &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;
274  Removing a sampler channel<br />  Removing a sampler channel<br />
275  &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;
276  Getting amount of available engines<br />  Getting amount of available engines<br />
277  &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;
278  Getting all available engines<br />  Getting all available engines<br />
279  &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;
280  Getting information about an engine<br />  Getting information about an engine<br />
281  &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;
282  Getting sampler channel information<br />  Getting sampler channel information<br />
283  &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;
284  Current number of active voices<br />  Current number of active voices<br />
285  &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;
286  Current number of active disk streams<br />  Current number of active disk streams<br />
287  &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;
288  Current fill state of disk stream buffers<br />  Current fill state of disk stream buffers<br />
289  &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;
290  Setting audio output device<br />  Setting audio output device<br />
291  &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;
292  Setting audio output type<br />  Setting audio output type<br />
293  &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;
294  Setting audio output channel<br />  Setting audio output channel<br />
295  &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="#ADD CHANNEL MIDI_INPUT">6.4.17.</a>&nbsp;
296    Add MIDI input to sampler channel<br />
297    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE CHANNEL MIDI_INPUT">6.4.18.</a>&nbsp;
298    Remove MIDI input(s) from sampler channel<br />
299    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST CHANNEL MIDI_INPUTS">6.4.19.</a>&nbsp;
300    Getting all MIDI inputs of a sampler channel<br />
301    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL MIDI_INPUT_DEVICE">6.4.20.</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.21.</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.22.</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.23.</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.24.</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.25.</a>&nbsp;
312    Muting a sampler channel<br />
313    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET CHANNEL SOLO">6.4.26.</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.27.</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.28.</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.29.</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.30.</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.31.</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.32.</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.33.</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.34.</a>&nbsp;
330    Altering effect send's audio routing<br />
331    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND EFFECT">6.4.35.</a>&nbsp;
332    Assigning destination effect to an effect send<br />
333    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE FX_SEND EFFECT">6.4.36.</a>&nbsp;
334    Removing destination effect from an effect send<br />
335    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND MIDI_CONTROLLER">6.4.37.</a>&nbsp;
336    Altering effect send's MIDI controller<br />
337    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET FX_SEND LEVEL">6.4.38.</a>&nbsp;
338    Altering effect send's send level<br />
339    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SEND CHANNEL MIDI_DATA">6.4.39.</a>&nbsp;
340    Sending MIDI messages to sampler channel<br />
341    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET CHANNEL">6.4.40.</a>&nbsp;
342  Resetting a sampler channel<br />  Resetting a sampler channel<br />
343  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">5.5</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor12">6.5.</a>&nbsp;
344  Controlling connection<br />  Controlling connection<br />
345  &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;
346  Register front-end for receiving event messages<br />  Register front-end for receiving event messages<br />
347  &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;
348  Unregister front-end for not receiving event messages<br />  Unregister front-end for not receiving event messages<br />
349  &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;
350  Enable or disable echo of commands<br />  Enable or disable echo of commands<br />
351  &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;
352  Close client connection<br />  Close client connection<br />
353  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor14">5.6</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor13">6.6.</a>&nbsp;
354  Global commands<br />  Global commands<br />
355  &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;
356    Current number of active voices<br />
357    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_VOICE_COUNT_MAX">6.6.2.</a>&nbsp;
358    Maximum amount of active voices<br />
359    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET TOTAL_STREAM_COUNT">6.6.3.</a>&nbsp;
360    Current number of active disk streams<br />
361    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#RESET">6.6.4.</a>&nbsp;
362  Reset sampler<br />  Reset sampler<br />
363  <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;
364    General sampler informations<br />
365    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOLUME">6.6.6.</a>&nbsp;
366    Getting global volume attenuation<br />
367    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOLUME">6.6.7.</a>&nbsp;
368    Setting global volume attenuation<br />
369    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET VOICES">6.6.8.</a>&nbsp;
370    Getting global voice limit<br />
371    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET VOICES">6.6.9.</a>&nbsp;
372    Setting global voice limit<br />
373    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET STREAMS">6.6.10.</a>&nbsp;
374    Getting global disk stream limit<br />
375    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET STREAMS">6.6.11.</a>&nbsp;
376    Setting global disk stream limit<br />
377    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#MIDI Instrument Mapping">6.7.</a>&nbsp;
378    MIDI Instrument Mapping<br />
379    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD MIDI_INSTRUMENT_MAP">6.7.1.</a>&nbsp;
380    Create a new MIDI instrument map<br />
381    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE MIDI_INSTRUMENT_MAP">6.7.2.</a>&nbsp;
382    Delete one particular or all MIDI instrument maps<br />
383    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAPS">6.7.3.</a>&nbsp;
384    Get amount of existing MIDI instrument maps<br />
385    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENT_MAPS">6.7.4.</a>&nbsp;
386    Getting all created MIDI instrument maps<br />
387    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT_MAP INFO">6.7.5.</a>&nbsp;
388    Getting MIDI instrument map information<br />
389    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET MIDI_INSTRUMENT_MAP NAME">6.7.6.</a>&nbsp;
390    Renaming a MIDI instrument map<br />
391    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MAP MIDI_INSTRUMENT">6.7.7.</a>&nbsp;
392    Create or replace a MIDI instrument map entry<br />
393    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENTS">6.7.8.</a>&nbsp;
394    Getting amount of MIDI instrument map entries<br />
395    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST MIDI_INSTRUMENTS">6.7.9.</a>&nbsp;
396    Getting indeces of all entries of a MIDI instrument map<br />
397    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#UNMAP MIDI_INSTRUMENT">6.7.10.</a>&nbsp;
398    Remove an entry from the MIDI instrument map<br />
399    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET MIDI_INSTRUMENT INFO">6.7.11.</a>&nbsp;
400    Get current settings of MIDI instrument map entry<br />
401    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CLEAR MIDI_INSTRUMENTS">6.7.12.</a>&nbsp;
402    Clear MIDI instrument map<br />
403    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#Managing Instruments Database">6.8.</a>&nbsp;
404    Managing Instruments Database<br />
405    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENT_DIRECTORY">6.8.1.</a>&nbsp;
406    Creating a new instrument directory<br />
407    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT_DIRECTORY">6.8.2.</a>&nbsp;
408    Deleting an instrument directory<br />
409    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORIES">6.8.3.</a>&nbsp;
410    Getting amount of instrument directories<br />
411    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENT_DIRECTORIES">6.8.4.</a>&nbsp;
412    Listing all directories in specific directory<br />
413    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT_DIRECTORY INFO">6.8.5.</a>&nbsp;
414    Getting instrument directory information<br />
415    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY NAME">6.8.6.</a>&nbsp;
416    Renaming an instrument directory<br />
417    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT_DIRECTORY">6.8.7.</a>&nbsp;
418    Moving an instrument directory<br />
419    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT_DIRECTORY">6.8.8.</a>&nbsp;
420    Copying instrument directories<br />
421    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT_DIRECTORY DESCRIPTION">6.8.9.</a>&nbsp;
422    Changing the description of directory<br />
423    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENT_DIRECTORIES">6.8.10.</a>&nbsp;
424    Finding directories<br />
425    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD DB_INSTRUMENTS">6.8.11.</a>&nbsp;
426    Adding instruments to the instruments database<br />
427    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE DB_INSTRUMENT">6.8.12.</a>&nbsp;
428    Removing an instrument<br />
429    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS">6.8.13.</a>&nbsp;
430    Getting amount of instruments<br />
431    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST DB_INSTRUMENTS">6.8.14.</a>&nbsp;
432    Listing all instruments in specific directory<br />
433    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENT INFO">6.8.15.</a>&nbsp;
434    Getting instrument information<br />
435    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT NAME">6.8.16.</a>&nbsp;
436    Renaming an instrument<br />
437    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#MOVE DB_INSTRUMENT">6.8.17.</a>&nbsp;
438    Moving an instrument<br />
439    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#COPY DB_INSTRUMENT">6.8.18.</a>&nbsp;
440    Copying instruments<br />
441    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT DESCRIPTION">6.8.19.</a>&nbsp;
442    Changing the description of instrument<br />
443    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND DB_INSTRUMENTS">6.8.20.</a>&nbsp;
444    Finding instruments<br />
445    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET DB_INSTRUMENTS_JOB INFO">6.8.21.</a>&nbsp;
446    Getting job status information<br />
447    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FORMAT INSTRUMENTS_DB">6.8.22.</a>&nbsp;
448    Formatting the instruments database<br />
449    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#FIND LOST DB_INSTRUMENT_FILES">6.8.23.</a>&nbsp;
450    Checking for lost instrument files<br />
451    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET DB_INSTRUMENT FILE_PATH">6.8.24.</a>&nbsp;
452    Replacing an instrument file<br />
453    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#editing_instruments">6.9.</a>&nbsp;
454    Editing Instruments<br />
455    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#EDIT INSTRUMENT">6.9.1.</a>&nbsp;
456    Opening an appropriate instrument editor application<br />
457    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#file_management">6.10.</a>&nbsp;
458    Managing Files<br />
459    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENTS">6.10.1.</a>&nbsp;
460    Retrieving amount of instruments of a file<br />
461    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST FILE INSTRUMENTS">6.10.2.</a>&nbsp;
462    Retrieving all instruments of a file<br />
463    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET FILE INSTRUMENT INFO">6.10.3.</a>&nbsp;
464    Retrieving informations about one instrument in a file<br />
465    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#effects">6.11.</a>&nbsp;
466    Managing Effects<br />
467    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET AVAILABLE_EFFECTS">6.11.1.</a>&nbsp;
468    Retrieve amount of available effects<br />
469    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST AVAILABLE_EFFECTS">6.11.2.</a>&nbsp;
470    Get list of available effects<br />
471    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT INFO">6.11.3.</a>&nbsp;
472    Retrieving general information about an effect<br />
473    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE EFFECT_INSTANCE">6.11.4.</a>&nbsp;
474    Creating an instance of an effect by its portable ID<br />
475    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#CREATE EFFECT_INSTANCE (non-portable)">6.11.5.</a>&nbsp;
476    Creating an instance of an effect by its numerical ID<br />
477    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#DESTROY EFFECT_INSTANCE">6.11.6.</a>&nbsp;
478    Destroy an effect instance<br />
479    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCES">6.11.7.</a>&nbsp;
480    Retrieve amount of effect instances<br />
481    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST EFFECT_INSTANCES">6.11.8.</a>&nbsp;
482    Get list of effect instances<br />
483    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCE INFO">6.11.9.</a>&nbsp;
484    Retrieving current information about an effect instance<br />
485    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET EFFECT_INSTANCE_INPUT_CONTROL INFO">6.11.10.</a>&nbsp;
486    Retrieving information about an effect parameter<br />
487    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SET EFFECT_INSTANCE_INPUT_CONTROL VALUE">6.11.11.</a>&nbsp;
488    Altering an effect parameter<br />
489    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SEND_EFFECT_CHAINS">6.11.12.</a>&nbsp;
490    Retrieve amount of send effect chains<br />
491    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#LIST SEND_EFFECT_CHAINS">6.11.13.</a>&nbsp;
492    Retrieve list of send effect chains<br />
493    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#ADD SEND_EFFECT_CHAIN">6.11.14.</a>&nbsp;
494    Add send effect chain<br />
495    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE SEND_EFFECT_CHAIN">6.11.15.</a>&nbsp;
496    Remove send effect chain<br />
497    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#GET SEND_EFFECT_CHAIN INFO">6.11.16.</a>&nbsp;
498    Retrieving information about a send effect chain<br />
499    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#APPEND SEND_EFFECT_CHAIN EFFECT">6.11.17.</a>&nbsp;
500    Append effect instance to a send effect chain<br />
501    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#INSERT SEND_EFFECT_CHAIN EFFECT">6.11.18.</a>&nbsp;
502    Insert effect instance to a send effect chain<br />
503    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#REMOVE SEND_EFFECT_CHAIN EFFECT">6.11.19.</a>&nbsp;
504    Remove effect instance from send effect chain<br />
505    <a href="#command_syntax">7.</a>&nbsp;
506  Command Syntax<br />  Command Syntax<br />
507  <a href="#events">7.</a>&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;<a href="#character_set">7.1.</a>&nbsp;
508    Character Set and Escape Sequences<br />
509    <a href="#events">8.</a>&nbsp;
510  Events<br />  Events<br />
511  &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;
512    Number of audio output devices changed<br />
513    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO">8.2.</a>&nbsp;
514    Audio output device's settings changed<br />
515    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_COUNT">8.3.</a>&nbsp;
516    Number of MIDI input devices changed<br />
517    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INPUT_DEVICE_INFO">8.4.</a>&nbsp;
518    MIDI input device's settings changed<br />
519    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE CHANNEL_COUNT">8.5.</a>&nbsp;
520  Number of sampler channels changed<br />  Number of sampler channels changed<br />
521  &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;
522    MIDI data on a sampler channel arrived<br />
523    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DEVICE_MIDI">8.7.</a>&nbsp;
524    MIDI data on a MIDI input device arrived<br />
525    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE VOICE_COUNT">8.8.</a>&nbsp;
526  Number of active voices changed<br />  Number of active voices changed<br />
527  &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;
528  Number of active disk streams changed<br />  Number of active disk streams changed<br />
529  &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;
530  Disk stream buffer fill state changed<br />  Disk stream buffer fill state changed<br />
531  &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;
532  Channel information changed<br />  Channel information changed<br />
533  &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;
534    Number of effect sends changed<br />
535    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE FX_SEND_INFO">8.13.</a>&nbsp;
536    Effect send information changed<br />
537    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_VOICE_COUNT">8.14.</a>&nbsp;
538    Total number of active voices changed<br />
539    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE TOTAL_STREAM_COUNT">8.15.</a>&nbsp;
540    Total number of active disk streams changed<br />
541    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT">8.16.</a>&nbsp;
542    Number of MIDI instrument maps changed<br />
543    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO">8.17.</a>&nbsp;
544    MIDI instrument map information changed<br />
545    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_COUNT">8.18.</a>&nbsp;
546    Number of MIDI instruments changed<br />
547    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MIDI_INSTRUMENT_INFO">8.19.</a>&nbsp;
548    MIDI instrument information changed<br />
549    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE GLOBAL_INFO">8.20.</a>&nbsp;
550    Global settings changed<br />
551    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT">8.21.</a>&nbsp;
552    Number of database instrument directories changed<br />
553    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO">8.22.</a>&nbsp;
554    Database instrument directory information changed<br />
555    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_COUNT">8.23.</a>&nbsp;
556    Number of database instruments changed<br />
557    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENT_INFO">8.24.</a>&nbsp;
558    Database instrument information changed<br />
559    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE DB_INSTRUMENTS_JOB_INFO">8.25.</a>&nbsp;
560    Database job status information changed<br />
561    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE EFFECT_INSTANCE_COUNT">8.26.</a>&nbsp;
562    Number of effect instances changed<br />
563    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE EFFECT_INSTANCE_INFO">8.27.</a>&nbsp;
564    Effect instance information changed<br />
565    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE SEND_EFFECT_CHAIN_COUNT">8.28.</a>&nbsp;
566    Number of send effect chains changed<br />
567    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE SEND_EFFECT_CHAIN_INFO">8.29.</a>&nbsp;
568    Send effect chain information changed<br />
569    &nbsp;&nbsp;&nbsp;&nbsp;<a href="#SUBSCRIBE MISCELLANEOUS">8.30.</a>&nbsp;
570  Miscellaneous and debugging events<br />  Miscellaneous and debugging events<br />
571  <a href="#anchor15">8.</a>&nbsp;  <a href="#anchor14">9.</a>&nbsp;
572  Security Considerations<br />  Security Considerations<br />
573  <a href="#anchor16">9.</a>&nbsp;  <a href="#anchor15">10.</a>&nbsp;
574  Acknowledgments<br />  Acknowledgments<br />
575  <a href="#rfc.references1">10.</a>&nbsp;  <a href="#rfc.references1">11.</a>&nbsp;
576  References<br />  References<br />
577  <a href="#rfc.authors">&#167;</a>&nbsp;  <a href="#rfc.authors">&#167;</a>&nbsp;
578  Author's Address<br />  Author's Address<br />
# Line 320  Intellectual Property and Copyright Stat Line 582  Intellectual Property and Copyright Stat
582  <br clear="all" />  <br clear="all" />
583    
584  <a name="anchor1"></a><br /><hr />  <a name="anchor1"></a><br /><hr />
585  <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>
586  <a name="rfc.section.1"></a><h3>1.&nbsp;Requirements notation</h3>  <a name="rfc.section.1"></a><h3>1.&nbsp;
587    Requirements notation</h3>
588    
589  <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",  <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
590              "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",              "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
591              and "OPTIONAL" in this document are to be interpreted as              and "OPTIONAL" in this document are to be interpreted as
592              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>.
593  </p>  </p>
594  <p>This protocol is always case-sensitive if not explicitly  <p>This protocol is always case-sensitive if not explicitly
595              claimed the opposite.              claimed the opposite.
# Line 335  Intellectual Property and Copyright Stat Line 598  Intellectual Property and Copyright Stat
598              (front-end) and server (LinuxSampler) respectively. Lines in              (front-end) and server (LinuxSampler) respectively. Lines in
599              examples must be interpreted as every line being CRLF              examples must be interpreted as every line being CRLF
600              terminated (carriage return character followed by line feed              terminated (carriage return character followed by line feed
601              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>),
602              example:              thus the following example:
603  </p>  </p>
604  <p></p>  <p>
605                    </p>
606  <blockquote class="text">  <blockquote class="text">
607  <p>C: "some line"  <p>C: "some line"
608  </p>  </p>
609  <p>&nbsp;&nbsp;&nbsp;"another line"  <p>&nbsp;&nbsp;&nbsp;"another line"
610  </p>  </p>
611  </blockquote>  </blockquote><p>
612                
613    </p>
614  <p>must actually be interpreted as client sending the following  <p>must actually be interpreted as client sending the following
615              message:              message:
616  </p>  </p>
617  <p></p>  <p>
618                    </p>
619  <blockquote class="text">  <blockquote class="text">
620  <p>"some line&lt;CR&gt;&lt;LF&gt;another  <p>"some line&lt;CR&gt;&lt;LF&gt;another
621                      line&lt;CR&gt;&lt;LF&gt;"                      line&lt;CR&gt;&lt;LF&gt;"
622  </p>  </p>
623  </blockquote>  </blockquote><p>
624                
625    </p>
626  <p>where &lt;CR&gt; symbolizes the carriage return character and  <p>where &lt;CR&gt; symbolizes the carriage return character and
627              &lt;LF&gt; the line feed character as defined in the ASCII              &lt;LF&gt; the line feed character as defined in the ASCII
628              standard.              standard.
# Line 363  Intellectual Property and Copyright Stat Line 630  Intellectual Property and Copyright Stat
630  <p>Due to technical reasons, messages can arbitrary be  <p>Due to technical reasons, messages can arbitrary be
631              fragmented, means the following example:              fragmented, means the following example:
632  </p>  </p>
633  <p></p>  <p>
634                    </p>
635  <blockquote class="text">  <blockquote class="text">
636  <p>S: "abcd"  <p>S: "abcd"
637  </p>  </p>
638  </blockquote>  </blockquote><p>
639                
640    </p>
641  <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
642              following sequence scenario:              following sequence scenario:
643  </p>  </p>
644  <p></p>  <p>
645                    </p>
646  <ul class="text">  <ul class="text">
647  <li>server sending message "a"  <li>server sending message "a"
648  </li>  </li>
# Line 388  Intellectual Property and Copyright Stat Line 658  Intellectual Property and Copyright Stat
658  <li>followed by server sending the message  <li>followed by server sending the message
659                      "&lt;LF&gt;"                      "&lt;LF&gt;"
660  </li>  </li>
661  </ul>  </ul><p>
662                
663    </p>
664  <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
665              return and line feed characters respectively.              return and line feed characters respectively.
666  </p>  </p>
667    <a name="LSCP versioning"></a><br /><hr />
668    <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>
669    <a name="rfc.section.2"></a><h3>2.&nbsp;
670    Versioning of this specification</h3>
671    
672    <p>LSCP will certainly be extended and enhanced by-and-by. Each official
673                release of the LSCP specification will be tagged with a unique version
674                tuple. The version tuple consists at least of a major and minor version
675                number like:
676                
677    </p>
678    <p>
679                    </p>
680    <blockquote class="text">
681    <p>"1.2"
682    </p>
683    </blockquote><p>
684                
685    </p>
686    <p>
687                In this example the major version number would be "1" and the minor
688                version number would be "2". Note that the version tuple might also
689                have more than two elements. The major version number defines a
690                group of backward compatible versions. That means a frontend is
691                compatible to the connected sampler if and only if the LSCP versions
692                to which each of the two parties complies to, match both of the
693                following rules:
694                
695    </p>
696    <p>Compatibility:
697    </p>
698    <p>
699                    </p>
700    <ol class="text">
701    <li>The frontend's LSCP major version and the sampler's LSCP
702                        major version are exactly equal.
703    </li>
704    <li>The frontend's LSCP minor version is less or equal than
705                        the sampler's LSCP minor version.
706    </li>
707    </ol><p>
708                
709    </p>
710    <p>
711                Compatibility can only be claimed if both rules are true.
712                The frontend can use the
713                <a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a> command to
714                get the version of the LSCP specification the sampler complies with.
715                
716    </p>
717  <a name="anchor2"></a><br /><hr />  <a name="anchor2"></a><br /><hr />
718  <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>
719  <a name="rfc.section.2"></a><h3>2.&nbsp;Introduction</h3>  <a name="rfc.section.3"></a><h3>3.&nbsp;
720    Introduction</h3>
721    
722  <p>LinuxSampler is a so called software sampler application  <p>LinuxSampler is a so called software sampler application
723              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 730  Intellectual Property and Copyright Stat
730              arbitrary MIDI input method and arbitrary MIDI channel (e.g.              arbitrary MIDI input method and arbitrary MIDI channel (e.g.
731              sampler channel 17 could be connected to an ALSA sequencer              sampler channel 17 could be connected to an ALSA sequencer
732              device 64:0 and listening to MIDI channel 1 there). Each sampler              device 64:0 and listening to MIDI channel 1 there). Each sampler
733              engine will be assigned an own instance of one of the available              channel will be associated with an instance of one of the available
734              sampler engines (e.g. GigEngine, DLSEngine). The audio output of              sampler engines (e.g. GigEngine, DLSEngine). The audio output of
735              each sampler channel can be routed to an arbitrary audio output              each sampler channel can be routed to an arbitrary audio output
736              method (ALSA / JACK) and an arbitrary audio output channel              method (ALSA / JACK) and an arbitrary audio output channel
737              there.              there.
738  </p>  </p>
739  <a name="anchor3"></a><br /><hr />  <a name="anchor3"></a><br /><hr />
740  <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>
741  <a name="rfc.section.3"></a><h3>3.&nbsp;Focus of this protocol</h3>  <a name="rfc.section.4"></a><h3>4.&nbsp;
742    Focus of this protocol</h3>
743    
744  <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
745              a running LinuxSampler instance and to retrieve information              a running LinuxSampler instance and to retrieve information
# Line 427  Intellectual Property and Copyright Stat Line 750  Intellectual Property and Copyright Stat
750              via MIDI System Exclusive Messages.              via MIDI System Exclusive Messages.
751  </p>  </p>
752  <a name="anchor4"></a><br /><hr />  <a name="anchor4"></a><br /><hr />
753  <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>
754  <a name="rfc.section.4"></a><h3>4.&nbsp;Communication Overview</h3>  <a name="rfc.section.5"></a><h3>5.&nbsp;
755    Communication Overview</h3>
756    
757  <p>There are two distinct methods of communication between a  <p>There are two distinct methods of communication between a
758              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 765  Intellectual Property and Copyright Stat
765              implemented in the front-end application. The two communication              implemented in the front-end application. The two communication
766              methods will be described next.              methods will be described next.
767  </p>  </p>
768  <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 />
769    <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>
770    <a name="rfc.section.5.1"></a><h3>5.1.&nbsp;
771    Request/response communication method</h3>
772    
773  <p>This simple communication method is based on TCP. The  <p>This simple communication method is based on
774                    <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
775                  front-end application establishes a TCP connection to the                  front-end application establishes a TCP connection to the
776                  LinuxSampler instance on a certain host system. Then the                  LinuxSampler instance on a certain host system. Then the
777                  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 811  Intellectual Property and Copyright Stat
811                  processed in the order they were received and result sets                  processed in the order they were received and result sets
812                  MUST be sent back in the same order.                  MUST be sent back in the same order.
813  </p>  </p>
814  <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 />
815    <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>
816    <a name="rfc.section.5.1.1"></a><h3>5.1.1.&nbsp;
817    Result format</h3>
818    
819  <p>Result set could be one of the following types:  <p>Result set could be one of the following types:
820  </p>  </p>
821  <p></p>  <p>
822                            </p>
823  <ol class="text">  <ol class="text">
824  <li>Normal  <li>Normal
825  </li>  </li>
# Line 495  Intellectual Property and Copyright Stat Line 827  Intellectual Property and Copyright Stat
827  </li>  </li>
828  <li>Error  <li>Error
829  </li>  </li>
830  </ol>  </ol><p>
831                        
832    </p>
833  <p>Warning and Error result sets MUST be single line and  <p>Warning and Error result sets MUST be single line and
834                      have the following format:                      have the following format:
835  </p>  </p>
836  <p></p>  <p>
837                            </p>
838  <ul class="text">  <ul class="text">
839  <li>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;"  <li>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;"
840  </li>  </li>
841  <li>"ERR:&lt;error-code&gt;:&lt;error-message&gt;"  <li>"ERR:&lt;error-code&gt;:&lt;error-message&gt;"
842  </li>  </li>
843  </ul>  </ul><p>
844                        
845    </p>
846  <p>Where &lt;warning-code&gt; and &lt;error-code&gt; are  <p>Where &lt;warning-code&gt; and &lt;error-code&gt; are
847                      numeric unique identifiers of the warning or error and                      numeric unique identifiers of the warning or error and
848                      &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 851  Intellectual Property and Copyright Stat
851  </p>  </p>
852  <p>Examples:  <p>Examples:
853  </p>  </p>
854  <p></p>  <p>
855                            </p>
856  <blockquote class="text">  <blockquote class="text">
857  <p>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0  <p>C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0
858  </p>  </p>
859  <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."
860  </p>  </p>
861  </blockquote>  </blockquote><p>
862                        
863  <p></p>  </p>
864    <p>
865                            </p>
866  <blockquote class="text">  <blockquote class="text">
867  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"
868  </p>  </p>
869  <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'."
870  </p>  </p>
871  </blockquote>  </blockquote><p>
872                        
873  <p></p>  </p>
874    <p>
875                            </p>
876  <blockquote class="text">  <blockquote class="text">
877  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"
878  </p>  </p>
879  <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."
880  </p>  </p>
881  </blockquote>  </blockquote><p>
882                        
883    </p>
884  <p>Normal result sets could be:  <p>Normal result sets could be:
885  </p>  </p>
886  <p></p>  <p>
887                            </p>
888  <ol class="text">  <ol class="text">
889  <li>Empty  <li>Empty
890  </li>  </li>
# Line 550  Intellectual Property and Copyright Stat Line 892  Intellectual Property and Copyright Stat
892  </li>  </li>
893  <li>Multi-line  <li>Multi-line
894  </li>  </li>
895  </ol>  </ol><p>
896                        
897    </p>
898  <p> Empty result set is issued when the server only  <p> Empty result set is issued when the server only
899                      needed to acknowledge the fact that the request was                      needed to acknowledge the fact that the request was
900                      received and it was processed successfully and no                      received and it was processed successfully and no
901                      additional information is available. This result set has                      additional information is available. This result set has
902                      the following format:                      the following format:
903  </p>  </p>
904  <p></p>  <p>
905                            </p>
906  <blockquote class="text">  <blockquote class="text">
907  <p>"OK"  <p>"OK"
908  </p>  </p>
909  </blockquote>  </blockquote><p>
910                        
911    </p>
912  <p>Example:  <p>Example:
913  </p>  </p>
914  <p></p>  <p>
915                            </p>
916  <blockquote class="text">  <blockquote class="text">
917  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"
918  </p>  </p>
919  <p>S: "OK"  <p>S: "OK"
920  </p>  </p>
921  </blockquote>  </blockquote><p>
922                        
923    </p>
924  <p>Single line result sets are command specific. One  <p>Single line result sets are command specific. One
925                      example of a single line result set is an empty line.                      example of a single line result set is an empty line.
926                      Multi-line result sets are command specific and may                      Multi-line result sets are command specific and may
927                      include one or more lines of information. They MUST                      include one or more lines of information. They MUST
928                      always end with the following line:                      always end with the following line:
929  </p>  </p>
930  <p></p>  <p>
931                            </p>
932  <blockquote class="text">  <blockquote class="text">
933  <p>"."  <p>"."
934  </p>  </p>
935  </blockquote>  </blockquote><p>
936                        
937    </p>
938  <p>Example:  <p>Example:
939  </p>  </p>
940  <p></p>  <p>
941                            </p>
942  <blockquote class="text">  <blockquote class="text">
943  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
944  </p>  </p>
# Line 608  Intellectual Property and Copyright Stat Line 958  Intellectual Property and Copyright Stat
958  </p>  </p>
959  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
960  </p>  </p>
961  </blockquote>  </blockquote><p>
962                        
963    </p>
964  <p>In addition to above mentioned formats, warnings and  <p>In addition to above mentioned formats, warnings and
965                      empty result sets MAY be indexed. In this case, they                      empty result sets MAY be indexed. In this case, they
966                      have the following formats respectively:                      have the following formats respectively:
967  </p>  </p>
968  <p></p>  <p>
969                            </p>
970  <ul class="text">  <ul class="text">
971  <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;"
972  </li>  </li>
973  <li>"OK[&lt;index&gt;]"  <li>"OK[&lt;index&gt;]"
974  </li>  </li>
975  </ul>  </ul><p>
976                        
977    </p>
978  <p>where &lt;index&gt; is command specific and is used  <p>where &lt;index&gt; is command specific and is used
979                      to indicate channel number that the result set was                      to indicate channel number that the result set was
980                      related to or other integer value.                      related to or other integer value.
# Line 631  Intellectual Property and Copyright Stat Line 984  Intellectual Property and Copyright Stat
984  </p>  </p>
985  <p>Examples:  <p>Examples:
986  </p>  </p>
987  <p></p>  <p>
988                            </p>
989  <blockquote class="text">  <blockquote class="text">
990  <p>C: "ADD CHANNEL"  <p>C: "ADD CHANNEL"
991  </p>  </p>
992  <p>S: "OK[12]"  <p>S: "OK[12]"
993  </p>  </p>
994  </blockquote>  </blockquote><p>
995                        
996  <p></p>  </p>
997    <p>
998                            </p>
999  <blockquote class="text">  <blockquote class="text">
1000  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"
1001  </p>  </p>
1002  <p>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."  <p>S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
1003  </p>  </p>
1004  </blockquote>  </blockquote><p>
1005                        
1006  <a name="rfc.section.4.2"></a><h4><a name="anchor7">4.2</a>&nbsp;Subscribe/notify communication method</h4>  </p>
1007    <a name="anchor7"></a><br /><hr />
1008    <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>
1009    <a name="rfc.section.5.2"></a><h3>5.2.&nbsp;
1010    Subscribe/notify communication method</h3>
1011    
1012  <p>This more sophisticated communication method is actually  <p>This more sophisticated communication method is actually
1013                  only an extension of the simple request/response                  only an extension of the simple request/response
# Line 659  Intellectual Property and Copyright Stat Line 1019  Intellectual Property and Copyright Stat
1019                  as they happen on the server. The SUBSCRIBE command has the                  as they happen on the server. The SUBSCRIBE command has the
1020                  following syntax:                  following syntax:
1021  </p>  </p>
1022  <p></p>  <p>
1023                        </p>
1024  <blockquote class="text">  <blockquote class="text">
1025  <p>SUBSCRIBE &lt;event-id&gt;  <p>SUBSCRIBE &lt;event-id&gt;
1026  </p>  </p>
1027  </blockquote>  </blockquote><p>
1028                    
1029    </p>
1030  <p>where &lt;event-id&gt; will be replaced by the respective  <p>where &lt;event-id&gt; will be replaced by the respective
1031                  event that client wants to subscribe to. Upon receiving such                  event that client wants to subscribe to. Upon receiving such
1032                  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 1036  Intellectual Property and Copyright Stat
1036                  time nature of their generation. Event messages have the                  time nature of their generation. Event messages have the
1037                  following format:                  following format:
1038  </p>  </p>
1039  <p></p>  <p>
1040                        </p>
1041  <blockquote class="text">  <blockquote class="text">
1042  <p>NOTIFY:&lt;event-id&gt;:&lt;custom-event-data&gt;  <p>NOTIFY:&lt;event-id&gt;:&lt;custom-event-data&gt;
1043  </p>  </p>
1044  </blockquote>  </blockquote><p>
1045                    
1046    </p>
1047  <p>where &lt;event-id&gt; uniquely identifies the event that  <p>where &lt;event-id&gt; uniquely identifies the event that
1048                  has occurred and &lt;custom-event-data&gt; is event                  has occurred and &lt;custom-event-data&gt; is event
1049                  specific.                  specific.
# Line 687  Intellectual Property and Copyright Stat Line 1051  Intellectual Property and Copyright Stat
1051  <p>Several rules must be followed by the server when  <p>Several rules must be followed by the server when
1052                  generating events:                  generating events:
1053  </p>  </p>
1054  <p></p>  <p>
1055                        </p>
1056  <ol class="text">  <ol class="text">
1057  <li>Events MUST NOT be sent to any client who has not  <li>Events MUST NOT be sent to any client who has not
1058                          issued an appropriate SUBSCRIBE command.                          issued an appropriate SUBSCRIBE command.
# Line 702  Intellectual Property and Copyright Stat Line 1067  Intellectual Property and Copyright Stat
1067                          middle of the event message as well as any other                          middle of the event message as well as any other
1068                          response.                          response.
1069  </li>  </li>
1070  </ol>  </ol><p>
1071                    
1072    </p>
1073  <p>If the client is not interested in a particular event  <p>If the client is not interested in a particular event
1074                  anymore it MAY issue UNSUBSCRIBE command using the following                  anymore it MAY issue UNSUBSCRIBE command using the following
1075                  syntax:                  syntax:
1076  </p>  </p>
1077  <p></p>  <p>
1078                        </p>
1079  <blockquote class="text">  <blockquote class="text">
1080  <p>UNSUBSCRIBE &lt;event-id&gt;  <p>UNSUBSCRIBE &lt;event-id&gt;
1081  </p>  </p>
1082  </blockquote>  </blockquote><p>
1083                    
1084    </p>
1085  <p>where &lt;event-id&gt; will be replace by the respective  <p>where &lt;event-id&gt; will be replace by the respective
1086                  event that client is no longer interested in receiving. For                  event that client is no longer interested in receiving. For
1087                  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>.
1088  </p>  </p>
1089  <p>Example: the fill states of disk stream buffers have  <p>Example: the fill states of disk stream buffers have
1090                  changed on sampler channel 4 and the LinuxSampler instance                  changed on sampler channel 4 and the LinuxSampler instance
1091                  will react by sending the following message to all clients                  will react by sending the following message to all clients
1092                  who subscribed to this event:                  who subscribed to this event:
1093  </p>  </p>
1094  <p></p>  <p>
1095                        </p>
1096  <blockquote class="text">  <blockquote class="text">
1097  <p>NOTIFY:CHANNEL_BUFFER_FILL:4 [35]62%,[33]80%,[37]98%  <p>NOTIFY:CHANNEL_BUFFER_FILL:4 [35]62%,[33]80%,[37]98%
1098  </p>  </p>
1099  </blockquote>  </blockquote><p>
1100                    
1101    </p>
1102  <p>Which means there are currently three active streams on  <p>Which means there are currently three active streams on
1103                  sampler channel 4, where the stream with ID "35" is filled                  sampler channel 4, where the stream with ID "35" is filled
1104                  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 1129  Intellectual Property and Copyright Stat
1129                  If client reconnects it MUST resubscribe to all events that                  If client reconnects it MUST resubscribe to all events that
1130                  it wants to receive.                  it wants to receive.
1131  </p>  </p>
1132  <a name="anchor8"></a><br /><hr />  <a name="control_commands"></a><br /><hr />
1133  <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>
1134  <a name="rfc.section.5"></a><h3>5.&nbsp;Description for control commands</h3>  <a name="rfc.section.6"></a><h3>6.&nbsp;
1135    Description for control commands</h3>
1136    
1137  <p>This chapter will describe the available control commands  <p>This chapter will describe the available control commands
1138              that can be sent on the TCP connection in detail. Some certain              that can be sent on the TCP connection in detail. Some certain
1139              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>
1140              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
1141              multiple-line responses. In this case LinuxSampler signals the              multiple-line responses. In this case LinuxSampler signals the
1142              end of the response by a "." (single dot) line.              end of the response by a "." (single dot) line.
1143  </p>  </p>
1144  <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 />
1145    <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>
1146    <a name="rfc.section.6.1"></a><h3>6.1.&nbsp;
1147    Ignored lines and comments</h3>
1148    
1149  <p>White lines, that is lines which only contain space and  <p>White lines, that is lines which only contain space and
1150                  tabulator characters, and lines that start with a "#"                  tabulator characters, and lines that start with a "#"
# Line 778  Intellectual Property and Copyright Stat Line 1152  Intellectual Property and Copyright Stat
1152                  group commands and to place comments in a LSCP script                  group commands and to place comments in a LSCP script
1153                  file.                  file.
1154  </p>  </p>
1155  <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 />
1156    <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>
1157    <a name="rfc.section.6.2"></a><h3>6.2.&nbsp;
1158    Configuring audio drivers</h3>
1159    
1160  <p>Instances of drivers in LinuxSampler are called devices.  <p>Instances of drivers in LinuxSampler are called devices.
1161                  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 1188  Intellectual Property and Copyright Stat
1188                  what parameters drivers are offering, how to retrieve their                  what parameters drivers are offering, how to retrieve their
1189                  possible values, etc.                  possible values, etc.
1190  </p>  </p>
1191  <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 />
1192    <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>
1193    <a name="rfc.section.6.2.1"></a><h3>6.2.1.&nbsp;
1194    Getting amount of available audio output drivers</h3>
1195    
1196  <p>Use the following command to get the number of  <p>Use the following command to get the number of
1197                      audio output drivers currently available for the                      audio output drivers currently available for the
1198                      LinuxSampler instance:                      LinuxSampler instance:
1199  </p>  </p>
1200  <p></p>  <p>
1201                            </p>
1202  <blockquote class="text">  <blockquote class="text">
1203  <p>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS  <p>GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
1204  </p>  </p>
1205  </blockquote>  </blockquote><p>
1206                        
1207    </p>
1208  <p>Possible Answers:  <p>Possible Answers:
1209  </p>  </p>
1210  <p></p>  <p>
1211                            </p>
1212  <blockquote class="text">  <blockquote class="text">
1213  <p>LinuxSampler will answer by sending the  <p>LinuxSampler will answer by sending the
1214                              number of audio output drivers.                              number of audio output drivers.
1215  </p>  </p>
1216  </blockquote>  </blockquote><p>
1217                        
1218    </p>
1219  <p>Example:  <p>Example:
1220  </p>  </p>
1221  <p></p>  <p>
1222                            </p>
1223  <blockquote class="text">  <blockquote class="text">
1224  <p>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"  <p>C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1225  </p>  </p>
1226  <p>S: "2"  <p>S: "2"
1227  </p>  </p>
1228  </blockquote>  </blockquote><p>
1229                        
1230  <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>
1231    <a name="LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"></a><br /><hr />
1232    <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>
1233    <a name="rfc.section.6.2.2"></a><h3>6.2.2.&nbsp;
1234    Getting all available audio output drivers</h3>
1235    
1236  <p>Use the following command to list all audio output  <p>Use the following command to list all audio output
1237                      drivers currently available for the LinuxSampler                      drivers currently available for the LinuxSampler
1238                      instance:                      instance:
1239  </p>  </p>
1240  <p></p>  <p>
1241                            </p>
1242  <blockquote class="text">  <blockquote class="text">
1243  <p>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS  <p>LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS
1244  </p>  </p>
1245  </blockquote>  </blockquote><p>
1246                        
1247    </p>
1248  <p>Possible Answers:  <p>Possible Answers:
1249  </p>  </p>
1250  <p></p>  <p>
1251                            </p>
1252  <blockquote class="text">  <blockquote class="text">
1253  <p>LinuxSampler will answer by sending comma  <p>LinuxSampler will answer by sending comma
1254                              separated character strings, each symbolizing an                              separated character strings, each symbolizing an
1255                              audio output driver.                              audio output driver.
1256  </p>  </p>
1257  </blockquote>  </blockquote><p>
1258                        
1259    </p>
1260  <p>Example:  <p>Example:
1261  </p>  </p>
1262  <p></p>  <p>
1263                            </p>
1264  <blockquote class="text">  <blockquote class="text">
1265  <p>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"  <p>C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"
1266  </p>  </p>
1267  <p>S: "ALSA,JACK"  <p>S: "ALSA,JACK"
1268  </p>  </p>
1269  </blockquote>  </blockquote><p>
1270                        
1271  <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>
1272                  output driver</h4>  <a name="GET AUDIO_OUTPUT_DRIVER INFO"></a><br /><hr />
1273    <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>
1274    <a name="rfc.section.6.2.3"></a><h3>6.2.3.&nbsp;
1275    Getting information about a specific audio
1276                    output driver</h3>
1277    
1278  <p>Use the following command to get detailed information  <p>Use the following command to get detailed information
1279                      about a specific audio output driver:                      about a specific audio output driver:
1280  </p>  </p>
1281  <p></p>  <p>
1282                            </p>
1283  <blockquote class="text">  <blockquote class="text">
1284  <p>GET AUDIO_OUTPUT_DRIVER INFO  <p>GET AUDIO_OUTPUT_DRIVER INFO
1285                               &lt;audio-output-driver&gt;                               &lt;audio-output-driver&gt;
1286  </p>  </p>
1287  </blockquote>  </blockquote><p>
1288                        
1289    </p>
1290  <p>Where &lt;audio-output-driver&gt; is the name of the  <p>Where &lt;audio-output-driver&gt; is the name of the
1291                      audio output driver, returned by the                      audio output driver, returned by the
1292                      <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.
1293  </p>  </p>
1294  <p>Possible Answers:  <p>Possible Answers:
1295  </p>  </p>
1296  <p></p>  <p>
1297                            </p>
1298  <blockquote class="text">  <blockquote class="text">
1299  <p>LinuxSampler will answer by sending a  <p>LinuxSampler will answer by sending a
1300                              &lt;CRLF&gt; separated list. Each answer line                              &lt;CRLF&gt; separated list. Each answer line
# Line 904  Intellectual Property and Copyright Stat Line 1305  Intellectual Property and Copyright Stat
1305                              following information categories are                              following information categories are
1306                              defined:                              defined:
1307  </p>  </p>
1308  <p></p>  <p>
1309                                  </p>
1310  <blockquote class="text">  <blockquote class="text">
1311  <p>DESCRIPTION -  <p>DESCRIPTION -
1312                                      </p>                                      </p>
# Line 913  Intellectual Property and Copyright Stat Line 1315  Intellectual Property and Copyright Stat
1315                                        audio output driver                                        audio output driver
1316  </p>  </p>
1317  </blockquote>  </blockquote>
1318                                      
1319    
1320  <p>VERSION -  <p>VERSION -
1321                                      </p>                                      </p>
# Line 921  Intellectual Property and Copyright Stat Line 1324  Intellectual Property and Copyright Stat
1324                                        driver's version                                        driver's version
1325  </p>  </p>
1326  </blockquote>  </blockquote>
1327                                      
1328    
1329  <p>PARAMETERS -  <p>PARAMETERS -
1330                                      </p>                                      </p>
# Line 933  Intellectual Property and Copyright Stat Line 1337  Intellectual Property and Copyright Stat
1337                                        output drivers                                        output drivers
1338  </p>  </p>
1339  </blockquote>  </blockquote>
1340                                      
1341    
1342  </blockquote>  </blockquote>
1343                                
1344    
1345  <p>The mentioned fields above don't have to be  <p>The mentioned fields above don't have to be
1346                              in particular order.                              in particular order.
1347  </p>  </p>
1348  </blockquote>  </blockquote><p>
1349                        
1350    </p>
1351  <p>Example:  <p>Example:
1352  </p>  </p>
1353  <p></p>  <p>
1354                          </p>
1355  <blockquote class="text">  <blockquote class="text">
1356  <p>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"  <p>C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"
1357  </p>  </p>
# Line 958  Intellectual Property and Copyright Stat Line 1366  Intellectual Property and Copyright Stat
1366  </p>  </p>
1367  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1368  </p>  </p>
1369  </blockquote>  </blockquote><p>
1370                        
1371  <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>
1372                  output driver parameter</h4>  <a name="GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
1373    <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>
1374    <a name="rfc.section.6.2.4"></a><h3>6.2.4.&nbsp;
1375    Getting information about specific audio
1376                    output driver parameter</h3>
1377    
1378  <p>Use the following command to get detailed information  <p>Use the following command to get detailed information
1379                      about a  specific audio output driver parameter:                      about a  specific audio output driver parameter:
1380  </p>  </p>
1381  <p></p>  <p>
1382                            </p>
1383  <blockquote class="text">  <blockquote class="text">
1384  <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;]
1385  </p>  </p>
1386  </blockquote>  </blockquote><p>
1387                        
1388    </p>
1389  <p>Where &lt;audio&gt; is the name of the audio output  <p>Where &lt;audio&gt; is the name of the audio output
1390                      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,
1391                      &lt;prm&gt; a specific parameter name for which information should be                      &lt;prm&gt; a specific parameter name for which information should be
1392                      obtained (as returned by the                      obtained (as returned by the
1393                      <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
1394                      &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
1395                      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
1396                      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 1401  Intellectual Property and Copyright Stat
1401  </p>  </p>
1402  <p>Possible Answers:  <p>Possible Answers:
1403  </p>  </p>
1404  <p></p>  <p>
1405                            </p>
1406  <blockquote class="text">  <blockquote class="text">
1407  <p>LinuxSampler will answer by sending a  <p>LinuxSampler will answer by sending a
1408                              &lt;CRLF&gt; separated list.                              &lt;CRLF&gt; separated list.
# Line 1000  Intellectual Property and Copyright Stat Line 1415  Intellectual Property and Copyright Stat
1415                              which is only shown dependently to given driver parameter. At                              which is only shown dependently to given driver parameter. At
1416                              the moment the following information categories are defined:                              the moment the following information categories are defined:
1417  </p>  </p>
1418  </blockquote>  </blockquote><p>
1419                        
1420  <p></p>  </p>
1421    <p>
1422                            </p>
1423  <blockquote class="text">  <blockquote class="text">
1424  <p>TYPE -  <p>TYPE -
1425                                </p>                                </p>
# Line 1014  Intellectual Property and Copyright Stat Line 1431  Intellectual Property and Copyright Stat
1431                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1432  </p>  </p>
1433  </blockquote>  </blockquote>
1434                                
1435    
1436  <p>DESCRIPTION -  <p>DESCRIPTION -
1437                                </p>                                </p>
# Line 1022  Intellectual Property and Copyright Stat Line 1440  Intellectual Property and Copyright Stat
1440                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1441  </p>  </p>
1442  </blockquote>  </blockquote>
1443                                
1444    
1445  <p>MANDATORY -  <p>MANDATORY -
1446                                </p>                                </p>
1447  <blockquote class="text">  <blockquote class="text">
1448  <p>either true or false, defines if this parameter must be  <p>either true or false, defines if this parameter must be
1449                                  given when the device is to be created with the                                  given when the device is to be created with the
1450                                  <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>
1451                                  command (always returned, no matter which driver parameter)                                  command (always returned, no matter which driver parameter)
1452  </p>  </p>
1453  </blockquote>  </blockquote>
1454                                
1455    
1456  <p>FIX -  <p>FIX -
1457                                </p>                                </p>
1458  <blockquote class="text">  <blockquote class="text">
1459  <p>either true or false, if false then this parameter can  <p>either true or false, if false then this parameter can
1460                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
1461                                  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>
1462                                  command (always returned, no matter which driver parameter)                                  command (always returned, no matter which driver parameter)
1463  </p>  </p>
1464  </blockquote>  </blockquote>
1465                                
1466    
1467  <p>MULTIPLICITY -  <p>MULTIPLICITY -
1468                                </p>                                </p>
# Line 1052  Intellectual Property and Copyright Stat Line 1473  Intellectual Property and Copyright Stat
1473                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
1474  </p>  </p>
1475  </blockquote>  </blockquote>
1476                                
1477    
1478  <p>DEPENDS -  <p>DEPENDS -
1479                                </p>                                </p>
1480  <blockquote class="text">  <blockquote class="text">
1481  <p>comma separated list of paramters this parameter depends  <p>comma separated list of parameters this parameter depends
1482                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',
1483                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these
1484                                  listed parameters, for example assuming that an audio                                  listed parameters, for example assuming that an audio
# Line 1068  Intellectual Property and Copyright Stat Line 1490  Intellectual Property and Copyright Stat
1490                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1491  </p>  </p>
1492  </blockquote>  </blockquote>
1493                                
1494    
1495  <p>DEFAULT -  <p>DEFAULT -
1496                                </p>                                </p>
1497  <blockquote class="text">  <blockquote class="text">
1498  <p>reflects the default value for this parameter which is  <p>reflects the default value for this parameter which is
1499                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
1500                                  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,
1501                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
1502                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
1503                                  apostrophes (')                                  apostrophes (')
1504                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1505  </p>  </p>
1506  </blockquote>  </blockquote>
1507                                
1508    
1509  <p>RANGE_MIN -  <p>RANGE_MIN -
1510                                </p>                                </p>
# Line 1092  Intellectual Property and Copyright Stat Line 1516  Intellectual Property and Copyright Stat
1516                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1517  </p>  </p>
1518  </blockquote>  </blockquote>
1519                                
1520    
1521  <p>RANGE_MAX -  <p>RANGE_MAX -
1522                                </p>                                </p>
# Line 1103  Intellectual Property and Copyright Stat Line 1528  Intellectual Property and Copyright Stat
1528                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1529  </p>  </p>
1530  </blockquote>  </blockquote>
1531                                
1532    
1533  <p>POSSIBILITIES -  <p>POSSIBILITIES -
1534                                </p>                                </p>
# Line 1113  Intellectual Property and Copyright Stat Line 1539  Intellectual Property and Copyright Stat
1539                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
1540  </p>  </p>
1541  </blockquote>  </blockquote>
1542                                
1543    
1544  </blockquote>  </blockquote><p>
1545                        
1546    </p>
1547  <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.
1548  </p>  </p>
1549  <p>Examples:  <p>Examples:
1550  </p>  </p>
1551  <p></p>  <p>
1552                            </p>
1553  <blockquote class="text">  <blockquote class="text">
1554  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"
1555  </p>  </p>
# Line 1140  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  <p></p>  </p>
1575    <p>
1576                            </p>
1577  <blockquote class="text">  <blockquote class="text">
1578  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"  <p>C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"
1579  </p>  </p>
# Line 1162  Intellectual Property and Copyright Stat Line 1593  Intellectual Property and Copyright Stat
1593  </p>  </p>
1594  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1595  </p>  </p>
1596  </blockquote>  </blockquote><p>
1597                        
1598  <p></p>  </p>
1599    <p>
1600                            </p>
1601  <blockquote class="text">  <blockquote class="text">
1602  <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'"
1603  </p>  </p>
# Line 1188  Intellectual Property and Copyright Stat Line 1621  Intellectual Property and Copyright Stat
1621  </p>  </p>
1622  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1623  </p>  </p>
1624  </blockquote>  </blockquote><p>
1625                        
1626  <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>
1627    <a name="CREATE AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1628    <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>
1629    <a name="rfc.section.6.2.5"></a><h3>6.2.5.&nbsp;
1630    Creating an audio output device</h3>
1631    
1632  <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:
1633  </p>  </p>
1634  <p></p>  <p>
1635                            </p>
1636  <blockquote class="text">  <blockquote class="text">
1637  <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;]
1638  </p>  </p>
1639  </blockquote>  </blockquote><p>
1640                        
1641    </p>
1642  <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
1643                      output system and &lt;param-list&gt; by an optional list of driver                      output system as returned by the
1644                        <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>
1645                        command and &lt;param-list&gt; by an optional list of driver
1646                      specific parameters in form of "key1=val1 key2=val2 ...", where                      specific parameters in form of "key1=val1 key2=val2 ...", where
1647                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
1648                      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 1651  Intellectual Property and Copyright Stat
1651  </p>  </p>
1652  <p>Possible Answers:  <p>Possible Answers:
1653  </p>  </p>
1654  <p></p>  <p>
1655                            </p>
1656  <blockquote class="text">  <blockquote class="text">
1657  <p>"OK[&lt;device-id&gt;]" -  <p>"OK[&lt;device-id&gt;]" -
1658                                  </p>                                  </p>
# Line 1219  Intellectual Property and Copyright Stat Line 1661  Intellectual Property and Copyright Stat
1661                                      &lt;device-id&gt; is the numerical ID of the new device                                      &lt;device-id&gt; is the numerical ID of the new device
1662  </p>  </p>
1663  </blockquote>  </blockquote>
1664                                
1665    
1666  <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;" -
1667                                  </p>                                  </p>
# Line 1231  Intellectual Property and Copyright Stat Line 1674  Intellectual Property and Copyright Stat
1674                                      warning message                                      warning message
1675  </p>  </p>
1676  </blockquote>  </blockquote>
1677                                
1678    
1679  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1680                                  </p>                                  </p>
# Line 1238  Intellectual Property and Copyright Stat Line 1682  Intellectual Property and Copyright Stat
1682  <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
1683  </p>  </p>
1684  </blockquote>  </blockquote>
1685                                
1686    
1687  </blockquote>  </blockquote><p>
1688                        
1689    </p>
1690  <p>Examples:  <p>Examples:
1691  </p>  </p>
1692  <p></p>  <p>
1693                            </p>
1694  <blockquote class="text">  <blockquote class="text">
1695  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"
1696  </p>  </p>
1697  <p>S: "OK[0]"  <p>S: "OK[0]"
1698  </p>  </p>
1699  </blockquote>  </blockquote><p>
1700                        
1701  <p></p>  </p>
1702    <p>
1703                            </p>
1704  <blockquote class="text">  <blockquote class="text">
1705  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"  <p>C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"
1706  </p>  </p>
1707  <p>S: "OK[1]"  <p>S: "OK[1]"
1708  </p>  </p>
1709  </blockquote>  </blockquote><p>
1710                        
1711  <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>
1712    <a name="DESTROY AUDIO_OUTPUT_DEVICE"></a><br /><hr />
1713    <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>
1714    <a name="rfc.section.6.2.6"></a><h3>6.2.6.&nbsp;
1715    Destroying an audio output device</h3>
1716    
1717  <p>Use the following command to destroy a created output device:  <p>Use the following command to destroy a created output device:
1718  </p>  </p>
1719  <p></p>  <p>
1720                            </p>
1721  <blockquote class="text">  <blockquote class="text">
1722  <p>DESTROY AUDIO_OUTPUT_DEVICE &lt;device-id&gt;  <p>DESTROY AUDIO_OUTPUT_DEVICE &lt;device-id&gt;
1723  </p>  </p>
1724  </blockquote>  </blockquote><p>
1725                        
1726    </p>
1727  <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
1728                      audio output device as given by the                      audio output device as given by the
1729                      <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>
1730                      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>
1731                      command.                      command.
1732  </p>  </p>
1733  <p>Possible Answers:  <p>Possible Answers:
1734  </p>  </p>
1735  <p></p>  <p>
1736                            </p>
1737  <blockquote class="text">  <blockquote class="text">
1738  <p>"OK" -  <p>"OK" -
1739                                  </p>                                  </p>
# Line 1285  Intellectual Property and Copyright Stat Line 1741  Intellectual Property and Copyright Stat
1741  <p>in case the device was successfully destroyed  <p>in case the device was successfully destroyed
1742  </p>  </p>
1743  </blockquote>  </blockquote>
1744                                
1745    
1746  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
1747                                  </p>                                  </p>
# Line 1296  Intellectual Property and Copyright Stat Line 1753  Intellectual Property and Copyright Stat
1753                                      warning code and warning message                                      warning code and warning message
1754  </p>  </p>
1755  </blockquote>  </blockquote>
1756                                
1757    
1758  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
1759                                  </p>                                  </p>
# Line 1304  Intellectual Property and Copyright Stat Line 1762  Intellectual Property and Copyright Stat
1762                                      error message                                      error message
1763  </p>  </p>
1764  </blockquote>  </blockquote>
1765                                
1766    
1767  </blockquote>  </blockquote><p>
1768                        
1769    </p>
1770  <p>Example:  <p>Example:
1771  </p>  </p>
1772  <p></p>  <p>
1773                            </p>
1774  <blockquote class="text">  <blockquote class="text">
1775  <p>C: "DESTROY AUDIO_OUTPUT_DEVICE 0"  <p>C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1776  </p>  </p>
1777  <p>S: "OK"  <p>S: "OK"
1778  </p>  </p>
1779  </blockquote>  </blockquote><p>
1780                        
1781  <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>
1782    <a name="GET AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1783    <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>
1784    <a name="rfc.section.6.2.7"></a><h3>6.2.7.&nbsp;
1785    Getting all created audio output device count</h3>
1786    
1787  <p>Use the following command to count all created audio output devices:  <p>Use the following command to count all created audio output devices:
1788  </p>  </p>
1789  <p></p>  <p>
1790                            </p>
1791  <blockquote class="text">  <blockquote class="text">
1792  <p>GET AUDIO_OUTPUT_DEVICES  <p>GET AUDIO_OUTPUT_DEVICES
1793  </p>  </p>
1794  </blockquote>  </blockquote><p>
1795                        
1796    </p>
1797  <p>Possible Answers:  <p>Possible Answers:
1798  </p>  </p>
1799  <p></p>  <p>
1800                            </p>
1801  <blockquote class="text">  <blockquote class="text">
1802  <p>LinuxSampler will answer by sending the current number of all  <p>LinuxSampler will answer by sending the current number of all
1803                              audio output devices.                              audio output devices.
1804  </p>  </p>
1805  </blockquote>  </blockquote><p>
1806                        
1807    </p>
1808  <p>Example:  <p>Example:
1809  </p>  </p>
1810  <p></p>  <p>
1811                            </p>
1812  <blockquote class="text">  <blockquote class="text">
1813  <p>C: "GET AUDIO_OUTPUT_DEVICES"  <p>C: "GET AUDIO_OUTPUT_DEVICES"
1814  </p>  </p>
1815  <p>S: "4"  <p>S: "4"
1816  </p>  </p>
1817  </blockquote>  </blockquote><p>
1818                        
1819  <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>
1820    <a name="LIST AUDIO_OUTPUT_DEVICES"></a><br /><hr />
1821    <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>
1822    <a name="rfc.section.6.2.8"></a><h3>6.2.8.&nbsp;
1823    Getting all created audio output device list</h3>
1824    
1825  <p>Use the following command to list all created audio output devices:  <p>Use the following command to list all created audio output devices:
1826  </p>  </p>
1827  <p></p>  <p>
1828                            </p>
1829  <blockquote class="text">  <blockquote class="text">
1830  <p>LIST AUDIO_OUTPUT_DEVICES  <p>LIST AUDIO_OUTPUT_DEVICES
1831  </p>  </p>
1832  </blockquote>  </blockquote><p>
1833                        
1834    </p>
1835  <p>Possible Answers:  <p>Possible Answers:
1836  </p>  </p>
1837  <p></p>  <p>
1838                            </p>
1839  <blockquote class="text">  <blockquote class="text">
1840  <p>LinuxSampler will answer by sending a comma separated list with  <p>LinuxSampler will answer by sending a comma separated list with
1841                              the numerical IDs of all audio output devices.                              the numerical IDs of all audio output devices.
1842  </p>  </p>
1843  </blockquote>  </blockquote><p>
1844                        
1845    </p>
1846  <p>Example:  <p>Example:
1847  </p>  </p>
1848  <p></p>  <p>
1849                            </p>
1850  <blockquote class="text">  <blockquote class="text">
1851  <p>C: "LIST AUDIO_OUTPUT_DEVICES"  <p>C: "LIST AUDIO_OUTPUT_DEVICES"
1852  </p>  </p>
1853  <p>S: "0,1,4,5"  <p>S: "0,1,4,5"
1854  </p>  </p>
1855  </blockquote>  </blockquote><p>
1856                        
1857  <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>
1858    <a name="GET AUDIO_OUTPUT_DEVICE INFO"></a><br /><hr />
1859    <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>
1860    <a name="rfc.section.6.2.9"></a><h3>6.2.9.&nbsp;
1861    Getting current settings of an audio output device</h3>
1862    
1863  <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:
1864  </p>  </p>
1865  <p></p>  <p>
1866                            </p>
1867  <blockquote class="text">  <blockquote class="text">
1868  <p>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;  <p>GET AUDIO_OUTPUT_DEVICE INFO &lt;device-id&gt;
1869  </p>  </p>
1870  </blockquote>  </blockquote><p>
1871                        
1872    </p>
1873  <p>Where &lt;device-id&gt; should be replaced by numerical ID  <p>Where &lt;device-id&gt; should be replaced by numerical ID
1874                      of the audio output device as e.g. returned by the                      of the audio output device as e.g. returned by the
1875                      <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.
1876  </p>  </p>
1877  <p>Possible Answers:  <p>Possible Answers:
1878  </p>  </p>
# Line 1399  Intellectual Property and Copyright Stat Line 1884  Intellectual Property and Copyright Stat
1884                      encapsulated into apostrophes ('). At the moment the following                      encapsulated into apostrophes ('). At the moment the following
1885                      information categories are defined (independently of device):                      information categories are defined (independently of device):
1886  </p>  </p>
1887  <p></p>  <p>
1888                            </p>
1889  <blockquote class="text">  <blockquote class="text">
1890  <p>DRIVER -  <p>DRIVER -
1891                                  </p>                                  </p>
1892  <blockquote class="text">  <blockquote class="text">
1893  <p>identifier of the used audio output driver, as also  <p>identifier of the used audio output driver, as also
1894                                      returned by the                                      returned by the
1895                                      <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>
1896                                      command                                      command
1897  </p>  </p>
1898  </blockquote>  </blockquote>
1899                                
1900    
1901  <p>CHANNELS -  <p>CHANNELS -
1902                                  </p>                                  </p>
# Line 1418  Intellectual Property and Copyright Stat Line 1905  Intellectual Property and Copyright Stat
1905                                      offers                                      offers
1906  </p>  </p>
1907  </blockquote>  </blockquote>
1908                                
1909    
1910  <p>SAMPLERATE -  <p>SAMPLERATE -
1911                                  </p>                                  </p>
# Line 1425  Intellectual Property and Copyright Stat Line 1913  Intellectual Property and Copyright Stat
1913  <p>playback sample rate the device uses  <p>playback sample rate the device uses
1914  </p>  </p>
1915  </blockquote>  </blockquote>
1916                                
1917    
1918  <p>ACTIVE -  <p>ACTIVE -
1919                                  </p>                                  </p>
# Line 1435  Intellectual Property and Copyright Stat Line 1924  Intellectual Property and Copyright Stat
1924                                      any audio                                      any audio
1925  </p>  </p>
1926  </blockquote>  </blockquote>
1927                                
1928    
1929  </blockquote>  </blockquote><p>
1930                        
1931    </p>
1932  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
1933                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
1934                      returned by all audio output devices. Every audio output driver                      returned by all audio output devices. Every audio output driver
1935                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
1936                      <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>)
1937                      which are also returned by this command.                      which are also returned by this command.
1938  </p>  </p>
1939  <p>Example:  <p>Example:
1940  </p>  </p>
1941  <p></p>  <p>
1942                            </p>
1943  <blockquote class="text">  <blockquote class="text">
1944  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  <p>C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
1945  </p>  </p>
# Line 1467  Intellectual Property and Copyright Stat Line 1959  Intellectual Property and Copyright Stat
1959  </p>  </p>
1960  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
1961  </p>  </p>
1962  </blockquote>  </blockquote><p>
1963                        
1964  <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>
1965    <a name="SET AUDIO_OUTPUT_DEVICE_PARAMETER"></a><br /><hr />
1966    <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>
1967    <a name="rfc.section.6.2.10"></a><h3>6.2.10.&nbsp;
1968    Changing settings of audio output devices</h3>
1969    
1970  <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:
1971  </p>  </p>
1972  <p></p>  <p>
1973                            </p>
1974  <blockquote class="text">  <blockquote class="text">
1975  <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;
1976  </p>  </p>
1977  </blockquote>  </blockquote><p>
1978                        
1979    </p>
1980  <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
1981                      audio output device, &lt;key&gt; by the name of the parameter to change                      audio output device as given by the
1982                        <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>
1983                        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>
1984                        command, &lt;key&gt; by the name of the parameter to change
1985                      and &lt;value&gt; by the new value for this parameter.                      and &lt;value&gt; by the new value for this parameter.
1986  </p>  </p>
1987  <p>Possible Answers:  <p>Possible Answers:
1988  </p>  </p>
1989  <p></p>  <p>
1990                            </p>
1991  <blockquote class="text">  <blockquote class="text">
1992  <p>"OK" -  <p>"OK" -
1993                                  </p>                                  </p>
# Line 1493  Intellectual Property and Copyright Stat Line 1995  Intellectual Property and Copyright Stat
1995  <p>in case setting was successfully changed  <p>in case setting was successfully changed
1996  </p>  </p>
1997  </blockquote>  </blockquote>
1998                                
1999    
2000  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2001                                  </p>                                  </p>
# Line 1502  Intellectual Property and Copyright Stat Line 2005  Intellectual Property and Copyright Stat
2005                                      warning code and warning message                                      warning code and warning message
2006  </p>  </p>
2007  </blockquote>  </blockquote>
2008                                
2009    
2010  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2011                                  </p>                                  </p>
# Line 1510  Intellectual Property and Copyright Stat Line 2014  Intellectual Property and Copyright Stat
2014                                      error message                                      error message
2015  </p>  </p>
2016  </blockquote>  </blockquote>
2017                                
2018    
2019  </blockquote>  </blockquote><p>
2020                        
2021    </p>
2022  <p>Example:  <p>Example:
2023  </p>  </p>
2024  <p></p>  <p>
2025                            </p>
2026  <blockquote class="text">  <blockquote class="text">
2027  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"  <p>C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
2028  </p>  </p>
2029  <p>S: "OK"  <p>S: "OK"
2030  </p>  </p>
2031  </blockquote>  </blockquote><p>
2032                        
2033  <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>
2034    <a name="GET AUDIO_OUTPUT_CHANNEL INFO"></a><br /><hr />
2035    <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>
2036    <a name="rfc.section.6.2.11"></a><h3>6.2.11.&nbsp;
2037    Getting information about an audio channel</h3>
2038    
2039  <p>Use the following command to get information about an audio channel:  <p>Use the following command to get information about an audio channel:
2040  </p>  </p>
2041  <p></p>  <p>
2042                            </p>
2043  <blockquote class="text">  <blockquote class="text">
2044  <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;
2045  </p>  </p>
2046  </blockquote>  </blockquote><p>
2047                        
2048  <p>Where &lt;device-id&gt; is the numerical ID of the audio output device  </p>
2049                      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
2050                        <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>
2051                        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>
2052                        command and &lt;audio-chan&gt; the audio channel number.
2053  </p>  </p>
2054  <p>Possible Answers:  <p>Possible Answers:
2055  </p>  </p>
2056  <p></p>  <p>
2057                            </p>
2058  <blockquote class="text">  <blockquote class="text">
2059  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2060                              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 2062  Intellectual Property and Copyright Stat
2062                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
2063                              the following information categories are defined:                              the following information categories are defined:
2064  </p>  </p>
2065  <p></p>  <p>
2066                                    </p>
2067  <blockquote class="text">  <blockquote class="text">
2068  <p>NAME -  <p>NAME -
2069                                          </p>                                          </p>
# Line 1555  Intellectual Property and Copyright Stat Line 2072  Intellectual Property and Copyright Stat
2072                                              doesn't have to be unique (always returned by all audio channels)                                              doesn't have to be unique (always returned by all audio channels)
2073  </p>  </p>
2074  </blockquote>  </blockquote>
2075                                        
2076    
2077  <p>IS_MIX_CHANNEL -  <p>IS_MIX_CHANNEL -
2078                                          </p>                                          </p>
# Line 1567  Intellectual Property and Copyright Stat Line 2085  Intellectual Property and Copyright Stat
2085                                              (always returned by all audio channels)                                              (always returned by all audio channels)
2086  </p>  </p>
2087  </blockquote>  </blockquote>
2088                                        
2089    
2090  <p>MIX_CHANNEL_DESTINATION -  <p>MIX_CHANNEL_DESTINATION -
2091                                          </p>                                          </p>
# Line 1578  Intellectual Property and Copyright Stat Line 2097  Intellectual Property and Copyright Stat
2097                                              (only returned in case the audio channel is mix channel)                                              (only returned in case the audio channel is mix channel)
2098  </p>  </p>
2099  </blockquote>  </blockquote>
2100                                        
2101    
2102  </blockquote>  </blockquote>
2103                                
2104    
2105  </blockquote>  </blockquote><p>
2106                        
2107    </p>
2108  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
2109                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
2110                      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 2114  Intellectual Property and Copyright Stat
2114  </p>  </p>
2115  <p>Examples:  <p>Examples:
2116  </p>  </p>
2117  <p></p>  <p>
2118                            </p>
2119  <blockquote class="text">  <blockquote class="text">
2120  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
2121  </p>  </p>
# Line 1602  Intellectual Property and Copyright Stat Line 2125  Intellectual Property and Copyright Stat
2125  </p>  </p>
2126  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2127  </p>  </p>
2128  </blockquote>  </blockquote><p>
2129                        
2130  <p></p>  </p>
2131    <p>
2132                            </p>
2133  <blockquote class="text">  <blockquote class="text">
2134  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
2135  </p>  </p>
# Line 1614  Intellectual Property and Copyright Stat Line 2139  Intellectual Property and Copyright Stat
2139  </p>  </p>
2140  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2141  </p>  </p>
2142  </blockquote>  </blockquote><p>
2143                        
2144  <p></p>  </p>
2145    <p>
2146                            </p>
2147  <blockquote class="text">  <blockquote class="text">
2148  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
2149  </p>  </p>
# Line 1628  Intellectual Property and Copyright Stat Line 2155  Intellectual Property and Copyright Stat
2155  </p>  </p>
2156  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2157  </p>  </p>
2158  </blockquote>  </blockquote><p>
2159                        
2160  <p></p>  </p>
2161    <p>
2162                            </p>
2163  <blockquote class="text">  <blockquote class="text">
2164  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"  <p>C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
2165  </p>  </p>
# Line 1642  Intellectual Property and Copyright Stat Line 2171  Intellectual Property and Copyright Stat
2171  </p>  </p>
2172  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2173  </p>  </p>
2174  </blockquote>  </blockquote><p>
2175                        
2176  <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>
2177    <a name="GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO"></a><br /><hr />
2178    <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>
2179    <a name="rfc.section.6.2.12"></a><h3>6.2.12.&nbsp;
2180    Getting information about specific audio channel parameter</h3>
2181    
2182  <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:
2183  </p>  </p>
2184  <p></p>  <p>
2185                            </p>
2186  <blockquote class="text">  <blockquote class="text">
2187  <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;
2188  </p>  </p>
2189  </blockquote>  </blockquote><p>
2190                        
2191  <p>Where &lt;dev-id&gt; is the numerical ID of the audio output device as returned  </p>
2192                      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
2193                        <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>
2194                        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>
2195                      command, &lt;chan&gt; the audio channel number                      command, &lt;chan&gt; the audio channel number
2196                      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
2197                      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).
2198  </p>  </p>
2199  <p>Possible Answers:  <p>Possible Answers:
2200  </p>  </p>
2201  <p></p>  <p>
2202                            </p>
2203  <blockquote class="text">  <blockquote class="text">
2204  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2205                              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 2210  Intellectual Property and Copyright Stat
2210                              which is only shown dependently to the given audio channel. At                              which is only shown dependently to the given audio channel. At
2211                              the moment the following information categories are defined:                              the moment the following information categories are defined:
2212  </p>  </p>
2213  <p></p>  <p>
2214                                    </p>
2215  <blockquote class="text">  <blockquote class="text">
2216  <p>TYPE -  <p>TYPE -
2217                                          </p>                                          </p>
# Line 1684  Intellectual Property and Copyright Stat Line 2222  Intellectual Property and Copyright Stat
2222                                              (always returned)                                              (always returned)
2223  </p>  </p>
2224  </blockquote>  </blockquote>
2225                                        
2226    
2227  <p>DESCRIPTION -  <p>DESCRIPTION -
2228                                          </p>                                          </p>
# Line 1691  Intellectual Property and Copyright Stat Line 2230  Intellectual Property and Copyright Stat
2230  <p>arbitrary text describing the purpose of the parameter (always returned)  <p>arbitrary text describing the purpose of the parameter (always returned)
2231  </p>  </p>
2232  </blockquote>  </blockquote>
2233                                        
2234    
2235  <p>FIX -  <p>FIX -
2236                                          </p>                                          </p>
# Line 1700  Intellectual Property and Copyright Stat Line 2240  Intellectual Property and Copyright Stat
2240                                              (always returned)                                              (always returned)
2241  </p>  </p>
2242  </blockquote>  </blockquote>
2243                                        
2244    
2245  <p>MULTIPLICITY -  <p>MULTIPLICITY -
2246                                          </p>                                          </p>
# Line 1710  Intellectual Property and Copyright Stat Line 2251  Intellectual Property and Copyright Stat
2251                                              (always returned)                                              (always returned)
2252  </p>  </p>
2253  </blockquote>  </blockquote>
2254                                        
2255    
2256  <p>RANGE_MIN -  <p>RANGE_MIN -
2257                                          </p>                                          </p>
# Line 1722  Intellectual Property and Copyright Stat Line 2264  Intellectual Property and Copyright Stat
2264                                              parameter)                                              parameter)
2265  </p>  </p>
2266  </blockquote>  </blockquote>
2267                                        
2268    
2269  <p>RANGE_MAX -  <p>RANGE_MAX -
2270                                          </p>                                          </p>
# Line 1734  Intellectual Property and Copyright Stat Line 2277  Intellectual Property and Copyright Stat
2277                                              parameter)                                              parameter)
2278  </p>  </p>
2279  </blockquote>  </blockquote>
2280                                        
2281    
2282  <p>POSSIBILITIES -  <p>POSSIBILITIES -
2283                                          </p>                                          </p>
# Line 1745  Intellectual Property and Copyright Stat Line 2289  Intellectual Property and Copyright Stat
2289                                              parameter)                                              parameter)
2290  </p>  </p>
2291  </blockquote>  </blockquote>
2292                                        
2293    
2294  </blockquote>  </blockquote>
2295                                
2296    
2297  <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.
2298  </p>  </p>
2299  </blockquote>  </blockquote><p>
2300                        
2301    </p>
2302  <p>Example:  <p>Example:
2303  </p>  </p>
2304  <p></p>  <p>
2305                            </p>
2306  <blockquote class="text">  <blockquote class="text">
2307  <p>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"  <p>C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
2308  </p>  </p>
# Line 1770  Intellectual Property and Copyright Stat Line 2318  Intellectual Property and Copyright Stat
2318  </p>  </p>
2319  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2320  </p>  </p>
2321  </blockquote>  </blockquote><p>
2322                        
2323  <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>
2324    <a name="SET AUDIO_OUTPUT_CHANNEL_PARAMETER"></a><br /><hr />
2325    <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>
2326    <a name="rfc.section.6.2.13"></a><h3>6.2.13.&nbsp;
2327    Changing settings of audio output channels</h3>
2328    
2329  <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:
2330  </p>  </p>
2331  <p></p>  <p>
2332                            </p>
2333  <blockquote class="text">  <blockquote class="text">
2334  <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;
2335  </p>  </p>
2336  </blockquote>  </blockquote><p>
2337                        
2338  <p>Where &lt;dev-id&gt; should be replaced by the numerical ID of the audio  </p>
2339                      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
2340                        <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>
2341                        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>
2342                        command, &lt;chn&gt; by the audio channel number, &lt;key&gt; by the name of the
2343                      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.
2344  </p>  </p>
2345  <p>Possible Answers:  <p>Possible Answers:
2346  </p>  </p>
2347  <p></p>  <p>
2348                            </p>
2349  <blockquote class="text">  <blockquote class="text">
2350  <p>"OK" -  <p>"OK" -
2351                                  </p>                                  </p>
# Line 1796  Intellectual Property and Copyright Stat Line 2353  Intellectual Property and Copyright Stat
2353  <p>in case setting was successfully changed  <p>in case setting was successfully changed
2354  </p>  </p>
2355  </blockquote>  </blockquote>
2356                                
2357    
2358  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2359                                  </p>                                  </p>
# Line 1805  Intellectual Property and Copyright Stat Line 2363  Intellectual Property and Copyright Stat
2363                                     warning code and warning message                                     warning code and warning message
2364  </p>  </p>
2365  </blockquote>  </blockquote>
2366                                
2367    
2368  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2369                                  </p>                                  </p>
# Line 1813  Intellectual Property and Copyright Stat Line 2372  Intellectual Property and Copyright Stat
2372                                     error message                                     error message
2373  </p>  </p>
2374  </blockquote>  </blockquote>
2375                                
2376    
2377  </blockquote>  </blockquote><p>
2378                        
2379    </p>
2380  <p>Example:  <p>Example:
2381  </p>  </p>
2382  <p></p>  <p>
2383                            </p>
2384  <blockquote class="text">  <blockquote class="text">
2385  <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'"
2386  </p>  </p>
2387  <p>S: "OK"  <p>S: "OK"
2388  </p>  </p>
2389  </blockquote>  </blockquote><p>
2390                        
2391  <p></p>  </p>
2392    <p>
2393                            </p>
2394  <blockquote class="text">  <blockquote class="text">
2395  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"  <p>C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
2396  </p>  </p>
2397  <p>S: "OK"  <p>S: "OK"
2398  </p>  </p>
2399  </blockquote>  </blockquote><p>
2400                        
2401  <a name="rfc.section.5.3"></a><h4><a name="anchor11">5.3</a>&nbsp;Configuring MIDI input drivers</h4>  </p>
2402    <a name="anchor10"></a><br /><hr />
2403    <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>
2404    <a name="rfc.section.6.3"></a><h3>6.3.&nbsp;
2405    Configuring MIDI input drivers</h3>
2406    
2407  <p>Instances of drivers in LinuxSampler are called devices. You can use  <p>Instances of drivers in LinuxSampler are called devices. You can use
2408                  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 2430  Intellectual Property and Copyright Stat
2430                  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
2431                  possible values, etc.                  possible values, etc.
2432  </p>  </p>
2433  <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 />
2434    <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>
2435    <a name="rfc.section.6.3.1"></a><h3>6.3.1.&nbsp;
2436    Getting amount of available MIDI input drivers</h3>
2437    
2438  <p>Use the following command to get the number of  <p>Use the following command to get the number of
2439                      MIDI input drivers currently available for the                      MIDI input drivers currently available for the
2440                      LinuxSampler instance:                      LinuxSampler instance:
2441  </p>  </p>
2442  <p></p>  <p>
2443                            </p>
2444  <blockquote class="text">  <blockquote class="text">
2445  <p>GET AVAILABLE_MIDI_INPUT_DRIVERS  <p>GET AVAILABLE_MIDI_INPUT_DRIVERS
2446  </p>  </p>
2447  </blockquote>  </blockquote><p>
2448                        
2449    </p>
2450  <p>Possible Answers:  <p>Possible Answers:
2451  </p>  </p>
2452  <p></p>  <p>
2453                            </p>
2454  <blockquote class="text">  <blockquote class="text">
2455  <p>LinuxSampler will answer by sending the  <p>LinuxSampler will answer by sending the
2456                              number of available MIDI input drivers.                              number of available MIDI input drivers.
2457  </p>  </p>
2458  </blockquote>  </blockquote><p>
2459                        
2460    </p>
2461  <p>Example:  <p>Example:
2462  </p>  </p>
2463  <p></p>  <p>
2464                            </p>
2465  <blockquote class="text">  <blockquote class="text">
2466  <p>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"  <p>C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
2467  </p>  </p>
2468  <p>S: "2"  <p>S: "2"
2469  </p>  </p>
2470  </blockquote>  </blockquote><p>
2471                        
2472  <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>
2473    <a name="LIST AVAILABLE_MIDI_INPUT_DRIVERS"></a><br /><hr />
2474    <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>
2475    <a name="rfc.section.6.3.2"></a><h3>6.3.2.&nbsp;
2476    Getting all available MIDI input drivers</h3>
2477    
2478  <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
2479                      for the LinuxSampler instance:                      for the LinuxSampler instance:
2480  </p>  </p>
2481  <p></p>  <p>
2482                            </p>
2483  <blockquote class="text">  <blockquote class="text">
2484  <p>LIST AVAILABLE_MIDI_INPUT_DRIVERS  <p>LIST AVAILABLE_MIDI_INPUT_DRIVERS
2485  </p>  </p>
2486  </blockquote>  </blockquote><p>
2487                        
2488    </p>
2489  <p>Possible Answers:  <p>Possible Answers:
2490  </p>  </p>
2491  <p></p>  <p>
2492                            </p>
2493  <blockquote class="text">  <blockquote class="text">
2494  <p>LinuxSampler will answer by sending comma separated character  <p>LinuxSampler will answer by sending comma separated character
2495                              strings, each symbolizing a MIDI input driver.                              strings, each symbolizing a MIDI input driver.
2496  </p>  </p>
2497  </blockquote>  </blockquote><p>
2498                        
2499    </p>
2500  <p>Example:  <p>Example:
2501  </p>  </p>
2502  <p></p>  <p>
2503                            </p>
2504  <blockquote class="text">  <blockquote class="text">
2505  <p>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"  <p>C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
2506  </p>  </p>
2507  <p>S: "ALSA,JACK"  <p>S: "ALSA,JACK"
2508  </p>  </p>
2509  </blockquote>  </blockquote><p>
2510                        
2511  <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>
2512    <a name="GET MIDI_INPUT_DRIVER INFO"></a><br /><hr />
2513    <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>
2514    <a name="rfc.section.6.3.3"></a><h3>6.3.3.&nbsp;
2515    Getting information about a specific MIDI input driver</h3>
2516    
2517  <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:
2518  </p>  </p>
2519  <p></p>  <p>
2520                            </p>
2521  <blockquote class="text">  <blockquote class="text">
2522  <p>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;  <p>GET MIDI_INPUT_DRIVER INFO &lt;midi-input-driver&gt;
2523  </p>  </p>
2524  </blockquote>  </blockquote><p>
2525                        
2526  <p>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver.  </p>
2527    <p>Where &lt;midi-input-driver&gt; is the name of the MIDI input driver as returned
2528                        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.
2529  </p>  </p>
2530  <p>Possible Answers:  <p>Possible Answers:
2531  </p>  </p>
2532  <p></p>  <p>
2533                            </p>
2534  <blockquote class="text">  <blockquote class="text">
2535  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
2536                              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 2538  Intellectual Property and Copyright Stat
2538                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
2539                              the following information categories are defined:                              the following information categories are defined:
2540  </p>  </p>
2541  <p></p>  <p>
2542                                    </p>
2543  <blockquote class="text">  <blockquote class="text">
2544  <p>DESCRIPTION -  <p>DESCRIPTION -
2545                                          </p>                                          </p>
# Line 1953  Intellectual Property and Copyright Stat Line 2547  Intellectual Property and Copyright Stat
2547  <p>arbitrary description text about the MIDI input driver  <p>arbitrary description text about the MIDI input driver
2548  </p>  </p>
2549  </blockquote>  </blockquote>
2550                                        
2551    
2552  <p>VERSION -  <p>VERSION -
2553                                          </p>                                          </p>
# Line 1960  Intellectual Property and Copyright Stat Line 2555  Intellectual Property and Copyright Stat
2555  <p>arbitrary character string regarding the driver's version  <p>arbitrary character string regarding the driver's version
2556  </p>  </p>
2557  </blockquote>  </blockquote>
2558                                        
2559    
2560  <p>PARAMETERS -  <p>PARAMETERS -
2561                                          </p>                                          </p>
# Line 1967  Intellectual Property and Copyright Stat Line 2563  Intellectual Property and Copyright Stat
2563  <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
2564  </p>  </p>
2565  </blockquote>  </blockquote>
2566                                        
2567    
2568  </blockquote>  </blockquote>
2569                                
2570    
2571  <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.
2572  </p>  </p>
2573  </blockquote>  </blockquote><p>
2574                        
2575    </p>
2576  <p>Example:  <p>Example:
2577  </p>  </p>
2578  <p></p>  <p>
2579                            </p>
2580  <blockquote class="text">  <blockquote class="text">
2581  <p>C: "GET MIDI_INPUT_DRIVER INFO ALSA"  <p>C: "GET MIDI_INPUT_DRIVER INFO ALSA"
2582  </p>  </p>
# Line 1988  Intellectual Property and Copyright Stat Line 2588  Intellectual Property and Copyright Stat
2588  </p>  </p>
2589  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2590  </p>  </p>
2591  </blockquote>  </blockquote><p>
2592                        
2593  <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>
2594    <a name="GET MIDI_INPUT_DRIVER_PARAMETER INFO"></a><br /><hr />
2595    <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>
2596    <a name="rfc.section.6.3.4"></a><h3>6.3.4.&nbsp;
2597    Getting information about specific MIDI input driver parameter</h3>
2598    
2599  <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:
2600  </p>  </p>
2601  <p></p>  <p>
2602                            </p>
2603  <blockquote class="text">  <blockquote class="text">
2604  <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;]
2605  </p>  </p>
2606  </blockquote>  </blockquote><p>
2607                        
2608  <p>Where &lt;midi-t&gt; is the name of the MIDI input driver as returned  </p>
2609                      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  <p>Where &lt;midit&gt; is the name of the MIDI input driver as returned
2610                        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
2611                      parameter name for which information should be obtained (as returned by the                      parameter name for which information should be obtained (as returned by the
2612                      <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
2613                      of parameters on which the sought parameter &lt;param&gt; depends on,                      of parameters on which the sought parameter &lt;param&gt; depends on,
2614                      &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 ...",
2615                      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 2628  Intellectual Property and Copyright Stat
2628                      which is only shown dependent to given driver parameter. At                      which is only shown dependent to given driver parameter. At
2629                      the moment the following information categories are defined:                      the moment the following information categories are defined:
2630  </p>  </p>
2631  <p></p>  <p>
2632                            </p>
2633  <blockquote class="text">  <blockquote class="text">
2634  <p>TYPE -  <p>TYPE -
2635                                </p>                                </p>
# Line 2033  Intellectual Property and Copyright Stat Line 2640  Intellectual Property and Copyright Stat
2640                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2641  </p>  </p>
2642  </blockquote>  </blockquote>
2643                                
2644    
2645  <p>DESCRIPTION -  <p>DESCRIPTION -
2646                                </p>                                </p>
# Line 2041  Intellectual Property and Copyright Stat Line 2649  Intellectual Property and Copyright Stat
2649                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2650  </p>  </p>
2651  </blockquote>  </blockquote>
2652                                
2653    
2654  <p>MANDATORY -  <p>MANDATORY -
2655                                </p>                                </p>
2656  <blockquote class="text">  <blockquote class="text">
2657  <p>either true or false, defines if this parameter must be  <p>either true or false, defines if this parameter must be
2658                                  given when the device is to be created with the                                  given when the device is to be created with the
2659                                  <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
2660                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2661  </p>  </p>
2662  </blockquote>  </blockquote>
2663                                
2664    
2665  <p>FIX -  <p>FIX -
2666                                </p>                                </p>
2667  <blockquote class="text">  <blockquote class="text">
2668  <p>either true or false, if false then this parameter can  <p>either true or false, if false then this parameter can
2669                                  be changed at any time, once the device is created by                                  be changed at any time, once the device is created by
2670                                  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
2671                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2672  </p>  </p>
2673  </blockquote>  </blockquote>
2674                                
2675    
2676  <p>MULTIPLICITY -  <p>MULTIPLICITY -
2677                                </p>                                </p>
# Line 2071  Intellectual Property and Copyright Stat Line 2682  Intellectual Property and Copyright Stat
2682                                  (always returned, no matter which driver parameter)                                  (always returned, no matter which driver parameter)
2683  </p>  </p>
2684  </blockquote>  </blockquote>
2685                                
2686    
2687  <p>DEPENDS -  <p>DEPENDS -
2688                                </p>                                </p>
2689  <blockquote class="text">  <blockquote class="text">
2690  <p>comma separated list of paramters this parameter depends  <p>comma separated list of parameters this parameter depends
2691                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',                                  on, means the values for fields 'DEFAULT', 'RANGE_MIN',
2692                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these                                  'RANGE_MAX' and 'POSSIBILITIES' might depend on these
2693                                  listed parameters, for example assuming that an audio                                  listed parameters, for example assuming that an audio
# Line 2087  Intellectual Property and Copyright Stat Line 2699  Intellectual Property and Copyright Stat
2699                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2700  </p>  </p>
2701  </blockquote>  </blockquote>
2702                                
2703    
2704  <p>DEFAULT -  <p>DEFAULT -
2705                                </p>                                </p>
2706  <blockquote class="text">  <blockquote class="text">
2707  <p>reflects the default value for this parameter which is  <p>reflects the default value for this parameter which is
2708                                  used when the device is created and not explicitly                                  used when the device is created and not explicitly
2709                                  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,
2710                                  in case of MULTIPLCITY=true, this is a comma separated                                  in case of MULTIPLCITY=true, this is a comma separated
2711                                  list, that's why character strings are encapsulated into                                  list, that's why character strings are encapsulated into
2712                                  apostrophes (')                                  apostrophes (')
2713                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2714  </p>  </p>
2715  </blockquote>  </blockquote>
2716                                
2717    
2718  <p>RANGE_MIN -  <p>RANGE_MIN -
2719                                </p>                                </p>
# Line 2111  Intellectual Property and Copyright Stat Line 2725  Intellectual Property and Copyright Stat
2725                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2726  </p>  </p>
2727  </blockquote>  </blockquote>
2728                                
2729    
2730  <p>RANGE_MAX -  <p>RANGE_MAX -
2731                                </p>                                </p>
# Line 2122  Intellectual Property and Copyright Stat Line 2737  Intellectual Property and Copyright Stat
2737                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2738  </p>  </p>
2739  </blockquote>  </blockquote>
2740                                
2741    
2742  <p>POSSIBILITIES -  <p>POSSIBILITIES -
2743                                </p>                                </p>
# Line 2132  Intellectual Property and Copyright Stat Line 2748  Intellectual Property and Copyright Stat
2748                                  (optionally returned, dependent to driver parameter)                                  (optionally returned, dependent to driver parameter)
2749  </p>  </p>
2750  </blockquote>  </blockquote>
2751                                
2752    
2753  </blockquote>  </blockquote><p>
2754                        
2755    </p>
2756  <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.
2757  </p>  </p>
2758  <p>Example:  <p>Example:
2759  </p>  </p>
2760  <p></p>  <p>
2761                            </p>
2762  <blockquote class="text">  <blockquote class="text">
2763  <p>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"  <p>C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"
2764  </p>  </p>
# Line 2157  Intellectual Property and Copyright Stat Line 2776  Intellectual Property and Copyright Stat
2776  </p>  </p>
2777  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
2778  </p>  </p>
2779  </blockquote>  </blockquote><p>
2780                        
2781  <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>
2782    <a name="CREATE MIDI_INPUT_DEVICE"></a><br /><hr />
2783    <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>
2784    <a name="rfc.section.6.3.5"></a><h3>6.3.5.&nbsp;
2785    Creating a MIDI input device</h3>
2786    
2787  <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:
2788  </p>  </p>
2789  <p></p>  <p>
2790                            </p>
2791  <blockquote class="text">  <blockquote class="text">
2792  <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;]
2793  </p>  </p>
2794  </blockquote>  </blockquote><p>
2795                        
2796  <p>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system and &lt;param-list&gt; by an  </p>
2797    <p>Where &lt;midi-input-driver&gt; should be replaced by the desired MIDI input system as returned
2798                        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
2799                      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
2800                      character string values should be encapsulated into apostrophes (').                      character string values should be encapsulated into apostrophes (').
2801                      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 2804  Intellectual Property and Copyright Stat
2804  </p>  </p>
2805  <p>Possible Answers:  <p>Possible Answers:
2806  </p>  </p>
2807  <p></p>  <p>
2808                            </p>
2809  <blockquote class="text">  <blockquote class="text">
2810  <p>"OK[&lt;device-id&gt;]" -  <p>"OK[&lt;device-id&gt;]" -
2811                                  </p>                                  </p>
# Line 2187  Intellectual Property and Copyright Stat Line 2814  Intellectual Property and Copyright Stat
2814                                      &lt;device-id&gt; is the numerical ID of the new device                                      &lt;device-id&gt; is the numerical ID of the new device
2815  </p>  </p>
2816  </blockquote>  </blockquote>
2817                                
2818    
2819  <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;" -
2820                                  </p>                                  </p>
# Line 2197  Intellectual Property and Copyright Stat Line 2825  Intellectual Property and Copyright Stat
2825                                      appropriate warning code and warning message                                      appropriate warning code and warning message
2826  </p>  </p>
2827  </blockquote>  </blockquote>
2828                                
2829    
2830  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2831                                  </p>                                  </p>
# Line 2204  Intellectual Property and Copyright Stat Line 2833  Intellectual Property and Copyright Stat
2833  <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
2834  </p>  </p>
2835  </blockquote>  </blockquote>
2836                                
2837    
2838  </blockquote>  </blockquote><p>
2839                        
2840    </p>
2841  <p>Example:  <p>Example:
2842  </p>  </p>
2843  <p></p>  <p>
2844                            </p>
2845  <blockquote class="text">  <blockquote class="text">
2846  <p>C: "CREATE MIDI_INPUT_DEVICE ALSA"  <p>C: "CREATE MIDI_INPUT_DEVICE ALSA"
2847  </p>  </p>
2848  <p>S: "OK[0]"  <p>S: "OK[0]"
2849  </p>  </p>
2850  </blockquote>  </blockquote><p>
2851                        
2852  <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>
2853    <a name="DESTROY MIDI_INPUT_DEVICE"></a><br /><hr />
2854    <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>
2855    <a name="rfc.section.6.3.6"></a><h3>6.3.6.&nbsp;
2856    Destroying a MIDI input device</h3>
2857    
2858  <p>Use the following command to destroy a created MIDI input device:  <p>Use the following command to destroy a created MIDI input device:
2859  </p>  </p>
2860  <p></p>  <p>
2861                            </p>
2862  <blockquote class="text">  <blockquote class="text">
2863  <p>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;  <p>DESTROY MIDI_INPUT_DEVICE &lt;device-id&gt;
2864  </p>  </p>
2865  </blockquote>  </blockquote><p>
2866                        
2867  <p>Where &lt;device-id&gt; should be replaced by the device's numerical ID.  </p>
2868    <p>Where &lt;device-id&gt; should be replaced by the device's numerical ID as returned by the
2869                        <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>
2870                        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>
2871                        command.
2872  </p>  </p>
2873  <p>Possible Answers:  <p>Possible Answers:
2874  </p>  </p>
2875  <p></p>  <p>
2876                            </p>
2877  <blockquote class="text">  <blockquote class="text">
2878  <p>"OK" -  <p>"OK" -
2879                                  </p>                                  </p>
# Line 2239  Intellectual Property and Copyright Stat Line 2881  Intellectual Property and Copyright Stat
2881  <p>in case the device was successfully destroyed  <p>in case the device was successfully destroyed
2882  </p>  </p>
2883  </blockquote>  </blockquote>
2884                                
2885    
2886  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
2887                                  </p>                                  </p>
# Line 2248  Intellectual Property and Copyright Stat Line 2891  Intellectual Property and Copyright Stat
2891                                      warning message                                      warning message
2892  </p>  </p>
2893  </blockquote>  </blockquote>
2894                                
2895    
2896  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
2897                                  </p>                                  </p>
# Line 2255  Intellectual Property and Copyright Stat Line 2899  Intellectual Property and Copyright Stat
2899  <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
2900  </p>  </p>
2901  </blockquote>  </blockquote>
2902                                
2903    
2904  </blockquote>  </blockquote><p>
2905                        
2906    </p>
2907  <p>Example:  <p>Example:
2908  </p>  </p>
2909  <p></p>  <p>
2910                            </p>
2911  <blockquote class="text">  <blockquote class="text">
2912  <p>C: "DESTROY MIDI_INPUT_DEVICE 0"  <p>C: "DESTROY MIDI_INPUT_DEVICE 0"
2913  </p>  </p>
2914  <p>S: "OK"  <p>S: "OK"
2915  </p>  </p>
2916  </blockquote>  </blockquote><p>
2917                        
2918  <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>
2919    <a name="GET MIDI_INPUT_DEVICES"></a><br /><hr />
2920    <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>
2921    <a name="rfc.section.6.3.7"></a><h3>6.3.7.&nbsp;
2922    Getting all created MIDI input device count</h3>
2923    
2924  <p>Use the following command to count all created MIDI input devices:  <p>Use the following command to count all created MIDI input devices:
2925  </p>  </p>
2926  <p></p>  <p>
2927                            </p>
2928  <blockquote class="text">  <blockquote class="text">
2929  <p>GET MIDI_INPUT_DEVICES  <p>GET MIDI_INPUT_DEVICES
2930  </p>  </p>
2931  </blockquote>  </blockquote><p>
2932                        
2933    </p>
2934  <p>Possible Answers:  <p>Possible Answers:
2935  </p>  </p>
2936  <p></p>  <p>
2937                            </p>
2938  <blockquote class="text">  <blockquote class="text">
2939  <p>LinuxSampler will answer by sending the current number of all  <p>LinuxSampler will answer by sending the current number of all
2940                              MIDI input devices.                              MIDI input devices.
2941  </p>  </p>
2942  </blockquote>  </blockquote><p>
2943                        
2944    </p>
2945  <p>Example:  <p>Example:
2946  </p>  </p>
2947  <p></p>  <p>
2948                            </p>
2949  <blockquote class="text">  <blockquote class="text">
2950  <p>C: "GET MIDI_INPUT_DEVICES"  <p>C: "GET MIDI_INPUT_DEVICES"
2951  </p>  </p>
2952  <p>S: "3"  <p>S: "3"
2953  </p>  </p>
2954  </blockquote>  </blockquote><p>
2955                        
2956  <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>
2957    <a name="LIST MIDI_INPUT_DEVICES"></a><br /><hr />
2958    <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>
2959    <a name="rfc.section.6.3.8"></a><h3>6.3.8.&nbsp;
2960    Getting all created MIDI input device list</h3>
2961    
2962  <p>Use the following command to list all created MIDI input devices:  <p>Use the following command to list all created MIDI input devices:
2963  </p>  </p>
2964  <p></p>  <p>
2965                            </p>
2966  <blockquote class="text">  <blockquote class="text">
2967  <p>LIST MIDI_INPUT_DEVICES  <p>LIST MIDI_INPUT_DEVICES
2968  </p>  </p>
2969  </blockquote>  </blockquote><p>
2970                        
2971    </p>
2972  <p>Possible Answers:  <p>Possible Answers:
2973  </p>  </p>
2974  <p></p>  <p>
2975                            </p>
2976  <blockquote class="text">  <blockquote class="text">
2977  <p>LinuxSampler will answer by sending a comma separated list  <p>LinuxSampler will answer by sending a comma separated list
2978                              with the numerical Ids of all created MIDI input devices.                              with the numerical Ids of all created MIDI input devices.
2979  </p>  </p>
2980  </blockquote>  </blockquote><p>
2981                        
2982    </p>
2983  <p>Examples:  <p>Examples:
2984  </p>  </p>
2985  <p></p>  <p>
2986                            </p>
2987  <blockquote class="text">  <blockquote class="text">
2988  <p>C: "LIST MIDI_INPUT_DEVICES"  <p>C: "LIST MIDI_INPUT_DEVICES"
2989  </p>  </p>
2990  <p>S: "0,1,2"  <p>S: "0,1,2"
2991  </p>  </p>
2992  </blockquote>  </blockquote><p>
2993                        
2994  <p></p>  </p>
2995    <p>
2996                            </p>
2997  <blockquote class="text">  <blockquote class="text">
2998  <p>C: "LIST MIDI_INPUT_DEVICES"  <p>C: "LIST MIDI_INPUT_DEVICES"
2999  </p>  </p>
3000  <p>S: "1,3"  <p>S: "1,3"
3001  </p>  </p>
3002  </blockquote>  </blockquote><p>
3003                        
3004  <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>
3005    <a name="GET MIDI_INPUT_DEVICE INFO"></a><br /><hr />
3006    <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>
3007    <a name="rfc.section.6.3.9"></a><h3>6.3.9.&nbsp;
3008    Getting current settings of a MIDI input device</h3>
3009    
3010  <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:
3011  </p>  </p>
3012  <p></p>  <p>
3013                            </p>
3014  <blockquote class="text">  <blockquote class="text">
3015  <p>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;  <p>GET MIDI_INPUT_DEVICE INFO &lt;device-id&gt;
3016  </p>  </p>
3017  </blockquote>  </blockquote><p>
3018                        
3019  <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device.  </p>
3020    <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device as returned by the
3021                        <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>
3022                        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>
3023                        command.
3024  </p>  </p>
3025  <p>Possible Answers:  <p>Possible Answers:
3026  </p>  </p>
3027  <p></p>  <p>
3028                            </p>
3029  <blockquote class="text">  <blockquote class="text">
3030  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3031                              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 3035  Intellectual Property and Copyright Stat
3035                              encapsulated into apostrophes ('). At the moment the following                              encapsulated into apostrophes ('). At the moment the following
3036                              information categories are defined (independent of driver):                              information categories are defined (independent of driver):
3037  </p>  </p>
3038  <p></p>  <p>
3039                                    </p>
3040  <blockquote class="text">  <blockquote class="text">
3041  <p>DRIVER -  <p>DRIVER -
3042                                          </p>                                          </p>
3043  <blockquote class="text">  <blockquote class="text">
3044  <p>identifier of the used MIDI input driver, as e.g.  <p>identifier of the used MIDI input driver, as e.g.
3045                                              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>
3046                                              command                                              command
3047  </p>  </p>
3048  </blockquote>  </blockquote>
3049                                        
3050    
3051  </blockquote>  </blockquote>
3052                                    
3053  <blockquote class="text">  <blockquote class="text">
3054  <p><p>ACTIVE -  <p>ACTIVE -
3055                                          </p>                                          </p>
3056  <blockquote class="text">  <blockquote class="text">
3057  <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 3060  Intellectual Property and Copyright Stat
3060                                              channels                                              channels
3061  </p>  </p>
3062  </blockquote>  </blockquote>
3063                                        
3064    
3065  </blockquote>  </blockquote>
3066                                
3067    
3068  </blockquote>  </blockquote><p>
3069                        
3070    </p>
3071  <p>The mentioned fields above don't have to be in particular  <p>The mentioned fields above don't have to be in particular
3072                      order. The fields above are only those fields which are                      order. The fields above are only those fields which are
3073                      returned by all MIDI input devices. Every MIDI input driver                      returned by all MIDI input devices. Every MIDI input driver
3074                      might have its own, additional driver specific parameters (see                      might have its own, additional driver specific parameters (see
3075                      <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
3076                      by this command.                      by this command.
3077  </p>  </p>
3078  <p>Example:  <p>Example:
3079  </p>  </p>
3080  <p></p>  <p>
3081                            </p>
3082  <blockquote class="text">  <blockquote class="text">
3083  <p>C: "GET MIDI_INPUT_DEVICE INFO 0"  <p>C: "GET MIDI_INPUT_DEVICE INFO 0"
3084  </p>  </p>
# Line 2404  Intellectual Property and Copyright Stat Line 3088  Intellectual Property and Copyright Stat
3088  </p>  </p>
3089  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3090  </p>  </p>
3091  </blockquote>  </blockquote><p>
3092                        
3093  <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>
3094    <a name="SET MIDI_INPUT_DEVICE_PARAMETER"></a><br /><hr />
3095    <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>
3096    <a name="rfc.section.6.3.10"></a><h3>6.3.10.&nbsp;
3097    Changing settings of MIDI input devices</h3>
3098    
3099  <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:
3100  </p>  </p>
3101  <p></p>  <p>
3102                            </p>
3103  <blockquote class="text">  <blockquote class="text">
3104  <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;
3105  </p>  </p>
3106  </blockquote>  </blockquote><p>
3107                        
3108    </p>
3109  <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
3110                      MIDI input device, &lt;key&gt; by the name of the parameter to change and                      MIDI input device as returned by the
3111                        <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>
3112                        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>
3113                        command, &lt;key&gt; by the name of the parameter to change and
3114                      &lt;value&gt; by the new value for this parameter.                      &lt;value&gt; by the new value for this parameter.
3115  </p>  </p>
3116  <p>Possible Answers:  <p>Possible Answers:
3117  </p>  </p>
3118  <p></p>  <p>
3119                            </p>
3120  <blockquote class="text">  <blockquote class="text">
3121  <p>"OK" -  <p>"OK" -
3122                                  </p>                                  </p>
# Line 2430  Intellectual Property and Copyright Stat Line 3124  Intellectual Property and Copyright Stat
3124  <p>in case setting was successfully changed  <p>in case setting was successfully changed
3125  </p>  </p>
3126  </blockquote>  </blockquote>
3127                                
3128    
3129  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3130                                  </p>                                  </p>
# Line 2439  Intellectual Property and Copyright Stat Line 3134  Intellectual Property and Copyright Stat
3134                                      warning code and warning message                                      warning code and warning message
3135  </p>  </p>
3136  </blockquote>  </blockquote>
3137                                
3138    
3139  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3140                                  </p>                                  </p>
# Line 2446  Intellectual Property and Copyright Stat Line 3142  Intellectual Property and Copyright Stat
3142  <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
3143  </p>  </p>
3144  </blockquote>  </blockquote>
3145                                
3146    
3147  </blockquote>  </blockquote><p>
3148                        
3149    </p>
3150  <p>Example:  <p>Example:
3151  </p>  </p>
3152  <p></p>  <p>
3153                            </p>
3154  <blockquote class="text">  <blockquote class="text">
3155  <p>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"  <p>C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
3156  </p>  </p>
3157  <p>S: "OK"  <p>S: "OK"
3158  </p>  </p>
3159  </blockquote>  </blockquote><p>
3160                        
3161  <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>
3162    <a name="GET MIDI_INPUT_PORT INFO"></a><br /><hr />
3163    <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>
3164    <a name="rfc.section.6.3.11"></a><h3>6.3.11.&nbsp;
3165    Getting information about a MIDI port</h3>
3166    
3167  <p>Use the following command to get information about a MIDI port:  <p>Use the following command to get information about a MIDI port:
3168  </p>  </p>
3169  <p></p>  <p>
3170                            </p>
3171  <blockquote class="text">  <blockquote class="text">
3172  <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;
3173  </p>  </p>
3174  </blockquote>  </blockquote><p>
3175                        
3176  <p>Where &lt;device-id&gt; is the numerical ID of the MIDI input device  </p>
3177                      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
3178                        <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>
3179                        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>
3180                        command and &lt;midi-port&gt; the MIDI input port number.
3181  </p>  </p>
3182  <p>Possible Answers:  <p>Possible Answers:
3183  </p>  </p>
3184  <p></p>  <p>
3185                            </p>
3186  <blockquote class="text">  <blockquote class="text">
3187  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3188                              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 3196  Intellectual Property and Copyright Stat
3196  <p>arbitrary character string naming the port  <p>arbitrary character string naming the port
3197  </p>  </p>
3198  </blockquote>  </blockquote>
3199                                
3200    
3201  </blockquote>  </blockquote><p>
3202                        
3203    </p>
3204  <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
3205                      ports regardless of the MIDI driver and port. Every MIDI port                      ports regardless of the MIDI driver and port. Every MIDI port
3206                      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 3208  Intellectual Property and Copyright Stat
3208  </p>  </p>
3209  <p>Example:  <p>Example:
3210  </p>  </p>
3211  <p></p>  <p>
3212                            </p>
3213  <blockquote class="text">  <blockquote class="text">
3214  <p>C: "GET MIDI_INPUT_PORT INFO 0 0"  <p>C: "GET MIDI_INPUT_PORT INFO 0 0"
3215  </p>  </p>
# Line 2508  Intellectual Property and Copyright Stat Line 3219  Intellectual Property and Copyright Stat
3219  </p>  </p>
3220  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3221  </p>  </p>
3222  </blockquote>  </blockquote><p>
3223                        
3224  <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>
3225    <a name="GET MIDI_INPUT_PORT_PARAMETER INFO"></a><br /><hr />
3226    <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>
3227    <a name="rfc.section.6.3.12"></a><h3>6.3.12.&nbsp;
3228    Getting information about specific MIDI port parameter</h3>
3229    
3230  <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:
3231  </p>  </p>
3232  <p></p>  <p>
3233                            </p>
3234  <blockquote class="text">  <blockquote class="text">
3235  <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;
3236  </p>  </p>
3237  </blockquote>  </blockquote><p>
3238                        
3239  <p>Where &lt;dev-id&gt; is the numerical ID of the MIDI input device as returned  </p>
3240                      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
3241                        <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>
3242                        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>
3243                        command, &lt;port&gt; the MIDI port number and
3244                      &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
3245                      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).
3246  </p>  </p>
3247  <p>Possible Answers:  <p>Possible Answers:
3248  </p>  </p>
3249  <p></p>  <p>
3250                            </p>
3251  <blockquote class="text">  <blockquote class="text">
3252  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3253                              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 3267  Intellectual Property and Copyright Stat
3267                                      (always returned)                                      (always returned)
3268  </p>  </p>
3269  </blockquote>  </blockquote>
3270                                
3271    
3272  <p>DESCRIPTION -  <p>DESCRIPTION -
3273                                  </p>                                  </p>
# Line 2555  Intellectual Property and Copyright Stat Line 3276  Intellectual Property and Copyright Stat
3276                                      (always returned)                                      (always returned)
3277  </p>  </p>
3278  </blockquote>  </blockquote>
3279                                
3280    
3281  <p>FIX -  <p>FIX -
3282                                  </p>                                  </p>
# Line 2564  Intellectual Property and Copyright Stat Line 3286  Intellectual Property and Copyright Stat
3286                                      (always returned)                                      (always returned)
3287  </p>  </p>
3288  </blockquote>  </blockquote>
3289                                
3290    
3291  <p>MULTIPLICITY -  <p>MULTIPLICITY -
3292                                  </p>                                  </p>
# Line 2574  Intellectual Property and Copyright Stat Line 3297  Intellectual Property and Copyright Stat
3297                                      (always returned)                                      (always returned)
3298  </p>  </p>
3299  </blockquote>  </blockquote>
3300                                
3301    
3302  <p>RANGE_MIN -  <p>RANGE_MIN -
3303                                  </p>                                  </p>
# Line 2586  Intellectual Property and Copyright Stat Line 3310  Intellectual Property and Copyright Stat
3310                                      parameter)                                      parameter)
3311  </p>  </p>
3312  </blockquote>  </blockquote>
3313                                
3314    
3315  <p>RANGE_MAX -  <p>RANGE_MAX -
3316                                  </p>                                  </p>
# Line 2598  Intellectual Property and Copyright Stat Line 3323  Intellectual Property and Copyright Stat
3323                                      parameter)                                      parameter)
3324  </p>  </p>
3325  </blockquote>  </blockquote>
3326                                
3327    
3328  <p>POSSIBILITIES -  <p>POSSIBILITIES -
3329                                  </p>                                  </p>
# Line 2609  Intellectual Property and Copyright Stat Line 3335  Intellectual Property and Copyright Stat
3335                                      parameter)                                      parameter)
3336  </p>  </p>
3337  </blockquote>  </blockquote>
3338                                
3339    
3340  </blockquote>  </blockquote><p>
3341                        
3342    </p>
3343  <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.
3344  </p>  </p>
3345  <p>Example:  <p>Example:
3346  </p>  </p>
3347  <p></p>  <p>
3348                            </p>
3349  <blockquote class="text">  <blockquote class="text">
3350  <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"
3351  </p>  </p>
# Line 2632  Intellectual Property and Copyright Stat Line 3361  Intellectual Property and Copyright Stat
3361  </p>  </p>
3362  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3363  </p>  </p>
3364  </blockquote>  </blockquote><p>
3365                        
3366  <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>
3367    <a name="SET MIDI_INPUT_PORT_PARAMETER"></a><br /><hr />
3368    <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>
3369    <a name="rfc.section.6.3.13"></a><h3>6.3.13.&nbsp;
3370    Changing settings of MIDI input ports</h3>
3371    
3372  <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:
3373  </p>  </p>
3374  <p></p>  <p>
3375                            </p>
3376  <blockquote class="text">  <blockquote class="text">
3377  <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;
3378  </p>  </p>
3379  </blockquote>  </blockquote><p>
3380                        
3381    </p>
3382  <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
3383                      MIDI device, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of                      MIDI device as returned by the
3384                        <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>
3385                        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>
3386                        command, &lt;port&gt; by the MIDI port number, &lt;key&gt; by the name of
3387                      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
3388                      parameter.                      parameter (encapsulated into apostrophes) or NONE (not encapsulated into apostrophes)
3389                        for specifying no value for parameters allowing a list of values.
3390  </p>  </p>
3391  <p>Possible Answers:  <p>Possible Answers:
3392  </p>  </p>
3393  <p></p>  <p>
3394                            </p>
3395  <blockquote class="text">  <blockquote class="text">
3396  <p>"OK" -  <p>"OK" -
3397                                  </p>                                  </p>
# Line 2659  Intellectual Property and Copyright Stat Line 3399  Intellectual Property and Copyright Stat
3399  <p>in case setting was successfully changed  <p>in case setting was successfully changed
3400  </p>  </p>
3401  </blockquote>  </blockquote>
3402                                
3403    
3404  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3405                                  </p>                                  </p>
# Line 2668  Intellectual Property and Copyright Stat Line 3409  Intellectual Property and Copyright Stat
3409                                      warning code and warning message                                      warning code and warning message
3410  </p>  </p>
3411  </blockquote>  </blockquote>
3412                                
3413    
3414  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3415                                  </p>                                  </p>
# Line 2675  Intellectual Property and Copyright Stat Line 3417  Intellectual Property and Copyright Stat
3417  <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
3418  </p>  </p>
3419  </blockquote>  </blockquote>
3420                                
3421    
3422  </blockquote>  </blockquote><p>
3423                        
3424    </p>
3425  <p>Example:  <p>Example:
3426  </p>  </p>
3427  <p></p>  <p>
3428                            </p>
3429  <blockquote class="text">  <blockquote class="text">
3430    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='20:0'"
3431    </p>
3432    <p>S: "OK"
3433    </p>
3434    </blockquote><p>
3435                        
3436    </p>
3437  <p>  <p>
3438                            </p>
3439    <blockquote class="text">
3440    <p>C: "SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS=NONE"
3441  </p>  </p>
3442  </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.  
3443  </p>  </p>
3444  <a name="rfc.section.5.4.1"></a><h4><a name="LOAD INSTRUMENT">5.4.1</a>&nbsp;Loading an instrument</h4>  </blockquote><p>
3445                        
3446    </p>
3447    <a name="anchor11"></a><br /><hr />
3448    <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>
3449    <a name="rfc.section.6.4"></a><h3>6.4.&nbsp;
3450    Configuring sampler channels</h3>
3451    
3452    <p>The following commands describe how to add and remove sampler channels, associate a
3453                    sampler channel with a sampler engine, load instruments and connect sampler channels to
3454                    MIDI and audio devices.
3455    </p>
3456    <a name="LOAD INSTRUMENT"></a><br /><hr />
3457    <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>
3458    <a name="rfc.section.6.4.1"></a><h3>6.4.1.&nbsp;
3459    Loading an instrument</h3>
3460    
3461  <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:
3462  </p>  </p>
3463  <p></p>  <p>
3464                            </p>
3465  <blockquote class="text">  <blockquote class="text">
3466  <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;
3467  </p>  </p>
3468  </blockquote>  </blockquote><p>
3469                        
3470    </p>
3471  <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
3472                      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
3473                      instrument in the instrument file and &lt;sampler-channel> is the                      instrument in the instrument file and &lt;sampler-channel> is the
3474                      number of the sampler channel the instrument should be assigned to.                      number of the sampler channel the instrument should be assigned to.
3475                      Each sampler channel can only have one instrument.                      Each sampler channel can only have one instrument.
3476  </p>  </p>
3477    <p>Notice: since LSCP 1.2 the &lt;filename&gt; argument supports
3478                        escape characters for special characters (see chapter
3479                        "<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>"
3480                        for details) and accordingly backslash characters in the filename
3481                        MUST now be escaped as well!
3482    </p>
3483  <p>The difference between regular and NON_MODAL versions of the command  <p>The difference between regular and NON_MODAL versions of the command
3484                      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
3485                      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
3486                      returns immediately and a background process is launched to load the instrument                      returns immediately and a background process is launched to load the instrument
3487                      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>
3488                      command can be used to obtain loading                      command can be used to obtain loading
3489                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks                      progress from INSTRUMENT_STATUS field. LOAD command will perform sanity checks
3490                      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 3493  Intellectual Property and Copyright Stat
3493  </p>  </p>
3494  <p>Possible Answers:  <p>Possible Answers:
3495  </p>  </p>
3496  <p></p>  <p>
3497                            </p>
3498  <blockquote class="text">  <blockquote class="text">
3499  <p>"OK" -  <p>"OK" -
3500                                  </p>                                  </p>
# Line 2728  Intellectual Property and Copyright Stat Line 3502  Intellectual Property and Copyright Stat
3502  <p>in case the instrument was successfully loaded  <p>in case the instrument was successfully loaded
3503  </p>  </p>
3504  </blockquote>  </blockquote>
3505                                
3506    
3507  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3508                                  </p>                                  </p>
# Line 2739  Intellectual Property and Copyright Stat Line 3514  Intellectual Property and Copyright Stat
3514                                      warning message                                      warning message
3515  </p>  </p>
3516  </blockquote>  </blockquote>
3517                                
3518    
3519  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3520                                  </p>                                  </p>
# Line 2746  Intellectual Property and Copyright Stat Line 3522  Intellectual Property and Copyright Stat
3522  <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
3523  </p>  </p>
3524  </blockquote>  </blockquote>
3525                                
3526    
3527  </blockquote>  </blockquote><p>
3528                        
 <p>Example:  
3529  </p>  </p>
3530  <p></p>  <p>Example (Unix):
3531    </p>
3532    <p>
3533                            </p>
3534  <blockquote class="text">  <blockquote class="text">
3535    <p>C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
3536    </p>
3537    <p>S: OK
3538    </p>
3539    </blockquote><p>
3540                        
3541    </p>
3542    <p>Example (Windows):
3543    </p>
3544  <p>  <p>
3545                            </p>
3546    <blockquote class="text">
3547    <p>C: LOAD INSTRUMENT 'D:/MySounds/cello.gig' 0 0
3548  </p>  </p>
3549  </blockquote>  <p>S: OK
3550    </p>
3551  <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>
3552                        
3553    </p>
3554    <a name="LOAD ENGINE"></a><br /><hr />
3555    <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>
3556    <a name="rfc.section.6.4.2"></a><h3>6.4.2.&nbsp;
3557    Loading a sampler engine</h3>
3558    
3559  <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
3560                      channel by the following command:                      channel by the following command:
3561  </p>  </p>
3562  <p></p>  <p>
3563                            </p>
3564  <blockquote class="text">  <blockquote class="text">
3565  <p>LOAD ENGINE &lt;engine-name&gt; &lt;sampler-channel&gt;  <p>LOAD ENGINE &lt;engine-name&gt; &lt;sampler-channel&gt;
3566  </p>  </p>
3567  </blockquote>  </blockquote><p>
3568                        
3569    </p>
3570  <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
3571                      <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;
3572                      deployed engine should be assigned to. Even if the respective                      the sampler channel as returned by the
3573                      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
3574                      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
3575                        the engine type should be assigned to. This command should be issued
3576                        after adding a new sampler channel and before any other control
3577                        commands on the new sampler channel. It can also be used to change
3578                        the engine type of a sampler channel. This command has (currently) no
3579                        way to define or force if a new engine instance should be created and
3580                        assigned to the given sampler channel or if an already existing
3581                        instance of that engine type, shared with other sampler channels,
3582                        should be used.
3583  </p>  </p>
3584  <p>Possible Answers:  <p>Possible Answers:
3585  </p>  </p>
3586  <p></p>  <p>
3587                            </p>
3588  <blockquote class="text">  <blockquote class="text">
3589  <p>"OK" -  <p>"OK" -
3590                                  </p>                                  </p>
# Line 2784  Intellectual Property and Copyright Stat Line 3592  Intellectual Property and Copyright Stat
3592  <p>in case the engine was successfully deployed  <p>in case the engine was successfully deployed
3593  </p>  </p>
3594  </blockquote>  </blockquote>
3595                                
3596    
3597  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3598                                  </p>                                  </p>
# Line 2793  Intellectual Property and Copyright Stat Line 3602  Intellectual Property and Copyright Stat
3602                                      warning code and warning message                                      warning code and warning message
3603  </p>  </p>
3604  </blockquote>  </blockquote>
3605                                
3606    
3607  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3608                                  </p>                                  </p>
# Line 2801  Intellectual Property and Copyright Stat Line 3611  Intellectual Property and Copyright Stat
3611                                      error message                                      error message
3612  </p>  </p>
3613  </blockquote>  </blockquote>
3614                                
3615    
3616  </blockquote>  </blockquote><p>
3617                        
3618    </p>
3619  <p>Example:  <p>Example:
3620  </p>  </p>
3621  <p></p>  <p>
3622                            </p>
3623  <blockquote class="text">  <blockquote class="text">
3624  <p>  <p>
3625  </p>  </p>
3626  </blockquote>  </blockquote><p>
3627                        
3628  <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>
3629    <a name="GET CHANNELS"></a><br /><hr />
3630    <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>
3631    <a name="rfc.section.6.4.3"></a><h3>6.4.3.&nbsp;
3632    Getting all created sampler channel count</h3>
3633    
3634  <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
3635                      current amount of sampler channels, the front-end can send the                      current amount of sampler channels, the front-end can send the
3636                      following command:                      following command:
3637  </p>  </p>
3638  <p></p>  <p>
3639                            </p>
3640  <blockquote class="text">  <blockquote class="text">
3641  <p>GET CHANNELS  <p>GET CHANNELS
3642  </p>  </p>
3643  </blockquote>  </blockquote><p>
3644                        
3645    </p>
3646  <p>Possible Answers:  <p>Possible Answers:
3647  </p>  </p>
3648  <p></p>  <p>
3649                            </p>
3650  <blockquote class="text">  <blockquote class="text">
3651  <p>LinuxSampler will answer by returning the current number of sampler channels.  <p>LinuxSampler will answer by returning the current number of sampler channels.
3652  </p>  </p>
3653  </blockquote>  </blockquote><p>
3654                        
3655    </p>
3656  <p>Example:  <p>Example:
3657  </p>  </p>
3658  <p></p>  <p>
3659                            </p>
3660  <blockquote class="text">  <blockquote class="text">
3661  <p>C: "GET CHANNELS"  <p>C: "GET CHANNELS"
3662  </p>  </p>
3663  <p>S: "12"  <p>S: "12"
3664  </p>  </p>
3665  </blockquote>  </blockquote><p>
3666                        
3667  <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>
3668    <a name="LIST CHANNELS"></a><br /><hr />
3669    <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>
3670    <a name="rfc.section.6.4.4"></a><h3>6.4.4.&nbsp;
3671    Getting all created sampler channel list</h3>
3672    
3673  <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
3674                      current list of sampler channels, the front-end can send the                      current list of sampler channels, the front-end can send the
3675                      following command:                      following command:
3676  </p>  </p>
3677  <p></p>  <p>
3678                            </p>
3679  <blockquote class="text">  <blockquote class="text">
3680  <p>LIST CHANNELS  <p>LIST CHANNELS
3681  </p>  </p>
3682  </blockquote>  </blockquote><p>
3683                        
3684    </p>
3685  <p>Possible Answers:  <p>Possible Answers:
3686  </p>  </p>
3687  <p></p>  <p>
3688                            </p>
3689  <blockquote class="text">  <blockquote class="text">
3690  <p>LinuxSampler will answer by returning a comma separated list  <p>LinuxSampler will answer by returning a comma separated list
3691                              with all sampler channels numerical IDs.                              with all sampler channels numerical IDs.
3692  </p>  </p>
3693  </blockquote>  </blockquote><p>
3694                        
3695    </p>
3696  <p>Example:  <p>Example:
3697  </p>  </p>
3698  <p></p>  <p>
3699                            </p>
3700  <blockquote class="text">  <blockquote class="text">
3701  <p>C: "LIST CHANNELS"  <p>C: "LIST CHANNELS"
3702  </p>  </p>
3703  <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"
3704  </p>  </p>
3705  </blockquote>  </blockquote><p>
3706                        
3707  <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>
3708    <a name="ADD CHANNEL"></a><br /><hr />
3709    <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>
3710    <a name="rfc.section.6.4.5"></a><h3>6.4.5.&nbsp;
3711    Adding a new sampler channel</h3>
3712    
3713  <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
3714                      channel list by sending the following command:                      channel list by sending the following command:
3715  </p>  </p>
3716  <p></p>  <p>
3717                            </p>
3718  <blockquote class="text">  <blockquote class="text">
3719  <p>ADD CHANNEL  <p>ADD CHANNEL
3720  </p>  </p>
3721  </blockquote>  </blockquote><p>
3722                        
3723    </p>
3724  <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
3725                      sampler channel will be appended to the end of the sampler channel                      sampler channel will be appended to the end of the sampler channel
3726                      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 3733  Intellectual Property and Copyright Stat
3733  </p>  </p>
3734  <p>Possible Answers:  <p>Possible Answers:
3735  </p>  </p>
3736  <p></p>  <p>
3737                            </p>
3738  <blockquote class="text">  <blockquote class="text">
3739  <p>"OK[&lt;sampler-channel&gt;]" -  <p>"OK[&lt;sampler-channel&gt;]" -
3740                                  </p>                                  </p>
3741  <blockquote class="text">  <blockquote class="text">
3742  <p>in case a new sampler channel could be added, where  <p>in case a new sampler channel could be added, where
3743                                      &lt;sampler-channel&gt; reflects the channel number of the new                                      &lt;sampler-channel&gt; reflects the channel number of the new
3744                                      created sampler channel which should the be used to set up                                      created sampler channel which should be used to set up
3745                                      the sampler channel by sending subsequent intialization                                      the sampler channel by sending subsequent initialization
3746                                      commands                                      commands
3747  </p>  </p>
3748  </blockquote>  </blockquote>
3749                                
3750    
3751  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3752                                  </p>                                  </p>
# Line 2917  Intellectual Property and Copyright Stat Line 3756  Intellectual Property and Copyright Stat
3756                                      warning code and warning message                                      warning code and warning message
3757  </p>  </p>
3758  </blockquote>  </blockquote>
3759                                
3760    
3761  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3762                                  </p>                                  </p>
# Line 2925  Intellectual Property and Copyright Stat Line 3765  Intellectual Property and Copyright Stat
3765                                      error message                                      error message
3766  </p>  </p>
3767  </blockquote>  </blockquote>
3768                                
3769    
3770  </blockquote>  </blockquote><p>
3771                        
3772    </p>
3773  <p>Example:  <p>Example:
3774  </p>  </p>
3775  <p></p>  <p>
3776                            </p>
3777  <blockquote class="text">  <blockquote class="text">
3778  <p>  <p>
3779  </p>  </p>
3780  </blockquote>  </blockquote><p>
3781                        
3782  <a name="rfc.section.5.4.6"></a><h4><a name="REMOVE CHANNEL">5.4.6</a>&nbsp;Removing a sampler channel</h4>  </p>
3783    <a name="REMOVE CHANNEL"></a><br /><hr />
3784    <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>
3785    <a name="rfc.section.6.4.6"></a><h3>6.4.6.&nbsp;
3786    Removing a sampler channel</h3>
3787    
3788  <p>A sampler channel can be removed by sending the following command:  <p>A sampler channel can be removed by sending the following command:
3789  </p>  </p>
3790  <p></p>  <p>
3791                            </p>
3792  <blockquote class="text">  <blockquote class="text">
3793  <p>REMOVE CHANNEL &lt;sampler-channel&gt;  <p>REMOVE CHANNEL &lt;sampler-channel&gt;
3794  </p>  </p>
3795  </blockquote>  </blockquote><p>
3796                        
3797  <p>This will decrement the sampler channel count by one and also  </p>
3798                      decrement the channel numbers of all subsequent sampler channels by  <p>Where &lt;sampler-channel&gt; should be replaced by the
3799                      one.                      number of the sampler channel as given by the
3800                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
3801                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
3802                        command. The channel numbers of all subsequent sampler channels
3803                        remain the same.
3804  </p>  </p>
3805  <p>Possible Answers:  <p>Possible Answers:
3806  </p>  </p>
3807  <p></p>  <p>
3808                            </p>
3809  <blockquote class="text">  <blockquote class="text">
3810  <p>"OK" -  <p>"OK" -
3811                                  </p>                                  </p>
# Line 2960  Intellectual Property and Copyright Stat Line 3813  Intellectual Property and Copyright Stat
3813  <p>in case the given sampler channel could be removed  <p>in case the given sampler channel could be removed
3814  </p>  </p>
3815  </blockquote>  </blockquote>
3816                                
3817    
3818  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
3819                                  </p>                                  </p>
# Line 2969  Intellectual Property and Copyright Stat Line 3823  Intellectual Property and Copyright Stat
3823                                      warning code and warning message                                      warning code and warning message
3824  </p>  </p>
3825  </blockquote>  </blockquote>
3826                                
3827    
3828  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
3829                                  </p>                                  </p>
# Line 2977  Intellectual Property and Copyright Stat Line 3832  Intellectual Property and Copyright Stat
3832                                      error message                                      error message
3833  </p>  </p>
3834  </blockquote>  </blockquote>
3835                                
3836    
3837  </blockquote>  </blockquote><p>
3838                        
3839    </p>
3840  <p>Example:  <p>Example:
3841  </p>  </p>
3842  <p></p>  <p>
3843                            </p>
3844  <blockquote class="text">  <blockquote class="text">
3845  <p>  <p>
3846  </p>  </p>
3847  </blockquote>  </blockquote><p>
3848                        
3849  <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>
3850    <a name="GET AVAILABLE_ENGINES"></a><br /><hr />
3851    <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>
3852    <a name="rfc.section.6.4.7"></a><h3>6.4.7.&nbsp;
3853    Getting amount of available engines</h3>
3854    
3855  <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:
3856  </p>  </p>
3857  <p></p>  <p>
3858                            </p>
3859  <blockquote class="text">  <blockquote class="text">
3860  <p>GET AVAILABLE_ENGINES  <p>GET AVAILABLE_ENGINES
3861  </p>  </p>
3862  </blockquote>  </blockquote><p>
3863                        
3864    </p>
3865  <p>Possible Answers:  <p>Possible Answers:
3866  </p>  </p>
3867  <p></p>  <p>
3868                            </p>
3869  <blockquote class="text">  <blockquote class="text">
3870  <p>LinuxSampler will answer by sending the number of available engines.  <p>LinuxSampler will answer by sending the number of available engines.
3871  </p>  </p>
3872  </blockquote>  </blockquote><p>
3873                        
3874    </p>
3875  <p>Example:  <p>Example:
3876  </p>  </p>
3877  <p></p>  <p>
3878                            </p>
3879  <blockquote class="text">  <blockquote class="text">
3880  <p>C: "GET AVAILABLE_ENGINES"  <p>C: "GET AVAILABLE_ENGINES"
3881  </p>  </p>
3882  <p>S: "4"  <p>S: "4"
3883  </p>  </p>
3884  </blockquote>  </blockquote><p>
3885                        
3886  <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>
3887    <a name="LIST AVAILABLE_ENGINES"></a><br /><hr />
3888    <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>
3889    <a name="rfc.section.6.4.8"></a><h3>6.4.8.&nbsp;
3890    Getting all available engines</h3>
3891    
3892  <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:
3893  </p>  </p>
3894  <p></p>  <p>
3895                            </p>
3896  <blockquote class="text">  <blockquote class="text">
3897  <p>LIST AVAILABLE_ENGINES  <p>LIST AVAILABLE_ENGINES
3898  </p>  </p>
3899  </blockquote>  </blockquote><p>
3900                        
3901    </p>
3902  <p>Possible Answers:  <p>Possible Answers:
3903  </p>  </p>
3904  <p></p>  <p>
3905                            </p>
3906  <blockquote class="text">  <blockquote class="text">
3907  <p>LinuxSampler will answer by sending a comma separated character  <p>LinuxSampler will answer by sending a comma separated list
3908                              string of the engines' names. Engine names can consist of lower and                              of the engines' names encapsulated into apostrophes (').
3909                              upper cases, digits and underlines ("_" character).                              Engine names can consist of lower and upper cases,
3910                                digits and underlines ("_" character).
3911    </p>
3912    </blockquote><p>
3913                        
3914  </p>  </p>
 </blockquote>  
   
3915  <p>Example:  <p>Example:
3916  </p>  </p>
3917  <p></p>  <p>
3918                            </p>
3919  <blockquote class="text">  <blockquote class="text">
3920  <p>C: "LIST AVAILABLE_ENGINES"  <p>C: "LIST AVAILABLE_ENGINES"
3921  </p>  </p>
3922  <p>S: "GigEngine,AkaiEngine,DLSEngine,JoesCustomEngine"  <p>S: "'gig','sfz','sf2'"
3923  </p>  </p>
3924  </blockquote>  </blockquote><p>
3925                        
3926  <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>
3927    <a name="GET ENGINE INFO"></a><br /><hr />
3928    <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>
3929    <a name="rfc.section.6.4.9"></a><h3>6.4.9.&nbsp;
3930    Getting information about an engine</h3>
3931    
3932  <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
3933                      sending the following command:                      sending the following command:
3934  </p>  </p>
3935  <p></p>  <p>
3936                            </p>
3937  <blockquote class="text">  <blockquote class="text">
3938  <p>GET ENGINE INFO &lt;engine-name&gt;  <p>GET ENGINE INFO &lt;engine-name&gt;
3939  </p>  </p>
3940  </blockquote>  </blockquote><p>
3941                        
3942    </p>
3943  <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
3944                      <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.
3945  </p>  </p>
3946  <p>Possible Answers:  <p>Possible Answers:
3947  </p>  </p>
3948  <p></p>  <p>
3949                            </p>
3950  <blockquote class="text">  <blockquote class="text">
3951  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
3952                              Each answer line begins with the information category name                              Each answer line begins with the information category name
# Line 3070  Intellectual Property and Copyright Stat Line 3954  Intellectual Property and Copyright Stat
3954                              the info character string to that info category. At the moment                              the info character string to that info category. At the moment
3955                              the following categories are defined:                              the following categories are defined:
3956  </p>  </p>
3957  <p></p>  <p>
3958                                    </p>
3959  <blockquote class="text">  <blockquote class="text">
3960  <p>DESCRIPTION -  <p>DESCRIPTION -
3961                                          </p>                                          </p>
3962  <blockquote class="text">  <blockquote class="text">
3963  <p>arbitrary description text about the engine  <p>arbitrary description text about the engine
3964                                                (note that the character string may contain
3965                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
3966  </p>  </p>
3967  </blockquote>  </blockquote>
3968                                        
3969    
3970  <p>VERSION -  <p>VERSION -
3971                                          </p>                                          </p>
# Line 3085  Intellectual Property and Copyright Stat Line 3973  Intellectual Property and Copyright Stat
3973  <p>arbitrary character string regarding the engine's version  <p>arbitrary character string regarding the engine's version
3974  </p>  </p>
3975  </blockquote>  </blockquote>
3976                                        
3977    
3978  </blockquote>  </blockquote>
3979                                
3980    
3981  </blockquote>  </blockquote><p>
3982                        
3983    </p>
3984  <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.
3985  </p>  </p>
3986  <p>Example:  <p>Examples:
3987  </p>  </p>
3988  <p></p>  <p>
3989                            </p>
3990  <blockquote class="text">  <blockquote class="text">
3991  <p>C: "GET ENGINE INFO JoesCustomEngine"  <p>C: "GET ENGINE INFO gig"
3992  </p>  </p>
3993  <p>S: "DESCRIPTION: this is Joe's custom sampler engine"  <p>S: "DESCRIPTION: GigaSampler Format Engine"
3994  </p>  </p>
3995  <p>&nbsp;&nbsp;&nbsp;"VERSION: testing-1.0"  <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.110"
3996  </p>  </p>
3997  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
3998  </p>  </p>
3999  </blockquote>  <p>C: "GET ENGINE INFO sf2"
4000    </p>
4001  <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>S: "DESCRIPTION: SoundFont Format Engine"
4002    </p>
4003    <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.4"
4004    </p>
4005    <p>&nbsp;&nbsp;&nbsp;"."
4006    </p>
4007    <p>C: "GET ENGINE INFO sfz"
4008    </p>
4009    <p>S: "DESCRIPTION: SFZ Format Engine"
4010    </p>
4011    <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.11"
4012    </p>
4013    <p>&nbsp;&nbsp;&nbsp;"."
4014    </p>
4015    </blockquote><p>
4016                        
4017    </p>
4018    <a name="GET CHANNEL INFO"></a><br /><hr />
4019    <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>
4020    <a name="rfc.section.6.4.10"></a><h3>6.4.10.&nbsp;
4021    Getting sampler channel information</h3>
4022    
4023  <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
4024                      by sending the following command:                      by sending the following command:
4025  </p>  </p>
4026  <p></p>  <p>
4027                            </p>
4028  <blockquote class="text">  <blockquote class="text">
4029  <p>GET CHANNEL INFO &lt;sampler-channel&gt;  <p>GET CHANNEL INFO &lt;sampler-channel&gt;
4030  </p>  </p>
4031  </blockquote>  </blockquote><p>
4032                        
4033  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
4034    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4035                        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>
4036                        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.
4037  </p>  </p>
4038  <p>Possible Answers:  <p>Possible Answers:
4039  </p>  </p>
4040  <p></p>  <p>
4041                            </p>
4042  <blockquote class="text">  <blockquote class="text">
4043  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.  <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
4044                              Each answer line begins with the settings category name                              Each answer line begins with the settings category name
# Line 3129  Intellectual Property and Copyright Stat Line 4046  Intellectual Property and Copyright Stat
4046                              the info character string to that setting category. At the                              the info character string to that setting category. At the
4047                              moment the following categories are defined:                              moment the following categories are defined:
4048  </p>  </p>
4049  <p></p>  <p>
4050                                    </p>
4051  <blockquote class="text">  <blockquote class="text">
4052  <p>ENGINE_NAME -  <p>ENGINE_NAME -
4053                                          </p>                                          </p>
4054  <blockquote class="text">  <blockquote class="text">
4055  <p>name of the engine that is deployed on the sampler  <p>name of the engine that is associated with the sampler
4056                                              channel, "NONE" if there's no engine deployed yet for                                              channel, "NONE" if there's no engine associated yet for
4057                                              this sampler channel                                              this sampler channel
4058  </p>  </p>
4059  </blockquote>  </blockquote>
4060                                        
4061    
4062  <p>AUDIO_OUTPUT_DEVICE -  <p>AUDIO_OUTPUT_DEVICE -
4063                                          </p>                                          </p>
4064  <blockquote class="text">  <blockquote class="text">
4065  <p>numerical ID of the audio output device which is  <p>numerical ID of the audio output device which is
4066                                              currently connected to this sampler channel to output                                              currently connected to this sampler channel to output
4067                                              the audio signal, "NONE" if there's no device                                              the audio signal, "-1" if there's no device
4068                                              connected to this sampler channel                                              connected to this sampler channel
4069  </p>  </p>
4070  </blockquote>  </blockquote>
4071                                        
4072    
4073  <p>AUDIO_OUTPUT_CHANNELS -  <p>AUDIO_OUTPUT_CHANNELS -
4074                                          </p>                                          </p>
# Line 3157  Intellectual Property and Copyright Stat Line 4077  Intellectual Property and Copyright Stat
4077                                              (dependent to used sampler engine and loaded instrument)                                              (dependent to used sampler engine and loaded instrument)
4078  </p>  </p>
4079  </blockquote>  </blockquote>
4080                                        
4081    
4082  <p>AUDIO_OUTPUT_ROUTING -  <p>AUDIO_OUTPUT_ROUTING -
4083                                          </p>                                          </p>
# Line 3170  Intellectual Property and Copyright Stat Line 4091  Intellectual Property and Copyright Stat
4091                                              output device                                              output device
4092  </p>  </p>
4093  </blockquote>  </blockquote>
4094                                        
4095    
4096  <p>INSTRUMENT_FILE -  <p>INSTRUMENT_FILE -
4097                                          </p>                                          </p>
4098  <blockquote class="text">  <blockquote class="text">
4099  <p>the file name of the loaded instrument, "NONE" if  <p>the file name of the loaded instrument, "NONE" if
4100                                              there's no instrument yet loaded for this sampler                                              there's no instrument yet loaded for this sampler
4101                                              channel                                              channel (note: since LSCP 1.2 this path may contain
4102                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4103  </p>  </p>
4104  </blockquote>  </blockquote>
4105                                        
4106    
4107  <p>INSTRUMENT_NR -  <p>INSTRUMENT_NR -
4108                                          </p>                                          </p>
4109  <blockquote class="text">  <blockquote class="text">
4110  <p>the instrument index number of the loaded instrument  <p>the instrument index number of the loaded instrument,
4111                                                "-1" if there's no instrument loaded for this sampler
4112                                                channel
4113  </p>  </p>
4114  </blockquote>  </blockquote>
4115                                        
4116    
4117  <p>INSTRUMENT_NAME -  <p>INSTRUMENT_NAME -
4118                                          </p>                                          </p>
4119  <blockquote class="text">  <blockquote class="text">
4120  <p>the instrument name of the loaded instrument  <p>the instrument name of the loaded instrument
4121                                                (note: since LSCP 1.2 this character string may contain
4122                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
4123  </p>  </p>
4124  </blockquote>  </blockquote>
4125                                        
4126    
4127  <p>INSTRUMENT_STATUS -  <p>INSTRUMENT_STATUS -
4128                                          </p>                                          </p>
4129  <blockquote class="text">  <blockquote class="text">
4130  <p>integer values 0 to 100 indicating loading progress percentage for the instrument. Negative  <p>Integer values 0 to 100 indicating loading progress
4131                                              value indicates a loading exception. Value of 100 indicates that the instrument is fully                                              percentage for the instrument. Negative
4132                                                value indicates a loading exception (also returns "-1" in case no
4133                                                instrument was yet to be loaded on the sampler channel).
4134                                                Value of 100 indicates that the instrument is fully
4135                                              loaded.                                              loaded.
4136  </p>  </p>
4137  </blockquote>  </blockquote>
4138                                        
4139    
4140  <p>MIDI_INPUT_DEVICE -  <p>MIDI_INPUT_DEVICE -
4141                                          </p>                                          </p>
4142  <blockquote class="text">  <blockquote class="text">
4143  <p>numerical ID of the MIDI input device which is  <p>numerical ID of the MIDI input device which is
4144                                              currently connected to this sampler channel to deliver                                              currently connected to this sampler channel to deliver
4145                                              MIDI input commands, "NONE" if there's no device                                              MIDI input commands, "-1" if there's no device
4146                                              connected to this sampler channel                                              connected to this sampler channel
4147  </p>  </p>
4148  </blockquote>  </blockquote>
4149                                        
4150    
4151  <p>MIDI_INPUT_PORT -  <p>MIDI_INPUT_PORT -
4152                                          </p>                                          </p>
4153  <blockquote class="text">  <blockquote class="text">
4154  <p>port number of the MIDI input device  <p>port number of the MIDI input device (in case a
4155                                                MIDI device was already assigned to the sampler
4156                                                channel)
4157  </p>  </p>
4158  </blockquote>  </blockquote>
4159                                        
4160    
4161  <p>MIDI_INPUT_CHANNEL -  <p>MIDI_INPUT_CHANNEL -
4162                                          </p>                                          </p>
# Line 3227  Intellectual Property and Copyright Stat Line 4165  Intellectual Property and Copyright Stat
4165                                              should listen to or "ALL" to listen on all MIDI channels                                              should listen to or "ALL" to listen on all MIDI channels
4166  </p>  </p>
4167  </blockquote>  </blockquote>
4168                                        
4169    
4170  <p>VOLUME -  <p>VOLUME -
4171                                          </p>                                          </p>
4172  <blockquote class="text">  <blockquote class="text">
4173  <p>optionally dotted number for the channel volume factor  <p>optionally dotted number for the channel volume factor
4174                                              (where a value < 1.0 means attenuation and a value >                                              (where a value &lt; 1.0 means attenuation and a value >
4175                                              1.0 means amplification)                                              1.0 means amplification)
4176  </p>  </p>
4177  </blockquote>  </blockquote>
4178                                        
4179    
4180    <p>MUTE -
4181                                            </p>
4182    <blockquote class="text">
4183    <p>Determines whether the channel is muted, "true" if the
4184                                                channel is muted, "false" if the channel is not muted, and
4185                                                "MUTED_BY_SOLO" if the channel is muted because of the
4186                                                presence of a solo channel and will be unmuted when
4187                                                there are no solo channels left
4188    </p>
4189  </blockquote>  </blockquote>
4190                                        
4191    
4192    <p>SOLO -
4193                                            </p>
4194    <blockquote class="text">
4195    <p>Determines whether this is a solo channel, "true" if
4196                                                the channel is a solo channel; "false" otherwise
4197    </p>
4198  </blockquote>  </blockquote>
4199                                        
4200    
4201    <p>MIDI_INSTRUMENT_MAP -
4202                                            </p>
4203    <blockquote class="text">
4204    <p>Determines to which MIDI instrument map this sampler
4205                                                channel is assigned to. Read chapter
4206                                                <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>
4207                                                for a list of possible values.
4208    </p>
4209    </blockquote>
4210                                        
4211    
4212    </blockquote>
4213                                
4214    
4215    </blockquote><p>
4216                        
4217    </p>
4218  <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.
4219  </p>  </p>
4220  <p>Example:  <p>Example:
4221  </p>  </p>
4222  <p></p>  <p>
4223                            </p>
4224  <blockquote class="text">  <blockquote class="text">
4225  <p>C: "GET CHANNEL INFO 34"  <p>C: "GET CHANNEL INFO 34"
4226  </p>  </p>
4227  <p>S: "ENGINE_NAME: GigEngine"  <p>S: "ENGINE_NAME: gig"
4228  </p>  </p>
4229  <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"  <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4230  </p>  </p>
# Line 3273  Intellectual Property and Copyright Stat Line 4248  Intellectual Property and Copyright Stat
4248  </p>  </p>
4249  <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"  <p>&nbsp;&nbsp;&nbsp;"MIDI_INPUT_CHANNEL: 5"
4250  </p>  </p>
4251    <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
4252    </p>
4253    <p>&nbsp;&nbsp;&nbsp;"MUTE: false"
4254    </p>
4255    <p>&nbsp;&nbsp;&nbsp;"SOLO: false"
4256    </p>
4257    <p>&nbsp;&nbsp;&nbsp;"MIDI_INSTRUMENT_MAP: NONE"
4258    </p>
4259  <p>&nbsp;&nbsp;&nbsp;"."  <p>&nbsp;&nbsp;&nbsp;"."
4260  </p>  </p>
4261  </blockquote>  </blockquote><p>
4262                        
4263  <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>
4264    <a name="GET CHANNEL VOICE_COUNT"></a><br /><hr />
4265    <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>
4266    <a name="rfc.section.6.4.11"></a><h3>6.4.11.&nbsp;
4267    Current number of active voices</h3>
4268    
4269  <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
4270                      sampler channel by sending the following command:                      sampler channel by sending the following command:
4271  </p>  </p>
4272  <p></p>  <p>
4273                            </p>
4274  <blockquote class="text">  <blockquote class="text">
4275  <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;  <p>GET CHANNEL VOICE_COUNT &lt;sampler-channel&gt;
4276  </p>  </p>
4277  </blockquote>  </blockquote><p>
4278                        
4279  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
4280    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4281                        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>
4282                        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.
4283  </p>  </p>
4284  <p>Possible Answers:  <p>Possible Answers:
4285  </p>  </p>
4286  <p></p>  <p>
4287                            </p>
4288  <blockquote class="text">  <blockquote class="text">
4289  <p>LinuxSampler will answer by returning the number of active  <p>LinuxSampler will answer by returning the number of active
4290                              voices on that channel.                              voices on that channel.
4291  </p>  </p>
4292  </blockquote>  </blockquote><p>
4293                        
4294    </p>
4295  <p>Example:  <p>Example:
4296  </p>  </p>
4297  <p></p>  <p>
4298                            </p>
4299  <blockquote class="text">  <blockquote class="text">
4300  <p>  <p>
4301  </p>  </p>
4302  </blockquote>  </blockquote><p>
4303                        
4304  <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>
4305    <a name="GET CHANNEL STREAM_COUNT"></a><br /><hr />
4306    <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>
4307    <a name="rfc.section.6.4.12"></a><h3>6.4.12.&nbsp;
4308    Current number of active disk streams</h3>
4309    
4310  <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
4311                      on a sampler channel by sending the following command:                      on a sampler channel by sending the following command:
4312  </p>  </p>
4313  <p></p>  <p>
4314                            </p>
4315  <blockquote class="text">  <blockquote class="text">
4316  <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;  <p>GET CHANNEL STREAM_COUNT &lt;sampler-channel&gt;
4317  </p>  </p>
4318  </blockquote>  </blockquote><p>
4319                        
4320  <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in.  </p>
4321    <p>Where &lt;sampler-channel&gt; is the sampler channel number the front-end is interested in
4322                        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>
4323                        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.
4324  </p>  </p>
4325  <p>Possible Answers:  <p>Possible Answers:
4326  </p>  </p>
4327  <p></p>  <p>
4328                            </p>
4329  <blockquote class="text">  <blockquote class="text">
4330  <p>LinuxSampler will answer by returning the number of active  <p>LinuxSampler will answer by returning the number of active
4331                              disk streams on that channel in case the engine supports disk                              disk streams on that channel in case the engine supports disk
4332                              streaming, if the engine doesn't support disk streaming it will                              streaming, if the engine doesn't support disk streaming it will
4333                              return "NA" for not available.                              return "NA" for not available.
4334  </p>  </p>
4335  </blockquote>  </blockquote><p>
4336                        
4337    </p>
4338  <p>Example:  <p>Example:
4339  </p>  </p>
4340  <p></p>  <p>
4341                            </p>
4342  <blockquote class="text">  <blockquote class="text">
4343  <p>  <p>
4344  </p>  </p>
4345  </blockquote>  </blockquote><p>
4346                        
4347  <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>
4348    <a name="GET CHANNEL BUFFER_FILL"></a><br /><hr />
4349    <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>
4350    <a name="rfc.section.6.4.13"></a><h3>6.4.13.&nbsp;
4351    Current fill state of disk stream buffers</h3>
4352    
4353  <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
4354                      on a sampler channel by sending the following command:                      on a sampler channel by sending the following command:
4355  </p>  </p>
4356  <p></p>  <p>
4357                            </p>
4358  <blockquote class="text">  <blockquote class="text">
4359  <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;  <p>GET CHANNEL BUFFER_FILL BYTES &lt;sampler-channel&gt;
4360  </p>  </p>
4361  </blockquote>  </blockquote><p>
4362                        
4363    </p>
4364  <p>to get the fill state in bytes or  <p>to get the fill state in bytes or
4365  </p>  </p>
4366  <p></p>  <p>
4367                            </p>
4368  <blockquote class="text">  <blockquote class="text">
4369  <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;  <p>GET CHANNEL BUFFER_FILL PERCENTAGE &lt;sampler-channel&gt;
4370  </p>  </p>
4371  </blockquote>  </blockquote><p>
4372                        
4373    </p>
4374  <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
4375                      sampler channel number the front-end is interested in.                      sampler channel number the front-end is interested in
4376                        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>
4377                        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.
4378  </p>  </p>
4379  <p>Possible Answers:  <p>Possible Answers:
4380  </p>  </p>
4381  <p></p>  <p>
4382                            </p>
4383  <blockquote class="text">  <blockquote class="text">
4384  <p>LinuxSampler will either answer by returning a comma separated  <p>LinuxSampler will either answer by returning a comma separated
4385                              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 3376  Intellectual Property and Copyright Stat Line 4392  Intellectual Property and Copyright Stat
4392                              the response are not in particular order, thus the front-end has                              the response are not in particular order, thus the front-end has
4393                              to sort them by itself if necessary.                              to sort them by itself if necessary.
4394  </p>  </p>
4395  </blockquote>  </blockquote><p>
4396                        
4397    </p>
4398  <p>Examples:  <p>Examples:
4399  </p>  </p>
4400  <p></p>  <p>
4401                            </p>
4402  <blockquote class="text">  <blockquote class="text">
4403  <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"  <p>C: "GET CHANNEL BUFFER_FILL BYTES 4"
4404  </p>  </p>
4405  <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"  <p>S: "[115]420500,[116]510300,[75]110000,[120]230700"
4406  </p>  </p>
4407  </blockquote>  </blockquote><p>
4408    
4409                            </p>
4410  <blockquote class="text">  <blockquote class="text">
4411  <p><p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"  <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4412  </p>  </p>
4413  <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"  <p>S: "[115]90%,[116]98%,[75]40%,[120]62%"
4414  </p>  </p>
4415  </blockquote>  </blockquote><p>
4416    
4417                            </p>
4418  <blockquote class="text">  <blockquote class="text">
4419  <p><p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"  <p>C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
4420  </p>  </p>
4421  <p>S: ""  <p>S: ""
4422  </p>  </p>
4423  </blockquote>  </blockquote><p>
4424                        
4425  <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>
4426    <a name="SET CHANNEL AUDIO_OUTPUT_DEVICE"></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.14"></a><h3>6.4.14.&nbsp;
4429    Setting audio output device</h3>
4430    
4431  <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
4432                      channel by sending the following command:                      channel by sending the following command:
4433  </p>  </p>
4434  <p></p>  <p>
4435                            </p>
4436  <blockquote class="text">  <blockquote class="text">
4437  <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;
4438  </p>  </p>
4439  </blockquote>  </blockquote><p>
4440                        
4441  <p>Where &lt;audio-device-id&gt; is the numerical ID of the audio output  </p>
4442                      device and &lt;sampler-channel&gt; is the respective sampler channel  <p>Where &lt;sampler-channel&gt; is the respective sampler channel
4443                      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>
4444                        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
4445                        &lt;audio-device-id&gt; is the numerical ID of the audio output device as given by the
4446                        <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>
4447                        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>
4448                        command.
4449  </p>  </p>
4450  <p>Possible Answers:  <p>Possible Answers:
4451  </p>  </p>
4452  <p></p>  <p>
4453                            </p>
4454  <blockquote class="text">  <blockquote class="text">
4455  <p>"OK" -  <p>"OK" -
4456                                  </p>                                  </p>
# Line 3425  Intellectual Property and Copyright Stat Line 4458  Intellectual Property and Copyright Stat
4458  <p>on success  <p>on success
4459  </p>  </p>
4460  </blockquote>  </blockquote>
4461                                
4462    
4463  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4464                                  </p>                                  </p>
# Line 3434  Intellectual Property and Copyright Stat Line 4468  Intellectual Property and Copyright Stat
4468                                      warning message                                      warning message
4469  </p>  </p>
4470  </blockquote>  </blockquote>
4471                                
4472    
4473  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4474                                  </p>                                  </p>
# Line 3441  Intellectual Property and Copyright Stat Line 4476  Intellectual Property and Copyright Stat
4476  <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
4477  </p>  </p>
4478  </blockquote>  </blockquote>
4479                                
4480    
4481  </blockquote>  </blockquote><p>
4482                        
4483    </p>
4484  <p>Examples:  <p>Examples:
4485  </p>  </p>
4486  <p></p>  <p>
4487                            </p>
4488  <blockquote class="text">  <blockquote class="text">
4489  <p>  <p>
4490  </p>  </p>
4491  </blockquote>  </blockquote><p>
4492                        
4493  <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>
4494    <a name="SET CHANNEL AUDIO_OUTPUT_TYPE"></a><br /><hr />
4495    <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>
4496    <a name="rfc.section.6.4.15"></a><h3>6.4.15.&nbsp;
4497    Setting audio output type</h3>
4498    
4499  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4500  </p>  </p>
4501  <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
4502                      channel by sending the following command:                      channel by sending the following command:
4503  </p>  </p>
4504  <p></p>  <p>
4505                            </p>
4506  <blockquote class="text">  <blockquote class="text">
4507  <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;
4508  </p>  </p>
4509  </blockquote>  </blockquote><p>
4510                        
4511    </p>
4512  <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
4513                      &lt;sampler-channel&gt; is the respective sampler channel number.                      &lt;sampler-channel&gt; is the respective sampler channel number.
4514  </p>  </p>
4515  <p>Possible Answers:  <p>Possible Answers:
4516  </p>  </p>
4517  <p></p>  <p>
4518                            </p>
4519  <blockquote class="text">  <blockquote class="text">
4520  <p>"OK" -  <p>"OK" -
4521                                  </p>                                  </p>
# Line 3478  Intellectual Property and Copyright Stat Line 4523  Intellectual Property and Copyright Stat
4523  <p>on success  <p>on success
4524  </p>  </p>
4525  </blockquote>  </blockquote>
4526                                
4527    
4528  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4529                                  </p>                                  </p>
# Line 3487  Intellectual Property and Copyright Stat Line 4533  Intellectual Property and Copyright Stat
4533                                      warning message                                      warning message
4534  </p>  </p>
4535  </blockquote>  </blockquote>
4536                                
4537    
4538  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4539                                  </p>                                  </p>
# Line 3494  Intellectual Property and Copyright Stat Line 4541  Intellectual Property and Copyright Stat
4541  <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
4542  </p>  </p>
4543  </blockquote>  </blockquote>
4544                                
4545    
4546  </blockquote>  </blockquote><p>
4547                        
4548    </p>
4549  <p>Examples:  <p>Examples:
4550  </p>  </p>
4551  <p></p>  <p>
4552                            </p>
4553  <blockquote class="text">  <blockquote class="text">
4554  <p>  <p>
4555  </p>  </p>
4556  </blockquote>  </blockquote><p>
4557                        
4558  <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>
4559    <p>Deprecated:
4560    </p>
4561    <p>
4562                            </p>
4563    <blockquote class="text">
4564    <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
4565    </p>
4566    <p>This command is a relict from times where there was no sophisticated driver management yet. Use <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> and <a class='info' href='#SET CHANNEL AUDIO_OUTPUT_DEVICE'>"SET CHANNEL AUDIO_OUTPUT_DEVICE"<span> (</span><span class='info'>Setting audio output device</span><span>)</span></a> instead.
4567    </p>
4568    </blockquote><p>
4569                        
4570    </p>
4571    <a name="SET CHANNEL AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
4572    <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>
4573    <a name="rfc.section.6.4.16"></a><h3>6.4.16.&nbsp;
4574    Setting audio output channel</h3>
4575    
4576  <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
4577                      sampler channel by sending the following command:                      sampler channel by sending the following command:
4578  </p>  </p>
4579  <p></p>  <p>
4580                            </p>
4581  <blockquote class="text">  <blockquote class="text">
4582  <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;
4583  </p>  </p>
4584  </blockquote>  </blockquote><p>
4585                        
4586  <p>Where &lt;sampler-chan&gt; is the sampler channel number, &lt;audio-out&gt; is the  </p>
4587    <p>Where &lt;sampler-chan&gt; is the sampler channel number
4588                        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>
4589                        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
4590                      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
4591                      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
4592                      output device where &lt;audio-out&gt; should be routed to.                      output device where &lt;audio-out&gt; should be routed to.
4593  </p>  </p>
4594  <p>Possible Answers:  <p>Possible Answers:
4595  </p>  </p>
4596  <p></p>  <p>
4597                            </p>
4598  <blockquote class="text">  <blockquote class="text">
4599  <p>"OK" -  <p>"OK" -
4600                                  </p>                                  </p>
# Line 3531  Intellectual Property and Copyright Stat Line 4602  Intellectual Property and Copyright Stat
4602  <p>on success  <p>on success
4603  </p>  </p>
4604  </blockquote>  </blockquote>
4605                                
4606    
4607  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4608                                  </p>                                  </p>
# Line 3540  Intellectual Property and Copyright Stat Line 4612  Intellectual Property and Copyright Stat
4612                                      warning message                                      warning message
4613  </p>  </p>
4614  </blockquote>  </blockquote>
4615                                
4616    
4617  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4618                                  </p>                                  </p>
# Line 3547  Intellectual Property and Copyright Stat Line 4620  Intellectual Property and Copyright Stat
4620  <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
4621  </p>  </p>
4622  </blockquote>  </blockquote>
4623                                
4624    
4625    </blockquote><p>
4626                        
4627    </p>
4628    <p>Examples:
4629    </p>
4630    <p>
4631                            </p>
4632    <blockquote class="text">
4633    <p>
4634    </p>
4635    </blockquote><p>
4636                        
4637    </p>
4638    <a name="ADD CHANNEL MIDI_INPUT"></a><br /><hr />
4639    <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>
4640    <a name="rfc.section.6.4.17"></a><h3>6.4.17.&nbsp;
4641    Add MIDI input to sampler channel</h3>
4642    
4643    <p>The front-end can add a MIDI input on a specific sampler
4644                        channel by sending the following command:
4645    </p>
4646    <p>
4647                            </p>
4648    <blockquote class="text">
4649    <p>ADD CHANNEL MIDI_INPUT &lt;sampler-channel&gt; &lt;midi-device-id&gt; [&lt;midi-input-port&gt;]
4650    </p>
4651    </blockquote><p>
4652                        
4653    </p>
4654    <p>Where &lt;sampler-channel&gt; is the sampler channel number
4655                        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>
4656                        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
4657                        and &lt;midi-device-id&gt; is the numerical ID of the MIDI input
4658                        device as returned by the
4659                        <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>
4660                        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,
4661                        and &lt;midi-input-port&gt; is an optional MIDI input port number of that
4662                        MIDI input device. If &lt;midi-input-port&gt; is omitted,
4663                        then the MIDI input device's first port (port number 0) is
4664                        used.
4665                        
4666    </p>
4667    <p>Possible Answers:
4668    </p>
4669    <p>
4670                            </p>
4671    <blockquote class="text">
4672    <p>"OK" -
4673                                    </p>
4674    <blockquote class="text">
4675    <p>on success
4676    </p>
4677    </blockquote>
4678                                
4679    
4680    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4681                                    </p>
4682    <blockquote class="text">
4683    <p>if MIDI input port was connected, but there are noteworthy
4684                                        issue(s) related, providing an appropriate warning code and
4685                                        warning message
4686    </p>
4687    </blockquote>
4688                                
4689    
4690    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4691                                    </p>
4692    <blockquote class="text">
4693    <p>in case it failed, providing an appropriate error code and error message
4694    </p>
4695  </blockquote>  </blockquote>
4696                                
4697    
4698    </blockquote><p>
4699                        
4700    </p>
4701  <p>Examples:  <p>Examples:
4702  </p>  </p>
4703  <p></p>  <p>
4704                            </p>
4705  <blockquote class="text">  <blockquote class="text">
4706    <p>C: "ADD CHANNEL MIDI_INPUT 0 0"
4707    </p>
4708    <p>S: "OK"
4709    </p>
4710    <p>C: "ADD CHANNEL MIDI_INPUT 1 0"
4711    </p>
4712    <p>S: "OK"
4713    </p>
4714    <p>C: "ADD CHANNEL MIDI_INPUT 1 1 1"
4715    </p>
4716    <p>S: "OK"
4717    </p>
4718    <p>C: "ADD CHANNEL MIDI_INPUT 1 2 0"
4719    </p>
4720    <p>S: "OK"
4721    </p>
4722    </blockquote><p>
4723                        
4724    </p>
4725    <p>Since:
4726    </p>
4727  <p>  <p>
4728                            </p>
4729    <blockquote class="text">
4730    <p>Introduced with LSCP v1.6
4731    </p>
4732    </blockquote><p>
4733                        
4734    </p>
4735    <a name="REMOVE CHANNEL MIDI_INPUT"></a><br /><hr />
4736    <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>
4737    <a name="rfc.section.6.4.18"></a><h3>6.4.18.&nbsp;
4738    Remove MIDI input(s) from sampler channel</h3>
4739    
4740    <p>The front-end can remove one ore more MIDI input(s) on a
4741                        specific sampler channel by sending the following command:
4742    </p>
4743    <p>
4744                            </p>
4745    <blockquote class="text">
4746    <p>REMOVE CHANNEL MIDI_INPUT &lt;sampler-channel&gt; [&lt;midi-device-id&gt; [&lt;midi-input-port&gt;]]
4747    </p>
4748    </blockquote><p>
4749                        
4750    </p>
4751    <p>Where &lt;sampler-channel&gt; is the sampler channel number
4752                        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>
4753                        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
4754                        and &lt;midi-device-id&gt; and &lt;midi-input-port&gt; are
4755                        optional numerical IDs defining the MIDI input device and
4756                        one of its MIDI ports as returned by the
4757                        <a class='info' href='#LIST CHANNEL MIDI_INPUTS'>"LIST CHANNEL MIDI_INPUTS"<span> (</span><span class='info'>Getting all MIDI inputs of a sampler channel</span><span>)</span></a> command.
4758                        
4759    </p>
4760    <p>
4761                        If &lt;midi-input-port&gt; is omitted, then all MIDI input
4762                        ports of &lt;midi-device-id&gt; are disconnected from this
4763                        sampler channel.
4764                        
4765    </p>
4766    <p>
4767                        If both, &lt;midi-device-id&gt; and &lt;midi-input-port&gt;
4768                        are omitted, then all MIDI input ports currently connected
4769                        to this sampler channel are disconnected from this sampler
4770                        channel.
4771                        
4772    </p>
4773    <p>Possible Answers:
4774    </p>
4775    <p>
4776                            </p>
4777    <blockquote class="text">
4778    <p>"OK" -
4779                                    </p>
4780    <blockquote class="text">
4781    <p>on success
4782  </p>  </p>
4783  </blockquote>  </blockquote>
4784                                
4785    
4786  <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>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4787                                    </p>
4788    <blockquote class="text">
4789    <p>if MIDI input porst were disconnected, but there are noteworthy
4790                                        issue(s) related, providing an appropriate warning code and
4791                                        warning message
4792    </p>
4793    </blockquote>
4794                                
4795    
4796    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4797                                    </p>
4798    <blockquote class="text">
4799    <p>in case it failed, providing an appropriate error code and error message
4800    </p>
4801    </blockquote>
4802                                
4803    
4804    </blockquote><p>
4805                        
4806    </p>
4807    <p>Examples:
4808    </p>
4809    <p>
4810                            </p>
4811    <blockquote class="text">
4812    <p>C: "REMOVE CHANNEL MIDI_INPUT 0"
4813    </p>
4814    <p>S: "OK"
4815    </p>
4816    <p>C: "REMOVE CHANNEL MIDI_INPUT 1"
4817    </p>
4818    <p>S: "OK"
4819    </p>
4820    <p>C: "REMOVE CHANNEL MIDI_INPUT 1 2 0"
4821    </p>
4822    <p>S: "OK"
4823    </p>
4824    </blockquote><p>
4825                        
4826    </p>
4827    <p>Since:
4828    </p>
4829    <p>
4830                            </p>
4831    <blockquote class="text">
4832    <p>Introduced with LSCP v1.6
4833    </p>
4834    </blockquote><p>
4835                        
4836    </p>
4837    <a name="LIST CHANNEL MIDI_INPUTS"></a><br /><hr />
4838    <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>
4839    <a name="rfc.section.6.4.19"></a><h3>6.4.19.&nbsp;
4840    Getting all MIDI inputs of a sampler channel</h3>
4841    
4842    <p>The front-end can query a list of all currently connected
4843                        MIDI inputs of a certain sampler channel by sending the following
4844                        command:
4845    </p>
4846    <p>
4847                            </p>
4848    <blockquote class="text">
4849    <p>LIST CHANNEL MIDI_INPUTS &lt;sampler-channel&gt;
4850    </p>
4851    </blockquote><p>
4852                        
4853    </p>
4854    <p>Where &lt;sampler-channel&gt; is the sampler channel number
4855                        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>
4856                        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.
4857                        
4858    </p>
4859    <p>Possible Answers:
4860    </p>
4861    <p>
4862                            </p>
4863    <blockquote class="text">
4864    <p>The sampler will answer by sending a comma separated
4865                                list of MIDI input device ID - MIDI input port number pairs, where
4866                                each pair is encapsulated into curly braces. The
4867                                list is returned in one single line. The MIDI input
4868                                device ID corresponds to the number returned by
4869                                <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>
4870                                and the port number is the index of the respective MIDI
4871                                port of that MIDI input device.
4872    </p>
4873    </blockquote><p>
4874                        
4875    </p>
4876    <p>Example:
4877    </p>
4878    <p>
4879                            </p>
4880    <blockquote class="text">
4881    <p>C: "LIST CHANNEL MIDI_INPUTS 0"
4882    </p>
4883    <p>S: "{0,0},{1,3},{2,0}"
4884    </p>
4885    </blockquote><p>
4886                        
4887    </p>
4888    <p>Since:
4889    </p>
4890    <p>
4891                            </p>
4892    <blockquote class="text">
4893    <p>Introduced with LSCP v1.6
4894    </p>
4895    </blockquote><p>
4896                        
4897    </p>
4898    <a name="SET CHANNEL MIDI_INPUT_DEVICE"></a><br /><hr />
4899    <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>
4900    <a name="rfc.section.6.4.20"></a><h3>6.4.20.&nbsp;
4901    Setting MIDI input device</h3>
4902    
4903    <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4904    </p>
4905  <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
4906                      channel by sending the following command:                      channel by sending the following command:
4907  </p>  </p>
4908  <p></p>  <p>
4909                            </p>
4910  <blockquote class="text">  <blockquote class="text">
4911  <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;
4912  </p>  </p>
4913  </blockquote>  </blockquote><p>
4914                        
4915  <p>Where &lt;sampler-channel&gt; is the sampler channel number and &lt;midi-device-id&gt; is the  </p>
4916                      the numerical ID of the MIDI input device.  <p>Where &lt;sampler-channel&gt; is the sampler channel number
4917                        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>
4918                        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
4919                        and &lt;midi-device-id&gt; is  the numerical ID of the MIDI input device as returned by the
4920                        <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>
4921                        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.
4922    </p>
4923    <p>
4924                        If more than 1 MIDI inputs are currently connected to this
4925                        sampler channel: Sending this command will disconnect ALL
4926                        currently connected MIDI input ports connected to this
4927                        sampler channel before establishing the new MIDI input
4928                        connection. So this command does NOT add the connection,
4929                        it replaces all existing ones instead. This behavior is due
4930                        to preserving full behavior backward compatibility.
4931                        
4932  </p>  </p>
4933  <p>Possible Answers:  <p>Possible Answers:
4934  </p>  </p>
4935  <p></p>  <p>
4936                            </p>
4937  <blockquote class="text">  <blockquote class="text">
4938  <p>"OK" -  <p>"OK" -
4939                                  </p>                                  </p>
# Line 3582  Intellectual Property and Copyright Stat Line 4941  Intellectual Property and Copyright Stat
4941  <p>on success  <p>on success
4942  </p>  </p>
4943  </blockquote>  </blockquote>
4944                                
4945    
4946  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
4947                                  </p>                                  </p>
# Line 3591  Intellectual Property and Copyright Stat Line 4951  Intellectual Property and Copyright Stat
4951                                      warning message                                      warning message
4952  </p>  </p>
4953  </blockquote>  </blockquote>
4954                                
4955    
4956  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
4957                                  </p>                                  </p>
# Line 3598  Intellectual Property and Copyright Stat Line 4959  Intellectual Property and Copyright Stat
4959  <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
4960  </p>  </p>
4961  </blockquote>  </blockquote>
4962                                
4963    
4964  </blockquote>  </blockquote><p>
4965                        
4966    </p>
4967  <p>Examples:  <p>Examples:
4968  </p>  </p>
4969  <p></p>  <p>
4970                            </p>
4971  <blockquote class="text">  <blockquote class="text">
4972  <p>  <p>
4973  </p>  </p>
4974  </blockquote>  </blockquote><p>
4975                        
4976  <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>
4977    <p>Deprecated:
4978    </p>
4979    <p>
4980                            </p>
4981    <blockquote class="text">
4982    <p>Should not be used anymore as of LSCP v1.6 and younger. This command is currently only preserved for backward compatibility.
4983    </p>
4984    <p>This command is a relict from times where only one MIDI input per sampler channel was allowed. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
4985    </p>
4986    </blockquote><p>
4987                        
4988    </p>
4989    <a name="SET CHANNEL MIDI_INPUT_TYPE"></a><br /><hr />
4990    <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>
4991    <a name="rfc.section.6.4.21"></a><h3>6.4.21.&nbsp;
4992    Setting MIDI input type</h3>
4993    
4994  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!  <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
4995  </p>  </p>
4996  <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
4997                      channel by sending the following command:                      channel by sending the following command:
4998  </p>  </p>
4999  <p></p>  <p>
5000                            </p>
5001  <blockquote class="text">  <blockquote class="text">
5002  <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;
5003  </p>  </p>
5004  </blockquote>  </blockquote><p>
5005                        
5006    </p>
5007  <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and  <p>Where &lt;midi-input-type&gt; is currently only "ALSA" and
5008                      &lt;sampler-channel&gt; is the respective sampler channel number.                      &lt;sampler-channel&gt; is the respective sampler channel number.
5009  </p>  </p>
5010    <p>
5011                        If more than 1 MIDI inputs are currently connected to this
5012                        sampler channel: Sending this command will disconnect ALL
5013                        currently connected MIDI input ports connected to this
5014                        sampler channel before establishing the new MIDI input
5015                        connection. So this command does NOT add the connection,
5016                        it replaces all existing ones instead. This behavior is due
5017                        to preserving full behavior backward compatibility.
5018                        
5019    </p>
5020  <p>Possible Answers:  <p>Possible Answers:
5021  </p>  </p>
5022  <p></p>  <p>
5023                            </p>
5024  <blockquote class="text">  <blockquote class="text">
5025  <p>"OK" -  <p>"OK" -
5026                                  </p>                                  </p>
# Line 3635  Intellectual Property and Copyright Stat Line 5028  Intellectual Property and Copyright Stat
5028  <p>on success  <p>on success
5029  </p>  </p>
5030  </blockquote>  </blockquote>
5031                                
5032    
5033  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5034                                  </p>                                  </p>
# Line 3644  Intellectual Property and Copyright Stat Line 5038  Intellectual Property and Copyright Stat
5038                                      warning message                                      warning message
5039  </p>  </p>
5040  </blockquote>  </blockquote>
5041                                
5042    
5043  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5044                                  </p>                                  </p>
# Line 3651  Intellectual Property and Copyright Stat Line 5046  Intellectual Property and Copyright Stat
5046  <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
5047  </p>  </p>
5048  </blockquote>  </blockquote>
5049                                
5050    
5051  </blockquote>  </blockquote><p>
5052                        
5053    </p>
5054  <p>Examples:  <p>Examples:
5055  </p>  </p>
5056  <p></p>  <p>
5057                            </p>
5058  <blockquote class="text">  <blockquote class="text">
5059  <p>  <p>
5060  </p>  </p>
5061  </blockquote>  </blockquote><p>
5062                        
5063  <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>
5064    <p>Deprecated:
5065    </p>
5066    <p>
5067                            </p>
5068    <blockquote class="text">
5069    <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5070    </p>
5071    <p>This command is a relict from times where only 1 MIDI input per sampler channels was allowed and where no sophisticated driver management existed yet. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
5072    </p>
5073    </blockquote><p>
5074                        
5075    </p>
5076    <a name="SET CHANNEL MIDI_INPUT_PORT"></a><br /><hr />
5077    <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>
5078    <a name="rfc.section.6.4.22"></a><h3>6.4.22.&nbsp;
5079    Setting MIDI input port</h3>
5080    
5081    <p>DEPRECATED: THIS COMMAND WILL DISAPPEAR!
5082    </p>
5083  <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
5084                      channel by sending the following command:                      channel by sending the following command:
5085  </p>  </p>
5086  <p></p>  <p>
5087                            </p>
5088  <blockquote class="text">  <blockquote class="text">
5089  <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;
5090  </p>  </p>
5091  </blockquote>  </blockquote><p>
5092                        
5093    </p>
5094  <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
5095                      MIDI input device connected to the sampler channel given by                      MIDI input device connected to the sampler channel given by
5096                      &lt;sampler-channel&gt;.                      &lt;sampler-channel&gt;.
5097  </p>  </p>
5098    <p>
5099                        If more than 1 MIDI inputs are currently connected to this
5100                        sampler channel: Sending this command will switch the
5101                        connection of the first (and only the first) MIDI input port
5102                        currently being connected to this sampler channel, to
5103                        another port of the same MIDI input device. Or in other
5104                        words: the first MIDI input port currently connected to
5105                        this sampler channel will be disconnected, and the requested
5106                        other port of its MIDI input device will be connected to
5107                        this sampler channel instead. This behavior is due
5108                        to preserving full behavior backward compatibility.
5109                        
5110    </p>
5111  <p>Possible Answers:  <p>Possible Answers:
5112  </p>  </p>
5113  <p></p>  <p>
5114                            </p>
5115  <blockquote class="text">  <blockquote class="text">
5116  <p>"OK" -  <p>"OK" -
5117                                  </p>                                  </p>
# Line 3687  Intellectual Property and Copyright Stat Line 5119  Intellectual Property and Copyright Stat
5119  <p>on success  <p>on success
5120  </p>  </p>
5121  </blockquote>  </blockquote>
5122                                
5123    
5124  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5125                                  </p>                                  </p>
# Line 3696  Intellectual Property and Copyright Stat Line 5129  Intellectual Property and Copyright Stat
5129                                      warning message                                      warning message
5130  </p>  </p>
5131  </blockquote>  </blockquote>
5132                                
5133    
5134  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5135                                  </p>                                  </p>
5136  <blockquote class="text">  <blockquote class="text">
5137  <p>in case it failed, providing an appropriate error code and error messag  <p>in case it failed, providing an appropriate error code and error message
5138  </p>  </p>
5139  </blockquote>  </blockquote>
5140                                
5141    
5142  </blockquote>  </blockquote><p>
5143                        
5144    </p>
5145  <p>Examples:  <p>Examples:
5146  </p>  </p>
5147  <p></p>  <p>
5148                            </p>
5149  <blockquote class="text">  <blockquote class="text">
5150  <p>  <p>
5151  </p>  </p>
5152  </blockquote>  </blockquote><p>
5153                        
5154  <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>
5155    <p>Deprecated:
5156    </p>
5157    <p>
5158                            </p>
5159    <blockquote class="text">
5160    <p>Should not be used anymore. This command is currently only preserved for backward compatibility.
5161    </p>
5162    <p>This command is a relict from times where only one MIDI input per sampler channel was allowed. Use <a class='info' href='#ADD CHANNEL MIDI_INPUT'>"ADD CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Add MIDI input to sampler channel</span><span>)</span></a> and <a class='info' href='#REMOVE CHANNEL MIDI_INPUT'>"REMOVE CHANNEL MIDI_INPUT"<span> (</span><span class='info'>Remove MIDI input(s) from sampler channel</span><span>)</span></a> instead.
5163    </p>
5164    </blockquote><p>
5165                        
5166    </p>
5167    <a name="SET CHANNEL MIDI_INPUT_CHANNEL"></a><br /><hr />
5168    <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>
5169    <a name="rfc.section.6.4.23"></a><h3>6.4.23.&nbsp;
5170    Setting MIDI input channel</h3>
5171    
5172  <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
5173                      listen to by sending the following command:                      listen to by sending the following command:
5174  </p>  </p>
5175  <p></p>  <p>
5176                            </p>
5177  <blockquote class="text">  <blockquote class="text">
5178  <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;
5179  </p>  </p>
5180  </blockquote>  </blockquote><p>
5181                        
5182  <p>Where &lt;midi-input-chan&gt; is the number of the new MIDI input channel where  </p>
5183                      &lt;sampler-channel&gt; should listen to or "ALL" to listen on all 16 MIDI  <p>Where &lt;midi-input-chan&gt; is the number
5184                        of the new MIDI input channel (zero indexed!) where
5185                        &lt;sampler-channel&gt; should listen to, or "ALL" to listen on all 16 MIDI
5186                      channels.                      channels.
5187  </p>  </p>
5188  <p>Possible Answers:  <p>Possible Answers:
5189  </p>  </p>
5190  <p></p>  <p>
5191                            </p>
5192  <blockquote class="text">  <blockquote class="text">
5193  <p>"OK" -  <p>"OK" -
5194                                  </p>                                  </p>
# Line 3739  Intellectual Property and Copyright Stat Line 5196  Intellectual Property and Copyright Stat
5196  <p>on success  <p>on success
5197  </p>  </p>
5198  </blockquote>  </blockquote>
5199                                
5200    
5201  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5202                                  </p>                                  </p>
# Line 3748  Intellectual Property and Copyright Stat Line 5206  Intellectual Property and Copyright Stat
5206                                      warning message                                      warning message
5207  </p>  </p>
5208  </blockquote>  </blockquote>
5209                                
5210    
5211  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5212                                  </p>                                  </p>
# Line 3755  Intellectual Property and Copyright Stat Line 5214  Intellectual Property and Copyright Stat
5214  <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
5215  </p>  </p>
5216  </blockquote>  </blockquote>
5217                                
5218    
5219  </blockquote>  </blockquote><p>
5220                        
5221    </p>
5222  <p>Examples:  <p>Examples:
5223  </p>  </p>
 <p></p>  
 <blockquote class="text">  
5224  <p>  <p>
5225                            </p>
5226    <blockquote class="text">
5227    <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 0 0"
5228  </p>  </p>
5229  </blockquote>  <p>S: "OK"
5230    </p>
5231  <a name="rfc.section.5.4.21"></a><h4><a name="SET CHANNEL VOLUME">5.4.21</a>&nbsp;Setting channel volume</h4>  <p>C: "SET CHANNEL MIDI_INPUT_CHANNEL 1 ALL"
5232    </p>
5233    <p>S: "OK"
5234    </p>
5235    </blockquote><p>
5236                        
5237    </p>
5238    <a name="SET CHANNEL VOLUME"></a><br /><hr />
5239    <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>
5240    <a name="rfc.section.6.4.24"></a><h3>6.4.24.&nbsp;
5241    Setting channel volume</h3>
5242    
5243  <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
5244                      the following command:                      the following command:
5245  </p>  </p>
5246  <p></p>  <p>
5247                            </p>
5248  <blockquote class="text">  <blockquote class="text">
5249  <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;  <p>SET CHANNEL VOLUME &lt;sampler-channel&gt; &lt;volume&gt;
5250  </p>  </p>
5251  </blockquote>  </blockquote><p>
5252                        
5253    </p>
5254  <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
5255                      smaller than 1.0 means attenuation, whereas a value greater than                      smaller than 1.0 means attenuation, whereas a value greater than
5256                      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 3784  Intellectual Property and Copyright Stat Line 5258  Intellectual Property and Copyright Stat
5258  </p>  </p>
5259  <p>Possible Answers:  <p>Possible Answers:
5260  </p>  </p>
5261  <p></p>  <p>
5262                            </p>
5263  <blockquote class="text">  <blockquote class="text">
5264  <p>"OK" -  <p>"OK" -
5265                                  </p>                                  </p>
# Line 3792  Intellectual Property and Copyright Stat Line 5267  Intellectual Property and Copyright Stat
5267  <p>on success  <p>on success
5268  </p>  </p>
5269  </blockquote>  </blockquote>
5270                                
5271    
5272  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5273                                  </p>                                  </p>
# Line 3801  Intellectual Property and Copyright Stat Line 5277  Intellectual Property and Copyright Stat
5277                                      warning message                                      warning message
5278  </p>  </p>
5279  </blockquote>  </blockquote>
5280                                
5281    
5282  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5283                                  </p>                                  </p>
# Line 3808  Intellectual Property and Copyright Stat Line 5285  Intellectual Property and Copyright Stat
5285  <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
5286  </p>  </p>
5287  </blockquote>  </blockquote>
5288                                
5289    
5290    </blockquote><p>
5291                        
5292    </p>
5293    <p>Examples:
5294    </p>
5295    <p>
5296                            </p>
5297    <blockquote class="text">
5298    <p>
5299    </p>
5300    </blockquote><p>
5301                        
5302    </p>
5303    <a name="SET CHANNEL MUTE"></a><br /><hr />
5304    <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>
5305    <a name="rfc.section.6.4.25"></a><h3>6.4.25.&nbsp;
5306    Muting a sampler channel</h3>
5307    
5308    <p>The front-end can mute/unmute a specific sampler
5309                        channel by sending the following command:
5310    </p>
5311    <p>
5312                            </p>
5313    <blockquote class="text">
5314    <p>SET CHANNEL MUTE &lt;sampler-channel&gt; &lt;mute&gt;
5315    </p>
5316    </blockquote><p>
5317                        
5318    </p>
5319    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5320                        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>
5321                        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
5322                        &lt;mute&gt; should be replaced either by "1" to mute the channel or "0"
5323                        to unmute the channel.
5324    </p>
5325    <p>Possible Answers:
5326    </p>
5327    <p>
5328                            </p>
5329    <blockquote class="text">
5330    <p>"OK" -
5331                                    </p>
5332    <blockquote class="text">
5333    <p>on success
5334    </p>
5335    </blockquote>
5336                                
5337    
5338    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5339                                    </p>
5340    <blockquote class="text">
5341    <p>if the channel was muted/unmuted, but there are noteworthy
5342                                        issue(s) related, providing an appropriate warning code and
5343                                        warning message
5344    </p>
5345  </blockquote>  </blockquote>
5346                                
5347    
5348    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5349                                    </p>
5350    <blockquote class="text">
5351    <p>in case it failed, providing an appropriate error code and error message
5352    </p>
5353    </blockquote>
5354                                
5355    
5356    </blockquote><p>
5357                        
5358    </p>
5359  <p>Examples:  <p>Examples:
5360  </p>  </p>
5361  <p></p>  <p>
5362                            </p>
5363    <blockquote class="text">
5364    <p>
5365    </p>
5366    </blockquote><p>
5367                        
5368    </p>
5369    <a name="SET CHANNEL SOLO"></a><br /><hr />
5370    <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>
5371    <a name="rfc.section.6.4.26"></a><h3>6.4.26.&nbsp;
5372    Soloing a sampler channel</h3>
5373    
5374    <p>The front-end can solo/unsolo a specific sampler channel
5375                        by sending the following command:
5376    </p>
5377    <p>
5378                            </p>
5379  <blockquote class="text">  <blockquote class="text">
5380    <p>SET CHANNEL SOLO &lt;sampler-channel&gt; &lt;solo&gt;
5381    </p>
5382    </blockquote><p>
5383                        
5384    </p>
5385    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5386                        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>
5387                        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
5388                        &lt;solo&gt; should be replaced either by "1" to solo the channel or "0"
5389                        to unsolo the channel.
5390    </p>
5391    <p>Possible Answers:
5392    </p>
5393  <p>  <p>
5394                            </p>
5395    <blockquote class="text">
5396    <p>"OK" -
5397                                    </p>
5398    <blockquote class="text">
5399    <p>on success
5400    </p>
5401    </blockquote>
5402                                
5403    
5404    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
5405                                    </p>
5406    <blockquote class="text">
5407    <p>if the channel was soloed/unsoloed, but there are noteworthy
5408                                        issue(s) related, providing an appropriate warning code and
5409                                        warning message
5410  </p>  </p>
5411  </blockquote>  </blockquote>
5412                                
5413    
5414  <a name="rfc.section.5.4.22"></a><h4><a name="RESET CHANNEL">5.4.22</a>&nbsp;Resetting a sampler channel</h4>  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5415                                    </p>
5416    <blockquote class="text">
5417    <p>in case it failed, providing an appropriate error code and error message
5418    </p>
5419    </blockquote>
5420                                
5421    
5422  <p>The front-end can reset a particular sampler channel by sending the following command:  </blockquote><p>
5423                        
5424  </p>  </p>
5425  <p></p>  <p>Examples:
5426    </p>
5427    <p>
5428                            </p>
5429  <blockquote class="text">  <blockquote class="text">
5430  <p>RESET CHANNEL &lt;sampler-channel&gt;  <p>
5431    </p>
5432    </blockquote><p>
5433                        
5434    </p>
5435    <a name="SET CHANNEL MIDI_INSTRUMENT_MAP"></a><br /><hr />
5436    <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>
5437    <a name="rfc.section.6.4.27"></a><h3>6.4.27.&nbsp;
5438    Assigning a MIDI instrument map to a sampler channel</h3>
5439    
5440    <p>The front-end can assign a MIDI instrument map to a specific sampler channel
5441                        by sending the following command:
5442    </p>
5443    <p>
5444                            </p>
5445    <blockquote class="text">
5446    <p>SET CHANNEL MIDI_INSTRUMENT_MAP &lt;sampler-channel&gt; &lt;map&gt;
5447    </p>
5448    </blockquote><p>
5449                        
5450    </p>
5451    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5452                        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>
5453                        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
5454                        &lt;map&gt; can have the following possibilites:
5455    </p>
5456    <p>
5457                            </p>
5458    <blockquote class="text">
5459    <p>"NONE" -
5460                                    </p>
5461    <blockquote class="text">
5462    <p>This is the default setting. In this case
5463                                        the sampler channel is not assigned any MIDI
5464                                        instrument map and thus will ignore all MIDI
5465                                        program change messages.
5466    </p>
5467    </blockquote>
5468                                
5469    
5470    <p>"DEFAULT" -
5471                                    </p>
5472    <blockquote class="text">
5473    <p>The sampler channel will always use the
5474                                        default MIDI instrument map to handle MIDI
5475                                        program change messages.
5476    </p>
5477    </blockquote>
5478                                
5479    
5480    <p>numeric ID -
5481                                    </p>
5482    <blockquote class="text">
5483    <p>You can assign a specific MIDI instrument map
5484                                        by replacing &lt;map&gt; with the respective numeric
5485                                        ID of the MIDI instrument map as returned by the
5486                                        <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>
5487                                        command. Once that map will be deleted, the sampler
5488                                        channel would fall back to "NONE".
5489    </p>
5490    </blockquote>
5491                                
5492    
5493    </blockquote><p>
5494                        
5495    </p>
5496    <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>
5497                        for details regarding MIDI instrument mapping.
5498    </p>
5499    <p>Possible Answers:
5500    </p>
5501    <p>
5502                            </p>
5503    <blockquote class="text">
5504    <p>"OK" -
5505                                    </p>
5506    <blockquote class="text">
5507    <p>on success
5508    </p>
5509    </blockquote>
5510                                
5511    
5512    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5513                                    </p>
5514    <blockquote class="text">
5515    <p>in case it failed, providing an appropriate error code and error message
5516    </p>
5517    </blockquote>
5518                                
5519    
5520    </blockquote><p>
5521                        
5522    </p>
5523    <p>Examples:
5524    </p>
5525    <p>
5526                            </p>
5527    <blockquote class="text">
5528    <p>
5529    </p>
5530    </blockquote><p>
5531                        
5532    </p>
5533    <a name="CREATE FX_SEND"></a><br /><hr />
5534    <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>
5535    <a name="rfc.section.6.4.28"></a><h3>6.4.28.&nbsp;
5536    Adding an effect send to a sampler channel</h3>
5537    
5538    <p>The front-end can create an additional effect send on a specific sampler channel
5539                        by sending the following command:
5540    </p>
5541    <p>
5542                            </p>
5543    <blockquote class="text">
5544    <p>CREATE FX_SEND &lt;sampler-channel&gt; &lt;midi-ctrl&gt; [&lt;name&gt;]
5545    </p>
5546    </blockquote><p>
5547                        
5548    </p>
5549    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5550                        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>
5551                        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
5552                        sampler channel on which the effect send should be created on, &lt;midi-ctrl&gt;
5553                        is a number between 0..127 defining the MIDI controller which can alter the
5554                        effect send level and &lt;name&gt; is an optional argument defining a name
5555                        for the effect send entity. The name does not have to be unique, but MUST be
5556                        encapsulated into apostrophes and supports escape sequences as described in chapter
5557                        "<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>".
5558    </p>
5559    <p>By default, that is as initial routing, the effect send's audio channels
5560                        are automatically routed to the last audio channels of the sampler channel's
5561                        audio output device, that way you can i.e. first increase the amount of audio
5562                        channels on the audio output device for having dedicated effect send output
5563                        channels and when "CREATE FX_SEND" is called, those channels will automatically
5564                        be picked. You can alter the destination channels however with
5565                        <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>.
5566                        
5567    </p>
5568    <p>Note: Create effect sends on a sampler channel only when needed, because having effect
5569                        sends on a sampler channel will decrease runtime performance, because for implementing channel
5570                        effect sends, separate (sampler channel local) audio buffers are needed to render and mix
5571                        the voices and route the audio signal afterwards to the master outputs and effect send
5572                        outputs (along with their respective effect send levels). A sampler channel without effect
5573                        sends however can mix its voices directly into the audio output devices's audio buffers
5574                        and is thus faster.
5575                        
5576    </p>
5577    <p>Possible Answers:
5578    </p>
5579    <p>
5580                            </p>
5581    <blockquote class="text">
5582    <p>"OK[&lt;fx-send-id&gt;]" -
5583                                    </p>
5584    <blockquote class="text">
5585    <p>in case a new effect send could be added to the
5586                                        sampler channel, where &lt;fx-send-id&gt; reflects the
5587                                        unique ID of the newly created effect send entity
5588    </p>
5589    </blockquote>
5590                                
5591    
5592    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5593                                    </p>
5594    <blockquote class="text">
5595    <p>when a new effect send could not be added, i.e.
5596                                        due to invalid parameters
5597    </p>
5598    </blockquote>
5599                                
5600    
5601    </blockquote><p>
5602                        
5603    </p>
5604    <p>Examples:
5605    </p>
5606    <p>
5607                            </p>
5608    <blockquote class="text">
5609    <p>C: "CREATE FX_SEND 0 91 'Reverb Send'"
5610    </p>
5611    <p>S: "OK[0]"
5612    </p>
5613    </blockquote><p>
5614                        
5615    </p>
5616    <p>
5617                            </p>
5618    <blockquote class="text">
5619    <p>C: "CREATE FX_SEND 0 93"
5620    </p>
5621    <p>S: "OK[1]"
5622    </p>
5623    </blockquote><p>
5624                        
5625    </p>
5626    <a name="DESTROY FX_SEND"></a><br /><hr />
5627    <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>
5628    <a name="rfc.section.6.4.29"></a><h3>6.4.29.&nbsp;
5629    Removing an effect send from a sampler channel</h3>
5630    
5631    <p>The front-end can remove an existing effect send on a specific sampler channel
5632                        by sending the following command:
5633    </p>
5634    <p>
5635                            </p>
5636    <blockquote class="text">
5637    <p>DESTROY FX_SEND &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5638    </p>
5639    </blockquote><p>
5640                        
5641    </p>
5642    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5643                        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>
5644                        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
5645                        sampler channel from which the effect send should be removed from and
5646                        &lt;fx-send-id&gt; is the respective effect send number as returned by the
5647                        <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>
5648                        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.
5649    </p>
5650    <p>Possible Answers:
5651    </p>
5652    <p>
5653                            </p>
5654    <blockquote class="text">
5655    <p>"OK" -
5656                                    </p>
5657    <blockquote class="text">
5658    <p>on success
5659    </p>
5660    </blockquote>
5661                                
5662    
5663    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5664                                    </p>
5665    <blockquote class="text">
5666    <p>in case it failed, providing an appropriate error code and
5667                                        error message
5668  </p>  </p>
5669  </blockquote>  </blockquote>
5670                                
5671    
5672    </blockquote><p>
5673                        
5674    </p>
5675    <p>Example:
5676    </p>
5677    <p>
5678                            </p>
5679    <blockquote class="text">
5680    <p>C: "DESTROY FX_SEND 0 0"
5681    </p>
5682    <p>S: "OK"
5683    </p>
5684    </blockquote><p>
5685                        
5686    </p>
5687    <a name="GET FX_SENDS"></a><br /><hr />
5688    <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>
5689    <a name="rfc.section.6.4.30"></a><h3>6.4.30.&nbsp;
5690    Getting amount of effect sends on a sampler channel</h3>
5691    
5692    <p>The front-end can ask for the amount of effect sends on a specific sampler channel
5693                        by sending the following command:
5694    </p>
5695    <p>
5696                            </p>
5697    <blockquote class="text">
5698    <p>GET FX_SENDS &lt;sampler-channel&gt;
5699    </p>
5700    </blockquote><p>
5701                        
5702    </p>
5703    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5704                        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>
5705                        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.
5706    </p>
5707    <p>Possible Answers:
5708    </p>
5709    <p>
5710                            </p>
5711    <blockquote class="text">
5712    <p>The sampler will answer by returning the number of effect
5713                                sends on the given sampler channel.
5714    </p>
5715    </blockquote><p>
5716                        
5717    </p>
5718    <p>Example:
5719    </p>
5720    <p>
5721                            </p>
5722    <blockquote class="text">
5723    <p>C: "GET FX_SENDS 0"
5724    </p>
5725    <p>S: "2"
5726    </p>
5727    </blockquote><p>
5728                        
5729    </p>
5730    <a name="LIST FX_SENDS"></a><br /><hr />
5731    <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>
5732    <a name="rfc.section.6.4.31"></a><h3>6.4.31.&nbsp;
5733    Listing all effect sends on a sampler channel</h3>
5734    
5735    <p>The front-end can ask for a list of effect sends on a specific sampler channel
5736                        by sending the following command:
5737    </p>
5738    <p>
5739                            </p>
5740    <blockquote class="text">
5741    <p>LIST FX_SENDS &lt;sampler-channel&gt;
5742    </p>
5743    </blockquote><p>
5744                        
5745    </p>
5746    <p>Where &lt;sampler-channel&gt; is the respective sampler channel
5747                        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>
5748                        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.
5749    </p>
5750    <p>Possible Answers:
5751    </p>
5752    <p>
5753                            </p>
5754    <blockquote class="text">
5755    <p>The sampler will answer by returning a comma separated list
5756                                with all effect sends' numerical IDs on the given sampler
5757                                channel.
5758    </p>
5759    </blockquote><p>
5760                        
5761    </p>
5762    <p>Examples:
5763    </p>
5764    <p>
5765                            </p>
5766    <blockquote class="text">
5767    <p>C: "LIST FX_SENDS 0"
5768    </p>
5769    <p>S: "0,1"
5770    </p>
5771    </blockquote><p>
5772                        
5773    </p>
5774    <p>
5775                            </p>
5776    <blockquote class="text">
5777    <p>C: "LIST FX_SENDS 1"
5778    </p>
5779    <p>S: ""
5780    </p>
5781    </blockquote><p>
5782                        
5783    </p>
5784    <a name="GET FX_SEND INFO"></a><br /><hr />
5785    <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>
5786    <a name="rfc.section.6.4.32"></a><h3>6.4.32.&nbsp;
5787    Getting effect send information</h3>
5788    
5789    <p>The front-end can ask for the current settings of an effect send entity
5790                        by sending the following command:
5791    </p>
5792    <p>
5793                            </p>
5794    <blockquote class="text">
5795    <p>GET FX_SEND INFO &lt;sampler-channel&gt; &lt;fx-send-id&gt;
5796    </p>
5797    </blockquote><p>
5798                        
5799    </p>
5800    <p>Where &lt;sampler-channel&gt; is the sampler channel number
5801                        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>
5802                        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
5803                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5804                        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>
5805                        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.
5806                      
5807    </p>
5808    <p>Possible Answers:
5809    </p>
5810    <p>
5811                            </p>
5812    <blockquote class="text">
5813    <p>The sampler will answer by sending a &lt;CRLF&gt; separated list.
5814                                Each answer line begins with the settings category name
5815                                followed by a colon and then a space character &lt;SP&gt; and finally
5816                                the info character string to that setting category. At the
5817                                moment the following categories are defined:
5818    </p>
5819    <p>
5820                                    </p>
5821    <blockquote class="text">
5822    <p>NAME -
5823                                            </p>
5824    <blockquote class="text">
5825    <p>name of the effect send entity
5826                                                (note that this character string may contain
5827                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
5828    </p>
5829    </blockquote>
5830                                        
5831    
5832    <p>MIDI_CONTROLLER -
5833                                            </p>
5834    <blockquote class="text">
5835    <p>a value between 0 and 127 reflecting the MIDI controller
5836                                                which is able to modify the effect send's send level
5837    </p>
5838    </blockquote>
5839                                        
5840    
5841    <p>LEVEL -
5842                                            </p>
5843    <blockquote class="text">
5844    <p>optionally dotted number reflecting the effect send's
5845                                                current send level (where a value &lt; 1.0 means attenuation
5846                                                and a value > 1.0 means amplification)
5847    </p>
5848    </blockquote>
5849                                        
5850    
5851    <p>AUDIO_OUTPUT_ROUTING -
5852                                            </p>
5853    <blockquote class="text">
5854    <p>comma separated list which reflects to which audio
5855                                                channel of the selected audio output device each
5856                                                effect send output channel is routed to, e.g. "0,3" would
5857                                                mean the effect send's output channel 0 is routed to channel
5858                                                0 of the audio output device and the effect send's output
5859                                                channel 1 is routed to the channel 3 of the audio
5860                                                output device (see
5861                                                <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>
5862                                                for details), if an internal send
5863                                                effect is assigned to the effect
5864                                                send, then this setting defines the
5865                                                audio channel routing to that
5866                                                effect instance respectively
5867    </p>
5868    </blockquote>
5869                                        
5870    
5871    <p>EFFECT -
5872                                            </p>
5873    <blockquote class="text">
5874    <p>destination send effect chain ID
5875                                                and destination effect chain
5876                                                position, separated by comma in the
5877                                                form "&lt;effect-chain&gt;,&lt;chain-pos&gt;"
5878                                                or "NONE" if there is no send effect
5879                                                assigned to the effect send
5880    </p>
5881    </blockquote>
5882                                        
5883    
5884    </blockquote>
5885                                
5886    
5887    </blockquote><p>
5888                        
5889    </p>
5890    <p>The mentioned fields above don't have to be in particular order.
5891    </p>
5892    <p>Example:
5893    </p>
5894    <p>
5895                            </p>
5896    <blockquote class="text">
5897    <p>C: "GET FX_SEND INFO 0 0"
5898    </p>
5899    <p>S: "NAME: Reverb Send"
5900    </p>
5901    <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 91"
5902    </p>
5903    <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.3"
5904    </p>
5905    <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 2,3"
5906    </p>
5907    <p>&nbsp;&nbsp;&nbsp;"EFFECT: NONE"
5908    </p>
5909    <p>&nbsp;&nbsp;&nbsp;"."
5910    </p>
5911    </blockquote><p>
5912                        
5913    </p>
5914    <p>
5915                            </p>
5916    <blockquote class="text">
5917    <p>C: "GET FX_SEND INFO 0 1"
5918    </p>
5919    <p>S: "NAME: Delay Send (Internal)"
5920    </p>
5921    <p>&nbsp;&nbsp;&nbsp;"MIDI_CONTROLLER: 93"
5922    </p>
5923    <p>&nbsp;&nbsp;&nbsp;"LEVEL: 0.51"
5924    </p>
5925    <p>&nbsp;&nbsp;&nbsp;"AUDIO_OUTPUT_ROUTING: 1,2"
5926    </p>
5927    <p>&nbsp;&nbsp;&nbsp;"EFFECT: 2,0"
5928    </p>
5929    <p>&nbsp;&nbsp;&nbsp;"."
5930    </p>
5931    </blockquote><p>
5932                        
5933    </p>
5934    <a name="SET FX_SEND NAME"></a><br /><hr />
5935    <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>
5936    <a name="rfc.section.6.4.33"></a><h3>6.4.33.&nbsp;
5937    Changing effect send's name</h3>
5938    
5939    <p>The front-end can alter the current name of an effect
5940                        send entity by sending the following command:
5941    </p>
5942    <p>
5943                            </p>
5944    <blockquote class="text">
5945    <p>SET FX_SEND NAME &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;name&gt;
5946    </p>
5947    </blockquote><p>
5948                        
5949    </p>
5950    <p>Where &lt;sampler-chan&gt; is the sampler channel number
5951                        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>
5952                        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,
5953                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
5954                        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>
5955                        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
5956                        &lt;name&gt; is the new name of the effect send entity, which
5957                        does not have to be unique (name MUST be encapsulated into apostrophes
5958                        and supports escape sequences as described in chapter
5959                        "<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>").
5960                        
5961    </p>
5962    <p>Possible Answers:
5963    </p>
5964    <p>
5965                            </p>
5966    <blockquote class="text">
5967    <p>"OK" -
5968                                    </p>
5969    <blockquote class="text">
5970    <p>on success
5971    </p>
5972    </blockquote>
5973                                
5974    
5975    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
5976                                    </p>
5977    <blockquote class="text">
5978    <p>in case it failed, providing an appropriate error code and error message
5979    </p>
5980    </blockquote>
5981                                
5982    
5983    </blockquote><p>
5984                        
5985    </p>
5986    <p>Example:
5987    </p>
5988    <p>
5989                            </p>
5990    <blockquote class="text">
5991    <p>C: "SET FX_SEND NAME 0 0 'Fx Send 1'"
5992    </p>
5993    <p>S: "OK"
5994    </p>
5995    </blockquote><p>
5996                        
5997    </p>
5998    <a name="SET FX_SEND AUDIO_OUTPUT_CHANNEL"></a><br /><hr />
5999    <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>
6000    <a name="rfc.section.6.4.34"></a><h3>6.4.34.&nbsp;
6001    Altering effect send's audio routing</h3>
6002    
6003    <p>The front-end can alter the destination of an effect send's audio channel on a specific
6004                        sampler channel by sending the following command:
6005    </p>
6006    <p>
6007                            </p>
6008    <blockquote class="text">
6009    <p>SET FX_SEND AUDIO_OUTPUT_CHANNEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;audio-src&gt; &lt;audio-dst&gt;
6010    </p>
6011    </blockquote><p>
6012                        
6013    </p>
6014    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6015                        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>
6016                        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,
6017                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6018                        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>
6019                        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,
6020                        &lt;audio-src&gt; is the numerical ID of the effect send's audio channel
6021                        which should be rerouted and &lt;audio-dst&gt; is the numerical ID of
6022                        the audio channel of the selected audio output device where &lt;audio-src&gt;
6023                        should be routed to. If an internal send effect is assigned
6024                        to the effect send, then this setting defines the audio
6025                        channel routing to that effect instance respectively.
6026    </p>
6027    <p>Note that effect sends can only route audio to the same audio output
6028                        device as assigned to the effect send's sampler channel. Also note that an
6029                        effect send entity does always have exactly as much audio channels as its
6030                        sampler channel. So if the sampler channel is stereo, the effect send does
6031                        have two audio channels as well. Also keep in mind that the amount of audio
6032                        channels on a sampler channel might be dependant not only to the deployed
6033                        sampler engine on the sampler channel, but also dependant to the instrument
6034                        currently loaded. However you can (effectively) turn an i.e. stereo effect
6035                        send into a mono one by simply altering its audio routing appropriately.
6036    </p>
6037    <p>Possible Answers:
6038    </p>
6039    <p>
6040                            </p>
6041    <blockquote class="text">
6042    <p>"OK" -
6043                                    </p>
6044    <blockquote class="text">
6045    <p>on success
6046    </p>
6047    </blockquote>
6048                                
6049    
6050    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6051                                    </p>
6052    <blockquote class="text">
6053    <p>if audio output channel was set, but there are noteworthy
6054                                        issue(s) related, providing an appropriate warning code and
6055                                        warning message
6056    </p>
6057    </blockquote>
6058                                
6059    
6060    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6061                                    </p>
6062    <blockquote class="text">
6063    <p>in case it failed, providing an appropriate error code and error message
6064    </p>
6065    </blockquote>
6066                                
6067    
6068    </blockquote><p>
6069                        
6070    </p>
6071    <p>Example:
6072    </p>
6073    <p>
6074                            </p>
6075    <blockquote class="text">
6076    <p>C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2"
6077    </p>
6078    <p>S: "OK"
6079    </p>
6080    </blockquote><p>
6081                        
6082    </p>
6083    <a name="SET FX_SEND EFFECT"></a><br /><hr />
6084    <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>
6085    <a name="rfc.section.6.4.35"></a><h3>6.4.35.&nbsp;
6086    Assigning destination effect to an effect send</h3>
6087    
6088    <p>The front-end can (re-)assign a destination effect to an
6089                        effect send by sending the following command:
6090    </p>
6091    <p>
6092                            </p>
6093    <blockquote class="text">
6094    <p>SET FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
6095    </p>
6096    </blockquote><p>
6097                        
6098    </p>
6099    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6100                        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>
6101                        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,
6102                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6103                        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>
6104                        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,
6105                        &lt;effect-chain&gt; by the numerical ID of the destination
6106                        effect chain as returned by the
6107                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
6108                        or
6109                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
6110                        command and &lt;chain-pos&gt; reflects the exact effect
6111                        chain position in the effect chain which hosts the actual
6112                        destination effect.
6113    </p>
6114    <p>Possible Answers:
6115    </p>
6116    <p>
6117                            </p>
6118    <blockquote class="text">
6119    <p>"OK" -
6120                                    </p>
6121    <blockquote class="text">
6122    <p>on success
6123    </p>
6124    </blockquote>
6125                                
6126    
6127    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6128                                    </p>
6129    <blockquote class="text">
6130    <p>in case it failed, providing an appropriate error code and error message
6131    </p>
6132    </blockquote>
6133                                
6134    
6135    </blockquote><p>
6136                        
6137    </p>
6138    <p>Example:
6139    </p>
6140    <p>
6141                            </p>
6142    <blockquote class="text">
6143    <p>C: "SET FX_SEND EFFECT 0 0 2 5"
6144    </p>
6145    <p>S: "OK"
6146    </p>
6147    </blockquote><p>
6148                        
6149    </p>
6150    <a name="REMOVE FX_SEND EFFECT"></a><br /><hr />
6151    <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>
6152    <a name="rfc.section.6.4.36"></a><h3>6.4.36.&nbsp;
6153    Removing destination effect from an effect send</h3>
6154    
6155    <p>The front-end can (re-)assign a destination effect to an
6156                        effect send by sending the following command:
6157    </p>
6158    <p>
6159                            </p>
6160    <blockquote class="text">
6161    <p>REMOVE FX_SEND EFFECT &lt;sampler-chan&gt; &lt;fx-send-id&gt;
6162    </p>
6163    </blockquote><p>
6164                        
6165    </p>
6166    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6167                        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>
6168                        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,
6169                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6170                        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>
6171                        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.
6172    </p>
6173    <p>After the destination effect has been removed from the
6174                        effect send, the audio signal of the effect send will be
6175                        routed directly to the audio output device, according to the
6176                        audio channel routing setting of the effect send.
6177                        
6178    </p>
6179    <p>Possible Answers:
6180    </p>
6181    <p>
6182                            </p>
6183    <blockquote class="text">
6184    <p>"OK" -
6185                                    </p>
6186    <blockquote class="text">
6187    <p>on success
6188    </p>
6189    </blockquote>
6190                                
6191    
6192    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6193                                    </p>
6194    <blockquote class="text">
6195    <p>in case it failed, providing an appropriate error code and error message
6196    </p>
6197    </blockquote>
6198                                
6199    
6200    </blockquote><p>
6201                        
6202    </p>
6203    <p>Example:
6204    </p>
6205    <p>
6206                            </p>
6207    <blockquote class="text">
6208    <p>C: "REMOVE FX_SEND EFFECT 0 0"
6209    </p>
6210    <p>S: "OK"
6211    </p>
6212    </blockquote><p>
6213                        
6214    </p>
6215    <a name="SET FX_SEND MIDI_CONTROLLER"></a><br /><hr />
6216    <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>
6217    <a name="rfc.section.6.4.37"></a><h3>6.4.37.&nbsp;
6218    Altering effect send's MIDI controller</h3>
6219    
6220    <p>The front-end can alter the MIDI controller of an effect
6221                        send entity by sending the following command:
6222    </p>
6223    <p>
6224                            </p>
6225    <blockquote class="text">
6226    <p>SET FX_SEND MIDI_CONTROLLER &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;midi-ctrl&gt;
6227    </p>
6228    </blockquote><p>
6229                        
6230    </p>
6231    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6232                        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>
6233                        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,
6234                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6235                        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>
6236                        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
6237                        &lt;midi-ctrl&gt; reflects the MIDI controller which shall be
6238                        able to modify the effect send's send level.
6239    </p>
6240    <p>Possible Answers:
6241    </p>
6242    <p>
6243                            </p>
6244    <blockquote class="text">
6245    <p>"OK" -
6246                                    </p>
6247    <blockquote class="text">
6248    <p>on success
6249    </p>
6250    </blockquote>
6251                                
6252    
6253    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6254                                    </p>
6255    <blockquote class="text">
6256    <p>if MIDI controller was set, but there are noteworthy
6257                                        issue(s) related, providing an appropriate warning code and
6258                                        warning message
6259    </p>
6260    </blockquote>
6261                                
6262    
6263    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6264                                    </p>
6265    <blockquote class="text">
6266    <p>in case it failed, providing an appropriate error code and error message
6267    </p>
6268    </blockquote>
6269                                
6270    
6271    </blockquote><p>
6272                        
6273    </p>
6274    <p>Example:
6275    </p>
6276    <p>
6277                            </p>
6278    <blockquote class="text">
6279    <p>C: "SET FX_SEND MIDI_CONTROLLER 0 0 91"
6280    </p>
6281    <p>S: "OK"
6282    </p>
6283    </blockquote><p>
6284                        
6285    </p>
6286    <a name="SET FX_SEND LEVEL"></a><br /><hr />
6287    <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>
6288    <a name="rfc.section.6.4.38"></a><h3>6.4.38.&nbsp;
6289    Altering effect send's send level</h3>
6290    
6291    <p>The front-end can alter the current send level of an effect
6292                        send entity by sending the following command:
6293    </p>
6294    <p>
6295                            </p>
6296    <blockquote class="text">
6297    <p>SET FX_SEND LEVEL &lt;sampler-chan&gt; &lt;fx-send-id&gt; &lt;volume&gt;
6298    </p>
6299    </blockquote><p>
6300                        
6301    </p>
6302    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6303                        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>
6304                        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,
6305                        &lt;fx-send-id&gt; reflects the numerical ID of the effect send entity
6306                        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>
6307                        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
6308                        &lt;volume&gt; is an optionally dotted positive number (a value
6309                        smaller than 1.0 means attenuation, whereas a value greater than
6310                        1.0 means amplification) reflecting the new send level.
6311    </p>
6312    <p>Possible Answers:
6313    </p>
6314    <p>
6315                            </p>
6316    <blockquote class="text">
6317    <p>"OK" -
6318                                    </p>
6319    <blockquote class="text">
6320    <p>on success
6321    </p>
6322    </blockquote>
6323                                
6324    
6325    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6326                                    </p>
6327    <blockquote class="text">
6328    <p>if new send level was set, but there are noteworthy
6329                                        issue(s) related, providing an appropriate warning code and
6330                                        warning message
6331    </p>
6332    </blockquote>
6333                                
6334    
6335    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6336                                    </p>
6337    <blockquote class="text">
6338    <p>in case it failed, providing an appropriate error code and error message
6339    </p>
6340    </blockquote>
6341                                
6342    
6343    </blockquote><p>
6344                        
6345    </p>
6346    <p>Example:
6347    </p>
6348    <p>
6349                            </p>
6350    <blockquote class="text">
6351    <p>C: "SET FX_SEND LEVEL 0 0 0.15"
6352    </p>
6353    <p>S: "OK"
6354    </p>
6355    </blockquote><p>
6356                        
6357    </p>
6358    <a name="SEND CHANNEL MIDI_DATA"></a><br /><hr />
6359    <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>
6360    <a name="rfc.section.6.4.39"></a><h3>6.4.39.&nbsp;
6361    Sending MIDI messages to sampler channel</h3>
6362    
6363    <p>The front-end can send MIDI events to a specific sampler channel
6364                        by sending the following command:
6365    </p>
6366    <p>
6367                            </p>
6368    <blockquote class="text">
6369    <p>SEND CHANNEL MIDI_DATA &lt;midi-msg&gt; &lt;sampler-chan&gt; &lt;arg1&gt; &lt;arg2&gt;
6370    </p>
6371    </blockquote><p>
6372                        
6373    </p>
6374    <p>Where &lt;sampler-chan&gt; is the sampler channel number
6375                        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>
6376                        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,
6377                        &lt;arg1&gt; and &lt;arg2&gt; arguments depend on the &lt;midi-msg&gt; argument, which
6378                        specifies the MIDI message type. Currently, the following MIDI messages are supported:
6379    </p>
6380    <p>
6381                            </p>
6382    <blockquote class="text">
6383    <p>"NOTE_ON" -
6384                                    </p>
6385    <blockquote class="text">
6386    <p>For turning on MIDI notes, where &lt;arg1&gt;
6387                                        specifies the key number and &lt;arg2&gt; the velocity
6388                                        as described in the MIDI specification.
6389    </p>
6390    </blockquote>
6391                                
6392    
6393    <p>"NOTE_OFF" -
6394                                    </p>
6395    <blockquote class="text">
6396    <p>For turning a currently playing MIDI note off, where &lt;arg1&gt;
6397                                        specifies the key number and &lt;arg2&gt; the velocity
6398                                        as described in the MIDI specification.
6399    </p>
6400    </blockquote>
6401                                
6402    
6403    <p>"CC" -
6404                                    </p>
6405    <blockquote class="text">
6406    <p>For changing a MIDI controller, where &lt;arg1&gt;
6407                                        specifies the controller number and &lt;arg2&gt; the
6408                                        new value of the controller as described in the Control
6409                                        Change section of the MIDI specification.
6410    </p>
6411    </blockquote>
6412                                
6413    
6414    </blockquote><p>
6415                        
6416    </p>
6417    <p>CAUTION: This command is provided for implementations of virtual MIDI keyboards
6418                        and no realtime guarantee whatsoever will be made!
6419    </p>
6420    <p>Possible Answers:
6421    </p>
6422    <p>
6423                            </p>
6424    <blockquote class="text">
6425    <p>"OK" -
6426                                    </p>
6427    <blockquote class="text">
6428    <p>on success
6429    </p>
6430    </blockquote>
6431                                
6432    
6433    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6434                                    </p>
6435    <blockquote class="text">
6436    <p>in case it failed, providing an appropriate error code and error message
6437    </p>
6438    </blockquote>
6439                                
6440    
6441    </blockquote><p>
6442                        
6443    </p>
6444    <p>Example:
6445    </p>
6446    <p>
6447                            </p>
6448    <blockquote class="text">
6449    <p>C: "SEND CHANNEL MIDI_DATA NOTE_ON 0 56 112"
6450    </p>
6451    <p>S: "OK"
6452    </p>
6453    </blockquote><p>
6454                        
6455    </p>
6456    <a name="RESET CHANNEL"></a><br /><hr />
6457    <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>
6458    <a name="rfc.section.6.4.40"></a><h3>6.4.40.&nbsp;
6459    Resetting a sampler channel</h3>
6460    
6461    <p>The front-end can reset a particular sampler channel by sending the following command:
6462    </p>
6463    <p>
6464                            </p>
6465    <blockquote class="text">
6466    <p>RESET CHANNEL &lt;sampler-channel&gt;
6467    </p>
6468    </blockquote><p>
6469                        
6470    </p>
6471  <p>  <p>
6472                      Where &lt;sampler-channel&gt; defines the sampler channel to be reset.                      Where &lt;sampler-channel&gt; defines the sampler channel to be reset.
6473                      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 3837  Intellectual Property and Copyright Stat Line 6476  Intellectual Property and Copyright Stat
6476  </p>  </p>
6477  <p>Possible Answers:  <p>Possible Answers:
6478  </p>  </p>
6479  <p></p>  <p>
6480                            </p>
6481  <blockquote class="text">  <blockquote class="text">
6482  <p>"OK" -  <p>"OK" -
6483                                  </p>                                  </p>
# Line 3845  Intellectual Property and Copyright Stat Line 6485  Intellectual Property and Copyright Stat
6485  <p>on success  <p>on success
6486  </p>  </p>
6487  </blockquote>  </blockquote>
6488                                
6489    
6490  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6491                                  </p>                                  </p>
# Line 3854  Intellectual Property and Copyright Stat Line 6495  Intellectual Property and Copyright Stat
6495                                      message                                      message
6496  </p>  </p>
6497  </blockquote>  </blockquote>
6498                                
6499    
6500  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6501                                  </p>                                  </p>
# Line 3862  Intellectual Property and Copyright Stat Line 6504  Intellectual Property and Copyright Stat
6504                                      error message                                      error message
6505  </p>  </p>
6506  </blockquote>  </blockquote>
6507                                
6508    
6509  </blockquote>  </blockquote><p>
6510                        
6511    </p>
6512  <p>Examples:  <p>Examples:
6513  </p>  </p>
6514  <p></p>  <p>
6515                            </p>
6516  <blockquote class="text">  <blockquote class="text">
6517  <p>  <p>
6518  </p>  </p>
6519  </blockquote>  </blockquote><p>
6520                        
6521  <a name="rfc.section.5.5"></a><h4><a name="anchor13">5.5</a>&nbsp;Controlling connection</h4>  </p>
6522    <a name="anchor12"></a><br /><hr />
6523    <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>
6524    <a name="rfc.section.6.5"></a><h3>6.5.&nbsp;
6525    Controlling connection</h3>
6526    
6527  <p>The following commands are used to control the connection to LinuxSampler.  <p>The following commands are used to control the connection to LinuxSampler.
6528  </p>  </p>
6529  <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 />
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.5.1"></a><h3>6.5.1.&nbsp;
6532    Register front-end for receiving event messages</h3>
6533    
6534  <p>The front-end can register itself to the LinuxSampler application to  <p>The front-end can register itself to the LinuxSampler application to
6535                      be informed about noteworthy events by sending this command:                      be informed about noteworthy events by sending this command:
6536  </p>  </p>
6537  <p></p>  <p>
6538                            </p>
6539  <blockquote class="text">  <blockquote class="text">
6540  <p>SUBSCRIBE &lt;event-id&gt;  <p>SUBSCRIBE &lt;event-id&gt;
6541  </p>  </p>
6542  </blockquote>  </blockquote><p>
6543                        
6544    </p>
6545  <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
6546                      client wants to subscribe to.                      client wants to subscribe to.
6547  </p>  </p>
6548  <p>Possible Answers:  <p>Possible Answers:
6549  </p>  </p>
6550  <p></p>  <p>
6551                            </p>
6552  <blockquote class="text">  <blockquote class="text">
6553  <p>"OK" -  <p>"OK" -
6554                                  </p>                                  </p>
# Line 3901  Intellectual Property and Copyright Stat Line 6556  Intellectual Property and Copyright Stat
6556  <p>on success  <p>on success
6557  </p>  </p>
6558  </blockquote>  </blockquote>
6559                                
6560    
6561  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6562                                  </p>                                  </p>
# Line 3910  Intellectual Property and Copyright Stat Line 6566  Intellectual Property and Copyright Stat
6566                                      warning message                                      warning message
6567  </p>  </p>
6568  </blockquote>  </blockquote>
6569                                
6570    
6571  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6572                                  </p>                                  </p>
# Line 3918  Intellectual Property and Copyright Stat Line 6575  Intellectual Property and Copyright Stat
6575                                      error message                                      error message
6576  </p>  </p>
6577  </blockquote>  </blockquote>
6578                                
6579    
6580  </blockquote>  </blockquote><p>
6581                        
6582    </p>
6583  <p>Examples:  <p>Examples:
6584  </p>  </p>
6585  <p></p>  <p>
6586                            </p>
6587  <blockquote class="text">  <blockquote class="text">
6588  <p>  <p>
6589  </p>  </p>
6590  </blockquote>  </blockquote><p>
6591                        
6592  <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>
6593    <a name="UNSUBSCRIBE"></a><br /><hr />
6594    <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>
6595    <a name="rfc.section.6.5.2"></a><h3>6.5.2.&nbsp;
6596    Unregister front-end for not receiving event messages</h3>
6597    
6598  <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
6599                      messages anymore by sending the following command:                      messages anymore by sending the following command:
6600  </p>  </p>
6601  <p></p>  <p>
6602                            </p>
6603  <blockquote class="text">  <blockquote class="text">
6604  <p>UNSUBSCRIBE &lt;event-id&gt;  <p>UNSUBSCRIBE &lt;event-id&gt;
6605  </p>  </p>
6606  </blockquote>  </blockquote><p>
6607                        
6608    </p>
6609  <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
6610                      client doesn't want to receive anymore.                      client doesn't want to receive anymore.
6611  </p>  </p>
6612  <p>Possible Answers:  <p>Possible Answers:
6613  </p>  </p>
6614  <p></p>  <p>
6615                            </p>
6616  <blockquote class="text">  <blockquote class="text">
6617  <p>"OK" -  <p>"OK" -
6618                                  </p>                                  </p>
# Line 3953  Intellectual Property and Copyright Stat Line 6620  Intellectual Property and Copyright Stat
6620  <p>on success  <p>on success
6621  </p>  </p>
6622  </blockquote>  </blockquote>
6623                                
6624    
6625  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -  <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
6626                                  </p>                                  </p>
# Line 3962  Intellectual Property and Copyright Stat Line 6630  Intellectual Property and Copyright Stat
6630                                      warning message                                      warning message
6631  </p>  </p>
6632  </blockquote>  </blockquote>
6633                                
6634    
6635  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6636                                  </p>                                  </p>
# Line 3970  Intellectual Property and Copyright Stat Line 6639  Intellectual Property and Copyright Stat
6639                                      error message                                      error message
6640  </p>  </p>
6641  </blockquote>  </blockquote>
6642                                
6643    
6644  </blockquote>  </blockquote><p>
6645                        
6646    </p>
6647  <p>Examples:  <p>Examples:
6648  </p>  </p>
6649  <p></p>  <p>
6650                            </p>
6651  <blockquote class="text">  <blockquote class="text">
6652  <p>  <p>
6653  </p>  </p>
6654  </blockquote>  </blockquote><p>
6655                        
6656  <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>
6657    <a name="SET ECHO"></a><br /><hr />
6658    <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>
6659    <a name="rfc.section.6.5.3"></a><h3>6.5.3.&nbsp;
6660    Enable or disable echo of commands</h3>
6661    
6662  <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:
6663  </p>  </p>
6664  <p></p>  <p>
6665                            </p>
6666  <blockquote class="text">  <blockquote class="text">
6667  <p>SET ECHO &lt;value&gt;  <p>SET ECHO &lt;value&gt;
6668  </p>  </p>
6669  </blockquote>  </blockquote><p>
6670                        
6671    </p>
6672  <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
6673                      or "0" to disable echo mode. When echo mode is enabled, all                      or "0" to disable echo mode. When echo mode is enabled, all
6674                      commands send to LinuxSampler will be immediately send back and                      commands send to LinuxSampler will be immediately send back and
# Line 4001  Intellectual Property and Copyright Stat Line 6679  Intellectual Property and Copyright Stat
6679  </p>  </p>
6680  <p>Possible Answers:  <p>Possible Answers:
6681  </p>  </p>
6682  <p></p>  <p>
6683                            </p>
6684  <blockquote class="text">  <blockquote class="text">
6685  <p>"OK" -  <p>"OK" -
6686                                  </p>                                  </p>
# Line 4009  Intellectual Property and Copyright Stat Line 6688  Intellectual Property and Copyright Stat
6688  <p>usually  <p>usually
6689  </p>  </p>
6690  </blockquote>  </blockquote>
6691                                
6692    
6693  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -  <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
6694                                  </p>                                  </p>
# Line 4016  Intellectual Property and Copyright Stat Line 6696  Intellectual Property and Copyright Stat
6696  <p>on syntax error, e.g. non boolean value  <p>on syntax error, e.g. non boolean value
6697  </p>  </p>
6698  </blockquote>  </blockquote>
6699                                
6700    
6701  </blockquote>  </blockquote><p>
6702                        
6703    </p>
6704  <p>Examples:  <p>Examples:
6705  </p>  </p>
6706  <p></p>  <p>
6707                            </p>
6708  <blockquote class="text">  <blockquote class="text">
6709  <p>  <p>
6710  </p>  </p>
6711  </blockquote>  </blockquote><p>
6712                        
6713  <a name="rfc.section.5.5.4"></a><h4><a name="QUIT">5.5.4</a>&nbsp;Close client connection</h4>  </p>
6714    <a name="QUIT"></a><br /><hr />
6715    <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>
6716    <a name="rfc.section.6.5.4"></a><h3>6.5.4.&nbsp;
6717    Close client connection</h3>
6718    
6719  <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:
6720  </p>  </p>
6721  <p></p>  <p>
6722                            </p>
6723  <blockquote class="text">  <blockquote class="text">
6724  <p>QUIT  <p>QUIT
6725  </p>  </p>
6726  </blockquote>  </blockquote><p>
6727                        
6728    </p>
6729  <p>This is probably more interesting for manual telnet connections to  <p>This is probably more interesting for manual telnet connections to
6730                      LinuxSampler than really useful for a front-end implementation.                      LinuxSampler than really useful for a front-end implementation.
6731  </p>  </p>
6732  <a name="rfc.section.5.6"></a><h4><a name="anchor14">5.6</a>&nbsp;Global commands</h4>  <a name="anchor13"></a><br /><hr />
6733    <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>
6734    <a name="rfc.section.6.6"></a><h3>6.6.&nbsp;
6735    Global commands</h3>
6736    
6737  <p>The following commands have global impact on the sampler.  <p>The following commands have global impact on the sampler.
6738  </p>  </p>
6739  <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 />
6740    <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>
6741    <a name="rfc.section.6.6.1"></a><h3>6.6.1.&nbsp;
6742    Current number of active voices</h3>
6743    
6744    <p>The front-end can ask for the current number of active voices on
6745                        the sampler by sending the following command:
6746    </p>
6747    <p>
6748                            </p>
6749    <blockquote class="text">
6750    <p>GET TOTAL_VOICE_COUNT
6751    </p>
6752    </blockquote><p>
6753                        
6754    </p>
6755    <p>Possible Answers:
6756    </p>
6757    <p>
6758                            </p>
6759    <blockquote class="text">
6760    <p>LinuxSampler will answer by returning the number of all active
6761                                voices on the sampler.
6762    </p>
6763    </blockquote><p>
6764                        
6765    </p>
6766    <a name="GET TOTAL_VOICE_COUNT_MAX"></a><br /><hr />
6767    <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>
6768    <a name="rfc.section.6.6.2"></a><h3>6.6.2.&nbsp;
6769    Maximum amount of active voices</h3>
6770    
6771    <p>The front-end can ask for the maximum number of active voices
6772                        by sending the following command:
6773    </p>
6774    <p>
6775                            </p>
6776    <blockquote class="text">
6777    <p>GET TOTAL_VOICE_COUNT_MAX
6778    </p>
6779    </blockquote><p>
6780                        
6781    </p>
6782    <p>Possible Answers:
6783    </p>
6784    <p>
6785                            </p>
6786    <blockquote class="text">
6787    <p>LinuxSampler will answer by returning the maximum number
6788                                of active voices.
6789    </p>
6790    </blockquote><p>
6791                        
6792    </p>
6793    <a name="GET TOTAL_STREAM_COUNT"></a><br /><hr />
6794    <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>
6795    <a name="rfc.section.6.6.3"></a><h3>6.6.3.&nbsp;
6796    Current number of active disk streams</h3>
6797    
6798    <p>The front-end can ask for the current number of active disk streams on
6799                        the sampler by sending the following command:
6800    </p>
6801    <p>
6802                            </p>
6803    <blockquote class="text">
6804    <p>GET TOTAL_STREAM_COUNT
6805    </p>
6806    </blockquote><p>
6807                        
6808    </p>
6809    <p>Possible Answers:
6810    </p>
6811    <p>
6812                            </p>
6813    <blockquote class="text">
6814    <p>LinuxSampler will answer by returning the number of all active
6815                                disk streams on the sampler.
6816    </p>
6817    </blockquote><p>
6818                        
6819    </p>
6820    <a name="RESET"></a><br /><hr />
6821    <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>
6822    <a name="rfc.section.6.6.4"></a><h3>6.6.4.&nbsp;
6823    Reset sampler</h3>
6824    
6825  <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:
6826  </p>  </p>
6827  <p></p>  <p>
6828                            </p>
6829  <blockquote class="text">  <blockquote class="text">
6830  <p>RESET  <p>RESET
6831  </p>  </p>
6832    </blockquote><p>
6833                        
6834    </p>
6835    <p>Possible Answers:
6836    </p>
6837    <p>
6838                            </p>
6839    <blockquote class="text">
6840    <p>"OK" -
6841                                    </p>
6842    <blockquote class="text">
6843    <p>always
6844    </p>
6845    </blockquote>
6846                                
6847    
6848    </blockquote><p>
6849                        
6850    </p>
6851    <p>Examples:
6852    </p>
6853    <p>
6854                            </p>
6855    <blockquote class="text">
6856    <p>
6857    </p>
6858    </blockquote><p>
6859                        
6860    </p>
6861    <a name="GET SERVER INFO"></a><br /><hr />
6862    <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>
6863    <a name="rfc.section.6.6.5"></a><h3>6.6.5.&nbsp;
6864    General sampler informations</h3>
6865    
6866    <p>The client can ask for general informations about the LinuxSampler
6867                           instance by sending the following command:
6868    </p>
6869    <p>
6870                            </p>
6871    <blockquote class="text">
6872    <p>GET SERVER INFO
6873    </p>
6874    </blockquote><p>
6875                        
6876    </p>
6877    <p>Possible Answers:
6878    </p>
6879    <p>
6880                            </p>
6881    <blockquote class="text">
6882    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
6883                                   Each answer line begins with the information category name
6884                                   followed by a colon and then a space character &lt;SP&gt; and finally
6885                                   the info character string to that information category. At the
6886                                   moment the following categories are defined:
6887                                
6888    </p>
6889    <p>
6890                                    </p>
6891    <blockquote class="text">
6892    <p>DESCRIPTION -
6893                                            </p>
6894    <blockquote class="text">
6895    <p>arbitrary textual description about the sampler
6896                                                (note that the character string may contain
6897                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
6898    </p>
6899    </blockquote>
6900                                        
6901    
6902    <p>VERSION -
6903                                            </p>
6904    <blockquote class="text">
6905    <p>version of the sampler
6906    </p>
6907    </blockquote>
6908                                        
6909    
6910    <p>PROTOCOL_VERSION -
6911                                            </p>
6912    <blockquote class="text">
6913    <p>version of the LSCP specification the sampler
6914                                                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)
6915    </p>
6916    </blockquote>
6917                                        
6918    
6919    <p>INSTRUMENTS_DB_SUPPORT -
6920                                            </p>
6921    <blockquote class="text">
6922    <p>either yes or no, specifies whether the
6923                                                sampler is build with instruments database support.
6924    </p>
6925    </blockquote>
6926                                        
6927    
6928    </blockquote>
6929                                
6930    
6931    </blockquote><p>
6932                        
6933    </p>
6934    <p>The mentioned fields above don't have to be in particular order.
6935                        Other fields might be added in future.
6936    </p>
6937    <p>Example:
6938    </p>
6939    <p>
6940                            </p>
6941    <blockquote class="text">
6942    <p>C: "GET SERVER INFO"
6943    </p>
6944    <p>S: "DESCRIPTION: LinuxSampler - modular, streaming capable sampler"
6945    </p>
6946    <p>&nbsp;&nbsp;&nbsp;"VERSION: 1.0.0.svn23"
6947    </p>
6948    <p>&nbsp;&nbsp;&nbsp;"PROTOCOL_VERSION: 1.5"
6949    </p>
6950    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENTS_DB_SUPPORT: no"
6951    </p>
6952    <p>&nbsp;&nbsp;&nbsp;"."
6953    </p>
6954    </blockquote><p>
6955                        
6956    </p>
6957    <a name="GET VOLUME"></a><br /><hr />
6958    <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>
6959    <a name="rfc.section.6.6.6"></a><h3>6.6.6.&nbsp;
6960    Getting global volume attenuation</h3>
6961    
6962    <p>The client can ask for the current global sampler-wide volume
6963                        attenuation by sending the following command:
6964    </p>
6965    <p>
6966                            </p>
6967    <blockquote class="text">
6968    <p>GET VOLUME
6969    </p>
6970    </blockquote><p>
6971                        
6972    </p>
6973    <p>Possible Answers:
6974    </p>
6975    <p>
6976                            </p>
6977    <blockquote class="text">
6978    <p>The sampler will always answer by returning the optional
6979                                dotted floating point coefficient, reflecting the current
6980                                global volume attenuation.
6981                                
6982    </p>
6983    </blockquote><p>
6984                        
6985    </p>
6986    <p>Note: it is up to the respective sampler engine whether to obey
6987                        that global volume parameter or not, but in general all engines SHOULD
6988                        use this parameter.
6989    </p>
6990    <a name="SET VOLUME"></a><br /><hr />
6991    <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>
6992    <a name="rfc.section.6.6.7"></a><h3>6.6.7.&nbsp;
6993    Setting global volume attenuation</h3>
6994    
6995    <p>The client can alter the current global sampler-wide volume
6996                        attenuation by sending the following command:
6997    </p>
6998    <p>
6999                            </p>
7000    <blockquote class="text">
7001    <p>SET VOLUME &lt;volume&gt;
7002    </p>
7003    </blockquote><p>
7004                        
7005    </p>
7006    <p>Where &lt;volume&gt; should be replaced by the optional dotted
7007                       floating point value, reflecting the new global volume parameter.
7008                       This value might usually be in the range between 0.0 and 1.0, that
7009                       is for attenuating the overall volume.
7010    </p>
7011    <p>Possible Answers:
7012    </p>
7013    <p>
7014                            </p>
7015    <blockquote class="text">
7016    <p>"OK" -
7017                                    </p>
7018    <blockquote class="text">
7019    <p>on success
7020    </p>
7021    </blockquote>
7022                                
7023    
7024    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7025                                    </p>
7026    <blockquote class="text">
7027    <p>if the global volume was set, but there are noteworthy
7028                                        issue(s) related, providing an appropriate warning code and
7029                                        warning message
7030    </p>
7031  </blockquote>  </blockquote>
7032                                
7033    
7034    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7035                                    </p>
7036    <blockquote class="text">
7037    <p>in case it failed, providing an appropriate error code and error message
7038    </p>
7039    </blockquote>
7040                                
7041    
7042    </blockquote><p>
7043                        
7044    </p>
7045    <a name="GET VOICES"></a><br /><hr />
7046    <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>
7047    <a name="rfc.section.6.6.8"></a><h3>6.6.8.&nbsp;
7048    Getting global voice limit</h3>
7049    
7050    <p>The client can ask for the current global sampler-wide limit
7051                           for maximum voices by sending the following command:
7052    </p>
7053    <p>
7054                            </p>
7055    <blockquote class="text">
7056    <p>GET VOICES
7057    </p>
7058    </blockquote><p>
7059                        
7060    </p>
7061  <p>Possible Answers:  <p>Possible Answers:
7062  </p>  </p>
7063  <p></p>  <p>
7064                            </p>
7065    <blockquote class="text">
7066    <p>LinuxSampler will answer by returning the number for
7067                                   the current limit of maximum voices.
7068    </p>
7069    </blockquote><p>
7070                        
7071    </p>
7072    <p>The voice limit setting defines how many voices should maximum
7073                           be processed by the sampler at the same time. If the user
7074                           triggers new notes which would exceed that voice limit, the
7075                           sampler engine will react by stealing old voices for those
7076                           newly triggered notes. Note that the amount of voices triggered
7077                           by a new note can be larger than one and is dependent to the
7078                           respective instrument and probably further criterias.
7079    </p>
7080    <a name="SET VOICES"></a><br /><hr />
7081    <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>
7082    <a name="rfc.section.6.6.9"></a><h3>6.6.9.&nbsp;
7083    Setting global voice limit</h3>
7084    
7085    <p>The client can alter the current global sampler-wide limit
7086                        for maximum voices by sending the following command:
7087    </p>
7088    <p>
7089                            </p>
7090    <blockquote class="text">
7091    <p>SET VOICES &lt;max-voices&gt;
7092    </p>
7093    </blockquote><p>
7094                        
7095    </p>
7096    <p>Where &lt;max-voices&gt; should be replaced by the integer
7097                       value, reflecting the new global amount limit of maximum voices.
7098                       This value has to be larger than 0.
7099    </p>
7100    <p>Possible Answers:
7101    </p>
7102    <p>
7103                            </p>
7104    <blockquote class="text">
7105    <p>"OK" -
7106                                    </p>
7107    <blockquote class="text">
7108    <p>on success
7109    </p>
7110    </blockquote>
7111                                
7112    
7113    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7114                                    </p>
7115    <blockquote class="text">
7116    <p>if the voice limit was set, but there are noteworthy
7117                                        issue(s) related, providing an appropriate warning code and
7118                                        warning message
7119    </p>
7120    </blockquote>
7121                                
7122    
7123    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7124                                    </p>
7125    <blockquote class="text">
7126    <p>in case it failed, providing an appropriate error code and error message
7127    </p>
7128    </blockquote>
7129                                
7130    
7131    </blockquote><p>
7132                        
7133    </p>
7134    <p>Note: the given value will be passed to all sampler engine instances.
7135                           The total amount of maximum voices on the running system might thus
7136                           be as big as the given value multiplied by the current amount of engine
7137                           instances.
7138    </p>
7139    <p>Caution: when adjusting the voice limit, you SHOULD also
7140                            adjust the disk stream limit respectively and vice versa.
7141    </p>
7142    <a name="GET STREAMS"></a><br /><hr />
7143    <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>
7144    <a name="rfc.section.6.6.10"></a><h3>6.6.10.&nbsp;
7145    Getting global disk stream limit</h3>
7146    
7147    <p>The client can ask for the current global sampler-wide limit
7148                           for maximum disk streams by sending the following command:
7149    </p>
7150    <p>
7151                            </p>
7152    <blockquote class="text">
7153    <p>GET STREAMS
7154    </p>
7155    </blockquote><p>
7156                        
7157    </p>
7158    <p>Possible Answers:
7159    </p>
7160    <p>
7161                            </p>
7162    <blockquote class="text">
7163    <p>LinuxSampler will answer by returning the number for
7164                                   the current limit of maximum disk streams.
7165    </p>
7166    </blockquote><p>
7167                        
7168    </p>
7169    <p>The disk stream limit setting defines how many disk streams should
7170                           maximum be processed by a sampler engine at the same time. The
7171                           higher this value, the more memory (RAM) will be occupied, since
7172                           every disk streams allocates a certain buffer size for being able
7173                           to perform its streaming operations.
7174    </p>
7175    <a name="SET STREAMS"></a><br /><hr />
7176    <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>
7177    <a name="rfc.section.6.6.11"></a><h3>6.6.11.&nbsp;
7178    Setting global disk stream limit</h3>
7179    
7180    <p>The client can alter the current global sampler-wide limit
7181                        for maximum disk streams by sending the following command:
7182    </p>
7183    <p>
7184                            </p>
7185    <blockquote class="text">
7186    <p>SET STREAMS &lt;max-streams&gt;
7187    </p>
7188    </blockquote><p>
7189                        
7190    </p>
7191    <p>Where &lt;max-streams&gt; should be replaced by the integer
7192                       value, reflecting the new global amount limit of maximum disk streams.
7193                       This value has to be positive.
7194    </p>
7195    <p>Possible Answers:
7196    </p>
7197    <p>
7198                            </p>
7199    <blockquote class="text">
7200    <p>"OK" -
7201                                    </p>
7202    <blockquote class="text">
7203    <p>on success
7204    </p>
7205    </blockquote>
7206                                
7207    
7208    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
7209                                    </p>
7210    <blockquote class="text">
7211    <p>if the disk stream limit was set, but there are noteworthy
7212                                        issue(s) related, providing an appropriate warning code and
7213                                        warning message
7214    </p>
7215    </blockquote>
7216                                
7217    
7218    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7219                                    </p>
7220    <blockquote class="text">
7221    <p>in case it failed, providing an appropriate error code and error message
7222    </p>
7223    </blockquote>
7224                                
7225    
7226    </blockquote><p>
7227                        
7228    </p>
7229    <p>Note: the given value will be passed to all sampler engine instances.
7230                           The total amount of maximum disk streams on the running system might
7231                           thus be as big as the given value multiplied by the current amount of
7232                           engine instances.
7233    </p>
7234    <p>Caution: when adjusting the disk stream limit, you SHOULD also
7235                            adjust the voice limit respectively and vice versa.
7236    </p>
7237    <a name="MIDI Instrument Mapping"></a><br /><hr />
7238    <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>
7239    <a name="rfc.section.6.7"></a><h3>6.7.&nbsp;
7240    MIDI Instrument Mapping</h3>
7241    
7242    <p>The MIDI protocol provides a way to switch between instruments
7243                    by sending so called MIDI bank select and MIDI program change
7244                    messages which are essentially just numbers. The following commands
7245                    allow to actually map arbitrary MIDI bank select / program change
7246                    numbers with real instruments.
7247    </p>
7248    <p>The sampler allows to manage an arbitrary amount of MIDI
7249                    instrument maps which define which instrument to load on
7250                    which MIDI program change message.
7251    </p>
7252    <p>By default, that is when the sampler is launched, there is no
7253                    map, thus the sampler will simply ignore all program change
7254                    messages. The front-end has to explicitly create at least one
7255                    map, add entries to the map and tell the respective sampler
7256                    channel(s) which MIDI instrument map to use, so the sampler
7257                    knows how to react on a given program change message on the
7258                    respective sampler channel, that is by switching to the
7259                    respectively defined engine type and loading the respective
7260                    instrument. See command
7261                    <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>
7262                    for how to assign a MIDI instrument map to a sampler channel.
7263    </p>
7264    <p>Also note per MIDI specification a bank select message does not
7265                    cause to switch to another instrument. Instead when receiving a
7266                    bank select message the bank value will be stored and a subsequent
7267                    program change message (which may occur at any time) will finally
7268                    cause the sampler to switch to the respective instrument as
7269                    reflected by the current MIDI instrument map.
7270    </p>
7271    <a name="ADD MIDI_INSTRUMENT_MAP"></a><br /><hr />
7272    <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>
7273    <a name="rfc.section.6.7.1"></a><h3>6.7.1.&nbsp;
7274    Create a new MIDI instrument map</h3>
7275    
7276    <p>The front-end can add a new MIDI instrument map by sending
7277                        the following command:
7278    </p>
7279    <p>
7280                            </p>
7281    <blockquote class="text">
7282    <p>ADD MIDI_INSTRUMENT_MAP [&lt;name&gt;]
7283    </p>
7284    </blockquote><p>
7285                        
7286    </p>
7287    <p>Where &lt;name&gt; is an optional argument allowing to
7288                        assign a custom name to the new map. MIDI instrument Map
7289                        names do not have to be unique, but MUST be encapsulated
7290                        into apostrophes and support escape sequences as described
7291                        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>".
7292                        
7293    </p>
7294    <p>Possible Answers:
7295    </p>
7296    <p>
7297                            </p>
7298    <blockquote class="text">
7299    <p>"OK[&lt;map&gt;]" -
7300                                    </p>
7301    <blockquote class="text">
7302    <p>in case a new MIDI instrument map could
7303                                        be added, where &lt;map&gt; reflects the
7304                                        unique ID of the newly created MIDI
7305                                        instrument map
7306    </p>
7307    </blockquote>
7308                                
7309    
7310    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7311                                    </p>
7312    <blockquote class="text">
7313    <p>when a new map could not be created, which
7314                                        might never occur in practice
7315    </p>
7316    </blockquote>
7317                                
7318    
7319    </blockquote><p>
7320                        
7321    </p>
7322    <p>Examples:
7323    </p>
7324    <p>
7325                            </p>
7326    <blockquote class="text">
7327    <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Map'"
7328    </p>
7329    <p>S: "OK[0]"
7330    </p>
7331    </blockquote><p>
7332                        
7333    </p>
7334    <p>
7335                            </p>
7336    <blockquote class="text">
7337    <p>C: "ADD MIDI_INSTRUMENT_MAP 'Standard Drumkit'"
7338    </p>
7339    <p>S: "OK[1]"
7340    </p>
7341    </blockquote><p>
7342                        
7343    </p>
7344    <p>
7345                            </p>
7346    <blockquote class="text">
7347    <p>C: "ADD MIDI_INSTRUMENT_MAP"
7348    </p>
7349    <p>S: "OK[5]"
7350    </p>
7351    </blockquote><p>
7352                        
7353    </p>
7354    <a name="REMOVE MIDI_INSTRUMENT_MAP"></a><br /><hr />
7355    <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>
7356    <a name="rfc.section.6.7.2"></a><h3>6.7.2.&nbsp;
7357    Delete one particular or all MIDI instrument maps</h3>
7358    
7359    <p>The front-end can delete a particular MIDI instrument map
7360                        by sending the following command:
7361    </p>
7362    <p>
7363                            </p>
7364    <blockquote class="text">
7365    <p>REMOVE MIDI_INSTRUMENT_MAP &lt;map&gt;
7366    </p>
7367    </blockquote><p>
7368                        
7369    </p>
7370    <p>Where &lt;map&gt; reflects the unique ID of the map to delete
7371                        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>
7372                        command.
7373    </p>
7374    <p>The front-end can delete all MIDI instrument maps by
7375                        sending the following command:
7376    </p>
7377    <p>
7378                            </p>
7379    <blockquote class="text">
7380    <p>REMOVE MIDI_INSTRUMENT_MAP ALL
7381    </p>
7382    </blockquote><p>
7383                        
7384    </p>
7385    <p>Possible Answers:
7386    </p>
7387    <p>
7388                            </p>
7389    <blockquote class="text">
7390    <p>"OK" -
7391                                    </p>
7392    <blockquote class="text">
7393    <p>in case the map(s) could be deleted
7394    </p>
7395    </blockquote>
7396                                
7397    
7398    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7399                                    </p>
7400    <blockquote class="text">
7401    <p>when the given map does not exist
7402    </p>
7403    </blockquote>
7404                                
7405    
7406    </blockquote><p>
7407                        
7408    </p>
7409    <p>Examples:
7410    </p>
7411    <p>
7412                            </p>
7413    <blockquote class="text">
7414    <p>C: "REMOVE MIDI_INSTRUMENT_MAP 0"
7415    </p>
7416    <p>S: "OK"
7417    </p>
7418    </blockquote><p>
7419                        
7420    </p>
7421    <p>
7422                            </p>
7423    <blockquote class="text">
7424    <p>C: "REMOVE MIDI_INSTRUMENT_MAP ALL"
7425    </p>
7426    <p>S: "OK"
7427    </p>
7428    </blockquote><p>
7429                        
7430    </p>
7431    <a name="GET MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7432    <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>
7433    <a name="rfc.section.6.7.3"></a><h3>6.7.3.&nbsp;
7434    Get amount of existing MIDI instrument maps</h3>
7435    
7436    <p>The front-end can retrieve the current amount of MIDI
7437                        instrument maps by sending the following command:
7438    </p>
7439    <p>
7440                            </p>
7441    <blockquote class="text">
7442    <p>GET MIDI_INSTRUMENT_MAPS
7443    </p>
7444    </blockquote><p>
7445                        
7446    </p>
7447    <p>Possible Answers:
7448    </p>
7449    <p>
7450                            </p>
7451    <blockquote class="text">
7452    <p>The sampler will answer by returning the current
7453                                number of MIDI instrument maps.
7454    </p>
7455    </blockquote><p>
7456                        
7457    </p>
7458    <p>Example:
7459    </p>
7460    <p>
7461                            </p>
7462    <blockquote class="text">
7463    <p>C: "GET MIDI_INSTRUMENT_MAPS"
7464    </p>
7465    <p>S: "2"
7466    </p>
7467    </blockquote><p>
7468                        
7469    </p>
7470    <a name="LIST MIDI_INSTRUMENT_MAPS"></a><br /><hr />
7471    <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>
7472    <a name="rfc.section.6.7.4"></a><h3>6.7.4.&nbsp;
7473    Getting all created MIDI instrument maps</h3>
7474    
7475    <p>The number of MIDI instrument maps can change on runtime. To get the
7476                        current list of MIDI instrument maps, the front-end can send the
7477                        following command:
7478    </p>
7479    <p>
7480                            </p>
7481    <blockquote class="text">
7482    <p>LIST MIDI_INSTRUMENT_MAPS
7483    </p>
7484    </blockquote><p>
7485                        
7486    </p>
7487    <p>Possible Answers:
7488    </p>
7489    <p>
7490                            </p>
7491    <blockquote class="text">
7492    <p>The sampler will answer by returning a comma separated list
7493                                with all MIDI instrument maps' numerical IDs.
7494    </p>
7495    </blockquote><p>
7496                        
7497    </p>
7498    <p>Example:
7499    </p>
7500    <p>
7501                            </p>
7502    <blockquote class="text">
7503    <p>C: "LIST MIDI_INSTRUMENT_MAPS"
7504    </p>
7505    <p>S: "0,1,5,12"
7506    </p>
7507    </blockquote><p>
7508                        
7509    </p>
7510    <a name="GET MIDI_INSTRUMENT_MAP INFO"></a><br /><hr />
7511    <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>
7512    <a name="rfc.section.6.7.5"></a><h3>6.7.5.&nbsp;
7513    Getting MIDI instrument map information</h3>
7514    
7515    <p>The front-end can ask for the current settings of a MIDI
7516                        instrument map by sending the following command:
7517    </p>
7518    <p>
7519                            </p>
7520    <blockquote class="text">
7521    <p>GET MIDI_INSTRUMENT_MAP INFO &lt;map&gt;
7522    </p>
7523    </blockquote><p>
7524                        
7525    </p>
7526    <p>Where &lt;map&gt; is the numerical ID of the map the
7527                        front-end is interested in as returned by the
7528                        <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>
7529                        command.
7530    </p>
7531    <p>Possible Answers:
7532    </p>
7533    <p>
7534                            </p>
7535    <blockquote class="text">
7536    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
7537                                Each answer line begins with the settings category name
7538                                followed by a colon and then a space character &lt;SP&gt; and finally
7539                                the info character string to that setting category. At the
7540                                moment the following categories are defined:
7541    </p>
7542    <p>
7543                                    </p>
7544    <blockquote class="text">
7545    <p>NAME -
7546                                            </p>
7547    <blockquote class="text">
7548    <p>custom name of the given map,
7549                                                which does not have to be unique
7550                                                (note that this character string may contain
7551                                                 <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
7552    </p>
7553    </blockquote>
7554                                        
7555    
7556    <p>DEFAULT -
7557                                            </p>
7558    <blockquote class="text">
7559    <p>either true or false,
7560                                                defines whether this map is the default map
7561    </p>
7562    </blockquote>
7563                                        
7564    
7565    </blockquote>
7566                                
7567    
7568    </blockquote><p>
7569                        
7570    </p>
7571    <p>The mentioned fields above don't have to be in particular order.
7572    </p>
7573    <p>Example:
7574    </p>
7575    <p>
7576                            </p>
7577    <blockquote class="text">
7578    <p>C: "GET MIDI_INSTRUMENT_MAP INFO 0"
7579    </p>
7580    <p>S: "NAME: Standard Map"
7581    </p>
7582    <p>&nbsp;&nbsp;&nbsp;"DEFAULT: true"
7583    </p>
7584    <p>&nbsp;&nbsp;&nbsp;"."
7585    </p>
7586    </blockquote><p>
7587                        
7588    </p>
7589    <a name="SET MIDI_INSTRUMENT_MAP NAME"></a><br /><hr />
7590    <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>
7591    <a name="rfc.section.6.7.6"></a><h3>6.7.6.&nbsp;
7592    Renaming a MIDI instrument map</h3>
7593    
7594    <p>The front-end can alter the custom name of a MIDI
7595                        instrument map by sending the following command:
7596    </p>
7597    <p>
7598                            </p>
7599    <blockquote class="text">
7600    <p>SET MIDI_INSTRUMENT_MAP NAME &lt;map&gt; &lt;name&gt;
7601    </p>
7602    </blockquote><p>
7603                        
7604    </p>
7605    <p>Where &lt;map&gt; is the numerical ID of the map and
7606                        &lt;name&gt; the new custom name of the map, which does not
7607                        have to be unique (name MUST be encapsulated into apostrophes
7608                        and supports escape sequences as described in chapter
7609                        "<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>").
7610                        
7611    </p>
7612    <p>Possible Answers:
7613    </p>
7614    <p>
7615                            </p>
7616    <blockquote class="text">
7617    <p>"OK" -
7618                                    </p>
7619    <blockquote class="text">
7620    <p>on success
7621    </p>
7622    </blockquote>
7623                                
7624    
7625    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7626                                    </p>
7627    <blockquote class="text">
7628    <p>in case the given map does not exist
7629    </p>
7630    </blockquote>
7631                                
7632    
7633    </blockquote><p>
7634                        
7635    </p>
7636    <p>Example:
7637    </p>
7638    <p>
7639                            </p>
7640    <blockquote class="text">
7641    <p>C: "SET MIDI_INSTRUMENT_MAP NAME 0 'Foo instruments'"
7642    </p>
7643    <p>S: "OK"
7644    </p>
7645    </blockquote><p>
7646                        
7647    </p>
7648    <a name="MAP MIDI_INSTRUMENT"></a><br /><hr />
7649    <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>
7650    <a name="rfc.section.6.7.7"></a><h3>6.7.7.&nbsp;
7651    Create or replace a MIDI instrument map entry</h3>
7652    
7653    <p>The front-end can create a new or replace an existing entry
7654                        in a sampler's MIDI instrument map by sending the following
7655                        command:
7656    </p>
7657    <p>
7658                            </p>
7659    <blockquote class="text">
7660    <p>MAP MIDI_INSTRUMENT [NON_MODAL] &lt;map&gt;
7661                                &lt;midi_bank&gt; &lt;midi_prog&gt; &lt;engine_name&gt;
7662                                &lt;filename&gt; &lt;instrument_index&gt; &lt;volume_value&gt;
7663                                [&lt;instr_load_mode&gt;] [&lt;name&gt;]
7664    </p>
7665    </blockquote><p>
7666                        
7667    </p>
7668    <p>Where &lt;map&gt; is the numeric ID of the map to alter,
7669                        &lt;midi_bank&gt; is an integer value between
7670                        0..16383 reflecting the MIDI bank select index,
7671                        &lt;midi_prog&gt; an
7672                        integer value between 0..127 reflecting the MIDI program change
7673                        index, &lt;engine_name&gt; a sampler engine name as returned by
7674                        the <a class='info' href='#LIST AVAILABLE_ENGINES'>"LIST AVAILABLE_ENGINES"<span> (</span><span class='info'>Getting all available engines</span><span>)</span></a>
7675                        command (not encapsulated into apostrophes), &lt;filename&gt; the name
7676                        of the instrument's file to be deployed (encapsulated into apostrophes,
7677                        supporting escape sequences as described in chapter
7678                        "<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>"),
7679                        &lt;instrument_index&gt; the index (integer value) of the instrument
7680                        within the given file, &lt;volume_value&gt; reflects the master
7681                        volume of the instrument as optionally dotted number (where a
7682                        value &lt; 1.0 means attenuation and a value > 1.0 means
7683                        amplification). This parameter easily allows to adjust the
7684                        volume of all intruments within a custom instrument map
7685                        without having to adjust their instrument files. The
7686                        OPTIONAL &lt;instr_load_mode&gt; argument defines the life
7687                        time of the instrument, that is when the instrument should
7688                        be loaded, when freed and has exactly the following
7689                        possibilities:
7690    </p>
7691    <p>
7692                            </p>
7693    <blockquote class="text">
7694    <p>"ON_DEMAND" -
7695                                    </p>
7696    <blockquote class="text">
7697    <p>The instrument will be loaded when needed,
7698                                        that is when demanded by at least one sampler
7699                                        channel. It will immediately be freed from memory
7700                                        when not needed by any sampler channel anymore.
7701    </p>
7702    </blockquote>
7703                                
7704    
7705    <p>"ON_DEMAND_HOLD" -
7706                                    </p>
7707    <blockquote class="text">
7708    <p>The instrument will be loaded when needed,
7709                                        that is when demanded by at least one sampler
7710                                        channel. It will be kept in memory even when
7711                                        not needed by any sampler channel anymore.
7712                                        Instruments with this mode are only freed
7713                                        when the sampler is reset or all mapping
7714                                        entries with this mode (and respective
7715                                        instrument) are explicitly changed to
7716                                        "ON_DEMAND" and no sampler channel is using
7717                                        the instrument anymore.
7718    </p>
7719    </blockquote>
7720                                
7721    
7722    <p>"PERSISTENT" -
7723                                    </p>
7724    <blockquote class="text">
7725    <p>The instrument will immediately be loaded
7726                                        into memory when this mapping
7727                                        command is sent and the instrument is kept all
7728                                        the time. Instruments with this mode are
7729                                        only freed when the sampler is reset or all
7730                                        mapping entries with this mode (and
7731                                        respective instrument) are explicitly
7732                                        changed to "ON_DEMAND" and no sampler
7733                                        channel is using the instrument anymore.
7734    </p>
7735    </blockquote>
7736                                
7737    
7738    <p>not supplied -
7739                                    </p>
7740    <blockquote class="text">
7741    <p>In case there is no &lt;instr_load_mode&gt;
7742                                        argument given, it will be up to the
7743                                        InstrumentManager to decide which mode to use.
7744                                        Usually it will use "ON_DEMAND" if an entry
7745                                        for the given instrument does not exist in
7746                                        the InstrumentManager's list yet, otherwise
7747                                        if an entry already exists, it will simply
7748                                        stick with the mode currently reflected by
7749                                        the already existing entry, that is it will
7750                                        not change the mode.
7751    </p>
7752    </blockquote>
7753                                
7754    
7755    </blockquote><p>
7756                        
7757    </p>
7758    <p>
7759                        The &lt;instr_load_mode&gt; argument thus allows to define an
7760                        appropriate strategy (low memory consumption vs. fast
7761                        instrument switching) for each instrument individually. Note, the
7762                        following restrictions apply to this argument: "ON_DEMAND_HOLD" and
7763                        "PERSISTENT" have to be supported by the respective sampler engine
7764                        (which is technically the case when the engine provides an
7765                        InstrumentManager for its format). If this is not the case the
7766                        argument will automatically fall back to the default value
7767                        "ON_DEMAND". Also the load mode of one instrument may
7768                        automatically change the laod mode of other instrument(s), i.e.
7769                        because the instruments are part of the same file and the
7770                        engine does not allow a way to manage load modes for them
7771                        individually. Due to this, in case the frontend shows the
7772                        load modes of entries, the frontend should retrieve the actual
7773                        mode by i.e. sending
7774                        <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>
7775                        command(s). Finally the OPTIONAL &lt;name&gt; argument allows to set a custom name
7776                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
7777                        "<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
7778                        mapping entry, useful for frontends for displaying an appropriate name for
7779                        mapped instruments (using
7780                        <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>).
7781                        
7782    </p>
7783    <p>
7784                        By default, "MAP MIDI_INSTRUMENT" commands block until the mapping is
7785                        completely established in the sampler. The OPTIONAL "NON_MODAL" argument
7786                        however causes the respective "MAP MIDI_INSTRUMENT" command to return
7787                        immediately, that is to let the sampler establish the mapping in the
7788                        background. So this argument might be especially useful for mappings with
7789                        a "PERSISTENT" type, because these have to load the respective instruments
7790                        immediately and might thus block for a very long time. It is recommended
7791                        however to use the OPTIONAL "NON_MODAL" argument only if really necessary,
7792                        because it has the following drawbacks: as "NON_MODAL" instructions return
7793                        immediately, they may not necessarily return an error i.e. when the given
7794                        instrument file turns out to be corrupt, beside that subsequent commands
7795                        in a LSCP instruction sequence might fail, because mandatory mappings are
7796                        not yet completed.
7797                        
7798    </p>
7799    <p>Possible Answers:
7800    </p>
7801    <p>
7802                            </p>
7803    <blockquote class="text">
7804    <p>"OK" -
7805                                    </p>
7806    <blockquote class="text">
7807    <p>usually
7808    </p>
7809    </blockquote>
7810                                
7811    
7812    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
7813                                    </p>
7814    <blockquote class="text">
7815    <p>when the given map or engine does not exist or a value
7816                                        is out of range
7817    </p>
7818    </blockquote>
7819                                
7820    
7821    </blockquote><p>
7822                        
7823    </p>
7824    <p>Examples:
7825    </p>
7826    <p>
7827                            </p>
7828    <blockquote class="text">
7829    <p>C: "MAP MIDI_INSTRUMENT 0 3 0 gig '/usr/share/Steinway D.gig' 0 0.8 PERSISTENT"
7830    </p>
7831    <p>S: "OK"
7832    </p>
7833    </blockquote><p>
7834                        
7835    </p>
7836    <p>
7837                            </p>
7838    <blockquote class="text">
7839    <p>C: "MAP MIDI_INSTRUMENT 0 4 50 gig '/home/john/foostrings.gig' 7 1.0"
7840    </p>
7841    <p>S: "OK"
7842    </p>
7843    </blockquote><p>
7844                        
7845    </p>
7846    <p>
7847                            </p>
7848    <blockquote class="text">
7849    <p>C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0 'Normal Piano'"
7850    </p>
7851    <p>S: "OK"
7852    </p>
7853    <p>C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25 'Silent Piano'"
7854    </p>
7855    <p>S: "OK"
7856    </p>
7857    </blockquote><p>
7858                        
7859    </p>
7860    <p>
7861                            </p>
7862    <blockquote class="text">
7863    <p>C: "MAP MIDI_INSTRUMENT NON_MODAL 1 8 120 gig '/home/joe/foodrums.gig' 0 1.0 PERSISTENT 'Foo Drumkit'"
7864    </p>
7865    <p>S: "OK"
7866    </p>
7867    </blockquote><p>
7868                        
7869    </p>
7870    <a name="GET MIDI_INSTRUMENTS"></a><br /><hr />
7871    <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>
7872    <a name="rfc.section.6.7.8"></a><h3>6.7.8.&nbsp;
7873    Getting amount of MIDI instrument map entries</h3>
7874    
7875    <p>The front-end can query the amount of currently existing
7876                        entries in a MIDI instrument map by sending the following
7877                        command:
7878    </p>
7879    <p>
7880                            </p>
7881    <blockquote class="text">
7882    <p>GET MIDI_INSTRUMENTS &lt;map&gt;
7883    </p>
7884    </blockquote><p>
7885                        
7886    </p>
7887    <p>The front-end can query the amount of currently existing
7888                        entries in all MIDI instrument maps by sending the following
7889                        command:
7890    </p>
7891    <p>
7892                            </p>
7893    <blockquote class="text">
7894    <p>GET MIDI_INSTRUMENTS ALL
7895    </p>
7896    </blockquote><p>
7897                        
7898    </p>
7899    <p>Possible Answers:
7900    </p>
7901    <p>
7902                            </p>
7903    <blockquote class="text">
7904    <p>The sampler will answer by sending the current number of
7905                                entries in the MIDI instrument map(s).
7906    </p>
7907    </blockquote><p>
7908                        
7909    </p>
7910    <p>Example:
7911    </p>
7912    <p>
7913                            </p>
7914    <blockquote class="text">
7915    <p>C: "GET MIDI_INSTRUMENTS 0"
7916    </p>
7917    <p>S: "234"
7918    </p>
7919    </blockquote><p>
7920                        
7921    </p>
7922    <p>
7923                            </p>
7924    <blockquote class="text">
7925    <p>C: "GET MIDI_INSTRUMENTS ALL"
7926    </p>
7927    <p>S: "954"
7928    </p>
7929    </blockquote><p>
7930                        
7931    </p>
7932    <a name="LIST MIDI_INSTRUMENTS"></a><br /><hr />
7933    <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>
7934    <a name="rfc.section.6.7.9"></a><h3>6.7.9.&nbsp;
7935    Getting indeces of all entries of a MIDI instrument map</h3>
7936    
7937    <p>The front-end can query a list of all currently existing
7938                        entries in a certain MIDI instrument map by sending the following
7939                        command:
7940    </p>
7941    <p>
7942                            </p>
7943    <blockquote class="text">
7944    <p>LIST MIDI_INSTRUMENTS &lt;map&gt;
7945    </p>
7946    </blockquote><p>
7947                        
7948    </p>
7949    <p>Where &lt;map&gt; is the numeric ID of the MIDI instrument map.
7950    </p>
7951    <p>The front-end can query a list of all currently existing
7952                        entries of all MIDI instrument maps by sending the following
7953                        command:
7954    </p>
7955    <p>
7956                            </p>
7957    <blockquote class="text">
7958    <p>LIST MIDI_INSTRUMENTS ALL
7959    </p>
7960    </blockquote><p>
7961                        
7962    </p>
7963    <p>Possible Answers:
7964    </p>
7965    <p>
7966                            </p>
7967    <blockquote class="text">
7968    <p>The sampler will answer by sending a comma separated
7969                                list of map ID - MIDI bank - MIDI program triples, where
7970                                each triple is encapsulated into curly braces. The
7971                                list is returned in one single line. Each triple
7972                                just reflects the key of the respective map entry,
7973                                thus subsequent
7974                                <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>
7975                                command(s) are necessary to retrieve detailed informations
7976                                about each entry.
7977    </p>
7978    </blockquote><p>
7979                        
7980    </p>
7981    <p>Example:
7982    </p>
7983    <p>
7984                            </p>
7985    <blockquote class="text">
7986    <p>C: "LIST MIDI_INSTRUMENTS 0"
7987    </p>
7988    <p>S: "{0,0,0},{0,0,1},{0,0,3},{0,1,4},{1,127,127}"
7989    </p>
7990    </blockquote><p>
7991                        
7992    </p>
7993    <a name="UNMAP MIDI_INSTRUMENT"></a><br /><hr />
7994    <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>
7995    <a name="rfc.section.6.7.10"></a><h3>6.7.10.&nbsp;
7996    Remove an entry from the MIDI instrument map</h3>
7997    
7998    <p>The front-end can delete an entry from a MIDI instrument
7999                        map by sending the following command:
8000    </p>
8001    <p>
8002                            </p>
8003    <blockquote class="text">
8004    <p>UNMAP MIDI_INSTRUMENT &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8005    </p>
8006    </blockquote><p>
8007                        
8008    </p>
8009    <p>
8010                        Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8011                        &lt;midi_bank&gt; is an integer value between 0..16383
8012                        reflecting the MIDI bank value and
8013                        &lt;midi_prog&gt; an integer value between
8014                        0..127 reflecting the MIDI program value of the map's entrie's key
8015                        index triple.
8016                        
8017    </p>
8018    <p>Possible Answers:
8019    </p>
8020    <p>
8021                            </p>
8022    <blockquote class="text">
8023    <p>"OK" -
8024                                    </p>
8025    <blockquote class="text">
8026    <p>usually
8027    </p>
8028    </blockquote>
8029                                
8030    
8031    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8032                                    </p>
8033    <blockquote class="text">
8034    <p>when index out of bounds
8035    </p>
8036    </blockquote>
8037                                
8038    
8039    </blockquote><p>
8040                        
8041    </p>
8042    <p>Example:
8043    </p>
8044    <p>
8045                            </p>
8046    <blockquote class="text">
8047    <p>C: "UNMAP MIDI_INSTRUMENT 0 2 127"
8048    </p>
8049    <p>S: "OK"
8050    </p>
8051    </blockquote><p>
8052                        
8053    </p>
8054    <a name="GET MIDI_INSTRUMENT INFO"></a><br /><hr />
8055    <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>
8056    <a name="rfc.section.6.7.11"></a><h3>6.7.11.&nbsp;
8057    Get current settings of MIDI instrument map entry</h3>
8058    
8059    <p>The front-end can retrieve the current settings of a certain
8060                        instrument map entry by sending the following command:
8061    </p>
8062    <p>
8063                            </p>
8064    <blockquote class="text">
8065    <p>GET MIDI_INSTRUMENT INFO &lt;map&gt; &lt;midi_bank&gt; &lt;midi_prog&gt;
8066    </p>
8067    </blockquote><p>
8068                        
8069    </p>
8070    <p>
8071                        Where &lt;map&gt; is the numeric ID of the MIDI instrument map,
8072                        &lt;midi_bank&gt; is an integer value between 0..16383
8073                        reflecting the MIDI bank value, &lt;midi_bank&gt;
8074                        and &lt;midi_prog&gt; an integer value between
8075                        0..127 reflecting the MIDI program value of the map's entrie's key
8076                        index triple.
8077                        
8078    </p>
8079    <p>Possible Answers:
8080    </p>
8081    <p>
8082                            </p>
8083    <blockquote class="text">
8084    <p>LinuxSampler will answer by sending a &lt;CRLF&gt;
8085                                separated list. Each answer line begins with the
8086                                information category name followed by a colon and then
8087                                a space character &lt;SP&gt; and finally the info
8088                                character string to that info category. At the moment
8089                                the following categories are defined:
8090    </p>
8091    <p>"NAME" -
8092                                    </p>
8093    <blockquote class="text">
8094    <p>Name for this MIDI instrument map entry (if defined).
8095                                        This name shall be used by frontends for displaying a
8096                                        name for this mapped instrument. It can be set and
8097                                        changed with the
8098                                        <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>
8099                                        command and does not have to be unique.
8100                                        (note that this character string may contain
8101                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
8102    </p>
8103    </blockquote>
8104                                
8105    
8106    <p>"ENGINE_NAME" -
8107                                    </p>
8108    <blockquote class="text">
8109    <p>Name of the engine to be deployed for this
8110                                        instrument.
8111    </p>
8112    </blockquote>
8113                                
8114    
8115    <p>"INSTRUMENT_FILE" -
8116                                    </p>
8117    <blockquote class="text">
8118    <p>File name of the instrument
8119                                        (note that this path may contain
8120                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8121    </p>
8122    </blockquote>
8123                                
8124    
8125    <p>"INSTRUMENT_NR" -
8126                                    </p>
8127    <blockquote class="text">
8128    <p>Index of the instrument within the file.
8129    </p>
8130    </blockquote>
8131                                
8132    
8133    <p>"INSTRUMENT_NAME" -
8134                                    </p>
8135    <blockquote class="text">
8136    <p>Name of the loaded instrument as reflected by its file.
8137                                        In contrast to the "NAME" field, the "INSTRUMENT_NAME" field
8138                                        cannot be changed (note that this character string may contain
8139                                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>).
8140    </p>
8141    </blockquote>
8142                                
8143    
8144    <p>"LOAD_MODE" -
8145                                    </p>
8146    <blockquote class="text">
8147    <p>Life time of instrument
8148                                        (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).
8149    </p>
8150    </blockquote>
8151                                
8152    
8153    <p>"VOLUME" -
8154                                    </p>
8155    <blockquote class="text">
8156    <p>master volume of the instrument as optionally
8157                                        dotted number (where a value &lt; 1.0 means attenuation
8158                                        and a value > 1.0 means amplification)
8159    </p>
8160    </blockquote>
8161                                
8162    
8163    <p>The mentioned fields above don't have to be in particular order.
8164    </p>
8165    </blockquote><p>
8166                        
8167    </p>
8168    <p>Example:
8169    </p>
8170    <p>
8171                            </p>
8172    <blockquote class="text">
8173    <p>C: "GET MIDI_INSTRUMENT INFO 1 45 120"
8174    </p>
8175    <p>S: "NAME: Drums for Foo Song"
8176    </p>
8177    <p>&nbsp;&nbsp;&nbsp;"ENGINE_NAME: GigEngine"
8178    </p>
8179    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
8180    </p>
8181    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
8182    </p>
8183    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NAME: Joe's Drumkit"
8184    </p>
8185    <p>&nbsp;&nbsp;&nbsp;"LOAD_MODE: PERSISTENT"
8186    </p>
8187    <p>&nbsp;&nbsp;&nbsp;"VOLUME: 1.0"
8188    </p>
8189    <p>&nbsp;&nbsp;&nbsp;"."
8190    </p>
8191    </blockquote><p>
8192                        
8193    </p>
8194    <a name="CLEAR MIDI_INSTRUMENTS"></a><br /><hr />
8195    <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>
8196    <a name="rfc.section.6.7.12"></a><h3>6.7.12.&nbsp;
8197    Clear MIDI instrument map</h3>
8198    
8199    <p>The front-end can clear a whole MIDI instrument map, that
8200                        is delete all its entries by sending the following command:
8201    </p>
8202    <p>
8203                            </p>
8204    <blockquote class="text">
8205    <p>CLEAR MIDI_INSTRUMENTS &lt;map&gt;
8206    </p>
8207    </blockquote><p>
8208                        
8209    </p>
8210    <p>Where &lt;map&gt; is the numeric ID of the map to clear.
8211    </p>
8212    <p>The front-end can clear all MIDI instrument maps, that
8213                        is delete all entries of all maps by sending the following
8214                        command:
8215    </p>
8216    <p>
8217                            </p>
8218    <blockquote class="text">
8219    <p>CLEAR MIDI_INSTRUMENTS ALL
8220    </p>
8221    </blockquote><p>
8222                        
8223    </p>
8224    <p>The command "CLEAR MIDI_INSTRUMENTS ALL" does not delete the
8225                        maps, only their entries, thus the map's settings like
8226                        custom name will be preservevd.
8227    </p>
8228    <p>Possible Answers:
8229    </p>
8230    <p>
8231                            </p>
8232  <blockquote class="text">  <blockquote class="text">
8233  <p>"OK" -  <p>"OK" -
8234                                  </p>                                  </p>
# Line 4064  Intellectual Property and Copyright Stat Line 8236  Intellectual Property and Copyright Stat
8236  <p>always  <p>always
8237  </p>  </p>
8238  </blockquote>  </blockquote>
8239                                
8240    
8241    </blockquote><p>
8242                        
8243    </p>
8244    <p>Examples:
8245    </p>
8246    <p>
8247                           </p>
8248    <blockquote class="text">
8249    <p>C: "CLEAR MIDI_INSTRUMENTS 0"
8250    </p>
8251    <p>S: "OK"
8252    </p>
8253    </blockquote><p>
8254                        
8255    </p>
8256    <p>
8257                           </p>
8258    <blockquote class="text">
8259    <p>C: "CLEAR MIDI_INSTRUMENTS ALL"
8260    </p>
8261    <p>S: "OK"
8262    </p>
8263    </blockquote><p>
8264                        
8265    </p>
8266    <a name="Managing Instruments Database"></a><br /><hr />
8267    <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>
8268    <a name="rfc.section.6.8"></a><h3>6.8.&nbsp;
8269    Managing Instruments Database</h3>
8270    
8271    <p>The following commands describe how to use and manage
8272                    the instruments database.
8273    </p>
8274    <p>Notice:
8275    </p>
8276    <p>
8277                            </p>
8278    <blockquote class="text">
8279    <p>All command arguments representing a path or
8280                                instrument/directory name support escape sequences as described in chapter
8281                                "<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>".
8282                                
8283    </p>
8284    <p>All occurrences of a forward slash in instrument and directory
8285                                   names are escaped with its hex (\x2f) or octal (\057) escape sequence.
8286                                
8287    </p>
8288    </blockquote><p>
8289                        
8290    </p>
8291    <a name="ADD DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8292    <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>
8293    <a name="rfc.section.6.8.1"></a><h3>6.8.1.&nbsp;
8294    Creating a new instrument directory</h3>
8295    
8296    <p>The front-end can add a new instrument directory to the
8297                        instruments database by sending the following command:
8298    </p>
8299    <p>
8300                            </p>
8301    <blockquote class="text">
8302    <p>ADD DB_INSTRUMENT_DIRECTORY &lt;dir&gt;
8303    </p>
8304    </blockquote><p>
8305                        
8306    </p>
8307    <p>Where &lt;dir&gt; is the absolute path name of the directory
8308                        to be created (encapsulated into apostrophes).
8309    </p>
8310    <p>Possible Answers:
8311    </p>
8312    <p>
8313                            </p>
8314    <blockquote class="text">
8315    <p>"OK" -
8316                                    </p>
8317    <blockquote class="text">
8318    <p>on success
8319    </p>
8320    </blockquote>
8321                                
8322    
8323    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8324                                    </p>
8325    <blockquote class="text">
8326    <p>when the directory could not be created, which
8327                                        can happen if the directory already exists or the
8328                                        name contains not allowed symbols
8329    </p>
8330    </blockquote>
8331                                
8332    
8333    </blockquote><p>
8334                        
8335    </p>
8336    <p>Examples:
8337    </p>
8338    <p>
8339                            </p>
8340    <blockquote class="text">
8341    <p>C: "ADD DB_INSTRUMENT_DIRECTORY '/Piano Collection'"
8342    </p>
8343    <p>S: "OK"
8344    </p>
8345    </blockquote><p>
8346                        
8347    </p>
8348    <a name="REMOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8349    <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>
8350    <a name="rfc.section.6.8.2"></a><h3>6.8.2.&nbsp;
8351    Deleting an instrument directory</h3>
8352    
8353    <p>The front-end can delete a particular instrument directory
8354                        from the instruments database by sending the following command:
8355    </p>
8356    <p>
8357                            </p>
8358    <blockquote class="text">
8359    <p>REMOVE DB_INSTRUMENT_DIRECTORY [FORCE] &lt;dir&gt;
8360    </p>
8361    </blockquote><p>
8362                        
8363    </p>
8364    <p>Where &lt;dir&gt; is the absolute path name of the directory
8365                        to delete. The optional FORCE argument can be used to
8366                        force the deletion of a non-empty directory and all its content.
8367    </p>
8368    <p>Possible Answers:
8369    </p>
8370    <p>
8371                            </p>
8372    <blockquote class="text">
8373    <p>"OK" -
8374                                    </p>
8375    <blockquote class="text">
8376    <p>if the directory is deleted successfully
8377    </p>
8378    </blockquote>
8379                                
8380    
8381    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8382                                    </p>
8383    <blockquote class="text">
8384    <p>if the given directory does not exist, or
8385                                        if trying to delete a non-empty directory,
8386                                        without using the FORCE argument.
8387    </p>
8388    </blockquote>
8389                                
8390    
8391    </blockquote><p>
8392                        
8393    </p>
8394    <p>Examples:
8395    </p>
8396    <p>
8397                            </p>
8398    <blockquote class="text">
8399    <p>C: "REMOVE DB_INSTRUMENT_DIRECTORY FORCE '/Piano Collection'"
8400    </p>
8401    <p>S: "OK"
8402    </p>
8403    </blockquote><p>
8404                        
8405    </p>
8406    <a name="GET DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8407    <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>
8408    <a name="rfc.section.6.8.3"></a><h3>6.8.3.&nbsp;
8409    Getting amount of instrument directories</h3>
8410    
8411    <p>The front-end can retrieve the current amount of
8412                        directories in a specific directory by sending the following command:
8413    </p>
8414    <p>
8415                            </p>
8416    <blockquote class="text">
8417    <p>GET DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8418    </p>
8419    </blockquote><p>
8420                        
8421    </p>
8422    <p>Where &lt;dir&gt; should be replaced by the absolute path
8423                        name of the directory. If RECURSIVE is specified, the number of
8424                        all directories, including those located in subdirectories of the
8425                        specified directory, will be returned.
8426    </p>
8427    <p>Possible Answers:
8428    </p>
8429    <p>
8430                            </p>
8431    <blockquote class="text">
8432    <p>The current number of instrument directories
8433                                in the specified directory.
8434    </p>
8435    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8436                                    </p>
8437    <blockquote class="text">
8438    <p>if the given directory does not exist.
8439    </p>
8440    </blockquote>
8441                                
8442    
8443    </blockquote><p>
8444                        
8445    </p>
8446    <p>Example:
8447    </p>
8448    <p>
8449                            </p>
8450    <blockquote class="text">
8451    <p>C: "GET DB_INSTRUMENT_DIRECTORIES '/'"
8452    </p>
8453    <p>S: "2"
8454    </p>
8455    </blockquote><p>
8456                        
8457    </p>
8458    <a name="LIST DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8459    <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>
8460    <a name="rfc.section.6.8.4"></a><h3>6.8.4.&nbsp;
8461    Listing all directories in specific directory</h3>
8462    
8463    <p>The front-end can retrieve the current list of directories
8464                        in specific directory by sending the following command:
8465    </p>
8466    <p>
8467                            </p>
8468    <blockquote class="text">
8469    <p>LIST DB_INSTRUMENT_DIRECTORIES [RECURSIVE] &lt;dir&gt;
8470    </p>
8471    </blockquote><p>
8472                        
8473    </p>
8474    <p>Where &lt;dir&gt; should be replaced by the absolute path
8475                        name of the directory. If RECURSIVE is specified, the absolute path names
8476                        of all directories, including those located in subdirectories of the
8477                        specified directory, will be returned.
8478    </p>
8479    <p>Possible Answers:
8480    </p>
8481    <p>
8482                            </p>
8483    <blockquote class="text">
8484    <p>A comma separated list of all instrument directories
8485                                (encapsulated into apostrophes) in the specified directory.
8486    </p>
8487    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8488                                    </p>
8489    <blockquote class="text">
8490    <p>if the given directory does not exist.
8491    </p>
8492    </blockquote>
8493                                
8494    
8495    </blockquote><p>
8496                        
8497    </p>
8498    <p>Example:
8499    </p>
8500    <p>
8501                            </p>
8502    <blockquote class="text">
8503    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES '/'"
8504    </p>
8505    <p>S: "'Piano Collection','Percussion Collection'"
8506    </p>
8507    </blockquote><p>
8508                        
8509    </p>
8510    <p>
8511                            </p>
8512    <blockquote class="text">
8513    <p>C: "LIST DB_INSTRUMENT_DIRECTORIES RECURSIVE '/'"
8514    </p>
8515    <p>S: "'/Piano Collection','/Piano Collection/Acoustic','/Piano Collection/Acoustic/New','/Percussion Collection'"
8516    </p>
8517    </blockquote><p>
8518                        
8519    </p>
8520    <a name="GET DB_INSTRUMENT_DIRECTORY INFO"></a><br /><hr />
8521    <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>
8522    <a name="rfc.section.6.8.5"></a><h3>6.8.5.&nbsp;
8523    Getting instrument directory information</h3>
8524    
8525    <p>The front-end can ask for the current settings of an
8526                        instrument directory by sending the following command:
8527    </p>
8528    <p>
8529                            </p>
8530    <blockquote class="text">
8531    <p>GET DB_INSTRUMENT_DIRECTORY INFO &lt;dir&gt;
8532    </p>
8533    </blockquote><p>
8534                        
8535    </p>
8536    <p>Where &lt;dir&gt; should be replaced by the absolute path
8537                        name of the directory the front-end is interested in.
8538    </p>
8539    <p>Possible Answers:
8540    </p>
8541    <p>
8542                            </p>
8543    <blockquote class="text">
8544    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
8545                                Each answer line begins with the settings category name
8546                                followed by a colon and then a space character &lt;SP&gt; and finally
8547                                the info character string to that setting category. At the
8548                                moment the following categories are defined:
8549    </p>
8550    <p>
8551                                    </p>
8552    <blockquote class="text">
8553    <p>DESCRIPTION -
8554                                            </p>
8555    <blockquote class="text">
8556    <p>A brief description of the directory content.
8557                                                Note that the character string may contain
8558                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
8559    </p>
8560    </blockquote>
8561                                        
8562    
8563    <p>CREATED -
8564                                            </p>
8565    <blockquote class="text">
8566    <p>The creation date and time of the directory,
8567                                                represented in "YYYY-MM-DD HH:MM:SS" format
8568    </p>
8569    </blockquote>
8570                                        
8571    
8572    <p>MODIFIED -
8573                                            </p>
8574    <blockquote class="text">
8575    <p>The date and time of the last modification of the
8576                                                directory, represented in "YYYY-MM-DD HH:MM:SS" format
8577    </p>
8578    </blockquote>
8579                                        
8580    
8581    </blockquote>
8582                                
8583    
8584    </blockquote><p>
8585                        
8586    </p>
8587    <p>The mentioned fields above don't have to be in particular order.
8588    </p>
8589    <p>Example:
8590    </p>
8591    <p>
8592                            </p>
8593    <blockquote class="text">
8594    <p>C: "GET DB_INSTRUMENT_DIRECTORY INFO '/Piano Collection'"
8595    </p>
8596    <p>S: "DESCRIPTION: Piano collection of instruments in GigaSampler format."
8597    </p>
8598    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
8599    </p>
8600    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
8601    </p>
8602    <p>&nbsp;&nbsp;&nbsp;"."
8603    </p>
8604    </blockquote><p>
8605                        
8606    </p>
8607    <a name="SET DB_INSTRUMENT_DIRECTORY NAME"></a><br /><hr />
8608    <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>
8609    <a name="rfc.section.6.8.6"></a><h3>6.8.6.&nbsp;
8610    Renaming an instrument directory</h3>
8611    
8612    <p>The front-end can alter the name of a specific
8613                        instrument directory by sending the following command:
8614    </p>
8615    <p>
8616                            </p>
8617    <blockquote class="text">
8618    <p>SET DB_INSTRUMENT_DIRECTORY NAME &lt;dir&gt; &lt;name&gt;
8619    </p>
8620    </blockquote><p>
8621                        
8622    </p>
8623    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8624                        &lt;name&gt; is the new name for that directory.
8625    </p>
8626    <p>Possible Answers:
8627    </p>
8628    <p>
8629                            </p>
8630    <blockquote class="text">
8631    <p>"OK" -
8632                                    </p>
8633    <blockquote class="text">
8634    <p>on success
8635    </p>
8636    </blockquote>
8637                                
8638    
8639    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8640                                    </p>
8641    <blockquote class="text">
8642    <p>in case the given directory does not exists,
8643                                        or if a directory with name equal to the new
8644                                        name already exists.
8645    </p>
8646    </blockquote>
8647                                
8648    
8649    </blockquote><p>
8650                        
8651    </p>
8652    <p>Example:
8653    </p>
8654    <p>
8655                            </p>
8656    <blockquote class="text">
8657    <p>C: "SET DB_INSTRUMENT_DIRECTORY NAME '/Piano Collection/Acustic' 'Acoustic'"
8658    </p>
8659    <p>S: "OK"
8660    </p>
8661    </blockquote><p>
8662                        
8663    </p>
8664    <a name="MOVE DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8665    <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>
8666    <a name="rfc.section.6.8.7"></a><h3>6.8.7.&nbsp;
8667    Moving an instrument directory</h3>
8668    
8669    <p>The front-end can move a specific
8670                        instrument directory by sending the following command:
8671    </p>
8672    <p>
8673                            </p>
8674    <blockquote class="text">
8675    <p>MOVE DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8676    </p>
8677    </blockquote><p>
8678                        
8679    </p>
8680    <p>Where &lt;dir&gt; is the absolute path name of the directory
8681                        to move and &lt;dst&gt; is the location where the directory will
8682                        be moved to.
8683    </p>
8684    <p>Possible Answers:
8685    </p>
8686    <p>
8687                            </p>
8688    <blockquote class="text">
8689    <p>"OK" -
8690                                    </p>
8691    <blockquote class="text">
8692    <p>on success
8693    </p>
8694    </blockquote>
8695                                
8696    
8697    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8698                                    </p>
8699    <blockquote class="text">
8700    <p>in case a given directory does not exists,
8701                                        or if a directory with name equal to the name
8702                                        of the specified directory already exists in
8703                                        the destination directory. Error is also thrown
8704                                        when trying to move a directory to a subdirectory
8705                                        of itself.
8706    </p>
8707    </blockquote>
8708                                
8709    
8710    </blockquote><p>
8711                        
8712    </p>
8713    <p>Example:
8714    </p>
8715    <p>
8716                            </p>
8717    <blockquote class="text">
8718    <p>C: "MOVE DB_INSTRUMENT_DIRECTORY '/Acoustic' '/Piano Collection/Acoustic'"
8719    </p>
8720    <p>S: "OK"
8721    </p>
8722    </blockquote><p>
8723                        
8724    </p>
8725    <a name="COPY DB_INSTRUMENT_DIRECTORY"></a><br /><hr />
8726    <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>
8727    <a name="rfc.section.6.8.8"></a><h3>6.8.8.&nbsp;
8728    Copying instrument directories</h3>
8729    
8730    <p>The front-end can copy a specific
8731                        instrument directory by sending the following command:
8732    </p>
8733    <p>
8734                            </p>
8735    <blockquote class="text">
8736    <p>COPY DB_INSTRUMENT_DIRECTORY &lt;dir&gt; &lt;dst&gt;
8737    </p>
8738    </blockquote><p>
8739                        
8740    </p>
8741    <p>Where &lt;dir&gt; is the absolute path name of the directory
8742                        to copy and &lt;dst&gt; is the location where the directory will
8743                        be copied to.
8744    </p>
8745    <p>Possible Answers:
8746    </p>
8747    <p>
8748                            </p>
8749    <blockquote class="text">
8750    <p>"OK" -
8751                                    </p>
8752    <blockquote class="text">
8753    <p>on success
8754    </p>
8755    </blockquote>
8756                                
8757    
8758    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8759                                    </p>
8760    <blockquote class="text">
8761    <p>in case a given directory does not exists,
8762                                        or if a directory with name equal to the name
8763                                        of the specified directory already exists in
8764                                        the destination directory. Error is also thrown
8765                                        when trying to copy a directory to a subdirectory
8766                                        of itself.
8767    </p>
8768    </blockquote>
8769                                
8770    
8771    </blockquote><p>
8772                        
8773    </p>
8774    <p>Example:
8775    </p>
8776    <p>
8777                            </p>
8778    <blockquote class="text">
8779    <p>C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic' '/Acoustic/Pianos'"
8780    </p>
8781    <p>S: "OK"
8782    </p>
8783    </blockquote><p>
8784                        
8785    </p>
8786    <a name="SET DB_INSTRUMENT_DIRECTORY DESCRIPTION"></a><br /><hr />
8787    <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>
8788    <a name="rfc.section.6.8.9"></a><h3>6.8.9.&nbsp;
8789    Changing the description of directory</h3>
8790    
8791    <p>The front-end can alter the description of a specific
8792                        instrument directory by sending the following command:
8793    </p>
8794    <p>
8795                            </p>
8796    <blockquote class="text">
8797    <p>SET DB_INSTRUMENT_DIRECTORY DESCRIPTION &lt;dir&gt; &lt;desc&gt;
8798    </p>
8799    </blockquote><p>
8800                        
8801    </p>
8802    <p>Where &lt;dir&gt; is the absolute path name of the directory and
8803                        &lt;desc&gt; is the new description for the directory
8804                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
8805                        "<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>").
8806    </p>
8807    <p>Possible Answers:
8808    </p>
8809    <p>
8810                            </p>
8811    <blockquote class="text">
8812    <p>"OK" -
8813                                    </p>
8814    <blockquote class="text">
8815    <p>on success
8816    </p>
8817    </blockquote>
8818                                
8819    
8820    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8821                                    </p>
8822    <blockquote class="text">
8823    <p>in case the given directory does not exists.
8824    </p>
8825    </blockquote>
8826                                
8827    
8828    </blockquote><p>
8829                        
8830    </p>
8831    <p>Example:
8832    </p>
8833    <p>
8834                            </p>
8835    <blockquote class="text">
8836    <p>C: "SET DB_INSTRUMENT_DIRECTORY DESCRIPTION '/Piano Collection' 'A collection of piano instruments in various format.'"
8837    </p>
8838    <p>S: "OK"
8839    </p>
8840    </blockquote><p>
8841                        
8842    </p>
8843    <a name="FIND DB_INSTRUMENT_DIRECTORIES"></a><br /><hr />
8844    <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>
8845    <a name="rfc.section.6.8.10"></a><h3>6.8.10.&nbsp;
8846    Finding directories</h3>
8847    
8848    <p>The front-end can search for directories
8849                        in specific directory by sending the following command:
8850    </p>
8851    <p>
8852                            </p>
8853    <blockquote class="text">
8854    <p>FIND DB_INSTRUMENT_DIRECTORIES [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
8855    </p>
8856    </blockquote><p>
8857                        
8858    </p>
8859    <p>Where &lt;dir&gt; should be replaced by the absolute path
8860                        name of the directory to search in. If NON_RECURSIVE is specified, the
8861                        directories located in subdirectories of the specified directory will not
8862                        be searched. &lt;criteria-list&gt; is a list of search criterias
8863                        in form of "key1=val1 key2=val2 ...". The following criterias are
8864                        allowed:
8865    </p>
8866    <p>
8867                          
8868    <p>NAME='&lt;search-string&gt;'
8869                              </p>
8870    <blockquote class="text">
8871    <p>Restricts the search to directories, which names
8872                                  satisfy the supplied search string (encapsulated into apostrophes,
8873                                  supporting escape sequences as described in chapter
8874                                  "<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>").
8875    </p>
8876    </blockquote><p>
8877                          
8878    </p>
8879    
8880                          
8881    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8882                              </p>
8883    <blockquote class="text">
8884    <p>Restricts the search to directories, which creation
8885                                  date satisfies the specified period, where &lt;date-after&gt;
8886                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
8887                                  If &lt;date-after&gt; is omitted the search is restricted to
8888                                  directories created before &lt;date-before&gt;. If
8889                                  &lt;date-before&gt; is omitted, the search is restricted
8890                                  to directories created after &lt;date-after&gt;.
8891    </p>
8892    </blockquote><p>
8893                          
8894    </p>
8895    
8896                          
8897    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
8898                              </p>
8899    <blockquote class="text">
8900    <p>Restricts the search to directories, which
8901                                  date of last modification satisfies the specified period, where
8902                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
8903                                  format. If &lt;date-after&gt; is omitted the search is restricted to
8904                                  directories, which are last modified before &lt;date-before&gt;. If
8905                                  &lt;date-before&gt; is omitted, the search is restricted to directories,
8906                                  which are last modified after &lt;date-after&gt;.
8907    </p>
8908    </blockquote><p>
8909                          
8910    </p>
8911    
8912                          
8913    <p>DESCRIPTION='&lt;search-string&gt;'
8914                              </p>
8915    <blockquote class="text">
8916    <p>Restricts the search to directories with description
8917                                  that satisfies the supplied search string
8918                                  (encapsulated into apostrophes, supporting escape
8919                                  sequences as described in chapter
8920                                  "<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>").
8921    </p>
8922    </blockquote><p>
8923                          
8924    </p>
8925                        
8926    
8927    <p>Where &lt;search-string&gt; is either a regular expression, or a
8928                        word list separated with spaces for OR search and with '+' for AND search.
8929    </p>
8930    <p>Possible Answers:
8931    </p>
8932    <p>
8933                            </p>
8934    <blockquote class="text">
8935    <p>A comma separated list with the absolute path names (encapsulated into
8936                                apostrophes) of all directories in the specified directory that satisfy
8937                                the supplied search criterias.
8938    </p>
8939    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
8940                                    </p>
8941    <blockquote class="text">
8942    <p>if the given directory does not exist.
8943    </p>
8944    </blockquote>
8945                                
8946    
8947    </blockquote><p>
8948                        
8949    </p>
8950    <p>Example:
8951    </p>
8952    <p>
8953                            </p>
8954    <blockquote class="text">
8955    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' NAME='Piano'"
8956    </p>
8957    <p>S: "'/Piano Collection'"
8958    </p>
8959    </blockquote><p>
8960                        
8961    </p>
8962    <p>
8963                            </p>
8964    <blockquote class="text">
8965    <p>C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:30:13'"
8966    </p>
8967    <p>S: "'/Piano Collection','/Percussions'"
8968    </p>
8969    </blockquote><p>
8970                        
8971    </p>
8972    <a name="ADD DB_INSTRUMENTS"></a><br /><hr />
8973    <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>
8974    <a name="rfc.section.6.8.11"></a><h3>6.8.11.&nbsp;
8975    Adding instruments to the instruments database</h3>
8976    
8977    <p>The front-end can add one or more instruments
8978                        to the instruments database by sending the following command:
8979    </p>
8980    <p>
8981                            </p>
8982    <blockquote class="text">
8983    <p>ADD DB_INSTRUMENTS [NON_MODAL] [&lt;mode&gt;[ FILE_AS_DIR]] &lt;db_dir&gt; &lt;file_path&gt; [&lt;instr_index&gt;]
8984    </p>
8985    </blockquote><p>
8986                        
8987    </p>
8988    <p>Where &lt;db_dir&gt; is the absolute path name of a directory
8989                        (encapsulated into apostrophes) in the instruments database in which
8990                        only the new instruments (that are not already in the database) will
8991                        be added, &lt;file_path&gt; is the absolute path name of a file or
8992                        directory in the file system (encapsulated into apostrophes). In case
8993                        an instrument file is supplied, only the instruments in the specified
8994                        file will be added to the instruments database. If the optional
8995                        &lt;instr_index&gt; (the index of the instrument within the given file)
8996                        is supplied too, then only the specified instrument will be added.
8997                        In case a directory is supplied, the instruments in that directory
8998                        will be added. The OPTIONAL &lt;mode&gt; argument is only applied
8999                        when a directory is provided as &lt;file_path&gt; and specifies how the
9000                        scanning will be done and has exactly the following possibilities:
9001    </p>
9002    <p>
9003                            </p>
9004    <blockquote class="text">
9005    <p>"RECURSIVE" -
9006                                    </p>
9007    <blockquote class="text">
9008    <p>All instruments will be processed, including those
9009                                        in the subdirectories, and the respective subdirectory
9010                                        tree structure will be recreated in the instruments
9011                                        database
9012    </p>
9013    </blockquote>
9014                                
9015    
9016    <p>"NON_RECURSIVE" -
9017                                    </p>
9018    <blockquote class="text">
9019    <p>Only the instruments in the specified directory
9020                                        will be added, the instruments in the subdirectories
9021                                        will not be processed.
9022    </p>
9023    </blockquote>
9024                                
9025    
9026    <p>"FLAT" -
9027                                    </p>
9028    <blockquote class="text">
9029    <p>All instruments will be processed, including those
9030                                        in the subdirectories, but the respective subdirectory
9031                                        structure will not be recreated in the instruments
9032                                        database. All instruments will be added directly in
9033                                        the specified database directory.
9034    </p>
9035    </blockquote>
9036                                
9037    
9038    </blockquote><p>
9039                        
9040    </p>
9041    <p> If FILE_AS_DIR argument is supplied, all instruments in an instrument
9042                     file will be added to a separate directory in the instruments database, which
9043                     name will be the name of the instrument file with the file extension stripped off.
9044                    
9045    </p>
9046    <p>The difference between regular and NON_MODAL versions of the command
9047                        is that the regular command returns when the scanning is finished
9048                        while NON_MODAL version returns immediately and a background process is launched.
9049                        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>
9050                        command can be used to monitor the scanning progress.
9051    </p>
9052    <p>Possible Answers:
9053    </p>
9054    <p>
9055                            </p>
9056    <blockquote class="text">
9057    <p>"OK" -
9058                                    </p>
9059    <blockquote class="text">
9060    <p>on success when NON_MODAL is not supplied
9061    </p>
9062    </blockquote>
9063                                
9064    
9065    <p>"OK[&lt;job-id&gt;]" -
9066                                    </p>
9067    <blockquote class="text">
9068    <p>on success when NON_MODAL is supplied, where &lt;job-id&gt;
9069                                        is a numerical ID used to obtain status information about the job progress.
9070                                        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>
9071                                        
9072    </p>
9073    </blockquote>
9074                                
9075    
9076    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9077                                    </p>
9078    <blockquote class="text">
9079    <p>if an invalid path is specified.
9080    </p>
9081    </blockquote>
9082                                
9083    
9084    </blockquote><p>
9085                        
9086    </p>
9087    <p>Examples:
9088    </p>
9089    <p>
9090                            </p>
9091    <blockquote class="text">
9092    <p>C: "ADD DB_INSTRUMENTS '/Piano Collection' '/home/me/gigs/PMI Bosendorfer 290.gig' 0"
9093    </p>
9094    <p>S: "OK"
9095    </p>
9096    </blockquote><p>
9097                        
9098    </p>
9099    <a name="REMOVE DB_INSTRUMENT"></a><br /><hr />
9100    <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>
9101    <a name="rfc.section.6.8.12"></a><h3>6.8.12.&nbsp;
9102    Removing an instrument</h3>
9103    
9104    <p>The front-end can remove a particular instrument
9105                        from the instruments database by sending the following command:
9106    </p>
9107    <p>
9108                            </p>
9109    <blockquote class="text">
9110    <p>REMOVE DB_INSTRUMENT &lt;instr_path&gt;
9111    </p>
9112    </blockquote><p>
9113                        
9114    </p>
9115    <p>Where &lt;instr_path&gt; is the absolute path name
9116                        (in the instruments database) of the instrument to remove.
9117    </p>
9118    <p>Possible Answers:
9119    </p>
9120    <p>
9121                            </p>
9122    <blockquote class="text">
9123    <p>"OK" -
9124                                    </p>
9125    <blockquote class="text">
9126    <p>if the instrument is removed successfully
9127    </p>
9128    </blockquote>
9129                                
9130    
9131    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9132                                    </p>
9133    <blockquote class="text">
9134    <p>if the given path does not exist or
9135                                        is a directory.
9136    </p>
9137    </blockquote>
9138                                
9139    
9140    </blockquote><p>
9141                        
9142    </p>
9143    <p>Examples:
9144    </p>
9145    <p>
9146                            </p>
9147    <blockquote class="text">
9148    <p>C: "REMOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290'"
9149    </p>
9150    <p>S: "OK"
9151    </p>
9152    </blockquote><p>
9153                        
9154    </p>
9155    <a name="GET DB_INSTRUMENTS"></a><br /><hr />
9156    <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>
9157    <a name="rfc.section.6.8.13"></a><h3>6.8.13.&nbsp;
9158    Getting amount of instruments</h3>
9159    
9160    <p>The front-end can retrieve the current amount of
9161                        instruments in a specific directory by sending the following command:
9162    </p>
9163    <p>
9164                            </p>
9165    <blockquote class="text">
9166    <p>GET DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9167    </p>
9168    </blockquote><p>
9169                        
9170    </p>
9171    <p>Where &lt;dir&gt; should be replaced by the absolute path name
9172                        of the directory. If RECURSIVE is specified, the number of all
9173                        instruments, including those located in subdirectories of the
9174                        specified directory, will be returned.
9175    </p>
9176    <p>Possible Answers:
9177    </p>
9178    <p>
9179                            </p>
9180    <blockquote class="text">
9181    <p>The current number of instruments
9182                                in the specified directory.
9183    </p>
9184    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9185                                    </p>
9186    <blockquote class="text">
9187    <p>if the given directory does not exist.
9188    </p>
9189    </blockquote>
9190                                
9191    
9192    </blockquote><p>
9193                        
9194    </p>
9195    <p>Example:
9196    </p>
9197    <p>
9198                            </p>
9199    <blockquote class="text">
9200    <p>C: "GET DB_INSTRUMENTS '/Piano Collection'"
9201    </p>
9202    <p>S: "2"
9203    </p>
9204    </blockquote><p>
9205                        
9206    </p>
9207    <a name="LIST DB_INSTRUMENTS"></a><br /><hr />
9208    <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>
9209    <a name="rfc.section.6.8.14"></a><h3>6.8.14.&nbsp;
9210    Listing all instruments in specific directory</h3>
9211    
9212    <p>The front-end can retrieve the current list of instruments
9213                        in specific directory by sending the following command:
9214    </p>
9215    <p>
9216                            </p>
9217    <blockquote class="text">
9218    <p>LIST DB_INSTRUMENTS [RECURSIVE] &lt;dir&gt;
9219    </p>
9220    </blockquote><p>
9221                        
9222    </p>
9223    <p>Where &lt;dir&gt; should be replaced by the absolute path
9224                        name of the directory. If RECURSIVE is specified, the absolute path
9225                        names of all instruments, including those located in subdirectories
9226                        of the specified directory, will be returned.
9227    </p>
9228    <p>Possible Answers:
9229    </p>
9230    <p>
9231                            </p>
9232    <blockquote class="text">
9233    <p>A comma separated list of all instruments
9234                                (encapsulated into apostrophes) in the specified directory.
9235    </p>
9236    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9237                                    </p>
9238    <blockquote class="text">
9239    <p>if the given directory does not exist.
9240    </p>
9241    </blockquote>
9242                                
9243    
9244    </blockquote><p>
9245                        
9246    </p>
9247    <p>Example:
9248    </p>
9249    <p>
9250                            </p>
9251    <blockquote class="text">
9252    <p>C: "LIST DB_INSTRUMENTS '/Piano Collection'"
9253    </p>
9254    <p>S: "'Bosendorfer 290','Steinway D'"
9255    </p>
9256    </blockquote><p>
9257                        
9258    </p>
9259    <p>
9260                            </p>
9261    <blockquote class="text">
9262    <p>C: "LIST DB_INSTRUMENTS RECURSIVE '/Piano Collection'"
9263    </p>
9264    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D','/Piano Collection/Lite/Free Piano'"
9265    </p>
9266    </blockquote><p>
9267                        
9268    </p>
9269    <a name="GET DB_INSTRUMENT INFO"></a><br /><hr />
9270    <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>
9271    <a name="rfc.section.6.8.15"></a><h3>6.8.15.&nbsp;
9272    Getting instrument information</h3>
9273    
9274    <p>The front-end can ask for the current settings of an
9275                        instrument by sending the following command:
9276    </p>
9277    <p>
9278                            </p>
9279    <blockquote class="text">
9280    <p>GET DB_INSTRUMENT INFO &lt;instr_path&gt;
9281    </p>
9282    </blockquote><p>
9283                        
9284    </p>
9285    <p>Where &lt;instr_path&gt; should be replaced by the absolute path
9286                        name of the instrument the front-end is interested in.
9287    </p>
9288    <p>Possible Answers:
9289    </p>
9290    <p>
9291                            </p>
9292    <blockquote class="text">
9293    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9294                                Each answer line begins with the settings category name
9295                                followed by a colon and then a space character &lt;SP&gt; and finally
9296                                the info character string to that setting category. At the
9297                                moment the following categories are defined:
9298    </p>
9299    <p>
9300                                    </p>
9301    <blockquote class="text">
9302    <p>INSTRUMENT_FILE -
9303                                            </p>
9304    <blockquote class="text">
9305    <p>File name of the instrument.
9306                                                Note that the character string may contain
9307                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9308    </p>
9309    </blockquote>
9310                                        
9311    
9312    <p>INSTRUMENT_NR -
9313                                            </p>
9314    <blockquote class="text">
9315    <p>Index of the instrument within the file.
9316    </p>
9317    </blockquote>
9318                                        
9319    
9320    <p>FORMAT_FAMILY -
9321                                            </p>
9322    <blockquote class="text">
9323    <p>The format family of the instrument.
9324    </p>
9325    </blockquote>
9326                                        
9327    
9328    <p>FORMAT_VERSION -
9329                                            </p>
9330    <blockquote class="text">
9331    <p>The format version of the instrument.
9332    </p>
9333    </blockquote>
9334                                        
9335    
9336    <p>SIZE -
9337                                            </p>
9338    <blockquote class="text">
9339    <p>The size of the instrument in bytes.
9340    </p>
9341    </blockquote>
9342                                        
9343    
9344    <p>CREATED -
9345                                            </p>
9346    <blockquote class="text">
9347    <p>The date and time when the instrument is added
9348                                                in the instruments database, represented in
9349                                               "YYYY-MM-DD HH:MM:SS" format
9350    </p>
9351    </blockquote>
9352                                        
9353    
9354    <p>MODIFIED -
9355                                            </p>
9356    <blockquote class="text">
9357    <p>The date and time of the last modification of the
9358                                                instrument's database settings, represented in
9359                                                "YYYY-MM-DD HH:MM:SS" format
9360    </p>
9361    </blockquote>
9362                                        
9363    
9364    <p>DESCRIPTION -
9365                                            </p>
9366    <blockquote class="text">
9367    <p>A brief description of the instrument.
9368                                                Note that the character string may contain
9369                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9370    </p>
9371    </blockquote>
9372                                        
9373    
9374    <p>IS_DRUM -
9375                                            </p>
9376    <blockquote class="text">
9377    <p>either true or false, determines whether the
9378                                                instrument is a drumkit or a chromatic instrument
9379    </p>
9380    </blockquote>
9381                                        
9382    
9383    <p>PRODUCT -
9384                                            </p>
9385    <blockquote class="text">
9386    <p>The product title of the instrument.
9387                                                Note that the character string may contain
9388                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9389    </p>
9390    </blockquote>
9391                                        
9392    
9393    <p>ARTISTS -
9394                                            </p>
9395    <blockquote class="text">
9396    <p>Lists the artist names.
9397                                                Note that the character string may contain
9398                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9399    </p>
9400    </blockquote>
9401                                        
9402    
9403    <p>KEYWORDS -
9404                                            </p>
9405    <blockquote class="text">
9406    <p>Provides a list of keywords that refer to the instrument.
9407                                                Keywords are separated with semicolon and blank.
9408                                                Note that the character string may contain
9409                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
9410    </p>
9411    </blockquote>
9412                                        
9413    
9414    </blockquote>
9415                                
9416    
9417    </blockquote><p>
9418                        
9419    </p>
9420    <p>The mentioned fields above don't have to be in particular order.
9421    </p>
9422    <p>Example:
9423    </p>
9424    <p>
9425                            </p>
9426    <blockquote class="text">
9427    <p>C: "GET DB_INSTRUMENT INFO '/Piano Collection/Bosendorfer 290'"
9428    </p>
9429    <p>S: "INSTRUMENT_FILE: /home/me/gigs/Bosendorfer 290.gig"
9430    </p>
9431    <p>&nbsp;&nbsp;&nbsp;"INSTRUMENT_NR: 0"
9432    </p>
9433    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
9434    </p>
9435    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 2"
9436    </p>
9437    <p>&nbsp;&nbsp;&nbsp;"SIZE: 2050871870"
9438    </p>
9439    <p>&nbsp;&nbsp;&nbsp;"CREATED: 2007-02-05 10:23:12"
9440    </p>
9441    <p>&nbsp;&nbsp;&nbsp;"MODIFIED: 2007-04-07 12:50:21"
9442    </p>
9443    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: "
9444    </p>
9445    <p>&nbsp;&nbsp;&nbsp;"IS_DRUM: false"
9446    </p>
9447    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: GRANDIOSO Bosendorfer 290"
9448    </p>
9449    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Post Musical Instruments"
9450    </p>
9451    <p>&nbsp;&nbsp;&nbsp;"KEYWORDS: Bosendorfer"
9452    </p>
9453    <p>&nbsp;&nbsp;&nbsp;"."
9454    </p>
9455    </blockquote><p>
9456                        
9457    </p>
9458    <a name="SET DB_INSTRUMENT NAME"></a><br /><hr />
9459    <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>
9460    <a name="rfc.section.6.8.16"></a><h3>6.8.16.&nbsp;
9461    Renaming an instrument</h3>
9462    
9463    <p>The front-end can alter the name of a specific
9464                        instrument by sending the following command:
9465    </p>
9466    <p>
9467                            </p>
9468    <blockquote class="text">
9469    <p>SET DB_INSTRUMENT NAME &lt;instr&gt; &lt;name&gt;
9470    </p>
9471    </blockquote><p>
9472                        
9473    </p>
9474    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9475                        &lt;name&gt; is the new name for that instrument.
9476    </p>
9477    <p>Possible Answers:
9478    </p>
9479    <p>
9480                            </p>
9481    <blockquote class="text">
9482    <p>"OK" -
9483                                    </p>
9484    <blockquote class="text">
9485    <p>on success
9486    </p>
9487    </blockquote>
9488                                
9489    
9490    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9491                                    </p>
9492    <blockquote class="text">
9493    <p>in case the given instrument does not exists,
9494                                        or if an instrument with name equal to the new
9495                                        name already exists.
9496    </p>
9497    </blockquote>
9498                                
9499    
9500    </blockquote><p>
9501                        
9502    </p>
9503    <p>Example:
9504    </p>
9505    <p>
9506                            </p>
9507    <blockquote class="text">
9508    <p>C: "SET DB_INSTRUMENT NAME '/Piano Collection/Bosendorfer' 'Bosendorfer 290'"
9509    </p>
9510    <p>S: "OK"
9511    </p>
9512    </blockquote><p>
9513                        
9514    </p>
9515    <a name="MOVE DB_INSTRUMENT"></a><br /><hr />
9516    <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>
9517    <a name="rfc.section.6.8.17"></a><h3>6.8.17.&nbsp;
9518    Moving an instrument</h3>
9519    
9520    <p>The front-end can move a specific instrument to another directory by
9521                        sending the following command:
9522    </p>
9523    <p>
9524                            </p>
9525    <blockquote class="text">
9526    <p>MOVE DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9527    </p>
9528    </blockquote><p>
9529                        
9530    </p>
9531    <p>Where &lt;instr&gt; is the absolute path name of the instrument
9532                        to move and &lt;dst&gt; is the directory where the instrument will
9533                        be moved to.
9534    </p>
9535    <p>Possible Answers:
9536    </p>
9537    <p>
9538                            </p>
9539    <blockquote class="text">
9540    <p>"OK" -
9541                                    </p>
9542    <blockquote class="text">
9543    <p>on success
9544    </p>
9545    </blockquote>
9546                                
9547    
9548    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9549                                    </p>
9550    <blockquote class="text">
9551    <p>in case the given instrument does not exists,
9552                                        or if an instrument with name equal to the name of the
9553                                        specified instrument already exists in the destination
9554                                        directory.
9555    </p>
9556    </blockquote>
9557                                
9558    
9559    </blockquote><p>
9560                        
9561    </p>
9562    <p>Example:
9563    </p>
9564    <p>
9565                            </p>
9566    <blockquote class="text">
9567    <p>C: "MOVE DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Piano Collection/Acoustic'"
9568    </p>
9569    <p>S: "OK"
9570    </p>
9571    </blockquote><p>
9572                        
9573    </p>
9574    <a name="COPY DB_INSTRUMENT"></a><br /><hr />
9575    <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>
9576    <a name="rfc.section.6.8.18"></a><h3>6.8.18.&nbsp;
9577    Copying instruments</h3>
9578    
9579    <p>The front-end can copy a specific instrument to another directory by
9580                        sending the following command:
9581    </p>
9582    <p>
9583                            </p>
9584    <blockquote class="text">
9585    <p>COPY DB_INSTRUMENT &lt;instr&gt; &lt;dst&gt;
9586    </p>
9587    </blockquote><p>
9588                        
9589    </p>
9590    <p>Where &lt;instr&gt; is the absolute path name of the instrument
9591                        to copy and &lt;dst&gt; is the directory where the instrument will
9592                        be copied to.
9593    </p>
9594    <p>Possible Answers:
9595    </p>
9596    <p>
9597                            </p>
9598    <blockquote class="text">
9599    <p>"OK" -
9600                                    </p>
9601    <blockquote class="text">
9602    <p>on success
9603    </p>
9604    </blockquote>
9605                                
9606    
9607    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9608                                    </p>
9609    <blockquote class="text">
9610    <p>in case the given instrument does not exists,
9611                                        or if an instrument with name equal to the name of the
9612                                        specified instrument already exists in the destination
9613                                        directory.
9614    </p>
9615    </blockquote>
9616                                
9617    
9618    </blockquote><p>
9619                        
9620    </p>
9621    <p>Example:
9622    </p>
9623    <p>
9624                            </p>
9625    <blockquote class="text">
9626    <p>C: "COPY DB_INSTRUMENT '/Piano Collection/Bosendorfer 290' '/Acoustic/Pianos/'"
9627    </p>
9628    <p>S: "OK"
9629    </p>
9630    </blockquote><p>
9631                        
9632    </p>
9633    <a name="SET DB_INSTRUMENT DESCRIPTION"></a><br /><hr />
9634    <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>
9635    <a name="rfc.section.6.8.19"></a><h3>6.8.19.&nbsp;
9636    Changing the description of instrument</h3>
9637    
9638    <p>The front-end can alter the description of a specific
9639                        instrument by sending the following command:
9640    </p>
9641    <p>
9642                            </p>
9643    <blockquote class="text">
9644    <p>SET DB_INSTRUMENT DESCRIPTION &lt;instr&gt; &lt;desc&gt;
9645    </p>
9646    </blockquote><p>
9647                        
9648    </p>
9649    <p>Where &lt;instr&gt; is the absolute path name of the instrument and
9650                        &lt;desc&gt; is the new description for the instrument
9651                        (encapsulated into apostrophes, supporting escape sequences as described in chapter
9652                        "<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>").
9653    </p>
9654    <p>Possible Answers:
9655    </p>
9656    <p>
9657                            </p>
9658    <blockquote class="text">
9659    <p>"OK" -
9660                                    </p>
9661    <blockquote class="text">
9662    <p>on success
9663    </p>
9664    </blockquote>
9665                                
9666    
9667    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9668                                    </p>
9669    <blockquote class="text">
9670    <p>in case the given instrument does not exists.
9671    </p>
9672    </blockquote>
9673                                
9674    
9675    </blockquote><p>
9676                        
9677    </p>
9678    <p>Example:
9679    </p>
9680    <p>
9681                            </p>
9682    <blockquote class="text">
9683    <p>C: "SET DB_INSTRUMENT DESCRIPTION '/Piano Collection/Acoustic/Bosendorfer 290' 'No comment :)'"
9684    </p>
9685    <p>S: "OK"
9686    </p>
9687    </blockquote><p>
9688                        
9689    </p>
9690    <a name="FIND DB_INSTRUMENTS"></a><br /><hr />
9691    <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>
9692    <a name="rfc.section.6.8.20"></a><h3>6.8.20.&nbsp;
9693    Finding instruments</h3>
9694    
9695    <p>The front-end can search for instruments
9696                        in specific directory by sending the following command:
9697    </p>
9698    <p>
9699                            </p>
9700    <blockquote class="text">
9701    <p>FIND DB_INSTRUMENTS [NON_RECURSIVE] &lt;dir&gt; &lt;criteria-list&gt;
9702    </p>
9703    </blockquote><p>
9704                        
9705    </p>
9706    <p>Where &lt;dir&gt; should be replaced by the absolute path
9707                        name of the directory to search in. If NON_RECURSIVE is specified, the
9708                        directories located in subdirectories of the specified directory will not
9709                        be searched. &lt;criteria-list&gt; is a list of search criterias
9710                        in form of "key1=val1 key2=val2 ...". The following criterias are
9711                        allowed:
9712    </p>
9713    <p>
9714                          
9715    <p>NAME='&lt;search-string&gt;'
9716                              </p>
9717    <blockquote class="text">
9718    <p>Restricts the search to instruments, which names
9719                                  satisfy the supplied search string (encapsulated into apostrophes,
9720                                  supporting escape sequences as described in chapter
9721                                  "<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>").
9722    </p>
9723    </blockquote><p>
9724                          
9725    </p>
9726    
9727                          
9728    <p>SIZE=[&lt;min&gt;]..[&lt;max&gt;]
9729                              </p>
9730    <blockquote class="text">
9731    <p>Restricts the search to instruments, which
9732                                  size is in the specified range. If &lt;min&gt; is omitted,
9733                                  the search results are restricted to instruments with size less then
9734                                  or equal to &lt;max&gt;. If &lt;max&gt; is omitted, the
9735                                  search is restricted to instruments with size greater then
9736                                  or equal to &lt;min&gt;.
9737    </p>
9738    </blockquote><p>
9739                          
9740    </p>
9741    
9742                          
9743    <p>CREATED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9744                              </p>
9745    <blockquote class="text">
9746    <p>Restricts the search to instruments, which creation
9747                                  date satisfies the specified period, where &lt;date-after&gt;
9748                                  and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS" format.
9749                                  If &lt;date-after&gt; is omitted the search is restricted to
9750                                  instruments created before &lt;date-before&gt;. If
9751                                  &lt;date-before&gt; is omitted, the search is restricted
9752                                  to instruments created after &lt;date-after&gt;.
9753    </p>
9754    </blockquote><p>
9755                          
9756    </p>
9757    
9758                          
9759    <p>MODIFIED='[&lt;date-after&gt;]..[&lt;date-before&gt;]'
9760                              </p>
9761    <blockquote class="text">
9762    <p>Restricts the search to instruments, which
9763                                  date of last modification satisfies the specified period, where
9764                                  &lt;date-after&gt; and &lt;date-before&gt; are in "YYYY-MM-DD HH:MM:SS"
9765                                  format. If &lt;date-after&gt; is omitted the search is restricted to
9766                                  instruments, which are last modified before &lt;date-before&gt;. If
9767                                  &lt;date-before&gt; is omitted, the search is restricted to instruments,
9768                                  which are last modified after &lt;date-after&gt;.
9769    </p>
9770    </blockquote><p>
9771                          
9772    </p>
9773    
9774                          
9775    <p>DESCRIPTION='&lt;search-string&gt;'
9776                              </p>
9777    <blockquote class="text">
9778    <p>Restricts the search to instruments with description
9779                                  that satisfies the supplied search string (encapsulated into apostrophes,
9780                                  supporting escape sequences as described in chapter
9781                                  "<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>").
9782    </p>
9783    </blockquote><p>
9784                          
9785    </p>
9786    
9787                          
9788    <p>PRODUCT='&lt;search-string&gt;'
9789                              </p>
9790    <blockquote class="text">
9791    <p>Restricts the search to instruments with product info
9792                                  that satisfies the supplied search string (encapsulated into apostrophes,
9793                                  supporting escape sequences as described in chapter
9794                                  "<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>").
9795    </p>
9796    </blockquote><p>
9797                          
9798    </p>
9799    
9800                          
9801    <p>ARTISTS='&lt;search-string&gt;'
9802                              </p>
9803    <blockquote class="text">
9804    <p>Restricts the search to instruments with artists info
9805                                  that satisfies the supplied search string (encapsulated into apostrophes,
9806                                  supporting escape sequences as described in chapter
9807                                  "<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>").
9808    </p>
9809    </blockquote><p>
9810                          
9811    </p>
9812    
9813                          
9814    <p>KEYWORDS='&lt;search-string&gt;'
9815                              </p>
9816    <blockquote class="text">
9817    <p>Restricts the search to instruments with keyword list
9818                                  that satisfies the supplied search string (encapsulated into apostrophes,
9819                                  supporting escape sequences as described in chapter
9820                                  "<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>").
9821    </p>
9822    </blockquote><p>
9823                          
9824    </p>
9825    
9826                          
9827    <p>IS_DRUM=true | false
9828                              </p>
9829    <blockquote class="text">
9830    <p>Either true or false. Restricts the search to
9831                                  drum kits or chromatic instruments.
9832    </p>
9833    </blockquote><p>
9834                          
9835    </p>
9836    
9837                          
9838    <p>FORMAT_FAMILIES='&lt;format-list&gt;'
9839                              </p>
9840    <blockquote class="text">
9841    <p>Restricts the search to instruments of the supplied format families,
9842                                  where &lt;format-list&gt; is a comma separated list of format families.
9843    </p>
9844    </blockquote><p>
9845                          
9846    </p>
9847                        
9848    
9849    <p>Where &lt;search-string&gt; is either a regular expression, or a
9850                        word list separated with spaces for OR search and with '+' for AND search.
9851    </p>
9852    <p>Possible Answers:
9853    </p>
9854    <p>
9855                            </p>
9856    <blockquote class="text">
9857    <p>A comma separated list with the absolute path names (encapsulated into
9858                                apostrophes) of all instruments in the specified directory that satisfy
9859                                the supplied search criterias.
9860    </p>
9861    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
9862                                    </p>
9863    <blockquote class="text">
9864    <p>if the given directory does not exist.
9865    </p>
9866    </blockquote>
9867                                
9868    
9869    </blockquote><p>
9870                        
9871    </p>
9872    <p>Example:
9873    </p>
9874    <p>
9875                            </p>
9876    <blockquote class="text">
9877    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' NAME='bosendorfer+290'"
9878    </p>
9879    <p>S: "'/Piano Collection/Bosendorfer 290'"
9880    </p>
9881    </blockquote><p>
9882                        
9883    </p>
9884    <p>
9885                            </p>
9886    <blockquote class="text">
9887    <p>C: "FIND DB_INSTRUMENTS '/Piano Collection' CREATED='2007-04-01 09:30:13..'"
9888    </p>
9889    <p>S: "'/Piano Collection/Bosendorfer 290','/Piano Collection/Steinway D'"
9890    </p>
9891    </blockquote><p>
9892                        
9893    </p>
9894    <a name="GET DB_INSTRUMENTS_JOB INFO"></a><br /><hr />
9895    <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.8.21"></a><h3>6.8.21.&nbsp;
9897    Getting job status information</h3>
9898    
9899    <p>The front-end can ask for the current status of a
9900                        particular database instruments job by sending the following command:
9901    </p>
9902    <p>
9903                            </p>
9904    <blockquote class="text">
9905    <p>GET DB_INSTRUMENTS_JOB INFO &lt;job-id&gt;
9906    </p>
9907    </blockquote><p>
9908                        
9909    </p>
9910    <p>Where &lt;job-id&gt; should be replaced by the numerical ID
9911                        of the job the front-end is interested in.
9912    </p>
9913    <p>Possible Answers:
9914    </p>
9915    <p>
9916                            </p>
9917    <blockquote class="text">
9918    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
9919                                Each answer line begins with the settings category name
9920                                followed by a colon and then a space character &lt;SP&gt; and finally
9921                                the info character string to that setting category. At the
9922                                moment the following categories are defined:
9923    </p>
9924    <p>
9925                                    </p>
9926    <blockquote class="text">
9927    <p>FILES_TOTAL -
9928                                            </p>
9929    <blockquote class="text">
9930    <p>The total number of files scheduled for scanning
9931    </p>
9932    </blockquote>
9933                                        
9934    
9935    <p>FILES_SCANNED -
9936                                            </p>
9937    <blockquote class="text">
9938    <p>The current number of scanned files
9939    </p>
9940    </blockquote>
9941                                        
9942    
9943    <p>SCANNING -
9944                                            </p>
9945    <blockquote class="text">
9946    <p>The absolute path name of the file which is currently
9947                                                being scanned
9948    </p>
9949    </blockquote>
9950                                        
9951    
9952    <p>STATUS -
9953                                            </p>
9954    <blockquote class="text">
9955    <p>An integer value between 0 and 100 indicating the
9956                                                scanning progress percentage of the file which is
9957                                                currently being scanned
9958    </p>
9959    </blockquote>
9960                                        
9961    
9962    </blockquote>
9963                                
9964    
9965    </blockquote><p>
9966                        
9967    </p>
9968    <p>The mentioned fields above don't have to be in particular order.
9969    </p>
9970    <p>Example:
9971    </p>
9972    <p>
9973                            </p>
9974    <blockquote class="text">
9975    <p>C: "GET DB_INSTRUMENTS_JOB INFO 2"
9976    </p>
9977    <p>S: "FILES_TOTAL: 12"
9978    </p>
9979    <p>&nbsp;&nbsp;&nbsp;"FILES_SCANNED: 7"
9980    </p>
9981    <p>&nbsp;&nbsp;&nbsp;"SCANNING: /home/me/gigs/Bosendorfer 290.gig"
9982    </p>
9983    <p>&nbsp;&nbsp;&nbsp;"STATUS: 42"
9984    </p>
9985    <p>&nbsp;&nbsp;&nbsp;"."
9986    </p>
9987    </blockquote><p>
9988                        
9989    </p>
9990    <a name="FORMAT INSTRUMENTS_DB"></a><br /><hr />
9991    <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>
9992    <a name="rfc.section.6.8.22"></a><h3>6.8.22.&nbsp;
9993    Formatting the instruments database</h3>
9994    
9995    <p>The front-end can remove all instruments and directories and re-create
9996                        the instruments database structure (e.g., in case of a database corruption)
9997                        by sending the following command:
9998    </p>
9999    <p>
10000                            </p>
10001    <blockquote class="text">
10002    <p>FORMAT INSTRUMENTS_DB
10003    </p>
10004    </blockquote><p>
10005                        
10006    </p>
10007    <p>Possible Answers:
10008    </p>
10009    <p>
10010                            </p>
10011    <blockquote class="text">
10012    <p>"OK" -
10013                                    </p>
10014    <blockquote class="text">
10015    <p>on success
10016    </p>
10017    </blockquote>
10018                                
10019    
10020    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10021                                    </p>
10022    <blockquote class="text">
10023    <p>If the formatting of the instruments database
10024                                        failed.
10025    </p>
10026    </blockquote>
10027                                
10028    
10029    </blockquote><p>
10030                        
10031    </p>
10032    <a name="FIND LOST DB_INSTRUMENT_FILES"></a><br /><hr />
10033    <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>
10034    <a name="rfc.section.6.8.23"></a><h3>6.8.23.&nbsp;
10035    Checking for lost instrument files</h3>
10036    
10037    <p>The front-end can retrieve the list of all instrument files in the instruments database
10038                        that don't exist in the filesystem by sending the following command:
10039    </p>
10040    <p>
10041                            </p>
10042    <blockquote class="text">
10043    <p>FIND LOST DB_INSTRUMENT_FILES
10044    </p>
10045    </blockquote><p>
10046                        
10047    </p>
10048    <p>Possible Answers:
10049    </p>
10050    <p>
10051                            </p>
10052    <blockquote class="text">
10053    <p>A comma separated list with the absolute path names
10054                                (encapsulated into apostrophes) of all lost instrument files.
10055    </p>
10056    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10057                                    </p>
10058    <blockquote class="text">
10059    <p>in case it failed, providing an appropriate error code and error message.
10060    </p>
10061    </blockquote>
10062                                
10063    
10064    </blockquote><p>
10065                        
10066    </p>
10067    <p>Example:
10068    </p>
10069    <p>
10070                            </p>
10071    <blockquote class="text">
10072    <p>C: "FIND LOST DB_INSTRUMENT_FILES"
10073    </p>
10074    <p>S: "'/gigs/Bosendorfer 290.gig','/gigs/Steinway D.gig','/gigs/Free Piano.gig'"
10075    </p>
10076    </blockquote><p>
10077                        
10078    </p>
10079    <a name="SET DB_INSTRUMENT FILE_PATH"></a><br /><hr />
10080    <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>
10081    <a name="rfc.section.6.8.24"></a><h3>6.8.24.&nbsp;
10082    Replacing an instrument file</h3>
10083    
10084    <p>The front-end can substitute all occurrences of an instrument file
10085                        in the instruments database with a new one by sending the following command:
10086    </p>
10087    <p>
10088                            </p>
10089    <blockquote class="text">
10090    <p>SET DB_INSTRUMENT FILE_PATH &lt;old_path&gt; &lt;new_path&gt;
10091    </p>
10092    </blockquote><p>
10093                        
10094    </p>
10095    <p>Where &lt;old_path&gt; is the absolute path name of the instrument file
10096                        to substitute with &lt;new_path&gt;.
10097    </p>
10098    <p>Possible Answers:
10099    </p>
10100    <p>
10101                            </p>
10102    <blockquote class="text">
10103    <p>"OK" -
10104                                    </p>
10105    <blockquote class="text">
10106    <p>on success
10107    </p>
10108    </blockquote>
10109                                
10110    
10111    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10112                                    </p>
10113    <blockquote class="text">
10114    <p>in case it failed, providing an appropriate error code and error message.
10115    </p>
10116  </blockquote>  </blockquote>
10117                                
10118    
10119    </blockquote><p>
10120                        
10121    </p>
10122    <p>Example:
10123    </p>
10124    <p>
10125                            </p>
10126    <blockquote class="text">
10127    <p>C: "SET DB_INSTRUMENT FILE_PATH '/gigs/Bosendorfer 290.gig' '/gigs/pianos/Bosendorfer 290.gig'"
10128    </p>
10129    <p>S: "OK"
10130    </p>
10131    </blockquote><p>
10132                        
10133    </p>
10134    <a name="editing_instruments"></a><br /><hr />
10135    <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>
10136    <a name="rfc.section.6.9"></a><h3>6.9.&nbsp;
10137    Editing Instruments</h3>
10138    
10139    <p>The sampler allows to edit instruments while playing with the
10140                    sampler by spawning an external (3rd party) instrument editor
10141                    application for a given instrument. The 3rd party instrument
10142                    editor applications have to place a respective plugin DLL file
10143                    into the sampler's plugins directory. The sampler will
10144                    automatically try to load all plugin DLLs in that directory on
10145                    startup and only on startup!
10146    </p>
10147    <p>At the moment there is only one command for this feature set,
10148                    but this will most probably change in future.
10149    </p>
10150    <a name="EDIT INSTRUMENT"></a><br /><hr />
10151    <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>
10152    <a name="rfc.section.6.9.1"></a><h3>6.9.1.&nbsp;
10153    Opening an appropriate instrument editor application</h3>
10154    
10155    <p>The front-end can request to open an appropriate instrument
10156                        editor application by sending the following command:
10157    </p>
10158    <p>
10159                            </p>
10160    <blockquote class="text">
10161    <p>EDIT CHANNEL INSTRUMENT &lt;sampler-channel&gt;
10162    </p>
10163    </blockquote><p>
10164                        
10165    </p>
10166    <p>Where &lt;sampler-channel&gt; should be replaced by the
10167                        number of the sampler channel as given by the
10168                        <a class='info' href='#ADD CHANNEL'>"ADD CHANNEL"<span> (</span><span class='info'>Adding a new sampler channel</span><span>)</span></a>
10169                        or <a class='info' href='#LIST CHANNELS'>"LIST CHANNELS"<span> (</span><span class='info'>Getting all created sampler channel list</span><span>)</span></a>
10170                        command.
10171    </p>
10172    <p>The sampler will try to ask all registered instrument
10173                        editors (or to be more specific: their sampler plugins)
10174                        whether they are capable to handle the instrument on the
10175                        given sampler channel. The sampler will simply use the first
10176                        instrument editor application which replied with a positive
10177                        answer and spawn that instrument editor application within
10178                        the sampler's process and provide that application access
10179                        to the instrument's data structures, so both applications
10180                        can share and access the same instruments data at the same
10181                        time, thus allowing to immediately hear changes with the
10182                        sampler made by the instrument editor.
10183    </p>
10184    <p>Note: consequently instrument editors are always spawned
10185                        locally on the same machine where the sampler is running
10186                        on!
10187    </p>
10188    <p>Possible Answers:
10189    </p>
10190    <p>
10191                            </p>
10192    <blockquote class="text">
10193    <p>"OK" -
10194                                    </p>
10195    <blockquote class="text">
10196    <p>when an appropriate instrument editor was
10197                                        launched
10198    </p>
10199    </blockquote>
10200                                
10201    
10202    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10203                                    </p>
10204    <blockquote class="text">
10205    <p>when an appropriate instrument editor was
10206                                        launched, but there are noteworthy issues
10207    </p>
10208    </blockquote>
10209                                
10210    
10211    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10212                                    </p>
10213    <blockquote class="text">
10214    <p>when an appropriate instrument editor
10215                                        could not be launched
10216    </p>
10217    </blockquote>
10218                                
10219    
10220    </blockquote><p>
10221                        
10222    </p>
10223  <p>Examples:  <p>Examples:
10224  </p>  </p>
10225  <p></p>  <p>
10226                            </p>
10227    <blockquote class="text">
10228    <p>C: "EDIT CHANNEL INSTRUMENT 0"
10229    </p>
10230    <p>S: "OK"
10231    </p>
10232    </blockquote><p>
10233                        
10234    </p>
10235    <a name="file_management"></a><br /><hr />
10236    <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>
10237    <a name="rfc.section.6.10"></a><h3>6.10.&nbsp;
10238    Managing Files</h3>
10239    
10240    <p>You can query detailed informations about files located
10241                    at the same system where the sampler instance is running on.
10242                    Using this command set allows to retrieve file informations
10243                    even remotely from another machine.
10244    </p>
10245    <a name="GET FILE INSTRUMENTS"></a><br /><hr />
10246    <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>
10247    <a name="rfc.section.6.10.1"></a><h3>6.10.1.&nbsp;
10248    Retrieving amount of instruments of a file</h3>
10249    
10250    <p>The front-end can retrieve the amount of instruments
10251                        within a given instrument file by sending the
10252                        following command:
10253    </p>
10254    <p>
10255                            </p>
10256  <blockquote class="text">  <blockquote class="text">
10257    <p>GET FILE INSTRUMENTS &lt;filename&gt;
10258    </p>
10259    </blockquote><p>
10260                        
10261    </p>
10262    <p>Where &lt;filename&gt; is the name of the instrument
10263                        file (encapsulated into apostrophes, supporting escape
10264                        sequences as described in chapter
10265                        "<a class='info' href='#character_set'>Character Set and Escape
10266                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10267    </p>
10268    <p>The sampler will try to ask all sampler engines,
10269                        whether they support the given file and ask the first
10270                        engine with a positive answer for the amount of
10271                        instruments.
10272    </p>
10273    <p>Possible Answers:
10274    </p>
10275  <p>  <p>
10276                            </p>
10277    <blockquote class="text">
10278    <p>On success, the sampler will answer by
10279                                   returning the amount of instruments.
10280                                
10281    </p>
10282    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10283                                    </p>
10284    <blockquote class="text">
10285    <p>if the file could not be handled
10286  </p>  </p>
10287  </blockquote>  </blockquote>
10288                                
10289    
10290    </blockquote><p>
10291                        
10292    </p>
10293    <p>Examples:
10294    </p>
10295    <p>
10296                            </p>
10297    <blockquote class="text">
10298    <p>C: "GET FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10299    </p>
10300    <p>S: "10"
10301    </p>
10302    </blockquote><p>
10303                        
10304    </p>
10305    <a name="LIST FILE INSTRUMENTS"></a><br /><hr />
10306    <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>
10307    <a name="rfc.section.6.10.2"></a><h3>6.10.2.&nbsp;
10308    Retrieving all instruments of a file</h3>
10309    
10310    <p>The front-end can retrieve a list of all instruments
10311                        within a given instrument file by sending the
10312                        following command:
10313    </p>
10314    <p>
10315                            </p>
10316    <blockquote class="text">
10317    <p>LIST FILE INSTRUMENTS &lt;filename&gt;
10318    </p>
10319    </blockquote><p>
10320                        
10321    </p>
10322    <p>Where &lt;filename&gt; is the name of the instrument
10323                        file (encapsulated into apostrophes, supporting escape
10324                        sequences as described in chapter
10325                        "<a class='info' href='#character_set'>Character Set and Escape
10326                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>").
10327    </p>
10328    <p>The sampler will try to ask all sampler engines,
10329                        whether they support the given file and ask the first
10330                        engine with a positive answer for a list of IDs for the
10331                        instruments in the given file.
10332    </p>
10333    <p>Possible Answers:
10334    </p>
10335    <p>
10336                            </p>
10337    <blockquote class="text">
10338    <p>On success, the sampler will answer by
10339                                   returning a comma separated list of
10340                                   instrument IDs.
10341                                
10342    </p>
10343    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10344                                    </p>
10345    <blockquote class="text">
10346    <p>if the file could not be handled
10347    </p>
10348    </blockquote>
10349                                
10350    
10351    </blockquote><p>
10352                        
10353    </p>
10354    <p>Examples:
10355    </p>
10356    <p>
10357                            </p>
10358    <blockquote class="text">
10359    <p>C: "LIST FILE INSTRUMENTS 'D:/Sounds/Foo.gig'"
10360    </p>
10361    <p>S: "0,1,2,3,4,5,6,7,8,9"
10362    </p>
10363    </blockquote><p>
10364                        
10365    </p>
10366    <a name="GET FILE INSTRUMENT INFO"></a><br /><hr />
10367    <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>
10368    <a name="rfc.section.6.10.3"></a><h3>6.10.3.&nbsp;
10369    Retrieving informations about one instrument in a file</h3>
10370    
10371    <p>The front-end can retrieve detailed informations
10372                        about a specific instrument within a given instrument
10373                        file by sending the following command:
10374    </p>
10375    <p>
10376                            </p>
10377    <blockquote class="text">
10378    <p>GET FILE INSTRUMENT INFO &lt;filename&gt;
10379                                &lt;instr-id&gt;
10380    </p>
10381    </blockquote><p>
10382                        
10383    </p>
10384    <p>Where &lt;filename&gt; is the name of the instrument
10385                        file (encapsulated into apostrophes, supporting escape
10386                        sequences as described in chapter
10387                        "<a class='info' href='#character_set'>Character Set and Escape
10388                            Sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>") and &lt;instr-id&gt; is the numeric
10389                        instrument ID as returned by the
10390                        <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.
10391    </p>
10392    <p>The sampler will try to ask all sampler engines,
10393                        whether they support the given file and ask the first
10394                        engine with a positive answer for informations about the
10395                        specific instrument in the given file.
10396    </p>
10397    <p>Possible Answers:
10398    </p>
10399    <p>
10400                            </p>
10401    <blockquote class="text">
10402    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10403                                Each answer line begins with the settings category name
10404                                followed by a colon and then a space character &lt;SP&gt; and finally
10405                                the info character string to that setting category. At the
10406                                moment the following categories are defined:
10407    </p>
10408    <p>
10409                                    </p>
10410    <blockquote class="text">
10411    <p>NAME -
10412                                            </p>
10413    <blockquote class="text">
10414    <p>name of the instrument as
10415                                                stored in the instrument file
10416    </p>
10417    </blockquote>
10418                                        
10419    
10420    <p>FORMAT_FAMILY -
10421                                            </p>
10422    <blockquote class="text">
10423    <p>name of the sampler format
10424                                                of the given instrument
10425    </p>
10426    </blockquote>
10427                                        
10428    
10429    <p>FORMAT_VERSION -
10430                                            </p>
10431    <blockquote class="text">
10432    <p>version of the sampler format
10433                                                the instrumen is stored as
10434    </p>
10435    </blockquote>
10436                                        
10437    
10438    <p>PRODUCT -
10439                                            </p>
10440    <blockquote class="text">
10441    <p>official product name of the
10442                                                instrument as stored in the file
10443                                                
10444    </p>
10445    </blockquote>
10446                                        
10447    
10448    <p>ARTISTS -
10449                                            </p>
10450    <blockquote class="text">
10451    <p>artists / sample library
10452                                                vendor of the instrument
10453    </p>
10454    </blockquote>
10455                                        
10456    
10457    <p>KEY_BINDINGS -
10458                                            </p>
10459    <blockquote class="text">
10460    <p>comma separated list of integer values representing
10461                                                   the instrument's key mapping in the range between 0 .. 127,
10462                                                   reflecting the analog meaning of the MIDI specification.
10463    </p>
10464    </blockquote>
10465                                        
10466    
10467    <p>KEYSWITCH_BINDINGS -
10468                                            </p>
10469    <blockquote class="text">
10470    <p>comma separated list of integer values representing
10471                                                   the instrument's keyswitch mapping in the range between 0 .. 127,
10472                                                   reflecting the analog meaning of the MIDI specification.
10473    </p>
10474    </blockquote>
10475                                        
10476    
10477    </blockquote>
10478                                
10479    
10480    </blockquote><p>
10481                        
10482    </p>
10483    <p>The mentioned fields above don't have to be in particular order.
10484    </p>
10485    <p>Example:
10486    </p>
10487    <p>
10488                            </p>
10489    <blockquote class="text">
10490    <p>C: "GET FILE INSTRUMENT INFO 'D:/Sounds/Foo.gig' 0"
10491    </p>
10492    <p>S: "NAME: Lunatic Loops"
10493    </p>
10494    <p>&nbsp;&nbsp;&nbsp;"FORMAT_FAMILY: GIG"
10495    </p>
10496    <p>&nbsp;&nbsp;&nbsp;"FORMAT_VERSION: 3"
10497    </p>
10498    <p>&nbsp;&nbsp;&nbsp;"PRODUCT: The Backbone Bongo Beats"
10499    </p>
10500    <p>&nbsp;&nbsp;&nbsp;"ARTISTS: Jimmy the Fish"
10501    </p>
10502    <p>&nbsp;&nbsp;&nbsp;"."
10503    </p>
10504    </blockquote><p>
10505                        
10506    </p>
10507    <a name="effects"></a><br /><hr />
10508    <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>
10509    <a name="rfc.section.6.11"></a><h3>6.11.&nbsp;
10510    Managing Effects</h3>
10511    
10512    <p>Audio effects (e.g. reverb, delay, compression) can be
10513                    applied to the audio signals generated by the sampler. The
10514                    sampler usually provides a set of internal audio effects for
10515                    this task. The exact set of effects depends on the availability
10516                    of third party effect plugins installed on the system where the
10517                    sampler runs on.
10518    </p>
10519    <p>At the moment only "send effects" are supported. Support for
10520                    "insert effects" and "master effects" is planned to be added at
10521                    a later point.
10522    </p>
10523    <p>The following commands allow to retrieve the set of internal
10524                    effects available to the sampler, detailed informations about
10525                    those effects and to create and destroy instances of such
10526                    effects. After an instance of an effect is created, the effect
10527                    instance can be inserted into the audio signal path of the
10528                    sampler, e.g. as send effect.
10529    </p>
10530    <p>The sampler allows to create an arbitrary amount of so called
10531                    send effect chains. Each effect chain can host an arbitrary
10532                    amount of effect instances. The output of the first effect
10533                    instance in an effect chain is fed to the input of the second
10534                    effect instance of the chain and so on. So effects in one chain
10535                    are processed sequentially. Send effect chains however are
10536                    processed in parallel to other send effect chains. Audio signals
10537                    of sampler channels are fed to send effects by creating FX sends
10538                    to the respective sampler channel and assigning a destination
10539                    send effect to that FX by using the
10540                    <a class='info' href='#SET FX_SEND EFFECT'>"SET FX_SEND EFFECT"<span> (</span><span class='info'>Assigning destination effect to an effect send</span><span>)</span></a>
10541                    command. The latter allows to route the FX send to the beginning
10542                    of a send effect chain, as well as directly to any other
10543                    position of the send effect chain.
10544    </p>
10545    <a name="GET AVAILABLE_EFFECTS"></a><br /><hr />
10546    <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>
10547    <a name="rfc.section.6.11.1"></a><h3>6.11.1.&nbsp;
10548    Retrieve amount of available effects</h3>
10549    
10550    <p>The front-end can retrieve the amount of internal
10551                        effects, available to the sampler by sending
10552                        the following command:
10553    </p>
10554    <p>
10555                            </p>
10556    <blockquote class="text">
10557    <p>GET AVAILABLE_EFFECTS
10558    </p>
10559    </blockquote><p>
10560                        
10561    </p>
10562    <p>Possible Answers:
10563    </p>
10564    <p>
10565                            </p>
10566    <blockquote class="text">
10567    <p>The sampler will answer by returning the current
10568                                number of effects available to the sampler.
10569    </p>
10570    </blockquote><p>
10571                        
10572    </p>
10573    <p>Examples:
10574    </p>
10575    <p>
10576                            </p>
10577    <blockquote class="text">
10578    <p>C: "GET AVAILABLE_EFFECTS"
10579    </p>
10580    <p>S: "129"
10581    </p>
10582    </blockquote><p>
10583                        
10584    </p>
10585    <a name="LIST AVAILABLE_EFFECTS"></a><br /><hr />
10586    <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>
10587    <a name="rfc.section.6.11.2"></a><h3>6.11.2.&nbsp;
10588    Get list of available effects</h3>
10589    
10590    <p>The set of available internal effects can change at
10591                        runtime. The front-end can retrieve the list of internal
10592                        effects, available to the sampler by sending the following
10593                        command:
10594    </p>
10595    <p>
10596                            </p>
10597    <blockquote class="text">
10598    <p>LIST AVAILABLE_EFFECTS
10599    </p>
10600    </blockquote><p>
10601                        
10602    </p>
10603    <p>Possible Answers:
10604    </p>
10605    <p>
10606                            </p>
10607    <blockquote class="text">
10608    <p>The sampler will answer by returning a comma
10609                                separated list with numerical IDs of effects. Note:
10610                                the numercial ID of an effect is generated by the
10611                                sampler for the current moment. The numerical ID of
10612                                the same effect can change at runtime, e.g. when the
10613                                user requests a rescan of available effect plugins.
10614                                
10615    </p>
10616    </blockquote><p>
10617                        
10618    </p>
10619    <p>Example:
10620    </p>
10621    <p>
10622                            </p>
10623    <blockquote class="text">
10624    <p>C: "LIST AVAILABLE_EFFECTS"
10625    </p>
10626    <p>S: "5,6,7,120,121,122,123,124"
10627    </p>
10628    </blockquote><p>
10629                        
10630    </p>
10631    <a name="GET EFFECT INFO"></a><br /><hr />
10632    <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>
10633    <a name="rfc.section.6.11.3"></a><h3>6.11.3.&nbsp;
10634    Retrieving general information about an effect</h3>
10635    
10636    <p>The front-end can ask for general informations about an
10637                        effect by sending the following command:
10638    </p>
10639    <p>
10640                            </p>
10641    <blockquote class="text">
10642    <p>GET EFFECT INFO &lt;effect-index&gt;
10643    </p>
10644    </blockquote><p>
10645                        
10646    </p>
10647    <p>Where &lt;effect-index&gt; is the numerical ID of an
10648                        effect as returned by the
10649                        <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10650                        command.
10651    </p>
10652    <p>Possible Answers:
10653    </p>
10654    <p>
10655                            </p>
10656    <blockquote class="text">
10657    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
10658                                Each answer line begins with the effect information
10659                                category name, followed by a colon and then a space
10660                                character &lt;SP&gt; and finally the info character
10661                                string to that effect information category. At the
10662                                moment the following categories are defined:
10663    </p>
10664    <p>
10665                                    </p>
10666    <blockquote class="text">
10667    <p>SYSTEM -
10668                                            </p>
10669    <blockquote class="text">
10670    <p>name of the effect plugin system
10671                                                the effect is based on
10672                                                (e.g. "LADSPA")
10673    </p>
10674    </blockquote>
10675                                        
10676    
10677    <p>MODULE -
10678                                            </p>
10679    <blockquote class="text">
10680    <p>module of the effect plugin
10681                                                system that contains this effect,
10682                                                the module is usually the
10683                                                dynamic-linked library (DLL)
10684                                                filename of the effect plugin,
10685                                                including full path (note that this
10686                                                filename may contain
10687                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10688    </p>
10689    </blockquote>
10690                                        
10691    
10692    <p>NAME -
10693                                            </p>
10694    <blockquote class="text">
10695    <p>character string defining the
10696                                                unique name of the effect within its
10697                                                module (note that the character
10698                                                string may contain
10699                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10700    </p>
10701    </blockquote>
10702                                        
10703    
10704    <p>DESCRIPTION -
10705                                            </p>
10706    <blockquote class="text">
10707    <p>human readable name of the
10708                                                effect, intended to be displayed in
10709                                                user interfaces (note that the
10710                                                character string may contain
10711                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
10712    </p>
10713    </blockquote>
10714                                        
10715    
10716    </blockquote>
10717                                
10718    
10719    </blockquote><p>
10720                        
10721    </p>
10722    <p>The mentioned fields above don't have to be in particular order.
10723    </p>
10724    <p>Example:
10725    </p>
10726    <p>
10727                            </p>
10728    <blockquote class="text">
10729    <p>C: "GET EFFECT INFO 121"
10730    </p>
10731    <p>S: "SYSTEM: LADSPA"
10732    </p>
10733    <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/lowpass_iir_1891.so"
10734    </p>
10735    <p>&nbsp;&nbsp;&nbsp;"NAME: lowpass_iir"
10736    </p>
10737    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Glame Lowpass Filter"
10738    </p>
10739    <p>&nbsp;&nbsp;&nbsp;"."
10740    </p>
10741    </blockquote><p>
10742                        
10743    </p>
10744    <a name="CREATE EFFECT_INSTANCE"></a><br /><hr />
10745    <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>
10746    <a name="rfc.section.6.11.4"></a><h3>6.11.4.&nbsp;
10747    Creating an instance of an effect by its portable ID</h3>
10748    
10749    <p>The front-end can spawn an instance of the desired
10750                        effect by sending the following command:
10751    </p>
10752    <p>
10753                            </p>
10754    <blockquote class="text">
10755    <p>CREATE EFFECT_INSTANCE &lt;effect-system&gt; &lt;module&gt; &lt;effect-name&gt;
10756    </p>
10757    </blockquote><p>
10758                        
10759    </p>
10760    <p>Where &lt;effect-system&gt; is the "SYSTEM" field,
10761                        &lt;module&gt; the "MODULE" field and &lt;effect-name&gt;
10762                        the "NAME" field as returned by the
10763                        <a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
10764                        command. The filename of argument &lt;module&gt; and the
10765                        character string of argument &lt;effect-name&gt; may contain
10766                        <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>.
10767    </p>
10768    <p>The sampler will try to load the requested effect and to
10769                        create an instance of it. To allow loading the same effect
10770                        on a different machine, probably even running a completely
10771                        different operating system (e.g. Linux vs. Windows), the
10772                        sampler tries to match &lt;module&gt; "softly". That means
10773                        it first tries to find an effect that exactly matches the
10774                        given &lt;module&gt; argument. If there is no exact match,
10775                        the sampler will try to lower the restrictions on matching
10776                        the &lt;module&gt; argument more and more, e.g. by ignoring
10777                        upper / lower case differences and by ignoring the path of
10778                        the DLL filename and file extension. If there is still no
10779                        match at the end, the sampler will try to ignore the
10780                        &lt;module&gt; argument completely and as a last resort
10781                        search for an effect that only matches the given
10782                        &lt;effect-system&gt; and &lt;effect-name&gt; arguments.
10783    </p>
10784    <p>Possible Answers:
10785    </p>
10786    <p>
10787                            </p>
10788    <blockquote class="text">
10789    <p>"OK[&lt;effect-instance&gt;]" -
10790                                    </p>
10791    <blockquote class="text">
10792    <p>in case the effect instance was
10793                                        successfully created, where
10794                                        &lt;effect-instance&gt; is the numerical ID
10795                                        of the new effect instance
10796    </p>
10797    </blockquote>
10798                                
10799    
10800    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10801                                    </p>
10802    <blockquote class="text">
10803    <p>in case the effect instance was spawned
10804                                        successfully, but there are noteworthy
10805                                        issue(s) related, providing an appropriate
10806                                        warning code and warning message
10807    </p>
10808    </blockquote>
10809                                
10810    
10811    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10812                                    </p>
10813    <blockquote class="text">
10814    <p>if the effect could not be instantiated
10815    </p>
10816    </blockquote>
10817                                
10818    
10819    </blockquote><p>
10820                        
10821    </p>
10822    <p>Examples:
10823    </p>
10824    <p>
10825                            </p>
10826    <blockquote class="text">
10827    <p>C: "CREATE EFFECT_INSTANCE LADSPA '/usr/lib/ladspa/mod_delay_1419.so' 'modDelay'"
10828    </p>
10829    <p>S: "OK[0]"
10830    </p>
10831    </blockquote><p>
10832                        
10833    </p>
10834    <a name="CREATE EFFECT_INSTANCE (non-portable)"></a><br /><hr />
10835    <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>
10836    <a name="rfc.section.6.11.5"></a><h3>6.11.5.&nbsp;
10837    Creating an instance of an effect by its numerical ID</h3>
10838    
10839    <p>The front-end can spawn an instance of the desired
10840                        effect by sending the following command:
10841    </p>
10842    <p>
10843                            </p>
10844    <blockquote class="text">
10845    <p>CREATE EFFECT_INSTANCE &lt;effect-index&gt;
10846    </p>
10847    </blockquote><p>
10848                        
10849    </p>
10850    <p>Where &lt;effect-index&gt; is the numerical ID of the
10851                        effect as returned by the
10852                        <a class='info' href='#LIST AVAILABLE_EFFECTS'>"LIST AVAILABLE_EFFECTS"<span> (</span><span class='info'>Get list of available effects</span><span>)</span></a>
10853                        command.
10854    </p>
10855    <p>The sampler will try to load the requested effect and to
10856                        create an instance of it.
10857    </p>
10858    <p>Note: Since the numerical ID of a certain effect can
10859                        change at any time, you should not use this command in
10860                        LSCP files to restore a certain effect at a later time! To
10861                        store a sampler session including all its effects, use the
10862                        <a class='info' href='#CREATE EFFECT_INSTANCE'>portable text-based
10863                        version of "CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> instead! This
10864                        allows to restore a sampler session with all its effects
10865                        also on other machines, possibly even running a completely
10866                        different operating system (e.g. Linux vs. Windows), with
10867                        different plugin directories or plugin DLL names.
10868    </p>
10869    <p>Possible Answers:
10870    </p>
10871    <p>
10872                            </p>
10873    <blockquote class="text">
10874    <p>"OK[&lt;effect-instance&gt;]" -
10875                                    </p>
10876    <blockquote class="text">
10877    <p>in case the effect instance was
10878                                        successfully created, where
10879                                        &lt;effect-instance&gt; is the numerical ID
10880                                        of the new effect instance
10881    </p>
10882    </blockquote>
10883                                
10884    
10885    <p>"WRN:&lt;warning-code&gt;:&lt;warning-message&gt;" -
10886                                    </p>
10887    <blockquote class="text">
10888    <p>in case the effect instance was spawned
10889                                        successfully, but there are noteworthy
10890                                        issue(s) related, providing an appropriate
10891                                        warning code and warning message
10892    </p>
10893    </blockquote>
10894                                
10895    
10896    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10897                                    </p>
10898    <blockquote class="text">
10899    <p>if the effect could not be instantiated
10900    </p>
10901    </blockquote>
10902                                
10903    
10904    </blockquote><p>
10905                        
10906    </p>
10907    <p>Examples:
10908    </p>
10909    <p>
10910                            </p>
10911    <blockquote class="text">
10912    <p>C: "CREATE EFFECT_INSTANCE 72"
10913    </p>
10914    <p>S: "OK[5]"
10915    </p>
10916    </blockquote><p>
10917                        
10918    </p>
10919    <a name="DESTROY EFFECT_INSTANCE"></a><br /><hr />
10920    <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>
10921    <a name="rfc.section.6.11.6"></a><h3>6.11.6.&nbsp;
10922    Destroy an effect instance</h3>
10923    
10924    <p>The front-end can destroy an unusued effect instance and
10925                        thus freeing it from memory by sending the following command:
10926    </p>
10927    <p>
10928                            </p>
10929    <blockquote class="text">
10930    <p>DESTROY EFFECT_INSTANCE &lt;effect-instance&gt;
10931    </p>
10932    </blockquote><p>
10933                        
10934    </p>
10935    <p>Where &lt;effect-instance&gt; is the numerical ID of the
10936                        effect instance as returned by the
10937                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
10938                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
10939                        command.
10940    </p>
10941    <p>The effect instance can only be destroyed if it's not
10942                        used in any part of the sampler's audio signal path anymore.
10943                        If the effect instance is still in use somewhere, trying to
10944                        destroy the effect instance will result in an error
10945                        message.
10946    </p>
10947    <p>Possible Answers:
10948    </p>
10949    <p>
10950                            </p>
10951    <blockquote class="text">
10952    <p>"OK" -
10953                                    </p>
10954    <blockquote class="text">
10955    <p>in case the effect instance was successfully destroyed
10956    </p>
10957    </blockquote>
10958                                
10959    
10960    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
10961                                    </p>
10962    <blockquote class="text">
10963    <p>in case it failed, providing an appropriate error code and
10964                                        error message
10965    </p>
10966    </blockquote>
10967                                
10968    
10969    </blockquote><p>
10970                        
10971    </p>
10972    <p>Examples:
10973    </p>
10974    <p>
10975                            </p>
10976    <blockquote class="text">
10977    <p>C: "DESTROY EFFECT_INSTANCE 5"
10978    </p>
10979    <p>S: "OK"
10980    </p>
10981    </blockquote><p>
10982                        
10983    </p>
10984    <a name="GET EFFECT_INSTANCES"></a><br /><hr />
10985    <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>
10986    <a name="rfc.section.6.11.7"></a><h3>6.11.7.&nbsp;
10987    Retrieve amount of effect instances</h3>
10988    
10989    <p>The front-end can retrieve the current amount of effect
10990                        instances by sending the following command:
10991    </p>
10992    <p>
10993                            </p>
10994    <blockquote class="text">
10995    <p>GET EFFECT_INSTANCES
10996    </p>
10997    </blockquote><p>
10998                        
10999    </p>
11000    <p>Possible Answers:
11001    </p>
11002    <p>
11003                            </p>
11004    <blockquote class="text">
11005    <p>The sampler will answer by returning the current
11006                                number of effect instances created and not yet
11007                                destroyed in the current sampler session.
11008    </p>
11009    </blockquote><p>
11010                        
11011    </p>
11012    <p>Examples:
11013    </p>
11014    <p>
11015                            </p>
11016    <blockquote class="text">
11017    <p>C: "GET EFFECT_INSTANCES"
11018    </p>
11019    <p>S: "14"
11020    </p>
11021    </blockquote><p>
11022                        
11023    </p>
11024    <a name="LIST EFFECT_INSTANCES"></a><br /><hr />
11025    <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>
11026    <a name="rfc.section.6.11.8"></a><h3>6.11.8.&nbsp;
11027    Get list of effect instances</h3>
11028    
11029    <p>The front-end can retrieve the current list of effect
11030                        instances by sending the following command:
11031    </p>
11032    <p>
11033                            </p>
11034    <blockquote class="text">
11035    <p>LIST EFFECT_INSTANCES
11036    </p>
11037    </blockquote><p>
11038                        
11039    </p>
11040    <p>Possible Answers:
11041    </p>
11042    <p>
11043                            </p>
11044    <blockquote class="text">
11045    <p>The sampler will answer by returning a comma
11046                                separated list with numerical IDs of effects
11047                                instances.
11048                                
11049    </p>
11050    </blockquote><p>
11051                        
11052    </p>
11053    <p>Example:
11054    </p>
11055    <p>
11056                            </p>
11057    <blockquote class="text">
11058    <p>C: "LIST EFFECT_INSTANCES"
11059    </p>
11060    <p>S: "9,11,14,15,16,17,25"
11061    </p>
11062    </blockquote><p>
11063                        
11064    </p>
11065    <a name="GET EFFECT_INSTANCE INFO"></a><br /><hr />
11066    <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>
11067    <a name="rfc.section.6.11.9"></a><h3>6.11.9.&nbsp;
11068    Retrieving current information about an effect instance</h3>
11069    
11070    <p>The front-end can ask for the current informations about
11071                        a particular effect instance by sending the following command:
11072    </p>
11073    <p>
11074                            </p>
11075    <blockquote class="text">
11076    <p>GET EFFECT_INSTANCE INFO &lt;effect-instance&gt;
11077    </p>
11078    </blockquote><p>
11079                        
11080    </p>
11081    <p>Where &lt;effect-instance&gt; is the numerical ID of an
11082                        effect instance as returned by the
11083                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
11084                        or
11085                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11086                        command.
11087    </p>
11088    <p>Possible Answers:
11089    </p>
11090    <p>
11091                            </p>
11092    <blockquote class="text">
11093    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11094                                Each answer line begins with the information
11095                                category name, followed by a colon and then a space
11096                                character &lt;SP&gt; and finally the info character
11097                                string to that information category. At the
11098                                moment the following categories are defined:
11099    </p>
11100    <p>
11101                                    </p>
11102    <blockquote class="text">
11103    <p>SYSTEM -
11104                                            </p>
11105    <blockquote class="text">
11106    <p>name of the effect plugin system
11107                                                the effect is based on
11108                                                (e.g. "LADSPA")
11109    </p>
11110    </blockquote>
11111                                        
11112    
11113    <p>MODULE -
11114                                            </p>
11115    <blockquote class="text">
11116    <p>module of the effect plugin
11117                                                system that contains this effect,
11118                                                the module is usually the
11119                                                dynamic-linked library (DLL)
11120                                                filename of the effect plugin,
11121                                                including full path (note that this
11122                                                filename may contain
11123                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11124    </p>
11125    </blockquote>
11126                                        
11127    
11128    <p>NAME -
11129                                            </p>
11130    <blockquote class="text">
11131    <p>character string defining the
11132                                                unique name of the effect within its
11133                                                module (note that the character
11134                                                string may contain
11135                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11136    </p>
11137    </blockquote>
11138                                        
11139    
11140    <p>DESCRIPTION -
11141                                            </p>
11142    <blockquote class="text">
11143    <p>human readable name of the
11144                                                effect, intended to be displayed in
11145                                                user interfaces (note that the
11146                                                character string may contain
11147                                                <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11148    </p>
11149    </blockquote>
11150                                        
11151    
11152    <p>INPUT_CONTROLS -
11153                                            </p>
11154    <blockquote class="text">
11155    <p>amount of input controls the
11156                                                effect instance provides, to allow
11157                                                controlling the effect parameters in
11158                                                realtime
11159    </p>
11160    </blockquote>
11161                                        
11162    
11163    </blockquote>
11164                                
11165    
11166    </blockquote><p>
11167                        
11168    </p>
11169    <p>The mentioned fields above don't have to be in particular order.
11170    </p>
11171    <p>Example:
11172    </p>
11173    <p>
11174                            </p>
11175    <blockquote class="text">
11176    <p>C: "GET EFFECT_INSTANCE INFO 3"
11177    </p>
11178    <p>S: "SYSTEM: LADSPA"
11179    </p>
11180    <p>&nbsp;&nbsp;&nbsp;"MODULE: /usr/lib/ladspa/mod_delay_1419.so"
11181    </p>
11182    <p>&nbsp;&nbsp;&nbsp;"NAME: modDelay"
11183    </p>
11184    <p>&nbsp;&nbsp;&nbsp;"DESCRIPTION: Modulatable delay"
11185    </p>
11186    <p>&nbsp;&nbsp;&nbsp;"INPUT_CONTROLS: 1"
11187    </p>
11188    <p>&nbsp;&nbsp;&nbsp;"."
11189    </p>
11190    </blockquote><p>
11191                        
11192    </p>
11193    <a name="GET EFFECT_INSTANCE_INPUT_CONTROL INFO"></a><br /><hr />
11194    <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>
11195    <a name="rfc.section.6.11.10"></a><h3>6.11.10.&nbsp;
11196    Retrieving information about an effect parameter</h3>
11197    
11198    <p>Effects typically provide a certain set of effect
11199                        parameters which can be altered by the user in realtime
11200                        (e.g. depth of a reverb effect, duration of a delay effect,
11201                        dry / wet signal ratio). Those controllable effect parameters
11202                        are called "input controls". The front-end can ask for the
11203                        current informations of an effect instance's input control
11204                        by sending the following command:
11205    </p>
11206    <p>
11207                            </p>
11208    <blockquote class="text">
11209    <p>GET EFFECT_INSTANCE_INPUT_CONTROL INFO &lt;effect-instance&gt; &lt;input-control&gt;
11210    </p>
11211    </blockquote><p>
11212                        
11213    </p>
11214    <p>Where &lt;effect-instance&gt; is the numerical ID of an
11215                        effect instance as returned by the
11216                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
11217                        or
11218                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11219                        command and &lt;input-control&gt; is the index of the input
11220                        control within the numerical bounds as returned by the
11221                        "INPUT_CONTROLS" field of the
11222                        <a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
11223                        command.
11224    </p>
11225    <p>Possible Answers:
11226    </p>
11227    <p>
11228                            </p>
11229    <blockquote class="text">
11230    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11231                                Each answer line begins with the information
11232                                category name, followed by a colon and then a space
11233                                character &lt;SP&gt; and finally the info character
11234                                string to that information category. There are
11235                                information categories which are always returned,
11236                                independent of the respective effect parameter and
11237                                there are optional information categories
11238                                which are only shown for certain effect parameters.
11239                                At the moment the following categories are defined:
11240    </p>
11241    <p>
11242                                    </p>
11243    <blockquote class="text">
11244    <p>DESCRIPTION -
11245                                            </p>
11246    <blockquote class="text">
11247    <p>(always returned)
11248                                                human readable name of the
11249                                                effect parameter, intended to be
11250                                                displayed in user interfaces (note
11251                                                that the character string may
11252                                                contain <a class='info' href='#character_set'>escape sequences<span> (</span><span class='info'>Character Set and Escape Sequences</span><span>)</span></a>)
11253    </p>
11254    </blockquote>
11255                                        
11256    
11257    <p>VALUE -
11258                                            </p>
11259    <blockquote class="text">
11260    <p>
11261                                                (always returned)
11262                                                current (optional dotted)
11263                                                floating point value of this effect
11264                                                parameter
11265    </p>
11266    </blockquote>
11267                                        
11268    
11269    <p>RANGE_MIN -
11270                                            </p>
11271    <blockquote class="text">
11272    <p>
11273                                                (optionally returned)
11274                                                minimum allowed value for this
11275                                                effect parameter
11276    </p>
11277    </blockquote>
11278                                        
11279    
11280    <p>RANGE_MAX -
11281                                            </p>
11282    <blockquote class="text">
11283    <p>
11284                                                (optionally returned)
11285                                                maximum allowed value for this
11286                                                effect parameter
11287    </p>
11288    </blockquote>
11289                                        
11290    
11291    <p>POSSIBILITIES -
11292                                            </p>
11293    <blockquote class="text">
11294    <p>
11295                                                (optionally returned)
11296                                                comma separated list of
11297                                                (optional dotted) floating point
11298                                                numbers, reflecting the exact set of
11299                                                possible values for this effect
11300                                                parameter
11301    </p>
11302    </blockquote>
11303                                        
11304    
11305    <p>DEFAULT -
11306                                            </p>
11307    <blockquote class="text">
11308    <p>
11309                                                (optionally returned)
11310                                                default value of this effect
11311                                                parameter
11312    </p>
11313    </blockquote>
11314                                        
11315    
11316    </blockquote>
11317                                
11318    
11319    </blockquote><p>
11320                        
11321    </p>
11322    <p>The mentioned fields above don't have to be in particular order.
11323    </p>
11324    <p>Example:
11325    </p>
11326    <p>
11327                            </p>
11328    <blockquote class="text">
11329    <p>C: "GET EFFECT_INSTANCE_INPUT_CONTROL INFO 1 0"
11330    </p>
11331    <p>S: "DESCRIPTION: Base delay (s)"
11332    </p>
11333    <p>&nbsp;&nbsp;&nbsp;"VALUE: 0.500"
11334    </p>
11335    <p>&nbsp;&nbsp;&nbsp;"RANGE_MIN: 0.000"
11336    </p>
11337    <p>&nbsp;&nbsp;&nbsp;"."
11338    </p>
11339    </blockquote><p>
11340                        
11341    </p>
11342    <a name="SET EFFECT_INSTANCE_INPUT_CONTROL VALUE"></a><br /><hr />
11343    <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>
11344    <a name="rfc.section.6.11.11"></a><h3>6.11.11.&nbsp;
11345    Altering an effect parameter</h3>
11346    
11347    <p>The front-end can alter the current value of an effect
11348                        parameter by sending the following command:
11349    </p>
11350    <p>
11351                            </p>
11352    <blockquote class="text">
11353    <p>SET EFFECT_INSTANCE_INPUT_CONTROL VALUE &lt;effect-instance&gt; &lt;input-control&gt; &lt;value&gt;
11354    </p>
11355    </blockquote><p>
11356                        
11357    </p>
11358    <p>Where &lt;effect-instance&gt; is the numerical ID of the
11359                        effect instance as returned by the
11360                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11361                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11362                        command, &lt;input-control&gt; is the index of the input
11363                        control within the numerical bounds as returned by the
11364                        "INPUT_CONTROLS" field of the
11365                        <a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
11366                        command and &lt;value&gt; is the new (optional dotted)
11367                        floating point value for this effect parameter.
11368    </p>
11369    <p>Possible Answers:
11370    </p>
11371    <p>
11372                            </p>
11373    <blockquote class="text">
11374    <p>"OK" -
11375                                    </p>
11376    <blockquote class="text">
11377    <p>in case the effect was altered successfully
11378    </p>
11379    </blockquote>
11380                                
11381    
11382    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11383                                    </p>
11384    <blockquote class="text">
11385    <p>in case it failed, providing an appropriate error code and
11386                                        error message
11387    </p>
11388    </blockquote>
11389                                
11390    
11391    </blockquote><p>
11392                        
11393    </p>
11394    <p>Examples:
11395    </p>
11396    <p>
11397                            </p>
11398    <blockquote class="text">
11399    <p>C: "SET EFFECT_INSTANCE_INPUT_CONTROL VALUE 0 1 0.5"
11400    </p>
11401    <p>S: "OK"
11402    </p>
11403    </blockquote><p>
11404                        
11405    </p>
11406    <a name="GET SEND_EFFECT_CHAINS"></a><br /><hr />
11407    <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>
11408    <a name="rfc.section.6.11.12"></a><h3>6.11.12.&nbsp;
11409    Retrieve amount of send effect chains</h3>
11410    
11411    <p>The front-end can retrieve the current amount of send
11412                        effect chains of an audio output device by sending the
11413                        following command:
11414    </p>
11415    <p>
11416                            </p>
11417    <blockquote class="text">
11418    <p>GET SEND_EFFECT_CHAINS &lt;audio-device&gt;
11419    </p>
11420    </blockquote><p>
11421                        
11422    </p>
11423    <p>Where &lt;audio-device&gt; should be replaced by the
11424                        numerical ID of the audio output device as given by the
11425                        <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>
11426                        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>
11427                        command.
11428    </p>
11429    <p>Possible Answers:
11430    </p>
11431    <p>
11432                            </p>
11433    <blockquote class="text">
11434    <p>The sampler will answer by returning the current
11435                                number of send effect chains of the supplied audio
11436                                output device.
11437    </p>
11438    </blockquote><p>
11439                        
11440    </p>
11441    <p>Examples:
11442    </p>
11443    <p>
11444                            </p>
11445    <blockquote class="text">
11446    <p>C: "GET SEND_EFFECT_CHAINS 0"
11447    </p>
11448    <p>S: "4"
11449    </p>
11450    </blockquote><p>
11451                        
11452    </p>
11453    <a name="LIST SEND_EFFECT_CHAINS"></a><br /><hr />
11454    <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>
11455    <a name="rfc.section.6.11.13"></a><h3>6.11.13.&nbsp;
11456    Retrieve list of send effect chains</h3>
11457    
11458    <p>The front-end can retrieve the current list of send
11459                        effect chains of an audio output device by sending the
11460                        following command:
11461    </p>
11462    <p>
11463                            </p>
11464    <blockquote class="text">
11465    <p>LIST SEND_EFFECT_CHAINS &lt;audio-device&gt;
11466    </p>
11467    </blockquote><p>
11468                        
11469    </p>
11470    <p>Where &lt;audio-device&gt; should be replaced by the
11471                        numerical ID of the audio output device as given by the
11472                        <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>
11473                        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>
11474                        command.
11475    </p>
11476    <p>Possible Answers:
11477    </p>
11478    <p>
11479                            </p>
11480    <blockquote class="text">
11481    <p>The sampler will answer by returning a comma
11482                                separated list with numerical IDs of send effect
11483                                chains of the supplied audio output device.
11484                                
11485    </p>
11486    </blockquote><p>
11487                        
11488    </p>
11489    <p>Examples:
11490    </p>
11491    <p>
11492                            </p>
11493    <blockquote class="text">
11494    <p>C: "LIST SEND_EFFECT_CHAINS 0"
11495    </p>
11496    <p>S: "3,4,7"
11497    </p>
11498    </blockquote><p>
11499                        
11500    </p>
11501    <a name="ADD SEND_EFFECT_CHAIN"></a><br /><hr />
11502    <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>
11503    <a name="rfc.section.6.11.14"></a><h3>6.11.14.&nbsp;
11504    Add send effect chain</h3>
11505    
11506    <p>The front-end can add a send effect chain by sending the
11507                        following command:
11508    </p>
11509    <p>
11510                            </p>
11511    <blockquote class="text">
11512    <p>ADD SEND_EFFECT_CHAIN &lt;audio-device&gt;
11513    </p>
11514    </blockquote><p>
11515                        
11516    </p>
11517    <p>Where &lt;audio-device&gt; should be replaced by the
11518                        numerical ID of the audio output device as given by the
11519                        <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>
11520                        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>
11521                        command.
11522    </p>
11523    <p>Possible Answers:
11524    </p>
11525    <p>
11526                            </p>
11527    <blockquote class="text">
11528    <p>"OK[&lt;effect-chain&gt;]" -
11529                                    </p>
11530    <blockquote class="text">
11531    <p>in case the send effect chain was
11532                                        added successfully, where
11533                                        &lt;effect-chain&gt; is the numerical ID
11534                                        of the new send effect chain
11535    </p>
11536    </blockquote>
11537                                
11538    
11539    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11540                                    </p>
11541    <blockquote class="text">
11542    <p>if the send effect chain could not be added
11543    </p>
11544    </blockquote>
11545                                
11546    
11547    </blockquote><p>
11548                        
11549    </p>
11550    <p>Examples:
11551    </p>
11552    <p>
11553                            </p>
11554    <blockquote class="text">
11555    <p>C: "ADD SEND_EFFECT_CHAIN 0"
11556    </p>
11557    <p>S: "OK[2]"
11558    </p>
11559    </blockquote><p>
11560                        
11561    </p>
11562    <a name="REMOVE SEND_EFFECT_CHAIN"></a><br /><hr />
11563    <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>
11564    <a name="rfc.section.6.11.15"></a><h3>6.11.15.&nbsp;
11565    Remove send effect chain</h3>
11566    
11567    <p>The front-end can remove a send effect chain by sending
11568                        the following command:
11569    </p>
11570    <p>
11571                            </p>
11572    <blockquote class="text">
11573    <p>REMOVE SEND_EFFECT_CHAIN &lt;audio-device&gt; &lt;effect-chain&gt;
11574    </p>
11575    </blockquote><p>
11576                        
11577    </p>
11578    <p>Where &lt;audio-device&gt; should be replaced by the
11579                        numerical ID of the audio output device as given by the
11580                        <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>
11581                        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>
11582                        command and &lt;effect-chain&gt; by the numerical ID as
11583                        returned by the
11584                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11585                        or
11586                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11587                        command.
11588    </p>
11589    <p>Possible Answers:
11590    </p>
11591    <p>
11592                            </p>
11593    <blockquote class="text">
11594    <p>"OK" -
11595                                    </p>
11596    <blockquote class="text">
11597    <p>in case the send effect chain was
11598                                        removed successfully
11599    </p>
11600    </blockquote>
11601                                
11602    
11603    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11604                                    </p>
11605    <blockquote class="text">
11606    <p>if the send effect chain could not be removed
11607    </p>
11608    </blockquote>
11609                                
11610    
11611    </blockquote><p>
11612                        
11613    </p>
11614    <p>Examples:
11615    </p>
11616    <p>
11617                            </p>
11618    <blockquote class="text">
11619    <p>C: "REMOVE SEND_EFFECT_CHAIN 0 2"
11620    </p>
11621    <p>S: "OK"
11622    </p>
11623    </blockquote><p>
11624                        
11625    </p>
11626    <a name="GET SEND_EFFECT_CHAIN INFO"></a><br /><hr />
11627    <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>
11628    <a name="rfc.section.6.11.16"></a><h3>6.11.16.&nbsp;
11629    Retrieving information about a send effect chain</h3>
11630    
11631    <p>The front-end can ask for informations of a send effect
11632                        chain by sending the following command:
11633    </p>
11634    <p>
11635                            </p>
11636    <blockquote class="text">
11637    <p>GET SEND_EFFECT_CHAIN INFO &lt;audio-device&gt; &lt;effect-chain&gt;
11638    </p>
11639    </blockquote><p>
11640                        
11641    </p>
11642    <p>Where &lt;audio-device&gt; should be replaced by the
11643                        numerical ID of the audio output device as given by the
11644                        <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>
11645                        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>
11646                        command and &lt;effect-chain&gt; by the numerical ID as
11647                        returned by the
11648                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11649                        or
11650                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11651                        command.
11652    </p>
11653    <p>Possible Answers:
11654    </p>
11655    <p>
11656                            </p>
11657    <blockquote class="text">
11658    <p>LinuxSampler will answer by sending a &lt;CRLF&gt; separated list.
11659                                Each answer line begins with the information
11660                                category name, followed by a colon and then a space
11661                                character &lt;SP&gt; and finally the info character
11662                                string to that information category.
11663                                At the moment the following categories are defined:
11664    </p>
11665    <p>
11666                                    </p>
11667    <blockquote class="text">
11668    <p>EFFECT_COUNT -
11669                                            </p>
11670    <blockquote class="text">
11671    <p>amount of effects in this send
11672                                                effect chain
11673    </p>
11674    </blockquote>
11675                                        
11676    
11677    <p>EFFECT_SEQUENCE -
11678                                            </p>
11679    <blockquote class="text">
11680    <p>comma separated list of the
11681                                                numerical IDs of the effect
11682                                                instances in this send effect chain,
11683                                                in the order as they are procssed in
11684                                                the effect chain
11685    </p>
11686    </blockquote>
11687                                        
11688    
11689    </blockquote>
11690                                
11691    
11692    </blockquote><p>
11693                        
11694    </p>
11695    <p>The mentioned fields above don't have to be in particular order.
11696    </p>
11697    <p>Example:
11698    </p>
11699    <p>
11700                            </p>
11701    <blockquote class="text">
11702    <p>C: "GET SEND_EFFECT_CHAIN INFO 0 2"
11703    </p>
11704    <p>S: "EFFECT_COUNT: 3"
11705    </p>
11706    <p>&nbsp;&nbsp;&nbsp;"EFFECT_SEQUENCE: 31,4,7"
11707    </p>
11708    <p>&nbsp;&nbsp;&nbsp;"."
11709    </p>
11710    </blockquote><p>
11711                        
11712    </p>
11713    <a name="APPEND SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11714    <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>
11715    <a name="rfc.section.6.11.17"></a><h3>6.11.17.&nbsp;
11716    Append effect instance to a send effect chain</h3>
11717    
11718    <p>The front-end can add an unused effect instance to the
11719                        end of a send effect chain by sending the following command:
11720    </p>
11721    <p>
11722                            </p>
11723    <blockquote class="text">
11724    <p>APPEND SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;effect-instance&gt;
11725    </p>
11726    </blockquote><p>
11727                        
11728    </p>
11729    <p>Where &lt;audio-device&gt; should be replaced by the
11730                        numerical ID of the audio output device as given by the
11731                        <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>
11732                        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>
11733                        command and &lt;effect-chain&gt; by the numerical ID as
11734                        returned by the
11735                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11736                        or
11737                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11738                        command and &lt;effect-instance&gt; as returned by the
11739                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11740                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11741                        command.
11742    </p>
11743    <p>Only unused effect instances can be added to the effect
11744                        chain. Trying to add an effect instance which is already in
11745                        use somewhere in the audio signal path of the sampler will
11746                        result in an error.
11747    </p>
11748    <p>Possible Answers:
11749    </p>
11750    <p>
11751                            </p>
11752    <blockquote class="text">
11753    <p>"OK" -
11754                                    </p>
11755    <blockquote class="text">
11756    <p>in case the effect instance was
11757                                        added successfully to the chain
11758    </p>
11759    </blockquote>
11760                                
11761    
11762    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11763                                    </p>
11764    <blockquote class="text">
11765    <p>if the effect instance could not be added
11766    </p>
11767    </blockquote>
11768                                
11769    
11770    </blockquote><p>
11771                        
11772    </p>
11773    <p>Examples:
11774    </p>
11775    <p>
11776                            </p>
11777    <blockquote class="text">
11778    <p>C: "APPEND SEND_EFFECT_CHAIN EFFECT 0 2 38"
11779    </p>
11780    <p>S: "OK"
11781    </p>
11782    </blockquote><p>
11783                        
11784    </p>
11785    <a name="INSERT SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11786    <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>
11787    <a name="rfc.section.6.11.18"></a><h3>6.11.18.&nbsp;
11788    Insert effect instance to a send effect chain</h3>
11789    
11790    <p>The front-end can add an unused effect instance to a
11791                        certain position of a send effect chain by sending the
11792                        following command:
11793    </p>
11794    <p>
11795                            </p>
11796    <blockquote class="text">
11797    <p>INSERT SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt; &lt;effect-instance&gt;
11798    </p>
11799    </blockquote><p>
11800                        
11801    </p>
11802    <p>Where &lt;audio-device&gt; should be replaced by the
11803                        numerical ID of the audio output device as given by the
11804                        <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>
11805                        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>
11806                        command, &lt;effect-chain&gt; by the numerical ID as
11807                        returned by the
11808                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11809                        or
11810                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11811                        command, &lt;effect-instance&gt; as returned by the
11812                        <a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a> or
11813                        <a class='info' href='#LIST EFFECT_INSTANCES'>"LIST EFFECT_INSTANCES"<span> (</span><span class='info'>Get list of effect instances</span><span>)</span></a>
11814                        command and &lt;chain-pos&gt; the exact position of the
11815                        effect chain where the supplied effect shall be inserted
11816                        to.
11817    </p>
11818    <p>Only unused effect instances can be added to the effect
11819                        chain. Trying to add an effect instance which is already in
11820                        use somewhere in the audio signal path of the sampler will
11821                        result in an error.
11822    </p>
11823    <p>Possible Answers:
11824    </p>
11825    <p>
11826                            </p>
11827    <blockquote class="text">
11828    <p>"OK" -
11829                                    </p>
11830    <blockquote class="text">
11831    <p>in case the effect instance was
11832                                        added successfully to the chain
11833    </p>
11834    </blockquote>
11835                                
11836    
11837    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11838                                    </p>
11839    <blockquote class="text">
11840    <p>if the effect instance could not be added
11841    </p>
11842    </blockquote>
11843                                
11844    
11845    </blockquote><p>
11846                        
11847    </p>
11848    <p>Examples:
11849    </p>
11850    <p>
11851                            </p>
11852    <blockquote class="text">
11853    <p>C: "INSERT SEND_EFFECT_CHAIN EFFECT 0 2 4 38"
11854    </p>
11855    <p>S: "OK"
11856    </p>
11857    </blockquote><p>
11858                        
11859    </p>
11860    <a name="REMOVE SEND_EFFECT_CHAIN EFFECT"></a><br /><hr />
11861    <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>
11862    <a name="rfc.section.6.11.19"></a><h3>6.11.19.&nbsp;
11863    Remove effect instance from send effect chain</h3>
11864    
11865    <p>The front-end can remove an effect instance from a
11866                        certain position of a send effect chain by sending the
11867                        following command:
11868    </p>
11869    <p>
11870                            </p>
11871    <blockquote class="text">
11872    <p>REMOVE SEND_EFFECT_CHAIN EFFECT &lt;audio-device&gt; &lt;effect-chain&gt; &lt;chain-pos&gt;
11873    </p>
11874    </blockquote><p>
11875                        
11876    </p>
11877    <p>Where &lt;audio-device&gt; should be replaced by the
11878                        numerical ID of the audio output device as given by the
11879                        <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>
11880                        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>
11881                        command, &lt;effect-chain&gt; by the numerical ID as
11882                        returned by the
11883                        <a class='info' href='#ADD SEND_EFFECT_CHAIN'>"ADD SEND_EFFECT_CHAIN"<span> (</span><span class='info'>Add send effect chain</span><span>)</span></a>
11884                        or
11885                        <a class='info' href='#LIST SEND_EFFECT_CHAINS'>"LIST SEND_EFFECT_CHAINS"<span> (</span><span class='info'>Retrieve list of send effect chains</span><span>)</span></a>
11886                        command and &lt;chain-pos&gt; the exact position of the
11887                        effect instance to be removed from the effect chain.
11888    </p>
11889    <p>Possible Answers:
11890    </p>
11891    <p>
11892                            </p>
11893    <blockquote class="text">
11894    <p>"OK" -
11895                                    </p>
11896    <blockquote class="text">
11897    <p>in case the effect instance was
11898                                        removed successfully
11899    </p>
11900    </blockquote>
11901                                
11902    
11903    <p>"ERR:&lt;error-code&gt;:&lt;error-message&gt;" -
11904                                    </p>
11905    <blockquote class="text">
11906    <p>if the effect instance could not be removed
11907    </p>
11908    </blockquote>
11909                                
11910    
11911    </blockquote><p>
11912                        
11913    </p>
11914    <p>Examples:
11915    </p>
11916    <p>
11917                            </p>
11918    <blockquote class="text">
11919    <p>C: "REMOVE SEND_EFFECT_CHAIN EFFECT 0 2 4"
11920    </p>
11921    <p>S: "OK"
11922    </p>
11923    </blockquote><p>
11924                        
11925    </p>
11926  <a name="command_syntax"></a><br /><hr />  <a name="command_syntax"></a><br /><hr />
11927  <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>
11928  <a name="rfc.section.6"></a><h3>6.&nbsp;Command Syntax</h3>  <a name="rfc.section.7"></a><h3>7.&nbsp;
11929    Command Syntax</h3>
11930    
11931    <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>
11932                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>)
11933                where applicable.
11934                
11935    </p>
11936    <p>input =
11937            </p>
11938    <blockquote class="text">
11939    <p>line LF
11940                    
11941    </p>
11942    <p>/ line CR LF
11943                    
11944    </p>
11945    </blockquote><p>
11946    
11947    </p>
11948    <p>line =
11949            </p>
11950    <blockquote class="text">
11951    <p>/* epsilon (empty line ignored) */
11952                    
11953    </p>
11954    <p>/ comment
11955                    
11956    </p>
11957    <p>/ command
11958                    
11959    </p>
11960    <p>/ error
11961                    
11962    </p>
11963    </blockquote><p>
11964    
11965    </p>
11966    <p>comment =
11967            </p>
11968    <blockquote class="text">
11969    <p>'#'
11970                    
11971    </p>
11972    <p>/ comment '#'
11973                    
11974    </p>
11975    <p>/ comment SP
11976                    
11977    </p>
11978    <p>/ comment number
11979                    
11980    </p>
11981    <p>/ comment string
11982                    
11983    </p>
11984    </blockquote><p>
11985    
11986  <p>TODO: will soon automatically included from src/network/lscp.y,  </p>
11987              meanwhile have a look at that file to get the exact definition of  <p>command =
11988              the command syntax.          </p>
11989    <blockquote class="text">
11990    <p>ADD SP add_instruction
11991                    
11992    </p>
11993    <p>/ MAP SP map_instruction
11994                    
11995    </p>
11996    <p>/ UNMAP SP unmap_instruction
11997                    
11998    </p>
11999    <p>/ GET SP get_instruction
12000                    
12001    </p>
12002    <p>/ CREATE SP create_instruction
12003                    
12004    </p>
12005    <p>/ DESTROY SP destroy_instruction
12006                    
12007    </p>
12008    <p>/ LIST SP list_instruction
12009                    
12010    </p>
12011    <p>/ LOAD SP load_instruction
12012                    
12013    </p>
12014    <p>/ REMOVE SP remove_instruction
12015                    
12016    </p>
12017    <p>/ SET SP set_instruction
12018                    
12019    </p>
12020    <p>/ SUBSCRIBE SP subscribe_event
12021                    
12022    </p>
12023    <p>/ UNSUBSCRIBE SP unsubscribe_event
12024                    
12025    </p>
12026    <p>/ RESET SP reset_instruction
12027                    
12028    </p>
12029    <p>/ CLEAR SP clear_instruction
12030                    
12031    </p>
12032    <p>/ FIND SP find_instruction
12033                    
12034    </p>
12035    <p>/ MOVE SP move_instruction
12036                    
12037    </p>
12038    <p>/ COPY SP copy_instruction
12039                    
12040    </p>
12041    <p>/ EDIT SP edit_instruction
12042                    
12043    </p>
12044    <p>/ FORMAT SP format_instruction
12045                    
12046    </p>
12047    <p>/ SEND SP send_instruction
12048                    
12049    </p>
12050    <p>/ APPEND SP append_instruction
12051                    
12052    </p>
12053    <p>/ INSERT SP insert_instruction
12054                    
12055    </p>
12056    <p>/ RESET
12057                    
12058    </p>
12059    <p>/ QUIT
12060                    
12061    </p>
12062    </blockquote><p>
12063    
12064    </p>
12065    <p>add_instruction =
12066            </p>
12067    <blockquote class="text">
12068    <p>CHANNEL
12069                    
12070    </p>
12071    <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12072                    
12073    </p>
12074    <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12075                    
12076    </p>
12077    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12078                    
12079    </p>
12080    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename
12081                    
12082    </p>
12083    <p>/ DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12084                    
12085    </p>
12086    <p>/ DB_INSTRUMENTS SP scan_mode SP db_path SP filename
12087                    
12088    </p>
12089    <p>/ DB_INSTRUMENTS SP scan_mode SP FILE_AS_DIR SP db_path SP filename
12090                    
12091    </p>
12092    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename
12093                    
12094    </p>
12095    <p>/ DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index
12096                    
12097    </p>
12098    <p>/ DB_INSTRUMENTS SP db_path SP filename
12099                    
12100    </p>
12101    <p>/ DB_INSTRUMENTS SP db_path SP filename SP instrument_index
12102                    
12103    </p>
12104    <p>/ MIDI_INSTRUMENT_MAP
12105                    
12106    </p>
12107    <p>/ MIDI_INSTRUMENT_MAP SP map_name
12108                    
12109    </p>
12110    <p>/ SEND_EFFECT_CHAIN SP device_index
12111                    
12112    </p>
12113    </blockquote><p>
12114    
12115    </p>
12116    <p>subscribe_event =
12117            </p>
12118    <blockquote class="text">
12119    <p>AUDIO_OUTPUT_DEVICE_COUNT
12120                    
12121    </p>
12122    <p>/ AUDIO_OUTPUT_DEVICE_INFO
12123                    
12124    </p>
12125    <p>/ MIDI_INPUT_DEVICE_COUNT
12126                    
12127    </p>
12128    <p>/ MIDI_INPUT_DEVICE_INFO
12129                    
12130    </p>
12131    <p>/ CHANNEL_COUNT
12132                    
12133    </p>
12134    <p>/ CHANNEL_MIDI
12135                    
12136    </p>
12137    <p>/ DEVICE_MIDI
12138                    
12139    </p>
12140    <p>/ VOICE_COUNT
12141                    
12142    </p>
12143    <p>/ STREAM_COUNT
12144                    
12145    </p>
12146    <p>/ BUFFER_FILL
12147                    
12148    </p>
12149    <p>/ CHANNEL_INFO
12150                    
12151    </p>
12152    <p>/ FX_SEND_COUNT
12153                    
12154    </p>
12155    <p>/ FX_SEND_INFO
12156                    
12157    </p>
12158    <p>/ MIDI_INSTRUMENT_MAP_COUNT
12159                    
12160    </p>
12161    <p>/ MIDI_INSTRUMENT_MAP_INFO
12162                    
12163    </p>
12164    <p>/ MIDI_INSTRUMENT_COUNT
12165                    
12166    </p>
12167    <p>/ MIDI_INSTRUMENT_INFO
12168                    
12169    </p>
12170    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12171                    
12172    </p>
12173    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12174                    
12175    </p>
12176    <p>/ DB_INSTRUMENT_COUNT
12177                    
12178    </p>
12179    <p>/ DB_INSTRUMENT_INFO
12180                    
12181    </p>
12182    <p>/ DB_INSTRUMENTS_JOB_INFO
12183                    
12184    </p>
12185    <p>/ MISCELLANEOUS
12186                    
12187    </p>
12188    <p>/ TOTAL_STREAM_COUNT
12189                    
12190    </p>
12191    <p>/ TOTAL_VOICE_COUNT
12192                    
12193    </p>
12194    <p>/ GLOBAL_INFO
12195                    
12196    </p>
12197    <p>/ EFFECT_INSTANCE_COUNT
12198                    
12199    </p>
12200    <p>/ EFFECT_INSTANCE_INFO
12201                    
12202    </p>
12203    <p>/ SEND_EFFECT_CHAIN_COUNT
12204                    
12205    </p>
12206    <p>/ SEND_EFFECT_CHAIN_INFO
12207                    
12208    </p>
12209    </blockquote><p>
12210    
12211    </p>
12212    <p>unsubscribe_event =
12213            </p>
12214    <blockquote class="text">
12215    <p>AUDIO_OUTPUT_DEVICE_COUNT
12216                    
12217    </p>
12218    <p>/ AUDIO_OUTPUT_DEVICE_INFO
12219                    
12220    </p>
12221    <p>/ MIDI_INPUT_DEVICE_COUNT
12222                    
12223    </p>
12224    <p>/ MIDI_INPUT_DEVICE_INFO
12225                    
12226    </p>
12227    <p>/ CHANNEL_COUNT
12228                    
12229    </p>
12230    <p>/ CHANNEL_MIDI
12231                    
12232    </p>
12233    <p>/ DEVICE_MIDI
12234                    
12235    </p>
12236    <p>/ VOICE_COUNT
12237                    
12238    </p>
12239    <p>/ STREAM_COUNT
12240                    
12241    </p>
12242    <p>/ BUFFER_FILL
12243                    
12244    </p>
12245    <p>/ CHANNEL_INFO
12246                    
12247    </p>
12248    <p>/ FX_SEND_COUNT
12249                    
12250    </p>
12251    <p>/ FX_SEND_INFO
12252                    
12253    </p>
12254    <p>/ MIDI_INSTRUMENT_MAP_COUNT
12255                    
12256    </p>
12257    <p>/ MIDI_INSTRUMENT_MAP_INFO
12258                    
12259    </p>
12260    <p>/ MIDI_INSTRUMENT_COUNT
12261                    
12262    </p>
12263    <p>/ MIDI_INSTRUMENT_INFO
12264                    
12265    </p>
12266    <p>/ DB_INSTRUMENT_DIRECTORY_COUNT
12267                    
12268    </p>
12269    <p>/ DB_INSTRUMENT_DIRECTORY_INFO
12270                    
12271    </p>
12272    <p>/ DB_INSTRUMENT_COUNT
12273                    
12274    </p>
12275    <p>/ DB_INSTRUMENT_INFO
12276                    
12277    </p>
12278    <p>/ DB_INSTRUMENTS_JOB_INFO
12279                    
12280    </p>
12281    <p>/ MISCELLANEOUS
12282                    
12283    </p>
12284    <p>/ TOTAL_STREAM_COUNT
12285                    
12286    </p>
12287    <p>/ TOTAL_VOICE_COUNT
12288                    
12289    </p>
12290    <p>/ GLOBAL_INFO
12291                    
12292    </p>
12293    <p>/ EFFECT_INSTANCE_COUNT
12294                    
12295    </p>
12296    <p>/ EFFECT_INSTANCE_INFO
12297                    
12298    </p>
12299    <p>/ SEND_EFFECT_CHAIN_COUNT
12300                    
12301    </p>
12302    <p>/ SEND_EFFECT_CHAIN_INFO
12303                    
12304    </p>
12305    </blockquote><p>
12306    
12307    </p>
12308    <p>map_instruction =
12309            </p>
12310    <blockquote class="text">
12311    <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
12312                    
12313    </p>
12314    <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
12315                    
12316    </p>
12317    <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
12318                    
12319    </p>
12320    <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
12321                    
12322    </p>
12323    </blockquote><p>
12324    
12325    </p>
12326    <p>unmap_instruction =
12327            </p>
12328    <blockquote class="text">
12329    <p>MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog
12330                    
12331    </p>
12332    </blockquote><p>
12333    
12334    </p>
12335    <p>remove_instruction =
12336            </p>
12337    <blockquote class="text">
12338    <p>CHANNEL SP sampler_channel
12339                    
12340    </p>
12341    <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel
12342                    
12343    </p>
12344    <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index
12345                    
12346    </p>
12347    <p>/ CHANNEL SP MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index
12348                    
12349    </p>
12350    <p>/ MIDI_INSTRUMENT_MAP SP midi_map
12351                    
12352    </p>
12353    <p>/ MIDI_INSTRUMENT_MAP SP ALL
12354                    
12355    </p>
12356    <p>/ SEND_EFFECT_CHAIN SP device_index SP effect_chain
12357                    
12358    </p>
12359    <p>/ SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos
12360                    
12361    </p>
12362    <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id
12363                    
12364    </p>
12365    <p>/ DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path
12366                    
12367    </p>
12368    <p>/ DB_INSTRUMENT_DIRECTORY SP db_path
12369                    
12370    </p>
12371    <p>/ DB_INSTRUMENT SP db_path
12372                    
12373    </p>
12374    </blockquote><p>
12375    
12376    </p>
12377    <p>get_instruction =
12378            </p>
12379    <blockquote class="text">
12380    <p>AVAILABLE_ENGINES
12381                    
12382    </p>
12383    <p>/ AVAILABLE_EFFECTS
12384                    
12385    </p>
12386    <p>/ EFFECT_INSTANCES
12387                    
12388    </p>
12389    <p>/ EFFECT SP INFO SP effect_index
12390                    
12391    </p>
12392    <p>/ EFFECT_INSTANCE SP INFO SP effect_instance
12393                    
12394    </p>
12395    <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP INFO SP effect_instance SP input_control
12396                    
12397    </p>
12398    <p>/ SEND_EFFECT_CHAINS SP device_index
12399                    
12400    </p>
12401    <p>/ SEND_EFFECT_CHAIN SP INFO SP device_index SP effect_chain
12402                    
12403    </p>
12404    <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12405                    
12406    </p>
12407    <p>/ MIDI_INPUT_DRIVER SP INFO SP string
12408                    
12409    </p>
12410    <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
12411                    
12412    </p>
12413    <p>/ MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12414                    
12415    </p>
12416    <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12417                    
12418    </p>
12419    <p>/ AUDIO_OUTPUT_DRIVER SP INFO SP string
12420                    
12421    </p>
12422    <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
12423                    
12424    </p>
12425    <p>/ AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list
12426                    
12427    </p>
12428    <p>/ AUDIO_OUTPUT_DEVICES
12429                    
12430    </p>
12431    <p>/ MIDI_INPUT_DEVICES
12432                    
12433    </p>
12434    <p>/ AUDIO_OUTPUT_DEVICE SP INFO SP number
12435                    
12436    </p>
12437    <p>/ MIDI_INPUT_DEVICE SP INFO SP number
12438                    
12439    </p>
12440    <p>/ MIDI_INPUT_PORT SP INFO SP number SP number
12441                    
12442    </p>
12443    <p>/ MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
12444                    
12445    </p>
12446    <p>/ AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
12447                    
12448    </p>
12449    <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP string
12450                    
12451    </p>
12452    <p>/ CHANNELS
12453                    
12454    </p>
12455    <p>/ CHANNEL SP INFO SP sampler_channel
12456                    
12457    </p>
12458    <p>/ CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
12459                    
12460    </p>
12461    <p>/ CHANNEL SP STREAM_COUNT SP sampler_channel
12462                    
12463    </p>
12464    <p>/ CHANNEL SP VOICE_COUNT SP sampler_channel
12465                    
12466    </p>
12467    <p>/ ENGINE SP INFO SP engine_name
12468                    
12469    </p>
12470    <p>/ SERVER SP INFO
12471                    
12472    </p>
12473    <p>/ TOTAL_STREAM_COUNT
12474                    
12475    </p>
12476    <p>/ TOTAL_VOICE_COUNT
12477                    
12478    </p>
12479    <p>/ TOTAL_VOICE_COUNT_MAX
12480                    
12481    </p>
12482    <p>/ MIDI_INSTRUMENTS SP midi_map
12483                    
12484    </p>
12485    <p>/ MIDI_INSTRUMENTS SP ALL
12486                    
12487    </p>
12488    <p>/ MIDI_INSTRUMENT SP INFO SP midi_map SP midi_bank SP midi_prog
12489                    
12490    </p>
12491    <p>/ MIDI_INSTRUMENT_MAPS
12492                    
12493    </p>
12494    <p>/ MIDI_INSTRUMENT_MAP SP INFO SP midi_map
12495                    
12496    </p>
12497    <p>/ FX_SENDS SP sampler_channel
12498                    
12499    </p>
12500    <p>/ FX_SEND SP INFO SP sampler_channel SP fx_send_id
12501                    
12502    </p>
12503    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12504                    
12505    </p>
12506    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12507                    
12508    </p>
12509    <p>/ DB_INSTRUMENT_DIRECTORY SP INFO SP db_path
12510                    
12511    </p>
12512    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12513                    
12514    </p>
12515    <p>/ DB_INSTRUMENTS SP db_path
12516                    
12517    </p>
12518    <p>/ DB_INSTRUMENT SP INFO SP db_path
12519                    
12520    </p>
12521    <p>/ DB_INSTRUMENTS_JOB SP INFO SP number
12522                    
12523    </p>
12524    <p>/ VOLUME
12525                    
12526    </p>
12527    <p>/ VOICES
12528                    
12529    </p>
12530    <p>/ STREAMS
12531                    
12532    </p>
12533    <p>/ FILE SP INSTRUMENTS SP filename
12534                    
12535    </p>
12536    <p>/ FILE SP INSTRUMENT SP INFO SP filename SP instrument_index
12537                    
12538    </p>
12539    </blockquote><p>
12540    
12541    </p>
12542    <p>set_instruction =
12543            </p>
12544    <blockquote class="text">
12545    <p>AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12546                    
12547    </p>
12548    <p>/ AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '=' param_val_list
12549                    
12550    </p>
12551    <p>/ MIDI_INPUT_DEVICE_PARAMETER SP number SP string '=' param_val_list
12552                    
12553    </p>
12554    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' NONE
12555                    
12556    </p>
12557    <p>/ MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '=' param_val_list
12558                    
12559    </p>
12560    <p>/ EFFECT_INSTANCE_INPUT_CONTROL SP VALUE SP effect_instance SP input_control SP control_value
12561                    
12562    </p>
12563    <p>/ CHANNEL SP set_chan_instruction
12564                    
12565    </p>
12566    <p>/ MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name
12567                    
12568    </p>
12569    <p>/ FX_SEND SP NAME SP sampler_channel SP fx_send_id SP fx_send_name
12570                    
12571    </p>
12572    <p>/ FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index
12573                    
12574    </p>
12575    <p>/ FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl
12576                    
12577    </p>
12578    <p>/ FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value
12579                    
12580    </p>
12581    <p>/ FX_SEND SP EFFECT SP sampler_channel SP fx_send_id SP effect_chain SP chain_pos
12582                    
12583    </p>
12584    <p>/ DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped
12585                    
12586    </p>
12587    <p>/ DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped
12588                    
12589    </p>
12590    <p>/ DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped
12591                    
12592    </p>
12593    <p>/ DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped
12594                    
12595    </p>
12596    <p>/ DB_INSTRUMENT SP FILE_PATH SP filename SP filename
12597                    
12598    </p>
12599    <p>/ ECHO SP boolean
12600                    
12601    </p>
12602    <p>/ VOLUME SP volume_value
12603                    
12604    </p>
12605    <p>/ VOICES SP number
12606                    
12607    </p>
12608    <p>/ STREAMS SP number
12609                    
12610    </p>
12611    </blockquote><p>
12612    
12613    </p>
12614    <p>create_instruction =
12615            </p>
12616    <blockquote class="text">
12617    <p>AUDIO_OUTPUT_DEVICE SP string SP key_val_list
12618                    
12619    </p>
12620    <p>/ AUDIO_OUTPUT_DEVICE SP string
12621                    
12622    </p>
12623    <p>/ MIDI_INPUT_DEVICE SP string SP key_val_list
12624                    
12625    </p>
12626    <p>/ MIDI_INPUT_DEVICE SP string
12627                    
12628    </p>
12629    <p>/ FX_SEND SP sampler_channel SP midi_ctrl
12630                    
12631    </p>
12632    <p>/ FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name
12633                    
12634    </p>
12635    <p>/ EFFECT_INSTANCE SP effect_index
12636                    
12637    </p>
12638    <p>/ EFFECT_INSTANCE SP effect_system SP module SP effect_name
12639                    
12640    </p>
12641    </blockquote><p>
12642    
12643    </p>
12644    <p>reset_instruction =
12645            </p>
12646    <blockquote class="text">
12647    <p>CHANNEL SP sampler_channel
12648                    
12649    </p>
12650    </blockquote><p>
12651    
12652    </p>
12653    <p>clear_instruction =
12654            </p>
12655    <blockquote class="text">
12656    <p>MIDI_INSTRUMENTS SP midi_map
12657                    
12658    </p>
12659    <p>/ MIDI_INSTRUMENTS SP ALL
12660                    
12661    </p>
12662    </blockquote><p>
12663    
12664    </p>
12665    <p>find_instruction =
12666            </p>
12667    <blockquote class="text">
12668    <p>DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list
12669                    
12670    </p>
12671    <p>/ DB_INSTRUMENTS SP db_path SP query_val_list
12672                    
12673    </p>
12674    <p>/ DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list
12675                    
12676    </p>
12677    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list
12678                    
12679    </p>
12680    <p>/ LOST SP DB_INSTRUMENT_FILES
12681                    
12682    </p>
12683    </blockquote><p>
12684    
12685    </p>
12686    <p>move_instruction =
12687            </p>
12688    <blockquote class="text">
12689    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12690                    
12691    </p>
12692    <p>/ DB_INSTRUMENT SP db_path SP db_path
12693                    
12694    </p>
12695    </blockquote><p>
12696    
12697    </p>
12698    <p>copy_instruction =
12699            </p>
12700    <blockquote class="text">
12701    <p>DB_INSTRUMENT_DIRECTORY SP db_path SP db_path
12702                    
12703    </p>
12704    <p>/ DB_INSTRUMENT SP db_path SP db_path
12705                    
12706    </p>
12707    </blockquote><p>
12708    
12709    </p>
12710    <p>destroy_instruction =
12711            </p>
12712    <blockquote class="text">
12713    <p>AUDIO_OUTPUT_DEVICE SP number
12714                    
12715    </p>
12716    <p>/ MIDI_INPUT_DEVICE SP number
12717                    
12718    </p>
12719    <p>/ FX_SEND SP sampler_channel SP fx_send_id
12720                    
12721    </p>
12722    <p>/ EFFECT_INSTANCE SP number
12723                    
12724    </p>
12725    </blockquote><p>
12726    
12727    </p>
12728    <p>load_instruction =
12729            </p>
12730    <blockquote class="text">
12731    <p>INSTRUMENT SP load_instr_args
12732                    
12733    </p>
12734    <p>/ ENGINE SP load_engine_args
12735                    
12736    </p>
12737    </blockquote><p>
12738    
12739    </p>
12740    <p>append_instruction =
12741            </p>
12742    <blockquote class="text">
12743    <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP effect_instance
12744                    
12745    </p>
12746    </blockquote><p>
12747    
12748    </p>
12749    <p>insert_instruction =
12750            </p>
12751    <blockquote class="text">
12752    <p>SEND_EFFECT_CHAIN SP EFFECT SP device_index SP effect_chain SP chain_pos SP effect_instance
12753                    
12754    </p>
12755    </blockquote><p>
12756    
12757    </p>
12758    <p>set_chan_instruction =
12759            </p>
12760    <blockquote class="text">
12761    <p>AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
12762                    
12763    </p>
12764    <p>/ AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index SP audio_channel_index
12765                    
12766    </p>
12767    <p>/ AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
12768                    
12769    </p>
12770    <p>/ MIDI_INPUT SP sampler_channel SP device_index SP midi_input_port_index SP midi_input_channel_index
12771                    
12772    </p>
12773    <p>/ MIDI_INPUT_DEVICE SP sampler_channel SP device_index
12774                    
12775    </p>
12776    <p>/ MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
12777                    
12778    </p>
12779    <p>/ MIDI_INPUT_CHANNEL SP sampler_channel SP midi_input_channel_index
12780                    
12781    </p>
12782    <p>/ MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
12783                    
12784    </p>
12785    <p>/ VOLUME SP sampler_channel SP volume_value
12786                    
12787    </p>
12788    <p>/ MUTE SP sampler_channel SP boolean
12789                    
12790    </p>
12791    <p>/ SOLO SP sampler_channel SP boolean
12792                    
12793    </p>
12794    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map
12795                    
12796    </p>
12797    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE
12798                    
12799    </p>
12800    <p>/ MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT
12801                    
12802    </p>
12803    </blockquote><p>
12804    
12805    </p>
12806    <p>edit_instruction =
12807            </p>
12808    <blockquote class="text">
12809    <p>CHANNEL SP INSTRUMENT SP sampler_channel
12810                    
12811    </p>
12812    </blockquote><p>
12813    
12814    </p>
12815    <p>format_instruction =
12816            </p>
12817    <blockquote class="text">
12818    <p>INSTRUMENTS_DB
12819                    
12820    </p>
12821    </blockquote><p>
12822    
12823    </p>
12824    <p>modal_arg =
12825            </p>
12826    <blockquote class="text">
12827    <p>/* epsilon (empty argument) */
12828                    
12829    </p>
12830    <p>/ NON_MODAL SP
12831                    
12832    </p>
12833    </blockquote><p>
12834    
12835    </p>
12836    <p>key_val_list =
12837            </p>
12838    <blockquote class="text">
12839    <p>string '=' param_val_list
12840                    
12841    </p>
12842    <p>/ key_val_list SP string '=' param_val_list
12843                    
12844    </p>
12845    </blockquote><p>
12846    
12847    </p>
12848    <p>buffer_size_type =
12849            </p>
12850    <blockquote class="text">
12851    <p>BYTES
12852                    
12853    </p>
12854    <p>/ PERCENTAGE
12855                    
12856    </p>
12857    </blockquote><p>
12858    
12859    </p>
12860    <p>list_instruction =
12861            </p>
12862    <blockquote class="text">
12863    <p>AUDIO_OUTPUT_DEVICES
12864                    
12865    </p>
12866    <p>/ MIDI_INPUT_DEVICES
12867                    
12868    </p>
12869    <p>/ CHANNELS
12870                    
12871    </p>
12872    <p>/ CHANNEL SP MIDI_INPUTS SP sampler_channel
12873                    
12874    </p>
12875    <p>/ AVAILABLE_ENGINES
12876                    
12877    </p>
12878    <p>/ AVAILABLE_EFFECTS
12879                    
12880    </p>
12881    <p>/ EFFECT_INSTANCES
12882                    
12883    </p>
12884    <p>/ SEND_EFFECT_CHAINS SP number
12885                    
12886    </p>
12887    <p>/ AVAILABLE_MIDI_INPUT_DRIVERS
12888                    
12889    </p>
12890    <p>/ AVAILABLE_AUDIO_OUTPUT_DRIVERS
12891                    
12892    </p>
12893    <p>/ MIDI_INSTRUMENTS SP midi_map
12894                    
12895    </p>
12896    <p>/ MIDI_INSTRUMENTS SP ALL
12897                    
12898    </p>
12899    <p>/ MIDI_INSTRUMENT_MAPS
12900                    
12901    </p>
12902    <p>/ FX_SENDS SP sampler_channel
12903                    
12904    </p>
12905    <p>/ DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path
12906                    
12907    </p>
12908    <p>/ DB_INSTRUMENT_DIRECTORIES SP db_path
12909                    
12910    </p>
12911    <p>/ DB_INSTRUMENTS SP RECURSIVE SP db_path
12912                    
12913    </p>
12914    <p>/ DB_INSTRUMENTS SP db_path
12915                    
12916    </p>
12917    <p>/ FILE SP INSTRUMENTS SP filename
12918                    
12919    </p>
12920    </blockquote><p>
12921    
12922    </p>
12923    <p>send_instruction =
12924            </p>
12925    <blockquote class="text">
12926    <p>CHANNEL SP MIDI_DATA SP string SP sampler_channel SP number SP number
12927                    
12928    </p>
12929    </blockquote><p>
12930    
12931    </p>
12932    <p>load_instr_args =
12933            </p>
12934    <blockquote class="text">
12935    <p>filename SP instrument_index SP sampler_channel
12936                    
12937    </p>
12938    <p>/ NON_MODAL SP filename SP instrument_index SP sampler_channel
12939                    
12940    </p>
12941    </blockquote><p>
12942    
12943    </p>
12944    <p>load_engine_args =
12945            </p>
12946    <blockquote class="text">
12947    <p>engine_name SP sampler_channel
12948                    
12949    </p>
12950    </blockquote><p>
12951    
12952    </p>
12953    <p>instr_load_mode =
12954            </p>
12955    <blockquote class="text">
12956    <p>ON_DEMAND
12957                    
12958    </p>
12959    <p>/ ON_DEMAND_HOLD
12960                    
12961    </p>
12962    <p>/ PERSISTENT
12963                    
12964    </p>
12965    </blockquote><p>
12966    
12967    </p>
12968    <p>effect_instance =
12969            </p>
12970    <blockquote class="text">
12971    <p>number
12972                    
12973    </p>
12974    </blockquote><p>
12975    
12976    </p>
12977    <p>device_index =
12978            </p>
12979    <blockquote class="text">
12980    <p>number
12981                    
12982    </p>
12983    </blockquote><p>
12984    
12985    </p>
12986    <p>audio_channel_index =
12987            </p>
12988    <blockquote class="text">
12989    <p>number
12990                    
12991    </p>
12992    </blockquote><p>
12993    
12994    </p>
12995    <p>audio_output_type_name =
12996            </p>
12997    <blockquote class="text">
12998    <p>string
12999                    
13000    </p>
13001    </blockquote><p>
13002    
13003    </p>
13004    <p>midi_input_port_index =
13005            </p>
13006    <blockquote class="text">
13007    <p>number
13008                    
13009    </p>
13010    </blockquote><p>
13011    
13012    </p>
13013    <p>midi_input_channel_index =
13014            </p>
13015    <blockquote class="text">
13016    <p>number
13017                    
13018    </p>
13019    <p>/ ALL
13020                    
13021    </p>
13022    </blockquote><p>
13023    
13024    </p>
13025    <p>midi_input_type_name =
13026            </p>
13027    <blockquote class="text">
13028    <p>string
13029                    
13030    </p>
13031    </blockquote><p>
13032    
13033    </p>
13034    <p>midi_map =
13035            </p>
13036    <blockquote class="text">
13037    <p>number
13038                    
13039    </p>
13040    </blockquote><p>
13041    
13042    </p>
13043    <p>midi_bank =
13044            </p>
13045    <blockquote class="text">
13046    <p>number
13047                    
13048    </p>
13049    </blockquote><p>
13050    
13051    </p>
13052    <p>midi_prog =
13053            </p>
13054    <blockquote class="text">
13055    <p>number
13056                    
13057    </p>
13058    </blockquote><p>
13059    
13060    </p>
13061    <p>midi_ctrl =
13062            </p>
13063    <blockquote class="text">
13064    <p>number
13065                    
13066    </p>
13067    </blockquote><p>
13068    
13069    </p>
13070    <p>volume_value =
13071            </p>
13072    <blockquote class="text">
13073    <p>dotnum
13074                    
13075    </p>
13076    <p>/ number
13077                    
13078    </p>
13079    </blockquote><p>
13080    
13081    </p>
13082    <p>control_value =
13083            </p>
13084    <blockquote class="text">
13085    <p>real
13086                    
13087    </p>
13088    </blockquote><p>
13089    
13090    </p>
13091    <p>sampler_channel =
13092            </p>
13093    <blockquote class="text">
13094    <p>number
13095                    
13096    </p>
13097    </blockquote><p>
13098    
13099    </p>
13100    <p>instrument_index =
13101            </p>
13102    <blockquote class="text">
13103    <p>number
13104                    
13105    </p>
13106    </blockquote><p>
13107    
13108    </p>
13109    <p>fx_send_id =
13110            </p>
13111    <blockquote class="text">
13112    <p>number
13113                    
13114    </p>
13115    </blockquote><p>
13116    
13117    </p>
13118    <p>engine_name =
13119            </p>
13120    <blockquote class="text">
13121    <p>string
13122                    
13123    </p>
13124    </blockquote><p>
13125    
13126    </p>
13127    <p>filename =
13128            </p>
13129    <blockquote class="text">
13130    <p>path
13131                    
13132    </p>
13133    </blockquote><p>
13134    
13135    </p>
13136    <p>db_path =
13137            </p>
13138    <blockquote class="text">
13139    <p>path
13140                    
13141    </p>
13142    </blockquote><p>
13143    
13144    </p>
13145    <p>map_name =
13146            </p>
13147    <blockquote class="text">
13148    <p>stringval_escaped
13149                    
13150    </p>
13151    </blockquote><p>
13152    
13153    </p>
13154    <p>entry_name =
13155            </p>
13156    <blockquote class="text">
13157    <p>stringval_escaped
13158                    
13159    </p>
13160    </blockquote><p>
13161    
13162    </p>
13163    <p>fx_send_name =
13164            </p>
13165    <blockquote class="text">
13166    <p>stringval_escaped
13167                    
13168    </p>
13169    </blockquote><p>
13170    
13171    </p>
13172    <p>effect_name =
13173            </p>
13174    <blockquote class="text">
13175    <p>stringval_escaped
13176                    
13177    </p>
13178    </blockquote><p>
13179    
13180    </p>
13181    <p>effect_index =
13182            </p>
13183    <blockquote class="text">
13184    <p>number
13185                    
13186    </p>
13187    </blockquote><p>
13188    
13189    </p>
13190    <p>effect_chain =
13191            </p>
13192    <blockquote class="text">
13193    <p>number
13194                    
13195    </p>
13196    </blockquote><p>
13197    
13198    </p>
13199    <p>chain_pos =
13200            </p>
13201    <blockquote class="text">
13202    <p>number
13203                    
13204    </p>
13205    </blockquote><p>
13206    
13207    </p>
13208    <p>input_control =
13209            </p>
13210    <blockquote class="text">
13211    <p>number
13212                    
13213    </p>
13214    </blockquote><p>
13215    
13216    </p>
13217    <p>param_val_list =
13218            </p>
13219    <blockquote class="text">
13220    <p>param_val
13221                    
13222    </p>
13223    <p>/ param_val_list','param_val
13224                    
13225    </p>
13226    </blockquote><p>
13227    
13228    </p>
13229    <p>param_val =
13230            </p>
13231    <blockquote class="text">
13232    <p>string
13233                    
13234    </p>
13235    <p>/ stringval
13236                    
13237    </p>
13238    <p>/ number
13239                    
13240    </p>
13241    <p>/ dotnum
13242                    
13243    </p>
13244    </blockquote><p>
13245    
13246    </p>
13247    <p>query_val_list =
13248            </p>
13249    <blockquote class="text">
13250    <p>string '=' query_val
13251                    
13252    </p>
13253    <p>/ query_val_list SP string '=' query_val
13254                    
13255    </p>
13256    </blockquote><p>
13257    
13258    </p>
13259    <p>query_val =
13260            </p>
13261    <blockquote class="text">
13262    <p>text_escaped
13263                    
13264    </p>
13265    <p>/ stringval_escaped
13266                    
13267    </p>
13268    </blockquote><p>
13269    
13270    </p>
13271    <p>scan_mode =
13272            </p>
13273    <blockquote class="text">
13274    <p>RECURSIVE
13275                    
13276    </p>
13277    <p>/ NON_RECURSIVE
13278                    
13279    </p>
13280    <p>/ FLAT
13281                    
13282    </p>
13283    </blockquote><p>
13284    
13285    </p>
13286    <p>effect_system =
13287            </p>
13288    <blockquote class="text">
13289    <p>string
13290                    
13291    </p>
13292    </blockquote><p>
13293    
13294    </p>
13295    <p>module =
13296            </p>
13297    <blockquote class="text">
13298    <p>filename
13299                    
13300    </p>
13301    </blockquote><p>
13302    
13303    </p>
13304    <a name="character_set"></a><br /><hr />
13305    <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>
13306    <a name="rfc.section.7.1"></a><h3>7.1.&nbsp;
13307    Character Set and Escape Sequences</h3>
13308    
13309    <p>Older versions of this protocol up to and including v1.1 only
13310                    supported the standard ASCII character set (ASCII code 0 - 127)
13311                    <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
13312                    however support the Extended ASCII character set (ASCII code
13313                    0 - 255). The same group of younger protocols also support
13314                    escape sequences, but only for certain, explicitly declared
13315                    parts of the protocol. The supported escape sequences are
13316                    defined as follows:
13317    </p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
13318    <col align="left"><col align="left">
13319    <tr><th align="left">ASCII Character Sequence</th><th align="left">Translated into (Name)</th></tr>
13320    <tr>
13321    <td align="left">\n</td>
13322    <td align="left">new line</td>
13323    </tr>
13324    <tr>
13325    <td align="left">\r</td>
13326    <td align="left">carriage return</td>
13327    </tr>
13328    <tr>
13329    <td align="left">\f</td>
13330    <td align="left">form feed</td>
13331    </tr>
13332    <tr>
13333    <td align="left">\t</td>
13334    <td align="left">horizontal tab</td>
13335    </tr>
13336    <tr>
13337    <td align="left">\v</td>
13338    <td align="left">vertical tab</td>
13339    </tr>
13340    <tr>
13341    <td align="left">\'</td>
13342    <td align="left">apostrophe</td>
13343    </tr>
13344    <tr>
13345    <td align="left">\"</td>
13346    <td align="left">quotation mark</td>
13347    </tr>
13348    <tr>
13349    <td align="left">\\</td>
13350    <td align="left">backslash</td>
13351    </tr>
13352    <tr>
13353    <td align="left">\OOO</td>
13354    <td align="left">three digit octal ASCII code of the character</td>
13355    </tr>
13356    <tr>
13357    <td align="left">\xHH</td>
13358    <td align="left">two digit hex ASCII code of the character</td>
13359    </tr>
13360    </table>
13361    <br clear="all" />
13362    
13363    <p>Notice: due to the transition of certain parts of the
13364                    protocol which now support escape sequences, a slight backward
13365                    incompatibility to protocols version v1.1 and younger has been
13366                    introduced. The only difference is that in parts of the protocol
13367                    where escape characters are now supported, a backslash characters
13368                    MUST be escaped as well (that is as double backslash), whereas
13369                    in the old versions a single backslash was sufficient.
13370    </p>
13371    <p>The following LSCP commands support escape sequences as part
13372                    of their filename / path based arguments and / or may contain
13373                    a filename / path with escape sequences in their response:
13374                    </p>
13375    <blockquote class="text">
13376    <p><a class='info' href='#LOAD INSTRUMENT'>"LOAD INSTRUMENT"<span> (</span><span class='info'>Loading an instrument</span><span>)</span></a>
13377    </p>
13378    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13379    </p>
13380    <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>
13381    </p>
13382    <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>
13383    </p>
13384    <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>
13385    </p>
13386    <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>
13387    </p>
13388    <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>
13389    </p>
13390    <p><a class='info' href='#REMOVE DB_INSTRUMENT'>"REMOVE DB_INSTRUMENT"<span> (</span><span class='info'>Removing an instrument</span><span>)</span></a>
13391    </p>
13392    <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>
13393    </p>
13394    <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>
13395    </p>
13396    <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>
13397    </p>
13398    <p><a class='info' href='#GET DB_INSTRUMENTS'>"GET DB_INSTRUMENTS"<span> (</span><span class='info'>Getting amount of instruments</span><span>)</span></a>
13399    </p>
13400    <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>
13401    </p>
13402    <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>
13403    </p>
13404    <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>
13405    </p>
13406    <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>
13407    </p>
13408    <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>
13409    </p>
13410    <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>
13411    </p>
13412    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13413    </p>
13414    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13415    </p>
13416    <p><a class='info' href='#MOVE DB_INSTRUMENT'>"MOVE DB_INSTRUMENT"<span> (</span><span class='info'>Moving an instrument</span><span>)</span></a>
13417    </p>
13418    <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>
13419    </p>
13420    <p><a class='info' href='#COPY DB_INSTRUMENT'>"COPY DB_INSTRUMENT"<span> (</span><span class='info'>Copying instruments</span><span>)</span></a>
13421    </p>
13422    <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>
13423    </p>
13424    <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>
13425    </p>
13426    <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>
13427    </p>
13428    <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>
13429    </p>
13430    <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>
13431    </p>
13432    <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>
13433    </p>
13434    <p><a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
13435    </p>
13436    <p><a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
13437    </p>
13438    <p><a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
13439    </p>
13440    </blockquote><p>
13441                    Note that the forward slash character ('/') has a special meaning in
13442                    filename / path based arguments: it acts as separator of the nodes in
13443                    the path, thus if a directory- or filename includes a forward slash
13444                    (not intended as path node separator), you MUST escape that slash
13445                    either with the respective hex escape sequence ("\x2f") or with the
13446                    respective octal escape sequence ("\057").
13447                    
13448    </p>
13449    <p>
13450                    Note for Windows: file path arguments in LSCP are expected
13451                    to use forward slashes as directory node separator similar
13452                    to Unix based operating systems. In contrast to Unix however
13453                    a Windows typical drive character is expected to be
13454                    prefixed to the path. That is an original Windows file path
13455                    like "D:\Sounds\My.gig" would become in LSCP:
13456                    "D:/Sounds/My.gig".
13457                    
13458    </p>
13459    <p>
13460                    The following LSCP commands even support escape sequences as
13461                    part of at least one of their text-based arguments (i.e. entity name,
13462                    description) and / or may contain escape sequences in at least one of
13463                    their text-based fields in their response:
13464                    </p>
13465    <blockquote class="text">
13466    <p><a class='info' href='#GET SERVER INFO'>"GET SERVER INFO"<span> (</span><span class='info'>General sampler informations</span><span>)</span></a>
13467    </p>
13468    <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>
13469    </p>
13470    <p><a class='info' href='#GET CHANNEL INFO'>"GET CHANNEL INFO"<span> (</span><span class='info'>Getting sampler channel information</span><span>)</span></a>
13471    </p>
13472    <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>
13473    </p>
13474    <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>
13475    </p>
13476    <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>
13477    </p>
13478    <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>
13479    </p>
13480    <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>
13481    </p>
13482    <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>
13483    </p>
13484    <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>
13485    </p>
13486    <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>
13487    </p>
13488    <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>
13489    </p>
13490    <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>
13491    </p>
13492    <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>
13493    </p>
13494    <p><a class='info' href='#FIND DB_INSTRUMENT_DIRECTORIES'>"FIND DB_INSTRUMENT_DIRECTORIES"<span> (</span><span class='info'>Finding directories</span><span>)</span></a>
13495    </p>
13496    <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>
13497    </p>
13498    <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>
13499    </p>
13500    <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>
13501    </p>
13502    <p><a class='info' href='#FIND DB_INSTRUMENTS'>"FIND DB_INSTRUMENTS"<span> (</span><span class='info'>Finding instruments</span><span>)</span></a>
13503    </p>
13504    <p><a class='info' href='#GET EFFECT INFO'>"GET EFFECT INFO"<span> (</span><span class='info'>Retrieving general information about an effect</span><span>)</span></a>
13505    </p>
13506    <p><a class='info' href='#GET EFFECT_INSTANCE INFO'>"GET EFFECT_INSTANCE INFO"<span> (</span><span class='info'>Retrieving current information about an effect instance</span><span>)</span></a>
13507    </p>
13508    <p><a class='info' href='#CREATE EFFECT_INSTANCE'>"CREATE EFFECT_INSTANCE"<span> (</span><span class='info'>Creating an instance of an effect by its portable ID</span><span>)</span></a>
13509    </p>
13510    </blockquote><p>
13511                    Please note that these lists are manually maintained. If you
13512                    find a command that also supports escape sequences we forgot to
13513                    mention here, please report it!
13514                    
13515  </p>  </p>
13516  <a name="events"></a><br /><hr />  <a name="events"></a><br /><hr />
13517  <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>
13518  <a name="rfc.section.7"></a><h3>7.&nbsp;Events</h3>  <a name="rfc.section.8"></a><h3>8.&nbsp;
13519    Events</h3>
13520    
13521  <p>This chapter will describe all currently defined events supported by LinuxSampler.  <p>This chapter will describe all currently defined events supported by LinuxSampler.
13522  </p>  </p>
13523  <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 />
13524    <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>
13525    <a name="rfc.section.8.1"></a><h3>8.1.&nbsp;
13526    Number of audio output devices changed</h3>
13527    
13528    <p>Client may want to be notified when the total number of audio output devices on the
13529                    back-end changes by issuing the following command:
13530    </p>
13531    <p>
13532                        </p>
13533    <blockquote class="text">
13534    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT
13535    </p>
13536    </blockquote><p>
13537                    
13538    </p>
13539    <p>Server will start sending the following notification messages:
13540    </p>
13541    <p>
13542                        </p>
13543    <blockquote class="text">
13544    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:&lt;devices&gt;"
13545    </p>
13546    </blockquote><p>
13547                    
13548    </p>
13549    <p>where &lt;devices&gt; will be replaced by the new number
13550                    of audio output devices.
13551    </p>
13552    <a name="SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO"></a><br /><hr />
13553    <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>
13554    <a name="rfc.section.8.2"></a><h3>8.2.&nbsp;
13555    Audio output device's settings changed</h3>
13556    
13557    <p>Client may want to be notified when changes were made to audio output devices on the
13558                    back-end by issuing the following command:
13559    </p>
13560    <p>
13561                        </p>
13562    <blockquote class="text">
13563    <p>SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO
13564    </p>
13565    </blockquote><p>
13566                    
13567    </p>
13568    <p>Server will start sending the following notification messages:
13569    </p>
13570    <p>
13571                        </p>
13572    <blockquote class="text">
13573    <p>"NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:&lt;device-id&gt;"
13574    </p>
13575    </blockquote><p>
13576                    
13577    </p>
13578    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio output device,
13579                    which settings has been changed. The front-end will have to send
13580                    the respective command to actually get the audio output device info. Because these messages
13581                    will be triggered by LSCP commands issued by other clients rather than real
13582                    time events happening on the server, it is believed that an empty notification
13583                    message is sufficient here.
13584    </p>
13585    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_COUNT"></a><br /><hr />
13586    <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>
13587    <a name="rfc.section.8.3"></a><h3>8.3.&nbsp;
13588    Number of MIDI input devices changed</h3>
13589    
13590    <p>Client may want to be notified when the total number of MIDI input devices on the
13591                    back-end changes by issuing the following command:
13592    </p>
13593    <p>
13594                        </p>
13595    <blockquote class="text">
13596    <p>SUBSCRIBE MIDI_INPUT_DEVICE_COUNT
13597    </p>
13598    </blockquote><p>
13599                    
13600    </p>
13601    <p>Server will start sending the following notification messages:
13602    </p>
13603    <p>
13604                        </p>
13605    <blockquote class="text">
13606    <p>"NOTIFY:MIDI_INPUT_DEVICE_COUNT:&lt;devices&gt;"
13607    </p>
13608    </blockquote><p>
13609                    
13610    </p>
13611    <p>where &lt;devices&gt; will be replaced by the new number
13612                    of MIDI input devices.
13613    </p>
13614    <a name="SUBSCRIBE MIDI_INPUT_DEVICE_INFO"></a><br /><hr />
13615    <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>
13616    <a name="rfc.section.8.4"></a><h3>8.4.&nbsp;
13617    MIDI input device's settings changed</h3>
13618    
13619    <p>Client may want to be notified when changes were made to MIDI input devices on the
13620                    back-end by issuing the following command:
13621    </p>
13622    <p>
13623                        </p>
13624    <blockquote class="text">
13625    <p>SUBSCRIBE MIDI_INPUT_DEVICE_INFO
13626    </p>
13627    </blockquote><p>
13628                    
13629    </p>
13630    <p>Server will start sending the following notification messages:
13631    </p>
13632    <p>
13633                        </p>
13634    <blockquote class="text">
13635    <p>"NOTIFY:MIDI_INPUT_DEVICE_INFO:&lt;device-id&gt;"
13636    </p>
13637    </blockquote><p>
13638                    
13639    </p>
13640    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the MIDI input device,
13641                    which settings has been changed. The front-end will have to send
13642                    the respective command to actually get the MIDI input device info. Because these messages
13643                    will be triggered by LSCP commands issued by other clients rather than real
13644                    time events happening on the server, it is believed that an empty notification
13645                    message is sufficient here.
13646    </p>
13647    <a name="SUBSCRIBE CHANNEL_COUNT"></a><br /><hr />
13648    <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>
13649    <a name="rfc.section.8.5"></a><h3>8.5.&nbsp;
13650    Number of sampler channels changed</h3>
13651    
13652  <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
13653                  back-end changes by issuing the following command:                  back-end changes by issuing the following command:
13654  </p>  </p>
13655  <p></p>  <p>
13656                        </p>
13657  <blockquote class="text">  <blockquote class="text">
13658  <p>SUBSCRIBE CHANNEL_COUNT  <p>SUBSCRIBE CHANNEL_COUNT
13659  </p>  </p>
13660  </blockquote>  </blockquote><p>
13661                    
13662    </p>
13663  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
13664  </p>  </p>
13665  <p></p>  <p>
13666                        </p>
13667  <blockquote class="text">  <blockquote class="text">
13668  <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"  <p>"NOTIFY:CHANNEL_COUNT:&lt;channels&gt;"
13669  </p>  </p>
13670  </blockquote>  </blockquote><p>
13671                    
13672    </p>
13673  <p>where &lt;channels&gt; will be replaced by the new number  <p>where &lt;channels&gt; will be replaced by the new number
13674                  of sampler channels.                  of sampler channels.
13675  </p>  </p>
13676  <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 />
13677    <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>
13678    <a name="rfc.section.8.6"></a><h3>8.6.&nbsp;
13679    MIDI data on a sampler channel arrived</h3>
13680    
13681    <p>Client may want to be notified when MIDI data arrive on sampler channels on
13682                    back-end side, by issuing the following command:
13683    </p>
13684    <p>
13685                        </p>
13686    <blockquote class="text">
13687    <p>SUBSCRIBE CHANNEL_MIDI
13688    </p>
13689    </blockquote><p>
13690                    
13691    </p>
13692    <p>Server will start sending one of the the following notification messages:
13693    </p>
13694    <p>
13695                        </p>
13696    <blockquote class="text">
13697    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_ON  &lt;note&gt; &lt;velocity&gt;"
13698    </p>
13699    <p>"NOTIFY:CHANNEL_MIDI:&lt;channel-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13700    </p>
13701    </blockquote><p>
13702                    
13703    </p>
13704    <p>where &lt;channel-id&gt; will be replaced by the ID of the sampler channel where the MIDI
13705                    data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13706                    0 .. 127, reflecting the analog meaning of the MIDI specification.
13707                    
13708    </p>
13709    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13710                    delivered by this mechanism! With other words: events could be lost at any time!
13711                    This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13712                    thread unaffected by this feature.
13713    </p>
13714    <a name="SUBSCRIBE DEVICE_MIDI"></a><br /><hr />
13715    <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>
13716    <a name="rfc.section.8.7"></a><h3>8.7.&nbsp;
13717    MIDI data on a MIDI input device arrived</h3>
13718    
13719    <p>Client may want to be notified when MIDI data arrive on MIDI input devices by issuing the following command:
13720    </p>
13721    <p>
13722                                </p>
13723    <blockquote class="text">
13724    <p>SUBSCRIBE DEVICE_MIDI
13725    </p>
13726    </blockquote><p>
13727                        
13728    </p>
13729    <p>Server will start sending one of the the following notification messages:
13730    </p>
13731    <p>
13732                                </p>
13733    <blockquote class="text">
13734    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_ON &lt;note&gt; &lt;velocity&gt;"
13735    </p>
13736    <p>"NOTIFY:DEVICE_MIDI:&lt;device-id&gt; &lt;port-id&gt; NOTE_OFF &lt;note&gt; &lt;velocity&gt;"
13737    </p>
13738    </blockquote><p>
13739                        
13740    </p>
13741    <p>where &lt;device-id&gt; &lt;port-id&gt; will be replaced
13742                           by the IDs of the respective MIDI input device and the device's MIDI port where the MIDI
13743                           data arrived. &lt;note&gt; and &lt;velocity&gt; are integer values in the range between
13744                           0 .. 127, reflecting the analog meaning of the MIDI specification.
13745                        
13746    </p>
13747    <p>CAUTION: no guarantee whatsoever will be made that MIDI events are actually all
13748                           delivered by this mechanism! With other words: events could be lost at any time!
13749                           This restriction was made to keep the RT-safeness of the backend's MIDI and audio
13750                           thread unaffected by this feature.
13751    </p>
13752    <a name="SUBSCRIBE VOICE_COUNT"></a><br /><hr />
13753    <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>
13754    <a name="rfc.section.8.8"></a><h3>8.8.&nbsp;
13755    Number of active voices changed</h3>
13756    
13757  <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
13758                  back-end changes by issuing the following command:                  back-end changes by issuing the following command:
13759  </p>  </p>
13760  <p></p>  <p>
13761                        </p>
13762  <blockquote class="text">  <blockquote class="text">
13763  <p>SUBSCRIBE VOICE_COUNT  <p>SUBSCRIBE VOICE_COUNT
13764  </p>  </p>
13765  </blockquote>  </blockquote><p>
13766                    
13767    </p>
13768  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
13769  </p>  </p>
13770  <p></p>  <p>
13771                        </p>
13772  <blockquote class="text">  <blockquote class="text">
13773  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;  <p>"NOTIFY:VOICE_COUNT:&lt;sampler-channel&gt; &lt;voices&gt;"
13774    </p>
13775    </blockquote><p>
13776                    
13777  </p>  </p>
 </blockquote>  
   
13778  <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
13779                  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
13780                  active voices on that channel.                  active voices on that channel.
13781  </p>  </p>
13782  <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 />
13783    <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>
13784    <a name="rfc.section.8.9"></a><h3>8.9.&nbsp;
13785    Number of active disk streams changed</h3>
13786    
13787  <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
13788                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT                  changes by issuing the following command: SUBSCRIBE STREAM_COUNT
13789  </p>  </p>
13790  <p></p>  <p>
13791                        </p>
13792  <blockquote class="text">  <blockquote class="text">
13793  <p>SUBSCRIBE STREAM_COUNT  <p>SUBSCRIBE STREAM_COUNT
13794  </p>  </p>
13795  </blockquote>  </blockquote><p>
13796                    
13797    </p>
13798  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
13799  </p>  </p>
13800  <p></p>  <p>
13801                        </p>
13802  <blockquote class="text">  <blockquote class="text">
13803  <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"  <p>"NOTIFY:STREAM_COUNT:&lt;sampler-channel&gt; &lt;streams&gt;"
13804  </p>  </p>
13805  </blockquote>  </blockquote><p>
13806                    
13807    </p>
13808  <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
13809                  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
13810                  active disk streams on that channel.                  active disk streams on that channel.
13811  </p>  </p>
13812  <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 />
13813    <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>
13814    <a name="rfc.section.8.10"></a><h3>8.10.&nbsp;
13815    Disk stream buffer fill state changed</h3>
13816    
13817  <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
13818                  on the back-end changes by issuing the following command:                  on the back-end changes by issuing the following command:
13819  </p>  </p>
13820  <p></p>  <p>
13821                        </p>
13822  <blockquote class="text">  <blockquote class="text">
13823  <p>SUBSCRIBE BUFFER_FILL  <p>SUBSCRIBE BUFFER_FILL
13824  </p>  </p>
13825  </blockquote>  </blockquote><p>
13826                    
13827    </p>
13828  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
13829  </p>  </p>
13830  <p></p>  <p>
13831                        </p>
13832  <blockquote class="text">  <blockquote class="text">
13833  <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"  <p>"NOTIFY:BUFFER_FILL:&lt;sampler-channel&gt; &lt;fill-data&gt;"
13834  </p>  </p>
13835  </blockquote>  </blockquote><p>
13836                    
13837    </p>
13838  <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
13839                  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
13840                  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>
13841                  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.
13842  </p>  </p>
13843  <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 />
13844    <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>
13845    <a name="rfc.section.8.11"></a><h3>8.11.&nbsp;
13846    Channel information changed</h3>
13847    
13848  <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
13849                  back-end changes by issuing the following command:                  back-end by issuing the following command:
13850  </p>  </p>
13851  <p></p>  <p>
13852                        </p>
13853  <blockquote class="text">  <blockquote class="text">
13854  <p>SUBSCRIBE CHANNEL_INFO  <p>SUBSCRIBE CHANNEL_INFO
13855  </p>  </p>
13856  </blockquote>  </blockquote><p>
13857                    
13858    </p>
13859  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
13860  </p>  </p>
13861  <p></p>  <p>
13862                        </p>
13863  <blockquote class="text">  <blockquote class="text">
13864  <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"  <p>"NOTIFY:CHANNEL_INFO:&lt;sampler-channel&gt;"
13865  </p>  </p>
13866  </blockquote>  </blockquote><p>
13867                    
13868    </p>
13869  <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
13870                  channel info change occurred. The front-end will have to send                  channel info change occurred. The front-end will have to send
13871                  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 4207  Intellectual Property and Copyright Stat Line 13873  Intellectual Property and Copyright Stat
13873                  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
13874                  message is sufficient here.                  message is sufficient here.
13875  </p>  </p>
13876  <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 />
13877    <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>
13878    <a name="rfc.section.8.12"></a><h3>8.12.&nbsp;
13879    Number of effect sends changed</h3>
13880    
13881    <p>Client may want to be notified when the number of effect sends on
13882                    a particular sampler channel is changed by issuing the following command:
13883    </p>
13884    <p>
13885                        </p>
13886    <blockquote class="text">
13887    <p>SUBSCRIBE FX_SEND_COUNT
13888    </p>
13889    </blockquote><p>
13890                    
13891    </p>
13892    <p>Server will start sending the following notification messages:
13893    </p>
13894    <p>
13895                        </p>
13896    <blockquote class="text">
13897    <p>"NOTIFY:FX_SEND_COUNT:&lt;channel-id&gt; &lt;fx-sends&gt;"
13898    </p>
13899    </blockquote><p>
13900                    
13901    </p>
13902    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13903                    channel, on which the effect sends number is changed and &lt;fx-sends&gt; will
13904                    be replaced by the new number of effect sends on that channel.
13905    </p>
13906    <a name="SUBSCRIBE FX_SEND_INFO"></a><br /><hr />
13907    <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>
13908    <a name="rfc.section.8.13"></a><h3>8.13.&nbsp;
13909    Effect send information changed</h3>
13910    
13911    <p>Client may want to be notified when changes were made to effect sends on a
13912                    a particular sampler channel by issuing the following command:
13913    </p>
13914    <p>
13915                        </p>
13916    <blockquote class="text">
13917    <p>SUBSCRIBE FX_SEND_INFO
13918    </p>
13919    </blockquote><p>
13920                    
13921    </p>
13922    <p>Server will start sending the following notification messages:
13923    </p>
13924    <p>
13925                        </p>
13926    <blockquote class="text">
13927    <p>"NOTIFY:FX_SEND_INFO:&lt;channel-id&gt; &lt;fx-send-id&gt;"
13928    </p>
13929    </blockquote><p>
13930                    
13931    </p>
13932    <p>where &lt;channel-id&gt; will be replaced by the numerical ID of the sampler
13933                    channel, on which an effect send entity is changed and &lt;fx-send-id&gt; will
13934                    be replaced by the numerical ID of the changed effect send.
13935    </p>
13936    <a name="SUBSCRIBE TOTAL_VOICE_COUNT"></a><br /><hr />
13937    <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>
13938    <a name="rfc.section.8.14"></a><h3>8.14.&nbsp;
13939    Total number of active voices changed</h3>
13940    
13941    <p>Client may want to be notified when the total number of voices on the
13942                    back-end changes by issuing the following command:
13943    </p>
13944    <p>
13945                        </p>
13946    <blockquote class="text">
13947    <p>SUBSCRIBE TOTAL_VOICE_COUNT
13948    </p>
13949    </blockquote><p>
13950                    
13951    </p>
13952    <p>Server will start sending the following notification messages:
13953    </p>
13954    <p>
13955                        </p>
13956    <blockquote class="text">
13957    <p>"NOTIFY:TOTAL_VOICE_COUNT:&lt;voices&gt;"
13958    </p>
13959    </blockquote><p>
13960                    
13961    </p>
13962    <p>where &lt;voices&gt; will be replaced by the new number of
13963                    all currently active voices.
13964    </p>
13965    <a name="SUBSCRIBE TOTAL_STREAM_COUNT"></a><br /><hr />
13966    <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>
13967    <a name="rfc.section.8.15"></a><h3>8.15.&nbsp;
13968    Total number of active disk streams changed</h3>
13969    
13970    <p>Client may want to be notified when the total number of disk streams on the
13971                    back-end changes by issuing the following command:
13972    </p>
13973    <p>
13974                        </p>
13975    <blockquote class="text">
13976    <p>SUBSCRIBE TOTAL_STREAM_COUNT
13977    </p>
13978    </blockquote><p>
13979                    
13980    </p>
13981    <p>Server will start sending the following notification messages:
13982    </p>
13983    <p>
13984                        </p>
13985    <blockquote class="text">
13986    <p>"NOTIFY:TOTAL_STREAM_COUNT:&lt;streams&gt;"
13987    </p>
13988    </blockquote><p>
13989                    
13990    </p>
13991    <p>where &lt;streams&gt; will be replaced by the new number of
13992                    all currently active disk streams.
13993    </p>
13994    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT"></a><br /><hr />
13995    <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>
13996    <a name="rfc.section.8.16"></a><h3>8.16.&nbsp;
13997    Number of MIDI instrument maps changed</h3>
13998    
13999    <p>Client may want to be notified when the number of MIDI instrument maps on the
14000                    back-end changes by issuing the following command:
14001    </p>
14002    <p>
14003                        </p>
14004    <blockquote class="text">
14005    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT
14006    </p>
14007    </blockquote><p>
14008                    
14009    </p>
14010    <p>Server will start sending the following notification messages:
14011    </p>
14012    <p>
14013                        </p>
14014    <blockquote class="text">
14015    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:&lt;maps&gt;"
14016    </p>
14017    </blockquote><p>
14018                    
14019    </p>
14020    <p>where &lt;maps&gt; will be replaced by the new number
14021                    of MIDI instrument maps.
14022    </p>
14023    <a name="SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO"></a><br /><hr />
14024    <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>
14025    <a name="rfc.section.8.17"></a><h3>8.17.&nbsp;
14026    MIDI instrument map information changed</h3>
14027    
14028    <p>Client may want to be notified when changes were made to MIDI instrument maps on the
14029                    back-end by issuing the following command:
14030    </p>
14031    <p>
14032                        </p>
14033    <blockquote class="text">
14034    <p>SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO
14035    </p>
14036    </blockquote><p>
14037                    
14038    </p>
14039    <p>Server will start sending the following notification messages:
14040    </p>
14041    <p>
14042                        </p>
14043    <blockquote class="text">
14044    <p>"NOTIFY:MIDI_INSTRUMENT_MAP_INFO:&lt;map-id&gt;"
14045    </p>
14046    </blockquote><p>
14047                    
14048    </p>
14049    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14050                    for which information changes occurred. The front-end will have to send
14051                    the respective command to actually get the MIDI instrument map info. Because these messages
14052                    will be triggered by LSCP commands issued by other clients rather than real
14053                    time events happening on the server, it is believed that an empty notification
14054                    message is sufficient here.
14055    </p>
14056    <a name="SUBSCRIBE MIDI_INSTRUMENT_COUNT"></a><br /><hr />
14057    <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>
14058    <a name="rfc.section.8.18"></a><h3>8.18.&nbsp;
14059    Number of MIDI instruments changed</h3>
14060    
14061    <p>Client may want to be notified when the number of MIDI instrument maps on the
14062                    back-end changes by issuing the following command:
14063    </p>
14064    <p>
14065                        </p>
14066    <blockquote class="text">
14067    <p>SUBSCRIBE MIDI_INSTRUMENT_COUNT
14068    </p>
14069    </blockquote><p>
14070                    
14071    </p>
14072    <p>Server will start sending the following notification messages:
14073    </p>
14074    <p>
14075                        </p>
14076    <blockquote class="text">
14077    <p>"NOTIFY:MIDI_INSTRUMENT_COUNT:&lt;map-id&gt; &lt;instruments&gt;"
14078    </p>
14079    </blockquote><p>
14080                    
14081    </p>
14082    <p>where &lt;map-id&gt; is the numerical ID of the MIDI instrument map, in which
14083                    the nuber of instruments has changed and &lt;instruments&gt; will be replaced by
14084                    the new number of MIDI instruments in the specified map.
14085    </p>
14086    <a name="SUBSCRIBE MIDI_INSTRUMENT_INFO"></a><br /><hr />
14087    <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>
14088    <a name="rfc.section.8.19"></a><h3>8.19.&nbsp;
14089    MIDI instrument information changed</h3>
14090    
14091    <p>Client may want to be notified when changes were made to MIDI instruments on the
14092                    back-end by issuing the following command:
14093    </p>
14094    <p>
14095                        </p>
14096    <blockquote class="text">
14097    <p>SUBSCRIBE MIDI_INSTRUMENT_INFO
14098    </p>
14099    </blockquote><p>
14100                    
14101    </p>
14102    <p>Server will start sending the following notification messages:
14103    </p>
14104    <p>
14105                        </p>
14106    <blockquote class="text">
14107    <p>"NOTIFY:MIDI_INSTRUMENT_INFO:&lt;map-id&gt; &lt;bank&gt; &lt;program&gt;"
14108    </p>
14109    </blockquote><p>
14110                    
14111    </p>
14112    <p>where &lt;map-id&gt; will be replaced by the numerical ID of the MIDI instrument map,
14113                    in which a MIDI instrument is changed. &lt;bank&gt; and &lt;program&gt; specifies
14114                    the location of the changed MIDI instrument in the map. The front-end will have to send
14115                    the respective command to actually get the MIDI instrument info. Because these messages
14116                    will be triggered by LSCP commands issued by other clients rather than real
14117                    time events happening on the server, it is believed that an empty notification
14118                    message is sufficient here.
14119    </p>
14120    <a name="SUBSCRIBE GLOBAL_INFO"></a><br /><hr />
14121    <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>
14122    <a name="rfc.section.8.20"></a><h3>8.20.&nbsp;
14123    Global settings changed</h3>
14124    
14125    <p>Client may want to be notified when changes to the global settings
14126                    of the sampler were made by issuing the following command:
14127    </p>
14128    <p>
14129                        </p>
14130    <blockquote class="text">
14131    <p>SUBSCRIBE GLOBAL_INFO
14132    </p>
14133    </blockquote><p>
14134                    
14135    </p>
14136    <p>Server will start sending the following types of notification messages:
14137    </p>
14138    <p>
14139                        </p>
14140    <blockquote class="text">
14141    <p>"NOTIFY:GLOBAL_INFO:VOLUME &lt;volume&gt;" - Notifies that the
14142                            golbal volume of the sampler is changed, where &lt;volume&gt; will be
14143                            replaced by the optional dotted floating point value, reflecting the
14144                            new global volume parameter.
14145    </p>
14146    </blockquote><p>
14147                        </p>
14148    <blockquote class="text">
14149    <p>"NOTIFY:GLOBAL_INFO:VOICES &lt;max-voices&gt;" - Notifies that the
14150                            golbal limit of the sampler for maximum voices is changed, where
14151                            &lt;max-voices&gt; will be an integer value, reflecting the
14152                            new global voice limit parameter.
14153    </p>
14154    </blockquote><p>
14155                        </p>
14156    <blockquote class="text">
14157    <p>"NOTIFY:GLOBAL_INFO:STREAMS &lt;max-streams&gt;" - Notifies that the
14158                            golbal limit of the sampler for maximum disk streams is changed, where
14159                            &lt;max-streams&gt; will be an integer value, reflecting the
14160                            new global disk streams limit parameter.
14161    </p>
14162    </blockquote><p>
14163                    
14164    </p>
14165    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT"></a><br /><hr />
14166    <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>
14167    <a name="rfc.section.8.21"></a><h3>8.21.&nbsp;
14168    Number of database instrument directories changed</h3>
14169    
14170    <p>Client may want to be notified when the number of instrument
14171                    directories in a particular directory in the instruments database
14172                    is changed by issuing the following command:
14173    </p>
14174    <p>
14175                        </p>
14176    <blockquote class="text">
14177    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_COUNT
14178    </p>
14179    </blockquote><p>
14180                    
14181    </p>
14182    <p>Server will start sending the following notification messages:
14183    </p>
14184    <p>
14185                        </p>
14186    <blockquote class="text">
14187    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_COUNT:&lt;dir-path&gt;"
14188    </p>
14189    </blockquote><p>
14190                    
14191    </p>
14192    <p>where &lt;dir-path&gt; will be replaced by the absolute path
14193                    name of the directory in the instruments database,
14194                    in which the number of directories is changed.
14195    </p>
14196    <p>Note that when a non-empty directory is removed, this event
14197                    is not sent for the subdirectories in that directory.
14198    </p>
14199    <a name="SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO"></a><br /><hr />
14200    <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>
14201    <a name="rfc.section.8.22"></a><h3>8.22.&nbsp;
14202    Database instrument directory information changed</h3>
14203    
14204    <p>Client may want to be notified when changes were made to directories
14205                    in the instruments database by issuing the following command:
14206    </p>
14207    <p>
14208                        </p>
14209    <blockquote class="text">
14210    <p>SUBSCRIBE DB_INSTRUMENT_DIRECTORY_INFO
14211    </p>
14212    </blockquote><p>
14213                    
14214    </p>
14215    <p>Server will start sending the following notification messages:
14216    </p>
14217    <p>
14218                        </p>
14219    <blockquote class="text">
14220    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:&lt;dir-path&gt;"
14221    </p>
14222    </blockquote><p>
14223                    
14224    </p>
14225    <p>where &lt;dir-path&gt; will be replaced by the absolute path name
14226                    of the directory, for which information changes occurred. The front-end will have to send
14227                    the respective command to actually get the updated directory info. Because these messages
14228                    will be triggered by LSCP commands issued by other clients rather than real
14229                    time events happening on the server, it is believed that an empty notification
14230                    message is sufficient here.
14231    </p>
14232    <p>
14233                        </p>
14234    <blockquote class="text">
14235    <p>"NOTIFY:DB_INSTRUMENT_DIRECTORY_INFO:NAME &lt;old-dir-path&gt; &lt;new-name&gt;"
14236    </p>
14237    </blockquote><p>
14238                    
14239    </p>
14240    <p>where &lt;old-dir-path&gt; is the old absolute path name of the directory
14241                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14242                    the new name of the directory, encapsulated into apostrophes.
14243    </p>
14244    <a name="SUBSCRIBE DB_INSTRUMENT_COUNT"></a><br /><hr />
14245    <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>
14246    <a name="rfc.section.8.23"></a><h3>8.23.&nbsp;
14247    Number of database instruments changed</h3>
14248    
14249    <p>Client may want to be notified when the number of instruments
14250                    in a particular directory in the instruments database
14251                    is changed by issuing the following command:
14252    </p>
14253    <p>
14254                        </p>
14255    <blockquote class="text">
14256    <p>SUBSCRIBE DB_INSTRUMENT_COUNT
14257    </p>
14258    </blockquote><p>
14259                    
14260    </p>
14261    <p>Server will start sending the following notification messages:
14262    </p>
14263    <p>
14264                        </p>
14265    <blockquote class="text">
14266    <p>"NOTIFY:DB_INSTRUMENT_COUNT:&lt;dir-path&gt;"
14267    </p>
14268    </blockquote><p>
14269                    
14270    </p>
14271    <p>where &lt;dir-path&gt; will be replaced by the absolute path
14272                    name of the directory in the instruments database,
14273                    in which the number of instruments is changed.
14274    </p>
14275    <p>Note that when a non-empty directory is removed, this event
14276                    is not sent for the instruments in that directory.
14277    </p>
14278    <a name="SUBSCRIBE DB_INSTRUMENT_INFO"></a><br /><hr />
14279    <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>
14280    <a name="rfc.section.8.24"></a><h3>8.24.&nbsp;
14281    Database instrument information changed</h3>
14282    
14283    <p>Client may want to be notified when changes were made to instruments
14284                    in the instruments database by issuing the following command:
14285    </p>
14286    <p>
14287                        </p>
14288    <blockquote class="text">
14289    <p>SUBSCRIBE DB_INSTRUMENT_INFO
14290    </p>
14291    </blockquote><p>
14292                    
14293    </p>
14294    <p>Server will start sending the following notification messages:
14295    </p>
14296    <p>
14297                        </p>
14298    <blockquote class="text">
14299    <p>"NOTIFY:DB_INSTRUMENT_INFO:&lt;instr-path&gt;"
14300    </p>
14301    </blockquote><p>
14302                    
14303    </p>
14304    <p>where &lt;instr-path&gt; will be replaced by the absolute path name
14305                    of the instrument, which settings are changed. The front-end will have to send
14306                    the respective command to actually get the updated directory info. Because these messages
14307                    will be triggered by LSCP commands issued by other clients rather than real
14308                    time events happening on the server, it is believed that an empty notification
14309                    message is sufficient here.
14310    </p>
14311    <p>
14312                        </p>
14313    <blockquote class="text">
14314    <p>"NOTIFY:DB_INSTRUMENT_INFO:NAME &lt;old-instr-path&gt; &lt;new-name&gt;"
14315    </p>
14316    </blockquote><p>
14317                    
14318    </p>
14319    <p>where &lt;old-instr-path&gt; is the old absolute path name of the instrument
14320                    (encapsulated into apostrophes), which name is changes and &lt;new-name&gt; is
14321                    the new name of the instrument, encapsulated into apostrophes.
14322    </p>
14323    <a name="SUBSCRIBE DB_INSTRUMENTS_JOB_INFO"></a><br /><hr />
14324    <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>
14325    <a name="rfc.section.8.25"></a><h3>8.25.&nbsp;
14326    Database job status information changed</h3>
14327    
14328    <p>Client may want to be notified when the status of particular database
14329                    instruments job is changed by issuing the following command:
14330    </p>
14331    <p>
14332                        </p>
14333    <blockquote class="text">
14334    <p>SUBSCRIBE DB_INSTRUMENTS_JOB_INFO
14335    </p>
14336    </blockquote><p>
14337                    
14338    </p>
14339    <p>Server will start sending the following notification messages:
14340    </p>
14341    <p>
14342                        </p>
14343    <blockquote class="text">
14344    <p>"NOTIFY:DB_INSTRUMENTS_JOB_INFO:&lt;job-id&gt;"
14345    </p>
14346    </blockquote><p>
14347                    
14348    </p>
14349    <p>where &lt;job-id&gt; will be replaced by the numerical ID of the job,
14350                    which status is changed. The front-end will have to send the respective
14351                    command to actually get the status info. Because these messages
14352                    will be triggered by LSCP commands issued by other clients rather than real
14353                    time events happening on the server, it is believed that an empty notification
14354                    message is sufficient here.
14355    </p>
14356    <a name="SUBSCRIBE EFFECT_INSTANCE_COUNT"></a><br /><hr />
14357    <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>
14358    <a name="rfc.section.8.26"></a><h3>8.26.&nbsp;
14359    Number of effect instances changed</h3>
14360    
14361    <p>Client may want to be notified when the number of effect instances
14362                    is changed by issuing the following command:
14363    </p>
14364    <p>
14365                        </p>
14366    <blockquote class="text">
14367    <p>SUBSCRIBE EFFECT_INSTANCE_COUNT
14368    </p>
14369    </blockquote><p>
14370                    
14371    </p>
14372    <p>Server will start sending the following notification messages:
14373    </p>
14374    <p>
14375                        </p>
14376    <blockquote class="text">
14377    <p>"EFFECT_INSTANCE_COUNT:&lt;instances&gt;"
14378    </p>
14379    </blockquote><p>
14380                    
14381    </p>
14382    <p>where &lt;instances&gt; will be replaced by the new number
14383                    of effect instances.
14384    </p>
14385    <a name="SUBSCRIBE EFFECT_INSTANCE_INFO"></a><br /><hr />
14386    <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>
14387    <a name="rfc.section.8.27"></a><h3>8.27.&nbsp;
14388    Effect instance information changed</h3>
14389    
14390    <p>Client may want to be notified when changes were made to effect instances
14391                    on the back-end by issuing the following command:
14392    </p>
14393    <p>
14394                        </p>
14395    <blockquote class="text">
14396    <p>SUBSCRIBE EFFECT_INSTANCE_INFO
14397    </p>
14398    </blockquote><p>
14399                    
14400    </p>
14401    <p>Server will start sending the following notification messages:
14402    </p>
14403    <p>
14404                       </p>
14405    <blockquote class="text">
14406    <p>"EFFECT_INSTANCE_INFO:&lt;instance-id&gt;"
14407    </p>
14408    </blockquote><p>
14409                    
14410    </p>
14411    <p>where &lt;instance-id&gt; will be replaced by the numerical ID
14412                    of the effect instance.
14413    </p>
14414    <a name="SUBSCRIBE SEND_EFFECT_CHAIN_COUNT"></a><br /><hr />
14415    <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>
14416    <a name="rfc.section.8.28"></a><h3>8.28.&nbsp;
14417    Number of send effect chains changed</h3>
14418    
14419    <p>Client may want to be notified when the number of send effect chains
14420                    is changed by issuing the following command:
14421    </p>
14422    <p>
14423                        </p>
14424    <blockquote class="text">
14425    <p>SUBSCRIBE SEND_EFFECT_CHAIN_COUNT
14426    </p>
14427    </blockquote><p>
14428                    
14429    </p>
14430    <p>Server will start sending the following notification messages:
14431    </p>
14432    <p>
14433                        </p>
14434    <blockquote class="text">
14435    <p>"NOTIFY:SEND_EFFECT_CHAIN_COUNT:&lt;device-id&gt; &lt;chains&gt;"
14436    </p>
14437    </blockquote><p>
14438                    
14439    </p>
14440    <p>where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14441                    output device, in which the number of send effect chains is changed and
14442                    &lt;chains&gt; will be replaced by the new number of send effect chains.
14443    </p>
14444    <a name="SUBSCRIBE SEND_EFFECT_CHAIN_INFO"></a><br /><hr />
14445    <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>
14446    <a name="rfc.section.8.29"></a><h3>8.29.&nbsp;
14447    Send effect chain information changed</h3>
14448    
14449    <p>Client may want to be notified when changes were made to send effect chains
14450                    on the back-end by issuing the following command:
14451    </p>
14452    <p>
14453                        </p>
14454    <blockquote class="text">
14455    <p>SUBSCRIBE SEND_EFFECT_CHAIN_INFO
14456    </p>
14457    </blockquote><p>
14458                    
14459    </p>
14460    <p>Server will start sending the following notification messages:
14461    </p>
14462    <p>
14463                       </p>
14464    <blockquote class="text">
14465    <p>"SEND_EFFECT_CHAIN_INFO:&lt;device-id&gt; &lt;chain-id&gt; &lt;instances&gt;" -
14466                            Notifies that the number of effect instances in a particular send effect chain
14467                            is changed, where &lt;device-id&gt; will be replaced by the numerical ID of the audio
14468                            output device the send effect chain belongs to, &lt;chain-id&gt; will be replaced
14469                            by the numerical ID of the send effect chain in which the number of effect instances
14470                            has changed and &lt;instances&gt; will be replaced by the new number
14471                            of effect instances in the specified send effect chain.
14472    </p>
14473    </blockquote><p>
14474                    
14475    </p>
14476    <a name="SUBSCRIBE MISCELLANEOUS"></a><br /><hr />
14477    <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>
14478    <a name="rfc.section.8.30"></a><h3>8.30.&nbsp;
14479    Miscellaneous and debugging events</h3>
14480    
14481  <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
14482                  the server by issuing the following command:                  the server by issuing the following command:
14483  </p>  </p>
14484  <p></p>  <p>
14485                        </p>
14486  <blockquote class="text">  <blockquote class="text">
14487  <p>SUBSCRIBE MISCELLANEOUS  <p>SUBSCRIBE MISCELLANEOUS
14488  </p>  </p>
14489  </blockquote>  </blockquote><p>
14490                    
14491    </p>
14492  <p>Server will start sending the following notification messages:  <p>Server will start sending the following notification messages:
14493  </p>  </p>
14494  <p></p>  <p>
14495                        </p>
14496  <blockquote class="text">  <blockquote class="text">
14497  <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"  <p>"NOTIFY:MISCELLANEOUS:&lt;string&gt;"
14498  </p>  </p>
14499  </blockquote>  </blockquote><p>
14500                    
14501    </p>
14502  <p>where &lt;string&gt; will be replaced by whatever data server  <p>where &lt;string&gt; will be replaced by whatever data server
14503                  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
14504                  user AS IS to facilitate debugging.                  user AS IS to facilitate debugging.
14505  </p>  </p>
14506  <a name="anchor15"></a><br /><hr />  <a name="anchor14"></a><br /><hr />
14507  <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>
14508  <a name="rfc.section.8"></a><h3>8.&nbsp;Security Considerations</h3>  <a name="rfc.section.9"></a><h3>9.&nbsp;
14509    Security Considerations</h3>
14510    
14511  <p>As there is so far no method of authentication and authorization  <p>As there is so far no method of authentication and authorization
14512              defined and so not required for a client applications to succeed to              defined and so not required for a client applications to succeed to
14513              connect, running LinuxSampler might be a security risk for the host              connect, running LinuxSampler might be a security risk for the host
14514              system the LinuxSampler instance is running on.              system the LinuxSampler instance is running on.
14515  </p>  </p>
14516  <a name="anchor16"></a><br /><hr />  <a name="anchor15"></a><br /><hr />
14517  <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>
14518  <a name="rfc.section.9"></a><h3>9.&nbsp;Acknowledgments</h3>  <a name="rfc.section.10"></a><h3>10.&nbsp;
14519    Acknowledgments</h3>
14520    
14521  <p>This document has benefited greatly from the comments of the  <p>This document has benefited greatly from the comments of the
14522              following people, discussed on the LinuxSampler developer's mailing              following people, discussed on the LinuxSampler developer's mailing
14523              list:              list:
14524  </p>  </p>
14525  <p></p>  <p>
14526                    </p>
14527  <blockquote class="text">  <blockquote class="text">
14528  <p>Rui Nuno Capela  <p>Rui Nuno Capela
14529  </p>  </p>
# Line 4255  Intellectual Property and Copyright Stat Line 14531  Intellectual Property and Copyright Stat
14531  </p>  </p>
14532  <p>Mark Knecht  <p>Mark Knecht
14533  </p>  </p>
14534  </blockquote>  <p>Grigor Iliev
14535    </p>
14536    </blockquote><p>
14537                
14538    </p>
14539  <a name="rfc.references1"></a><br /><hr />  <a name="rfc.references1"></a><br /><hr />
14540  <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>
14541  <h3>10&nbsp;References</h3>  <h3>11.&nbsp;References</h3>
14542  <table width="99%" border="0">  <table width="99%" border="0">
14543    <tr><td class="author-text" valign="top"><a name="RFC20">[RFC20]</a></td>
14544    <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>
14545  <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>
14546  <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>
14547    <tr><td class="author-text" valign="top"><a name="RFC2234">[RFC2234]</a></td>
14548    <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>
14549    <tr><td class="author-text" valign="top"><a name="RFC793">[RFC793]</a></td>
14550    <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>
14551  </table>  </table>
14552    
14553  <a name="rfc.authors"></a><br /><hr />  <a name="rfc.authors"></a><br /><hr />
14554  <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>
14555  <h3>Author's Address</h3>  <h3>Author's Address</h3>
14556  <table width="99%" border="0" cellpadding="0" cellspacing="0">  <table width="99%" border="0" cellpadding="0" cellspacing="0">
14557  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
14558  <td class="author-text">C.  <td class="author-text">C.
14559  Schoenebeck</td></tr>  Schoenebeck</td></tr>
14560  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
14561  <td class="author-text">Interessengemeinschaft Software Engineering e. V.</td></tr>  <td class="author-text">LinuxSampler.org</td></tr>
14562    <tr><td class="author-text">&nbsp;</td>
14563    <td class="author-text">Crudebyte Engineering</td></tr>
14564  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
14565  <td class="author-text">Max-Planck-Str. 39</td></tr>  <td class="author-text">Hofgartenstr. 3</td></tr>
14566  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
14567  <td class="author-text">74081 Heilbronn</td></tr>  <td class="author-text">74189 Weinsberg</td></tr>
14568  <tr><td class="author-text">&nbsp;</td>  <tr><td class="author-text">&nbsp;</td>
14569  <td class="author-text">Germany</td></tr>  <td class="author-text">Germany</td></tr>
14570  <tr><td class="author" align="right">EMail:&nbsp;</td>  <tr><td class="author" align="right">Phone:&nbsp;</td>
14571  <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">+49 7134 911614</td></tr>
14572    <tr><td class="author" align="right">Email:&nbsp;</td>
14573    <td class="author-text"><a href="mailto:cuse@users.sf.net">cuse@users.sf.net</a></td></tr>
14574  </table>  </table>
14575  <a name="rfc.copyright"></a><br /><hr />  <a name="rfc.copyright"></a><br /><hr />
14576  <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>  
14577  <h3>Full Copyright Statement</h3>  <h3>Full Copyright Statement</h3>
14578  <p class='copyright'>  <p class='copyright'>
14579  Copyright (C) The Internet Society (2005). All Rights Reserved.</p>  Copyright &copy; The IETF Trust (2014).</p>
14580  <p class='copyright'>  <p class='copyright'>
14581  This document and translations of it may be copied and furnished to  This document is subject to the rights,
14582  others, and derivative works that comment on or otherwise explain it  licenses and restrictions contained in BCP&nbsp;78,
14583  or assist in its implementation may be prepared, copied, published and  and except as set forth therein,
14584  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>  
14585  <p class='copyright'>  <p class='copyright'>
14586  The limited permissions granted above are perpetual and will not be  This document and the information contained herein are provided
14587  revoked by the Internet Society or its successors or assignees.</p>  on an &ldquo;AS IS&rdquo; basis and THE CONTRIBUTOR,
14588    THE ORGANIZATION HE/SHE REPRESENTS
14589    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST
14590    AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
14591    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
14592    THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
14593    IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
14594    PURPOSE.</p>
14595    <h3>Intellectual Property</h3>
14596    <p class='copyright'>
14597    The IETF takes no position regarding the validity or scope of any
14598    Intellectual Property Rights or other rights that might be claimed
14599    to pertain to the implementation or use of the technology
14600    described in this document or the extent to which any license
14601    under such rights might or might not be available; nor does it
14602    represent that it has made any independent effort to identify any
14603    such rights.
14604    Information on the procedures with respect to
14605    rights in RFC documents can be found in BCP&nbsp;78 and BCP&nbsp;79.</p>
14606  <p class='copyright'>  <p class='copyright'>
14607  This document and the information contained herein is provided on an  Copies of IPR disclosures made to the IETF Secretariat and any
14608  &quot;AS IS&quot; basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING  assurances of licenses to be made available,
14609  TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING  or the result of an attempt made to obtain a general license or
14610  BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION  permission for the use of such proprietary rights by implementers or
14611  HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF  users of this specification can be obtained from the IETF on-line IPR
14612  MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>  repository at <a href='http://www.ietf.org/ipr'>http://www.ietf.org/ipr</a>.</p>
 <h3>Acknowledgment</h3>  
14613  <p class='copyright'>  <p class='copyright'>
14614  Funding for the RFC Editor function is currently provided by the  The IETF invites any interested party to bring to its attention
14615  Internet Society.</p>  any copyrights,
14616    patents or patent applications,
14617    or other
14618    proprietary rights that may cover technology that may be required
14619    to implement this standard.
14620    Please address the information to the IETF at <a href='mailto:ietf-ipr@ietf.org'>ietf-ipr@ietf.org</a>.</p>
14621  </body></html>  </body></html>

Legend:
Removed from v.558  
changed lines
  Added in v.2498

  ViewVC Help
Powered by ViewVC