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

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

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

revision 575 by schoenebeck, Tue May 24 03:26:22 2005 UTC revision 708 by schoenebeck, Thu Jul 21 09:18:40 2005 UTC
# Line 1  Line 1 
1    
2    
3    
4  LinuxSampler Developers                                   C. Schoenebeck  LinuxSampler Developers                                   C. Schoenebeck
5  Internet-Draft                           Interessengemeinschaft Software  Internet-Draft                           Interessengemeinschaft Software
6  Expires: November 22, 2005                             Engineering e. V.  Expires: November 2, 2005                              Engineering e. V.
7                                                              May 24, 2005                                                                  May 2005
8    
9    
10                       LinuxSampler Control Protocol                       LinuxSampler Control Protocol
11                                  LSCP 1.0                                  LSCP 1.1
12    
13  Status of this Memo  Status of this Memo
14    
15     This document is an Internet-Draft and is in full conformance with     This document is an Internet-Draft and is in full conformance with
16     all provisions of Section 10 of RFC2026.     all provisions of Section 10 of RFC 2026.
17    
18     Internet-Drafts are working documents of the Internet Engineering     Internet-Drafts are working documents of the Internet Engineering
19     Task Force (IETF), its areas, and its working groups.  Note that     Task Force (IETF), its areas, and its working groups.  Note that
20     other groups may also distribute working documents as     other groups may also distribute working documents as Internet-
21     Internet-Drafts.     Drafts.
22    
23     Internet-Drafts are draft documents valid for a maximum of six months     Internet-Drafts are draft documents valid for a maximum of six months
24     and may be updated, replaced, or obsoleted by other documents at any     and may be updated, replaced, or obsoleted by other documents at any
# Line 30  Status of this Memo Line 31  Status of this Memo
31     The list of Internet-Draft Shadow Directories can be accessed at     The list of Internet-Draft Shadow Directories can be accessed at
32     http://www.ietf.org/shadow.html.     http://www.ietf.org/shadow.html.
33    
34     This Internet-Draft will expire on November 22, 2005.     This Internet-Draft will expire on November 2, 2005.
35    
36  Copyright Notice  Copyright Notice
37    
# Line 40  Abstract Line 41  Abstract
41    
42     The LinuxSampler Control Protocol (LSCP) is an application-level     The LinuxSampler Control Protocol (LSCP) is an application-level
43     protocol primarily intended for local and remote controlling the     protocol primarily intended for local and remote controlling the
44     LinuxSampler backend application, which is a sophisticated     LinuxSampler backend application, which is a sophisticated server-
45     server-like console application essentially playing back audio     like console application essentially playing back audio samples and
46     samples and manipulating the samples in real time to certain extent.     manipulating the samples in real time to certain extent.
47    
48    
49    
# Line 51  Abstract Line 52  Abstract
52    
53    
54    
55    Schoenebeck             Expires November 2, 2005                [Page 1]
56    
57  Schoenebeck            Expires November 22, 2005                [Page 1]  Internet-Draft        LinuxSampler Control Protocol             May 2005
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
58    
59    
60  Table of Contents  Table of Contents
# Line 66  Table of Contents Line 66  Table of Contents
66     5.   Communication Overview . . . . . . . . . . . . . . . . . . .   8     5.   Communication Overview . . . . . . . . . . . . . . . . . . .   8
67       5.1  Request/response communication method  . . . . . . . . . .   8       5.1  Request/response communication method  . . . . . . . . . .   8
68         5.1.1  Result format  . . . . . . . . . . . . . . . . . . . .   9         5.1.1  Result format  . . . . . . . . . . . . . . . . . . . .   9
69       5.2  Subscribe/notify communication method  . . . . . . . . . .  10       5.2  Subscribe/notify communication method  . . . . . . . . . .  11
70     6.   Description for control commands . . . . . . . . . . . . . .  13     6.   Description for control commands . . . . . . . . . . . . . .  13
71       6.1  Ignored lines and comments . . . . . . . . . . . . . . . .  13       6.1  Ignored lines and comments . . . . . . . . . . . . . . . .  13
72       6.2  Configuring audio drivers  . . . . . . . . . . . . . . . .  13       6.2  Configuring audio drivers  . . . . . . . . . . . . . . . .  13
# Line 76  Table of Contents Line 76  Table of Contents
76                driver . . . . . . . . . . . . . . . . . . . . . . . .  14                driver . . . . . . . . . . . . . . . . . . . . . . . .  14
77         6.2.4  Getting information about specific audio output         6.2.4  Getting information about specific audio output
78                driver parameter . . . . . . . . . . . . . . . . . . .  15                driver parameter . . . . . . . . . . . . . . . . . . .  15
79         6.2.5  Creating an audio output device  . . . . . . . . . . .  18         6.2.5  Creating an audio output device  . . . . . . . . . . .  19
80         6.2.6  Destroying an audio output device  . . . . . . . . . .  18         6.2.6  Destroying an audio output device  . . . . . . . . . .  20
81         6.2.7  Getting all created audio output device count  . . . .  19         6.2.7  Getting all created audio output device count  . . . .  21
82         6.2.8  Getting all created audio output device list . . . . .  19         6.2.8  Getting all created audio output device list . . . . .  21
83         6.2.9  Getting current settings of an audio output device . .  20         6.2.9  Getting current settings of an audio output device . .  21
84         6.2.10   Changing settings of audio output devices  . . . . .  21         6.2.10   Changing settings of audio output devices  . . . . .  23
85         6.2.11   Getting information about an audio channel . . . . .  21         6.2.11   Getting information about an audio channel . . . . .  24
86         6.2.12   Getting information about specific audio channel         6.2.12   Getting information about specific audio channel
87                  parameter  . . . . . . . . . . . . . . . . . . . . .  23                  parameter  . . . . . . . . . . . . . . . . . . . . .  25
88         6.2.13   Changing settings of audio output channels . . . . .  24         6.2.13   Changing settings of audio output channels . . . . .  27
89       6.3  Configuring MIDI input drivers . . . . . . . . . . . . . .  25       6.3  Configuring MIDI input drivers . . . . . . . . . . . . . .  28
90         6.3.1  Getting amount of available MIDI input drivers . . . .  26         6.3.1  Getting amount of available MIDI input drivers . . . .  29
91         6.3.2  Getting all available MIDI input drivers . . . . . . .  26         6.3.2  Getting all available MIDI input drivers . . . . . . .  29
92         6.3.3  Getting information about a specific MIDI input         6.3.3  Getting information about a specific MIDI input
93                driver . . . . . . . . . . . . . . . . . . . . . . . .  26                driver . . . . . . . . . . . . . . . . . . . . . . . .  30
94         6.3.4  Getting information about specific MIDI input         6.3.4  Getting information about specific MIDI input
95                driver parameter . . . . . . . . . . . . . . . . . . .  27                driver parameter . . . . . . . . . . . . . . . . . . .  31
96         6.3.5  Creating a MIDI input device . . . . . . . . . . . . .  29         6.3.5  Creating a MIDI input device . . . . . . . . . . . . .  33
97         6.3.6  Destroying a MIDI input device . . . . . . . . . . . .  30         6.3.6  Destroying a MIDI input device . . . . . . . . . . . .  34
98         6.3.7  Getting all created MIDI input device count  . . . . .  30         6.3.7  Getting all created MIDI input device count  . . . . .  35
99         6.3.8  Getting all created MIDI input device list . . . . . .  31         6.3.8  Getting all created MIDI input device list . . . . . .  35
100         6.3.9  Getting current settings of a MIDI input device  . . .  31         6.3.9  Getting current settings of a MIDI input device  . . .  36
101         6.3.10   Changing settings of MIDI input devices  . . . . . .  32         6.3.10   Changing settings of MIDI input devices  . . . . . .  37
102         6.3.11   Getting information about a MIDI port  . . . . . . .  33         6.3.11   Getting information about a MIDI port  . . . . . . .  38
103         6.3.12   Getting information about specific MIDI port         6.3.12   Getting information about specific MIDI port
104                  parameter  . . . . . . . . . . . . . . . . . . . . .  33                  parameter  . . . . . . . . . . . . . . . . . . . . .  38
105         6.3.13   Changing settings of MIDI input ports  . . . . . . .  35         6.3.13   Changing settings of MIDI input ports  . . . . . . .  40
106       6.4  Configuring sampler channels . . . . . . . . . . . . . . .  35       6.4  Configuring sampler channels . . . . . . . . . . . . . . .  41
107         6.4.1  Loading an instrument  . . . . . . . . . . . . . . . .  35         6.4.1  Loading an instrument  . . . . . . . . . . . . . . . .  41
108    
109    
110    
111  Schoenebeck            Expires November 22, 2005                [Page 2]  Schoenebeck             Expires November 2, 2005                [Page 2]
112    
113  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
114    
115    
116         6.4.2  Loading a sampler engine . . . . . . . . . . . . . . .  36         6.4.2  Loading a sampler engine . . . . . . . . . . . . . . .  42
117         6.4.3  Getting all created sampler channel count  . . . . . .  37         6.4.3  Getting all created sampler channel count  . . . . . .  43
118         6.4.4  Getting all created sampler channel list . . . . . . .  37         6.4.4  Getting all created sampler channel list . . . . . . .  43
119         6.4.5  Adding a new sampler channel . . . . . . . . . . . . .  38         6.4.5  Adding a new sampler channel . . . . . . . . . . . . .  44
120         6.4.6  Removing a sampler channel . . . . . . . . . . . . . .  39         6.4.6  Removing a sampler channel . . . . . . . . . . . . . .  45
121         6.4.7  Getting amount of available engines  . . . . . . . . .  39         6.4.7  Getting amount of available engines  . . . . . . . . .  45
122         6.4.8  Getting all available engines  . . . . . . . . . . . .  39         6.4.8  Getting all available engines  . . . . . . . . . . . .  46
123         6.4.9  Getting information about an engine  . . . . . . . . .  40         6.4.9  Getting information about an engine  . . . . . . . . .  46
124         6.4.10   Getting sampler channel information  . . . . . . . .  41         6.4.10   Getting sampler channel information  . . . . . . . .  47
125         6.4.11   Current number of active voices  . . . . . . . . . .  42         6.4.11   Current number of active voices  . . . . . . . . . .  50
126         6.4.12   Current number of active disk streams  . . . . . . .  43         6.4.12   Current number of active disk streams  . . . . . . .  50
127         6.4.13   Current fill state of disk stream buffers  . . . . .  43         6.4.13   Current fill state of disk stream buffers  . . . . .  51
128         6.4.14   Setting audio output device  . . . . . . . . . . . .  44         6.4.14   Setting audio output device  . . . . . . . . . . . .  52
129         6.4.15   Setting audio output type  . . . . . . . . . . . . .  45         6.4.15   Setting audio output type  . . . . . . . . . . . . .  53
130         6.4.16   Setting audio output channel . . . . . . . . . . . .  45         6.4.16   Setting audio output channel . . . . . . . . . . . .  53
131         6.4.17   Setting MIDI input device  . . . . . . . . . . . . .  46         6.4.17   Setting MIDI input device  . . . . . . . . . . . . .  54
132         6.4.18   Setting MIDI input type  . . . . . . . . . . . . . .  46         6.4.18   Setting MIDI input type  . . . . . . . . . . . . . .  55
133         6.4.19   Setting MIDI input port  . . . . . . . . . . . . . .  47         6.4.19   Setting MIDI input port  . . . . . . . . . . . . . .  56
134         6.4.20   Setting MIDI input channel . . . . . . . . . . . . .  48         6.4.20   Setting MIDI input channel . . . . . . . . . . . . .  56
135         6.4.21   Setting channel volume . . . . . . . . . . . . . . .  48         6.4.21   Setting channel volume . . . . . . . . . . . . . . .  57
136         6.4.22   Resetting a sampler channel  . . . . . . . . . . . .  49         6.4.22   Muting a sampler channel . . . . . . . . . . . . . .  58
137       6.5  Controlling connection . . . . . . . . . . . . . . . . . .  49         6.4.23   Soloing a sampler channel  . . . . . . . . . . . . .  58
138         6.5.1  Register front-end for receiving event messages  . . .  49         6.4.24   Resetting a sampler channel  . . . . . . . . . . . .  59
139         6.5  Controlling connection . . . . . . . . . . . . . . . . . .  60
140           6.5.1  Register front-end for receiving event messages  . . .  60
141         6.5.2  Unregister front-end for not receiving event         6.5.2  Unregister front-end for not receiving event
142                messages . . . . . . . . . . . . . . . . . . . . . . .  50                messages . . . . . . . . . . . . . . . . . . . . . . .  61
143         6.5.3  Enable or disable echo of commands . . . . . . . . . .  51         6.5.3  Enable or disable echo of commands . . . . . . . . . .  61
144         6.5.4  Close client connection  . . . . . . . . . . . . . . .  51         6.5.4  Close client connection  . . . . . . . . . . . . . . .  62
145       6.6  Global commands  . . . . . . . . . . . . . . . . . . . . .  51       6.6  Global commands  . . . . . . . . . . . . . . . . . . . . .  62
146         6.6.1  Reset sampler  . . . . . . . . . . . . . . . . . . . .  51         6.6.1  Reset sampler  . . . . . . . . . . . . . . . . . . . .  62
147         6.6.2  General sampler informations . . . . . . . . . . . . .  52         6.6.2  General sampler informations . . . . . . . . . . . . .  62
148     7.   Command Syntax . . . . . . . . . . . . . . . . . . . . . . .  53     7.   Command Syntax . . . . . . . . . . . . . . . . . . . . . . .  64
149     8.   Events . . . . . . . . . . . . . . . . . . . . . . . . . . .  58     8.   Events . . . . . . . . . . . . . . . . . . . . . . . . . . .  71
150       8.1  Number of sampler channels changed . . . . . . . . . . . .  58       8.1  Number of sampler channels changed . . . . . . . . . . . .  71
151       8.2  Number of active voices changed  . . . . . . . . . . . . .  58       8.2  Number of active voices changed  . . . . . . . . . . . . .  71
152       8.3  Number of active disk streams changed  . . . . . . . . . .  58       8.3  Number of active disk streams changed  . . . . . . . . . .  71
153       8.4  Disk stream buffer fill state changed  . . . . . . . . . .  59       8.4  Disk stream buffer fill state changed  . . . . . . . . . .  72
154       8.5  Channel information changed  . . . . . . . . . . . . . . .  59       8.5  Channel information changed  . . . . . . . . . . . . . . .  72
155       8.6  Miscellaneous and debugging events . . . . . . . . . . . .  59       8.6  Miscellaneous and debugging events . . . . . . . . . . . .  72
156     9.   Security Considerations  . . . . . . . . . . . . . . . . . .  61     9.   Security Considerations  . . . . . . . . . . . . . . . . . .  74
157     10.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  62     10.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  75
158     11.  References . . . . . . . . . . . . . . . . . . . . . . . . .  62     11.  References . . . . . . . . . . . . . . . . . . . . . . . . .  75
159          Author's Address . . . . . . . . . . . . . . . . . . . . . .  62          Author's Address . . . . . . . . . . . . . . . . . . . . . .  75
160          Intellectual Property and Copyright Statements . . . . . . .  63          Intellectual Property and Copyright Statements . . . . . . .  76
   
161    
162    
163    
164    
165    
166    
167    Schoenebeck             Expires November 2, 2005                [Page 3]
168    
169  Schoenebeck            Expires November 22, 2005                [Page 3]  Internet-Draft        LinuxSampler Control Protocol             May 2005
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
170    
171    
172  1.  Requirements notation  1.  Requirements notation
# Line 178  Internet-Draft       LinuxSampler Contro Line 178  Internet-Draft       LinuxSampler Contro
178     This protocol is always case-sensitive if not explicitly claimed the     This protocol is always case-sensitive if not explicitly claimed the
179     opposite.     opposite.
180    
181     In examples, "C:" and "S:" indicate lines sent by the client     In examples, "C:" and "S:" indicate lines sent by the client (front-
182     (front-end) and server (LinuxSampler) respectively.  Lines in     end) and server (LinuxSampler) respectively.  Lines in examples must
183     examples must be interpreted as every line being CRLF terminated     be interpreted as every line being CRLF terminated (carriage return
184     (carriage return character followed by line feed character as defined     character followed by line feed character as defined in the ASCII
185     in the ASCII standard), thus the following example:     standard), thus the following example:
186    
187        C: "some line"        C: "some line"
188    
189           "another line"           "another line"
190    
191     must actually be interpreted as client sending the following message:     must actually be interpreted as client sending the following message:
# Line 203  Internet-Draft       LinuxSampler Contro Line 204  Internet-Draft       LinuxSampler Contro
204     sequence scenario:     sequence scenario:
205    
206     o  server sending message "a"     o  server sending message "a"
207    
208     o  followed by a delay (pause) with arbitrary duration     o  followed by a delay (pause) with arbitrary duration
209    
210     o  followed by server sending message "bcd<CR>"     o  followed by server sending message "bcd<CR>"
211    
212     o  again followed by a delay (pause) with arbitrary duration     o  again followed by a delay (pause) with arbitrary duration
213    
214     o  followed by server sending the message "<LF>"     o  followed by server sending the message "<LF>"
215    
216     where again <CR> and <LF> symbolize the carriage return and line feed     where again <CR> and <LF> symbolize the carriage return and line feed
# Line 215  Internet-Draft       LinuxSampler Contro Line 220  Internet-Draft       LinuxSampler Contro
220    
221    
222    
223    Schoenebeck             Expires November 2, 2005                [Page 4]
224    
225    Internet-Draft        LinuxSampler Control Protocol             May 2005
   
   
   
 Schoenebeck            Expires November 22, 2005                [Page 4]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
226    
227    
228  2.  Versioning of this specification  2.  Versioning of this specification
# Line 246  Internet-Draft       LinuxSampler Contro Line 246  Internet-Draft       LinuxSampler Contro
246    
247     1.  The frontend's LSCP major version and the sampler's LSCP major     1.  The frontend's LSCP major version and the sampler's LSCP major
248         version are exactly equal.         version are exactly equal.
249    
250     2.  The frontend's LSCP minor version is less or equal than the     2.  The frontend's LSCP minor version is less or equal than the
251         sampler's LSCP minor version.         sampler's LSCP minor version.
252    
# Line 275  Internet-Draft       LinuxSampler Contro Line 276  Internet-Draft       LinuxSampler Contro
276    
277    
278    
279    Schoenebeck             Expires November 2, 2005                [Page 5]
280    
281  Schoenebeck            Expires November 22, 2005                [Page 5]  Internet-Draft        LinuxSampler Control Protocol             May 2005
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
282    
283    
284  3.  Introduction  3.  Introduction
# Line 291  Internet-Draft       LinuxSampler Contro Line 291  Internet-Draft       LinuxSampler Contro
291     virtual channels which will be referred in this document as "sampler     virtual channels which will be referred in this document as "sampler
292     channels".  The channels are in such way virtual as they can be     channels".  The channels are in such way virtual as they can be
293     connected to an arbitrary MIDI input method and arbitrary MIDI     connected to an arbitrary MIDI input method and arbitrary MIDI
294     channel (e.g.  sampler channel 17 could be connected to an ALSA     channel (e.g. sampler channel 17 could be connected to an ALSA
295     sequencer device 64:0 and listening to MIDI channel 1 there).  Each     sequencer device 64:0 and listening to MIDI channel 1 there).  Each
296     sampler channel will be associated with an instance of one of the     sampler channel will be associated with an instance of one of the
297     available sampler engines (e.g.  GigEngine, DLSEngine).  The audio     available sampler engines (e.g.  GigEngine, DLSEngine).  The audio
# Line 332  Internet-Draft       LinuxSampler Contro Line 332  Internet-Draft       LinuxSampler Contro
332    
333    
334    
335  Schoenebeck            Expires November 22, 2005                [Page 6]  Schoenebeck             Expires November 2, 2005                [Page 6]
336    
337  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
338    
339    
340  4.  Focus of this protocol  4.  Focus of this protocol
# Line 388  Internet-Draft       LinuxSampler Contro Line 388  Internet-Draft       LinuxSampler Contro
388    
389    
390    
391  Schoenebeck            Expires November 22, 2005                [Page 7]  Schoenebeck             Expires November 2, 2005                [Page 7]
392    
393  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
394    
395    
396  5.  Communication Overview  5.  Communication Overview
# Line 444  Internet-Draft       LinuxSampler Contro Line 444  Internet-Draft       LinuxSampler Contro
444    
445    
446    
447  Schoenebeck            Expires November 22, 2005                [Page 8]  Schoenebeck             Expires November 2, 2005                [Page 8]
448    
449  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
450    
451    
452  5.1.1  Result format  5.1.1  Result format
# Line 454  Internet-Draft       LinuxSampler Contro Line 454  Internet-Draft       LinuxSampler Contro
454     Result set could be one of the following types:     Result set could be one of the following types:
455    
456     1.  Normal     1.  Normal
457    
458     2.  Warning     2.  Warning
459    
460     3.  Error     3.  Error
461    
462     Warning and Error result sets MUST be single line and have the     Warning and Error result sets MUST be single line and have the
463     following format:     following format:
464    
465     o  "WRN:<warning-code>:<warning-message>"     o  "WRN:<warning-code>:<warning-message>"
466    
467     o  "ERR:<error-code>:<error-message>"     o  "ERR:<error-code>:<error-message>"
468    
469     Where <warning-code> and <error-code> are numeric unique identifiers     Where <warning-code> and <error-code> are numeric unique identifiers
# Line 470  Internet-Draft       LinuxSampler Contro Line 473  Internet-Draft       LinuxSampler Contro
473     Examples:     Examples:
474    
475        C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0        C: "LOAD INSTRUMENT '/home/me/Boesendorfer24bit.gig" 0 0
476    
477        S: "WRN:32:This is a 24 bit patch which is not supported natively        S: "WRN:32:This is a 24 bit patch which is not supported natively
478        yet."        yet."
479    
480        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA EAR"
481    
482        S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter        S: "ERR:3456:Audio output driver 'ALSA' does not have a parameter
483        'EAR'."        'EAR'."
484    
485        C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"        C: "GET AUDIO_OUTPUT_DEVICE INFO 123456"
486    
487        S: "ERR:9:There is no audio output device with index 123456."        S: "ERR:9:There is no audio output device with index 123456."
488    
489     Normal result sets could be:     Normal result sets could be:
490    
491     1.  Empty     1.  Empty
492    
493     2.  Single line     2.  Single line
494    
495     3.  Multi-line     3.  Multi-line
496    
497     Empty result set is issued when the server only needed to acknowledge     Empty result set is issued when the server only needed to acknowledge
498     the fact that the request was received and it was processed     the fact that the request was received and it was processed
499     successfully and no additional information is available.  This result     successfully and no additional information is available.  This result
    set has the following format:  
500    
       "OK"  
501    
    Example:  
502    
503        C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"  Schoenebeck             Expires November 2, 2005                [Page 9]
504    
505    Internet-Draft        LinuxSampler Control Protocol             May 2005
506    
507    
508       set has the following format:
509    
510  Schoenebeck            Expires November 22, 2005                [Page 9]        "OK"
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
511    
512       Example:
513    
514          C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"
515    
516        S: "OK"        S: "OK"
517    
# Line 517  Internet-Draft       LinuxSampler Contro Line 525  Internet-Draft       LinuxSampler Contro
525     Example:     Example:
526    
527        C: "GET AUDIO_OUTPUT_DEVICE INFO 0"        C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
528    
529        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
530    
531           "CHANNELS: 2"           "CHANNELS: 2"
532    
533           "SAMPLERATE: 44100"           "SAMPLERATE: 44100"
534    
535           "ACTIVE: true"           "ACTIVE: true"
536    
537           "FRAGMENTS: 2"           "FRAGMENTS: 2"
538    
539           "FRAGMENTSIZE: 128"           "FRAGMENTSIZE: 128"
540    
541           "CARD: '0,0'"           "CARD: '0,0'"
542    
543           "."           "."
544    
545     In addition to above mentioned formats, warnings and empty result     In addition to above mentioned formats, warnings and empty result
# Line 531  Internet-Draft       LinuxSampler Contro Line 547  Internet-Draft       LinuxSampler Contro
547     respectively:     respectively:
548    
549     o  "WRN[<index>]:<warning-code>:<warning-message>"     o  "WRN[<index>]:<warning-code>:<warning-message>"
550    
551     o  "OK[<index>]"     o  "OK[<index>]"
552    
553     where <index> is command specific and is used to indicate channel     where <index> is command specific and is used to indicate channel
554     number that the result set was related to or other integer value.     number that the result set was related to or other integer value.
555    
556    
557    
558    
559    Schoenebeck             Expires November 2, 2005               [Page 10]
560    
561    Internet-Draft        LinuxSampler Control Protocol             May 2005
562    
563    
564     Each line of the result set MUST end with <CRLF>.     Each line of the result set MUST end with <CRLF>.
565    
566     Examples:     Examples:
567    
568        C: "ADD CHANNEL"        C: "ADD CHANNEL"
569    
570        S: "OK[12]"        S: "OK[12]"
571    
572        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"
573    
574        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
575    
576    
577  5.2  Subscribe/notify communication method  5.2  Subscribe/notify communication method
578    
579     This more sophisticated communication method is actually only an     This more sophisticated communication method is actually only an
# Line 553  Internet-Draft       LinuxSampler Contro Line 581  Internet-Draft       LinuxSampler Contro
581     front-end still uses a TCP connection and sends the same commands on     front-end still uses a TCP connection and sends the same commands on
582     the TCP connection.  Two extra commands are SUBSCRIBE and UNSUBSCRIBE     the TCP connection.  Two extra commands are SUBSCRIBE and UNSUBSCRIBE
583     commands that allow a client to tell the server that it is interested     commands that allow a client to tell the server that it is interested
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 10]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
584     in receiving notifications about certain events as they happen on the     in receiving notifications about certain events as they happen on the
585     server.  The SUBSCRIBE command has the following syntax:     server.  The SUBSCRIBE command has the following syntax:
586    
# Line 583  Internet-Draft       LinuxSampler Contro Line 603  Internet-Draft       LinuxSampler Contro
603    
604     1.  Events MUST NOT be sent to any client who has not issued an     1.  Events MUST NOT be sent to any client who has not issued an
605         appropriate SUBSCRIBE command.         appropriate SUBSCRIBE command.
606    
607     2.  Events MUST only be sent using the same connection that was used     2.  Events MUST only be sent using the same connection that was used
608         to subscribe to them.         to subscribe to them.
609    
610     3.  When response is being sent to the client, event MUST be inserted     3.  When response is being sent to the client, event MUST be inserted
611         in the stream before or after the response, but NOT in the         in the stream before or after the response, but NOT in the
612    
613    
614    
615    Schoenebeck             Expires November 2, 2005               [Page 11]
616    
617    Internet-Draft        LinuxSampler Control Protocol             May 2005
618    
619    
620         middle.  Same is true about the response.  It should never be         middle.  Same is true about the response.  It should never be
621         inserted in the middle of the event message as well as any other         inserted in the middle of the event message as well as any other
622         response.         response.
# Line 610  Internet-Draft       LinuxSampler Contro Line 640  Internet-Draft       LinuxSampler Contro
640     channel 4, where the stream with ID "35" is filled by 62%, stream     channel 4, where the stream with ID "35" is filled by 62%, stream
641     with ID 33 is filled by 80% and stream with ID 37 is filled by 98%.     with ID 33 is filled by 80% and stream with ID 37 is filled by 98%.
642    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 11]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
643     Clients may choose to open more than one connection to the server and     Clients may choose to open more than one connection to the server and
644     use some connections to receive notifications while using other     use some connections to receive notifications while using other
645     connections to issue commands to the back-end.  This is entirely     connections to issue commands to the back-end.  This is entirely
# Line 645  Internet-Draft       LinuxSampler Contro Line 668  Internet-Draft       LinuxSampler Contro
668    
669    
670    
671    Schoenebeck             Expires November 2, 2005               [Page 12]
672    
673    Internet-Draft        LinuxSampler Control Protocol             May 2005
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 12]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
674    
675    
676  6.  Description for control commands  6.  Description for control commands
677    
678     This chapter will describe the available control commands that can be     This chapter will describe the available control commands that can be
679     sent on the TCP connection in detail.  Some certain commands (e.g.     sent on the TCP connection in detail.  Some certain commands (e.g.
680     "GET CHANNEL INFO" (Section 6.4.10) or "GET ENGINE INFO" (Section     "GET CHANNEL INFO" (Section 6.4.10) or "GET ENGINE INFO"
681     6.4.9)) lead to multiple-line responses.  In this case LinuxSampler     (Section 6.4.9)) lead to multiple-line responses.  In this case
682     signals the end of the response by a "." (single dot) line.     LinuxSampler signals the end of the response by a "." (single dot)
683       line.
684    
685  6.1  Ignored lines and comments  6.1  Ignored lines and comments
686    
# Line 691  Internet-Draft       LinuxSampler Contro Line 692  Internet-Draft       LinuxSampler Contro
692  6.2  Configuring audio drivers  6.2  Configuring audio drivers
693    
694     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
695     multiple audio devices simultaneously, e.g.  to output the sound of     multiple audio devices simultaneously, e.g. to output the sound of
696     one sampler channel using the ALSA audio output driver, and on     one sampler channel using the ALSA audio output driver, and on
697     another sampler channel you might want to use the JACK audio output     another sampler channel you might want to use the JACK audio output
698     driver.  For particular audio output systems it's also possible to     driver.  For particular audio output systems it's also possible to
699     create several devices of the same audio output driver, e.g.  two     create several devices of the same audio output driver, e.g. two
700     separate ALSA audio output devices for using two different sound     separate ALSA audio output devices for using two different sound
701     cards at the same time.  This chapter describes all commands to     cards at the same time.  This chapter describes all commands to
702     configure LinuxSampler's audio output devices and their parameters.     configure LinuxSampler's audio output devices and their parameters.
# Line 705  Internet-Draft       LinuxSampler Contro Line 706  Internet-Draft       LinuxSampler Contro
706     values have to be obtained at runtime.  This makes the protocol a bit     values have to be obtained at runtime.  This makes the protocol a bit
707     abstract, but has the advantage, that front-ends can be written     abstract, but has the advantage, that front-ends can be written
708     independently of what drivers are currently implemented and what     independently of what drivers are currently implemented and what
709     parameters these drivers are actually offering.  This means     parameters these drivers are actually offering.  This means front-
710     front-ends can even handle drivers which are implemented somewhere in     ends can even handle drivers which are implemented somewhere in
711     future without modifying the front-end at all.     future without modifying the front-end at all.
712    
713     Note: examples in this chapter showing particular parameters of     Note: examples in this chapter showing particular parameters of
# Line 720  Internet-Draft       LinuxSampler Contro Line 721  Internet-Draft       LinuxSampler Contro
721  6.2.1  Getting amount of available audio output drivers  6.2.1  Getting amount of available audio output drivers
722    
723     Use the following command to get the number of audio output drivers     Use the following command to get the number of audio output drivers
    currently available for the LinuxSampler instance:  
724    
725    
726    
727  Schoenebeck            Expires November 22, 2005               [Page 13]  Schoenebeck             Expires November 2, 2005               [Page 13]
728    
729  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
730    
731    
732       currently available for the LinuxSampler instance:
733    
734        GET AVAILABLE_AUDIO_OUTPUT_DRIVERS        GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
735    
# Line 739  Internet-Draft       LinuxSampler Contro Line 741  Internet-Draft       LinuxSampler Contro
741     Example:     Example:
742    
743        C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"        C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"
744    
745        S: "2"        S: "2"
746    
747    
748  6.2.2  Getting all available audio output drivers  6.2.2  Getting all available audio output drivers
749    
750     Use the following command to list all audio output drivers currently     Use the following command to list all audio output drivers currently
# Line 756  Internet-Draft       LinuxSampler Contro Line 760  Internet-Draft       LinuxSampler Contro
760     Example:     Example:
761    
762        C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"        C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"
763    
764        S: "ALSA,JACK"        S: "ALSA,JACK"
765    
766    
767  6.2.3  Getting information about a specific audio output driver  6.2.3  Getting information about a specific audio output driver
768    
769     Use the following command to get detailed information about a     Use the following command to get detailed information about a
# Line 771  Internet-Draft       LinuxSampler Contro Line 777  Internet-Draft       LinuxSampler Contro
777    
778     Possible Answers:     Possible Answers:
779    
780    
781    
782    
783    Schoenebeck             Expires November 2, 2005               [Page 14]
784    
785    Internet-Draft        LinuxSampler Control Protocol             May 2005
786    
787    
788        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
789        answer line begins with the information category name followed by        answer line begins with the information category name followed by
790        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
# Line 779  Internet-Draft       LinuxSampler Contro Line 793  Internet-Draft       LinuxSampler Contro
793    
794    
795    
   
 Schoenebeck            Expires November 22, 2005               [Page 14]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
   
796           DESCRIPTION -           DESCRIPTION -
797    
798              character string describing the audio output driver              character string describing the audio output driver
799    
800           VERSION -           VERSION -
801    
802              character string reflecting the driver's version              character string reflecting the driver's version
803    
804           PARAMETERS -           PARAMETERS -
805    
806              comma separated list of all parameters available for the              comma separated list of all parameters available for the
807              given audio output driver, at least parameters 'channels',              given audio output driver, at least parameters 'channels',
808              'samplerate' and 'active' are offered by all audio output              'samplerate' and 'active' are offered by all audio output
809              drivers              drivers
810    
811        The mentioned fields above don't have to be in particular order.        The mentioned fields above don't have to be in particular order.
812    
813     Example:     Example:
814    
815        C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"        C: "GET AUDIO_OUTPUT_DRIVER INFO ALSA"
816    
817        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
818    
819           "VERSION: 1.0"           "VERSION: 1.0"
820    
821           "PARAMETERS: DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,           "PARAMETERS: DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,
822        FRAGMENTSIZE,CARD"        FRAGMENTSIZE,CARD"
823    
824           "."           "."
825    
826    
827  6.2.4  Getting information about specific audio output driver parameter  6.2.4  Getting information about specific audio output driver parameter
828    
829     Use the following command to get detailed information about a     Use the following command to get detailed information about a
# Line 815  Internet-Draft       LinuxSampler Contro Line 833  Internet-Draft       LinuxSampler Contro
833    
834     Where <audio> is the name of the audio output driver as returned by     Where <audio> is the name of the audio output driver as returned by
835     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,
836    
837    
838    
839    Schoenebeck             Expires November 2, 2005               [Page 15]
840    
841    Internet-Draft        LinuxSampler Control Protocol             May 2005
842    
843    
844     <prm> a specific parameter name for which information should be     <prm> a specific parameter name for which information should be
845     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO" (Section     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"
846     6.2.3) command) and <deplist> is an optional list of parameters on     (Section 6.2.3) command) and <deplist> is an optional list of
847     which the sought parameter <prm> depends on, <deplist> is a list of     parameters on which the sought parameter <prm> depends on, <deplist>
848     key-value pairs in form of "key1=val1 key2=val2 ...", where character     is a list of key-value pairs in form of "key1=val1 key2=val2 ...",
849     string values are encapsulated into apostrophes (').  Arguments given     where character string values are encapsulated into apostrophes (').
850     with <deplist> which are not dependency parameters of <prm> will be     Arguments given with <deplist> which are not dependency parameters of
851     ignored, means the front-end application can simply put all     <prm> will be ignored, means the front-end application can simply put
852     parameters into <deplist> with the values already selected by the     all parameters into <deplist> with the values already selected by the
853     user.     user.
854    
855     Possible Answers:     Possible Answers:
# Line 833  Internet-Draft       LinuxSampler Contro Line 859  Internet-Draft       LinuxSampler Contro
859        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
860        character string to that info category.  There are information        character string to that info category.  There are information
861        which is always returned, independently of the given driver        which is always returned, independently of the given driver
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 15]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
862        parameter and there are optional information which is only shown        parameter and there are optional information which is only shown
863        dependently to given driver parameter.  At the moment the        dependently to given driver parameter.  At the moment the
864        following information categories are defined:        following information categories are defined:
865    
866        TYPE -        TYPE -
867    
868           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
869           value(s) or "FLOAT" for dotted number(s) or "STRING" for           value(s) or "FLOAT" for dotted number(s) or "STRING" for
870           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
871           parameter)           parameter)
872    
873        DESCRIPTION -        DESCRIPTION -
874    
875           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
876           returned, no matter which driver parameter)           returned, no matter which driver parameter)
877    
878        MANDATORY -        MANDATORY -
879    
880           either true or false, defines if this parameter must be given           either true or false, defines if this parameter must be given
881           when the device is to be created with the 'CREATE           when the device is to be created with the 'CREATE
882           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,
883           no matter which driver parameter)           no matter which driver parameter)
884    
885        FIX -        FIX -
886    
887           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
888           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
889           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,
890           no matter which driver parameter)           no matter which driver parameter)
891    
892    
893    
894    
895    Schoenebeck             Expires November 2, 2005               [Page 16]
896    
897    Internet-Draft        LinuxSampler Control Protocol             May 2005
898    
899    
900        MULTIPLICITY -        MULTIPLICITY -
901    
902           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
903           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
904           false only a single value allowed (always returned, no matter           false only a single value allowed (always returned, no matter
905           which driver parameter)           which driver parameter)
906    
907        DEPENDS -        DEPENDS -
908    
909           comma separated list of parameters this parameter depends on,           comma separated list of parameters this parameter depends on,
910           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'
911           and 'POSSIBILITIES' might depend on these listed parameters,           and 'POSSIBILITIES' might depend on these listed parameters,
# Line 878  Internet-Draft       LinuxSampler Contro Line 915  Internet-Draft       LinuxSampler Contro
915           possible values for 'samplerate' depends on the sound card           possible values for 'samplerate' depends on the sound card
916           which can be chosen by the 'card' parameter (optionally           which can be chosen by the 'card' parameter (optionally
917           returned, dependent to driver parameter)           returned, dependent to driver parameter)
918    
919        DEFAULT -        DEFAULT -
920    
921           reflects the default value for this parameter which is used           reflects the default value for this parameter which is used
922           when the device is created and not explicitly given with the           when the device is created and not explicitly given with the
923           'CREATE AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command, in case           'CREATE AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command, in case
924           of MULTIPLCITY=true, this is a comma separated list, that's why           of MULTIPLCITY=true, this is a comma separated list, that's why
925           character strings are encapsulated into apostrophes (')           character strings are encapsulated into apostrophes (')
926           (optionally returned, dependent to driver parameter)           (optionally returned, dependent to driver parameter)
927    
928        RANGE_MIN -        RANGE_MIN -
929    
930           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
931           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
932           this parameter is often used in conjunction with RANGE_MAX, but           this parameter is often used in conjunction with RANGE_MAX, but
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 16]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
933           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
934           driver parameter)           driver parameter)
935    
936        RANGE_MAX -        RANGE_MAX -
937    
938           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
939           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
940           this parameter is often used in conjunction with RANGE_MIN, but           this parameter is often used in conjunction with RANGE_MIN, but
941           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
942           driver parameter)           driver parameter)
943    
944        POSSIBILITIES -        POSSIBILITIES -
945    
946           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
947           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
948    
949    
950    
951    Schoenebeck             Expires November 2, 2005               [Page 17]
952    
953    Internet-Draft        LinuxSampler Control Protocol             May 2005
954    
955    
956           returned, dependent to driver parameter)           returned, dependent to driver parameter)
957    
958     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
# Line 915  Internet-Draft       LinuxSampler Contro Line 960  Internet-Draft       LinuxSampler Contro
960     Examples:     Examples:
961    
962        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD"
963    
964        S: "DESCRIPTION: sound card to be used"        S: "DESCRIPTION: sound card to be used"
965    
966           "TYPE: STRING"           "TYPE: STRING"
967    
968           "MANDATORY: false"           "MANDATORY: false"
969    
970           "FIX: true"           "FIX: true"
971    
972           "MULTIPLICITY: false"           "MULTIPLICITY: false"
973    
974           "DEFAULT: '0,0'"           "DEFAULT: '0,0'"
975    
976           "POSSIBILITIES: '0,0','1,0','2,0'"           "POSSIBILITIES: '0,0','1,0','2,0'"
977    
978           "."           "."
979    
980        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"
981    
982        S: "DESCRIPTION: output sample rate in Hz"        S: "DESCRIPTION: output sample rate in Hz"
983    
984           "TYPE: INT"           "TYPE: INT"
985    
986           "MANDATORY: false"           "MANDATORY: false"
987    
988           "FIX: false"           "FIX: false"
989    
990           "MULTIPLICITY: false"           "MULTIPLICITY: false"
991    
992           "DEPENDS: card"           "DEPENDS: card"
993    
994           "DEFAULT: 44100"           "DEFAULT: 44100"
995    
996           "."           "."
997    
998        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE
999        CARD='0,0'"        CARD='0,0'"
1000    
1001        S: "DESCRIPTION: output sample rate in Hz"        S: "DESCRIPTION: output sample rate in Hz"
1002    
1003    
1004    
1005    
1006    
1007    Schoenebeck             Expires November 2, 2005               [Page 18]
1008    
1009    Internet-Draft        LinuxSampler Control Protocol             May 2005
1010    
1011    
1012           "TYPE: INT"           "TYPE: INT"
1013    
1014           "MANDATORY: false"           "MANDATORY: false"
          "FIX: false"  
          "MULTIPLICITY: false"  
          "DEPENDS: card"  
          "DEFAULT: 44100"  
          "RANGE_MIN: 22050"  
1015    
1016             "FIX: false"
1017    
1018             "MULTIPLICITY: false"
1019    
1020             "DEPENDS: card"
1021    
1022  Schoenebeck            Expires November 22, 2005               [Page 17]           "DEFAULT: 44100"
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
1023    
1024             "RANGE_MIN: 22050"
1025    
1026           "RANGE_MAX: 96000"           "RANGE_MAX: 96000"
1027    
1028           "."           "."
1029    
1030    
1031  6.2.5  Creating an audio output device  6.2.5  Creating an audio output device
1032    
1033     Use the following command to create a new audio output device for     Use the following command to create a new audio output device for
# Line 965  Internet-Draft       LinuxSampler Contro Line 1037  Internet-Draft       LinuxSampler Contro
1037    
1038     Where <audio-output-driver> should be replaced by the desired audio     Where <audio-output-driver> should be replaced by the desired audio
1039     output system as returned by the "LIST     output system as returned by the "LIST
1040     AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command and     AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command and <param-
1041     <param-list> by an optional list of driver specific parameters in     list> by an optional list of driver specific parameters in form of
1042     form of "key1=val1 key2=val2 ...", where character string values     "key1=val1 key2=val2 ...", where character string values should be
1043     should be encapsulated into apostrophes (').  Note that there might     encapsulated into apostrophes (').  Note that there might be drivers
1044     be drivers which require parameter(s) to be given with this command.     which require parameter(s) to be given with this command.  Use the
1045     Use the previously described commands in this chapter to get this     previously described commands in this chapter to get this
1046     information.     information.
1047    
1048     Possible Answers:     Possible Answers:
1049    
1050        "OK[<device-id>]" -        "OK[<device-id>]" -
1051    
1052           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1053           is the numerical ID of the new device           is the numerical ID of the new device
1054    
1055        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1056    
1057           in case the device was created successfully, where <device-id>           in case the device was created successfully, where <device-id>
1058           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1059           issue(s) related (e.g.  sound card doesn't support given           issue(s) related (e.g. sound card doesn't support given
1060    
1061    
1062    
1063    Schoenebeck             Expires November 2, 2005               [Page 19]
1064    
1065    Internet-Draft        LinuxSampler Control Protocol             May 2005
1066    
1067    
1068           hardware parameters and the driver is using fall-back values),           hardware parameters and the driver is using fall-back values),
1069           providing an appropriate warning code and warning message           providing an appropriate warning code and warning message
1070    
1071        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1072    
1073           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1074           error message           error message
1075    
1076     Examples:     Examples:
1077    
1078        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"
1079    
1080        S: "OK[0]"        S: "OK[0]"
1081    
1082        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"
1083    
1084        S: "OK[1]"        S: "OK[1]"
1085    
1086    
1087  6.2.6  Destroying an audio output device  6.2.6  Destroying an audio output device
1088    
1089     Use the following command to destroy a created output device:     Use the following command to destroy a created output device:
1090    
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 18]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1091        DESTROY AUDIO_OUTPUT_DEVICE <device-id>        DESTROY AUDIO_OUTPUT_DEVICE <device-id>
1092    
1093     Where <device-id> should be replaced by the numerical ID of the audio     Where <device-id> should be replaced by the numerical ID of the audio
1094     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
1095     6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command.     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
1096       command.
1097    
1098     Possible Answers:     Possible Answers:
1099    
1100        "OK" -        "OK" -
1101    
1102           in case the device was successfully destroyed           in case the device was successfully destroyed
1103    
1104        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1105    
1106           in case the device was destroyed successfully, but there are           in case the device was destroyed successfully, but there are
1107           noteworthy issue(s) related (e.g.  an audio over ethernet           noteworthy issue(s) related (e.g. an audio over ethernet driver
1108           driver was unloaded but the other host might not be informed           was unloaded but the other host might not be informed about
1109           about this situation), providing an appropriate warning code           this situation), providing an appropriate warning code and
1110           and warning message           warning message
1111    
1112        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1113    
1114           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1115           error message           error message
1116    
1117    
1118    
1119    Schoenebeck             Expires November 2, 2005               [Page 20]
1120    
1121    Internet-Draft        LinuxSampler Control Protocol             May 2005
1122    
1123    
1124     Example:     Example:
1125    
1126        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1127    
1128        S: "OK"        S: "OK"
1129    
1130    
1131  6.2.7  Getting all created audio output device count  6.2.7  Getting all created audio output device count
1132    
1133     Use the following command to count all created audio output devices:     Use the following command to count all created audio output devices:
# Line 1048  Internet-Draft       LinuxSampler Contro Line 1142  Internet-Draft       LinuxSampler Contro
1142     Example:     Example:
1143    
1144        C: "GET AUDIO_OUTPUT_DEVICES"        C: "GET AUDIO_OUTPUT_DEVICES"
1145    
1146        S: "4"        S: "4"
1147    
1148    
1149  6.2.8  Getting all created audio output device list  6.2.8  Getting all created audio output device list
1150    
1151     Use the following command to list all created audio output devices:     Use the following command to list all created audio output devices:
# Line 1058  Internet-Draft       LinuxSampler Contro Line 1154  Internet-Draft       LinuxSampler Contro
1154    
1155     Possible Answers:     Possible Answers:
1156    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 19]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1157        LinuxSampler will answer by sending a comma separated list with        LinuxSampler will answer by sending a comma separated list with
1158        the numerical IDs of all audio output devices.        the numerical IDs of all audio output devices.
1159    
1160     Example:     Example:
1161    
1162        C: "LIST AUDIO_OUTPUT_DEVICES"        C: "LIST AUDIO_OUTPUT_DEVICES"
1163    
1164        S: "0,1,4,5"        S: "0,1,4,5"
1165    
1166    
1167  6.2.9  Getting current settings of an audio output device  6.2.9  Getting current settings of an audio output device
1168    
1169     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1170     created audio output device:     created audio output device:
1171    
1172    
1173    
1174    
1175    Schoenebeck             Expires November 2, 2005               [Page 21]
1176    
1177    Internet-Draft        LinuxSampler Control Protocol             May 2005
1178    
1179    
1180        GET AUDIO_OUTPUT_DEVICE INFO <device-id>        GET AUDIO_OUTPUT_DEVICE INFO <device-id>
1181    
1182     Where <device-id> should be replaced by numerical ID of the audio     Where <device-id> should be replaced by numerical ID of the audio
1183     output device as e.g.  returned by the "LIST AUDIO_OUTPUT_DEVICES"     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"
1184     (Section 6.2.8) command.     (Section 6.2.8) command.
1185    
1186     Possible Answers:     Possible Answers:
# Line 1095  Internet-Draft       LinuxSampler Contro Line 1194  Internet-Draft       LinuxSampler Contro
1194     (independently of device):     (independently of device):
1195    
1196        DRIVER -        DRIVER -
1197    
1198           identifier of the used audio output driver, as also returned by           identifier of the used audio output driver, as also returned by
1199           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)
1200           command           command
1201    
1202        CHANNELS -        CHANNELS -
1203    
1204           amount of audio output channels this device currently offers           amount of audio output channels this device currently offers
1205    
1206        SAMPLERATE -        SAMPLERATE -
1207    
1208           playback sample rate the device uses           playback sample rate the device uses
1209    
1210        ACTIVE -        ACTIVE -
1211    
1212           either true or false, if false then the audio device is           either true or false, if false then the audio device is
1213           inactive and doesn't output any sound, nor do the sampler           inactive and doesn't output any sound, nor do the sampler
1214           channels connected to this audio device render any audio           channels connected to this audio device render any audio
# Line 1113  Internet-Draft       LinuxSampler Contro Line 1219  Internet-Draft       LinuxSampler Contro
1219     additional driver specific parameters (see Section 6.2.3) which are     additional driver specific parameters (see Section 6.2.3) which are
1220     also returned by this command.     also returned by this command.
1221    
1222       Example:
1223    
1224          C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
1225    
1226          S: "DRIVER: ALSA"
1227    
 Schoenebeck            Expires November 22, 2005               [Page 20]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
1228    
1229    
    Example:  
1230    
1231        C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  Schoenebeck             Expires November 2, 2005               [Page 22]
1232        S: "DRIVER: ALSA"  
1233    Internet-Draft        LinuxSampler Control Protocol             May 2005
1234    
1235    
1236           "CHANNELS: 2"           "CHANNELS: 2"
1237    
1238           "SAMPLERATE: 44100"           "SAMPLERATE: 44100"
1239    
1240           "ACTIVE: true"           "ACTIVE: true"
1241    
1242           "FRAGMENTS: 2"           "FRAGMENTS: 2"
1243    
1244           "FRAGMENTSIZE: 128"           "FRAGMENTSIZE: 128"
1245    
1246           "CARD: '0,0'"           "CARD: '0,0'"
1247    
1248           "."           "."
1249    
1250    
1251  6.2.10  Changing settings of audio output devices  6.2.10  Changing settings of audio output devices
1252    
1253     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
# Line 1141  Internet-Draft       LinuxSampler Contro Line 1256  Internet-Draft       LinuxSampler Contro
1256        SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>        SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>
1257    
1258     Where <device-id> should be replaced by the numerical ID of the audio     Where <device-id> should be replaced by the numerical ID of the audio
1259     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
1260     6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <key>     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
1261     by the name of the parameter to change and <value> by the new value     command, <key> by the name of the parameter to change and <value> by
1262     for this parameter.     the new value for this parameter.
1263    
1264     Possible Answers:     Possible Answers:
1265    
1266        "OK" -        "OK" -
1267    
1268           in case setting was successfully changed           in case setting was successfully changed
1269    
1270        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1271    
1272           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
1273           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
1274           code and warning message           code and warning message
1275    
1276        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1277    
1278           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1279           error message           error message
1280    
1281     Example:     Example:
1282    
       C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"  
       S: "OK"  
1283    
 6.2.11  Getting information about an audio channel  
1284    
    Use the following command to get information about an audio channel:  
1285    
1286        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>  
1287    Schoenebeck             Expires November 2, 2005               [Page 23]
1288    
1289    Internet-Draft        LinuxSampler Control Protocol             May 2005
1290    
1291    
1292          C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
1293    
1294          S: "OK"
1295    
1296    
1297  Schoenebeck            Expires November 22, 2005               [Page 21]  6.2.11  Getting information about an audio channel
1298    
1299  Internet-Draft       LinuxSampler Control Protocol              May 2005     Use the following command to get information about an audio channel:
1300    
1301          GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>
1302    
1303     Where <device-id> is the numerical ID of the audio output device as     Where <device-id> is the numerical ID of the audio output device as
1304     given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST     given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST
# Line 1190  Internet-Draft       LinuxSampler Contro Line 1313  Internet-Draft       LinuxSampler Contro
1313        character string to that info category.  At the moment the        character string to that info category.  At the moment the
1314        following information categories are defined:        following information categories are defined:
1315    
1316    
1317    
1318           NAME -           NAME -
1319    
1320              arbitrary character string naming the channel, which doesn't              arbitrary character string naming the channel, which doesn't
1321              have to be unique (always returned by all audio channels)              have to be unique (always returned by all audio channels)
1322    
1323           IS_MIX_CHANNEL -           IS_MIX_CHANNEL -
1324    
1325              either true or false, a mix-channel is not a real,              either true or false, a mix-channel is not a real,
1326              independent audio channel, but a virtual channel which is              independent audio channel, but a virtual channel which is
1327              mixed to another real channel, this mechanism is needed for              mixed to another real channel, this mechanism is needed for
1328              sampler engines which need more audio channels than the used              sampler engines which need more audio channels than the used
1329              audio system might be able to offer (always returned by all              audio system might be able to offer (always returned by all
1330              audio channels)              audio channels)
1331    
1332           MIX_CHANNEL_DESTINATION -           MIX_CHANNEL_DESTINATION -
1333    
1334              numerical ID (positive integer including 0) which reflects              numerical ID (positive integer including 0) which reflects
1335              the real audio channel (of the same audio output device)              the real audio channel (of the same audio output device)
1336              this mix channel refers to, means where the audio signal              this mix channel refers to, means where the audio signal
1337              actually will be routed / added to (only returned in case              actually will be routed / added to (only returned in case
1338              the audio channel is mix channel)              the audio channel is mix channel)
1339    
1340    
1341    
1342    
1343    Schoenebeck             Expires November 2, 2005               [Page 24]
1344    
1345    Internet-Draft        LinuxSampler Control Protocol             May 2005
1346    
1347    
1348     The mentioned fields above don't have to be in particular order.  The     The mentioned fields above don't have to be in particular order.  The
1349     fields above are only those fields which are generally returned for     fields above are only those fields which are generally returned for
1350     the described cases by all audio channels regardless of the audio     the described cases by all audio channels regardless of the audio
# Line 1216  Internet-Draft       LinuxSampler Contro Line 1354  Internet-Draft       LinuxSampler Contro
1354     Examples:     Examples:
1355    
1356        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
1357    
1358        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
          "IS_MIX_CHANNEL: false"  
          "."  
1359    
       C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"  
       S: "NAME: studio monitor right"  
1360           "IS_MIX_CHANNEL: false"           "IS_MIX_CHANNEL: false"
          "."  
1361    
1362             "."
1363    
1364          C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
1365    
1366          S: "NAME: studio monitor right"
1367    
1368  Schoenebeck            Expires November 22, 2005               [Page 22]           "IS_MIX_CHANNEL: false"
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
1369    
1370             "."
1371    
1372        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
1373    
1374        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
1375    
1376           "IS_MIX_CHANNEL: true"           "IS_MIX_CHANNEL: true"
1377    
1378           "MIX_CHANNEL_DESTINATION: 1"           "MIX_CHANNEL_DESTINATION: 1"
1379    
1380           "."           "."
1381    
1382        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
1383    
1384        S: "NAME: 'ardour (left)'"        S: "NAME: 'ardour (left)'"
1385    
1386           "IS_MIX_CHANNEL: false"           "IS_MIX_CHANNEL: false"
1387    
1388           "JACK_BINDINGS: 'ardour:0'"           "JACK_BINDINGS: 'ardour:0'"
1389    
1390           "."           "."
1391    
1392    
1393  6.2.12  Getting information about specific audio channel parameter  6.2.12  Getting information about specific audio channel parameter
1394    
1395     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
1396    
1397    
1398    
1399    Schoenebeck             Expires November 2, 2005               [Page 25]
1400    
1401    Internet-Draft        LinuxSampler Control Protocol             May 2005
1402    
1403    
1404     audio channel parameter:     audio channel parameter:
1405    
1406        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>
# Line 1270  Internet-Draft       LinuxSampler Contro Line 1423  Internet-Draft       LinuxSampler Contro
1423        dependently to the given audio channel.  At the moment the        dependently to the given audio channel.  At the moment the
1424        following information categories are defined:        following information categories are defined:
1425    
1426    
1427    
1428           TYPE -           TYPE -
1429    
1430              either "BOOL" for boolean value(s) or "INT" for integer              either "BOOL" for boolean value(s) or "INT" for integer
1431              value(s) or "FLOAT" for dotted number(s) or "STRING" for              value(s) or "FLOAT" for dotted number(s) or "STRING" for
1432              character string(s) (always returned)              character string(s) (always returned)
1433    
1434           DESCRIPTION -           DESCRIPTION -
1435    
1436              arbitrary text describing the purpose of the parameter              arbitrary text describing the purpose of the parameter
1437              (always returned)              (always returned)
1438    
1439           FIX -           FIX -
1440    
1441              either true or false, if true then this parameter is read              either true or false, if true then this parameter is read
1442              only, thus cannot be altered (always returned)              only, thus cannot be altered (always returned)
1443    
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 23]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1444           MULTIPLICITY -           MULTIPLICITY -
1445    
1446              either true or false, defines if this parameter allows only              either true or false, defines if this parameter allows only
1447              one value or a list of values, where true means multiple              one value or a list of values, where true means multiple
1448              values and false only a single value allowed (always              values and false only a single value allowed (always
1449              returned)              returned)
1450    
1451    
1452    
1453    
1454    
1455    Schoenebeck             Expires November 2, 2005               [Page 26]
1456    
1457    Internet-Draft        LinuxSampler Control Protocol             May 2005
1458    
1459    
1460           RANGE_MIN -           RANGE_MIN -
1461    
1462              defines lower limit of the allowed value range for this              defines lower limit of the allowed value range for this
1463              parameter, can be an integer value as well as a dotted              parameter, can be an integer value as well as a dotted
1464              number, usually used in conjunction with 'RANGE_MAX', but              number, usually used in conjunction with 'RANGE_MAX', but
1465              may also appear without (optionally returned, dependent to              may also appear without (optionally returned, dependent to
1466              driver and channel parameter)              driver and channel parameter)
1467    
1468           RANGE_MAX -           RANGE_MAX -
1469    
1470              defines upper limit of the allowed value range for this              defines upper limit of the allowed value range for this
1471              parameter, can be an integer value as well as a dotted              parameter, can be an integer value as well as a dotted
1472              number, usually used in conjunction with 'RANGE_MIN', but              number, usually used in conjunction with 'RANGE_MIN', but
1473              may also appear without (optionally returned, dependent to              may also appear without (optionally returned, dependent to
1474              driver and channel parameter)              driver and channel parameter)
1475    
1476           POSSIBILITIES -           POSSIBILITIES -
1477    
1478              comma separated list of possible values for this parameter,              comma separated list of possible values for this parameter,
1479              character strings are encapsulated into apostrophes              character strings are encapsulated into apostrophes
1480              (optionally returned, dependent to driver and channel              (optionally returned, dependent to driver and channel
1481              parameter)              parameter)
1482    
1483        The mentioned fields above don't have to be in particular order.        The mentioned fields above don't have to be in particular order.
1484    
1485     Example:     Example:
1486    
1487        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
1488    
1489        S: "DESCRIPTION: bindings to other JACK clients"        S: "DESCRIPTION: bindings to other JACK clients"
1490    
1491           "TYPE: STRING"           "TYPE: STRING"
1492    
1493           "FIX: false"           "FIX: false"
1494    
1495           "MULTIPLICITY: true"           "MULTIPLICITY: true"
1496    
1497           "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"           "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"
1498    
1499           "."           "."
1500    
1501    
1502  6.2.13  Changing settings of audio output channels  6.2.13  Changing settings of audio output channels
1503    
1504     Use the following command to alter a specific setting of an audio     Use the following command to alter a specific setting of an audio
1505     output channel:     output channel:
1506    
1507    
1508    
1509    
1510    
1511    Schoenebeck             Expires November 2, 2005               [Page 27]
1512    
1513    Internet-Draft        LinuxSampler Control Protocol             May 2005
1514    
1515    
1516        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>
1517    
1518     Where <dev-id> should be replaced by the numerical ID of the audio     Where <dev-id> should be replaced by the numerical ID of the audio
# Line 1338  Internet-Draft       LinuxSampler Contro Line 1523  Internet-Draft       LinuxSampler Contro
1523    
1524     Possible Answers:     Possible Answers:
1525    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 24]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1526        "OK" -        "OK" -
1527    
1528           in case setting was successfully changed           in case setting was successfully changed
1529    
1530        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1531    
1532           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
1533           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
1534           code and warning message           code and warning message
1535    
1536        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1537    
1538           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1539           error message           error message
1540    
1541     Example:     Example:
1542    
1543        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"
1544    
1545        S: "OK"        S: "OK"
1546    
1547        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
1548    
1549        S: "OK"        S: "OK"
1550    
1551    
1552  6.3  Configuring MIDI input drivers  6.3  Configuring MIDI input drivers
1553    
1554     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
1555     multiple MIDI devices simultaneously, e.g.  to use MIDI over ethernet     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet
1556     as MIDI input on one sampler channel and ALSA as MIDI input on     as MIDI input on one sampler channel and ALSA as MIDI input on
1557     another sampler channel.  For particular MIDI input systems it's also     another sampler channel.  For particular MIDI input systems it's also
1558     possible to create several devices of the same MIDI input type.  This     possible to create several devices of the same MIDI input type.  This
# Line 1375  Internet-Draft       LinuxSampler Contro Line 1561  Internet-Draft       LinuxSampler Contro
1561    
1562     Instead of defining commands and parameters for each driver     Instead of defining commands and parameters for each driver
1563     individually, all possible parameters, their meanings and possible     individually, all possible parameters, their meanings and possible
1564    
1565    
1566    
1567    Schoenebeck             Expires November 2, 2005               [Page 28]
1568    
1569    Internet-Draft        LinuxSampler Control Protocol             May 2005
1570    
1571    
1572     values have to be obtained at runtime.  This makes the protocol a bit     values have to be obtained at runtime.  This makes the protocol a bit
1573     abstract, but has the advantage, that front-ends can be written     abstract, but has the advantage, that front-ends can be written
1574     independently of what drivers are currently implemented and what     independently of what drivers are currently implemented and what
1575     parameters these drivers are actually offering.  This means     parameters these drivers are actually offering.  This means front-
1576     front-ends can even handle drivers which are implemented somewhere in     ends can even handle drivers which are implemented somewhere in
1577     future without modifying the front-end at all.     future without modifying the front-end at all.
1578    
1579     Commands for configuring MIDI input devices are pretty much the same     Commands for configuring MIDI input devices are pretty much the same
# Line 1394  Internet-Draft       LinuxSampler Contro Line 1588  Internet-Draft       LinuxSampler Contro
1588     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
1589     possible values, etc.     possible values, etc.
1590    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 25]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1591  6.3.1  Getting amount of available MIDI input drivers  6.3.1  Getting amount of available MIDI input drivers
1592    
1593     Use the following command to get the number of MIDI input drivers     Use the following command to get the number of MIDI input drivers
# Line 1416  Internet-Draft       LinuxSampler Contro Line 1603  Internet-Draft       LinuxSampler Contro
1603     Example:     Example:
1604    
1605        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
1606    
1607        S: "2"        S: "2"
1608    
1609    
1610  6.3.2  Getting all available MIDI input drivers  6.3.2  Getting all available MIDI input drivers
1611    
1612     Use the following command to list all MIDI input drivers currently     Use the following command to list all MIDI input drivers currently
# Line 1427  Internet-Draft       LinuxSampler Contro Line 1616  Internet-Draft       LinuxSampler Contro
1616    
1617     Possible Answers:     Possible Answers:
1618    
1619    
1620    
1621    
1622    
1623    Schoenebeck             Expires November 2, 2005               [Page 29]
1624    
1625    Internet-Draft        LinuxSampler Control Protocol             May 2005
1626    
1627    
1628        LinuxSampler will answer by sending comma separated character        LinuxSampler will answer by sending comma separated character
1629        strings, each symbolizing a MIDI input driver.        strings, each symbolizing a MIDI input driver.
1630    
1631     Example:     Example:
1632    
1633        C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"        C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
1634    
1635        S: "ALSA,JACK"        S: "ALSA,JACK"
1636    
1637    
1638  6.3.3  Getting information about a specific MIDI input driver  6.3.3  Getting information about a specific MIDI input driver
1639    
1640     Use the following command to get detailed information about a     Use the following command to get detailed information about a
# Line 1448  Internet-Draft       LinuxSampler Contro Line 1648  Internet-Draft       LinuxSampler Contro
1648    
1649     Possible Answers:     Possible Answers:
1650    
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 26]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1651        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
1652        answer line begins with the information category name followed by        answer line begins with the information category name followed by
1653        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
1654        character string to that info category.  At the moment the        character string to that info category.  At the moment the
1655        following information categories are defined:        following information categories are defined:
1656    
1657    
1658    
1659           DESCRIPTION -           DESCRIPTION -
1660    
1661              arbitrary description text about the MIDI input driver              arbitrary description text about the MIDI input driver
1662    
1663           VERSION -           VERSION -
1664    
1665              arbitrary character string regarding the driver's version              arbitrary character string regarding the driver's version
1666    
1667           PARAMETERS -           PARAMETERS -
1668    
1669              comma separated list of all parameters available for the              comma separated list of all parameters available for the
1670              given MIDI input driver              given MIDI input driver
1671    
1672        The mentioned fields above don't have to be in particular order.        The mentioned fields above don't have to be in particular order.
1673    
1674     Example:     Example:
1675    
1676    
1677    
1678    
1679    Schoenebeck             Expires November 2, 2005               [Page 30]
1680    
1681    Internet-Draft        LinuxSampler Control Protocol             May 2005
1682    
1683    
1684        C: "GET MIDI_INPUT_DRIVER INFO ALSA"        C: "GET MIDI_INPUT_DRIVER INFO ALSA"
1685    
1686        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
1687    
1688           "VERSION: 1.0"           "VERSION: 1.0"
1689    
1690           "PARAMETERS: DRIVER,ACTIVE"           "PARAMETERS: DRIVER,ACTIVE"
1691    
1692           "."           "."
1693    
1694    
1695  6.3.4  Getting information about specific MIDI input driver parameter  6.3.4  Getting information about specific MIDI input driver parameter
1696    
1697     Use the following command to get detailed information about a     Use the following command to get detailed information about a
# Line 1505  Internet-Draft       LinuxSampler Contro Line 1717  Internet-Draft       LinuxSampler Contro
1717     answer line begins with the information category name followed by a     answer line begins with the information category name followed by a
1718     colon and then a space character <SP> and finally the info character     colon and then a space character <SP> and finally the info character
1719     string to that info category.  There is information which is always     string to that info category.  There is information which is always
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 27]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1720     returned, independent of the given driver parameter and there is     returned, independent of the given driver parameter and there is
1721     optional information which is only shown dependent to given driver     optional information which is only shown dependent to given driver
1722     parameter.  At the moment the following information categories are     parameter.  At the moment the following information categories are
1723     defined:     defined:
1724    
1725        TYPE -        TYPE -
1726    
1727           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
1728           value(s) or "FLOAT" for dotted number(s) or "STRING" for           value(s) or "FLOAT" for dotted number(s) or "STRING" for
1729           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
1730           parameter)           parameter)
1731    
1732    
1733    
1734    
1735    Schoenebeck             Expires November 2, 2005               [Page 31]
1736    
1737    Internet-Draft        LinuxSampler Control Protocol             May 2005
1738    
1739    
1740        DESCRIPTION -        DESCRIPTION -
1741    
1742           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
1743           returned, no matter which driver parameter)           returned, no matter which driver parameter)
1744    
1745        MANDATORY -        MANDATORY -
1746    
1747           either true or false, defines if this parameter must be given           either true or false, defines if this parameter must be given
1748           when the device is to be created with the 'CREATE           when the device is to be created with the 'CREATE
1749           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1750           matter which driver parameter)           matter which driver parameter)
1751    
1752        FIX -        FIX -
1753    
1754           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
1755           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
1756           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1757           matter which driver parameter)           matter which driver parameter)
1758    
1759        MULTIPLICITY -        MULTIPLICITY -
1760    
1761           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
1762           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
1763           false only a single value allowed (always returned, no matter           false only a single value allowed (always returned, no matter
1764           which driver parameter)           which driver parameter)
1765    
1766        DEPENDS -        DEPENDS -
1767    
1768           comma separated list of parameters this parameter depends on,           comma separated list of parameters this parameter depends on,
1769           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'
1770           and 'POSSIBILITIES' might depend on these listed parameters,           and 'POSSIBILITIES' might depend on these listed parameters,
# Line 1551  Internet-Draft       LinuxSampler Contro Line 1774  Internet-Draft       LinuxSampler Contro
1774           possible values for 'samplerate' depends on the sound card           possible values for 'samplerate' depends on the sound card
1775           which can be chosen by the 'card' parameter (optionally           which can be chosen by the 'card' parameter (optionally
1776           returned, dependent to driver parameter)           returned, dependent to driver parameter)
1777    
1778        DEFAULT -        DEFAULT -
1779    
1780           reflects the default value for this parameter which is used           reflects the default value for this parameter which is used
1781           when the device is created and not explicitly given with the           when the device is created and not explicitly given with the
1782           'CREATE MIDI_INPUT_DEVICE' (Section 6.3.5) command, in case of           'CREATE MIDI_INPUT_DEVICE' (Section 6.3.5) command, in case of
1783           MULTIPLCITY=true, this is a comma separated list, that's why           MULTIPLCITY=true, this is a comma separated list, that's why
1784           character strings are encapsulated into apostrophes (')           character strings are encapsulated into apostrophes (')
1785           (optionally returned, dependent to driver parameter)           (optionally returned, dependent to driver parameter)
       RANGE_MIN -  
          defines lower limit of the allowed value range for this  
          parameter, can be an integer value as well as a dotted number,  
1786    
1787    
1788    
 Schoenebeck            Expires November 22, 2005               [Page 28]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
1789    
1790    
1791    Schoenebeck             Expires November 2, 2005               [Page 32]
1792    
1793    Internet-Draft        LinuxSampler Control Protocol             May 2005
1794    
1795    
1796          RANGE_MIN -
1797    
1798             defines lower limit of the allowed value range for this
1799             parameter, can be an integer value as well as a dotted number,
1800           this parameter is often used in conjunction with RANGE_MAX, but           this parameter is often used in conjunction with RANGE_MAX, but
1801           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1802           driver parameter)           driver parameter)
1803    
1804        RANGE_MAX -        RANGE_MAX -
1805    
1806           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
1807           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
1808           this parameter is often used in conjunction with RANGE_MIN, but           this parameter is often used in conjunction with RANGE_MIN, but
1809           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1810           driver parameter)           driver parameter)
1811    
1812        POSSIBILITIES -        POSSIBILITIES -
1813    
1814           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
1815           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
1816           returned, dependent to driver parameter)           returned, dependent to driver parameter)
# Line 1588  Internet-Draft       LinuxSampler Contro Line 1820  Internet-Draft       LinuxSampler Contro
1820     Example:     Example:
1821    
1822        C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"        C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"
1823    
1824        S: "DESCRIPTION: Whether device is enabled"        S: "DESCRIPTION: Whether device is enabled"
1825    
1826           "TYPE: BOOL"           "TYPE: BOOL"
1827    
1828           "MANDATORY: false"           "MANDATORY: false"
1829    
1830           "FIX: false"           "FIX: false"
1831    
1832           "MULTIPLICITY: false"           "MULTIPLICITY: false"
1833    
1834           "DEFAULT: true"           "DEFAULT: true"
1835    
1836           "."           "."
1837    
1838    
1839  6.3.5  Creating a MIDI input device  6.3.5  Creating a MIDI input device
1840    
1841     Use the following command to create a new MIDI input device for  the     Use the following command to create a new MIDI input device for  the
1842     desired MIDI input system:     desired MIDI input system:
1843    
1844    
1845    
1846    
1847    Schoenebeck             Expires November 2, 2005               [Page 33]
1848    
1849    Internet-Draft        LinuxSampler Control Protocol             May 2005
1850    
1851    
1852        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]
1853    
1854     Where <midi-input-driver> should be replaced by the desired MIDI     Where <midi-input-driver> should be replaced by the desired MIDI
# Line 1615  Internet-Draft       LinuxSampler Contro Line 1863  Internet-Draft       LinuxSampler Contro
1863     Possible Answers:     Possible Answers:
1864    
1865        "OK[<device-id>]" -        "OK[<device-id>]" -
1866    
1867           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1868           is the numerical ID of the new device           is the numerical ID of the new device
1869    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 29]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1870        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1871    
1872           in case the driver was loaded successfully, where <device-id>           in case the driver was loaded successfully, where <device-id>
1873           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1874           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
1875           warning message           warning message
1876    
1877        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1878    
1879           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1880           error message           error message
1881    
1882     Example:     Example:
1883    
1884        C: "CREATE MIDI_INPUT_DEVICE ALSA"        C: "CREATE MIDI_INPUT_DEVICE ALSA"
1885    
1886        S: "OK[0]"        S: "OK[0]"
1887    
1888    
1889  6.3.6  Destroying a MIDI input device  6.3.6  Destroying a MIDI input device
1890    
1891     Use the following command to destroy a created MIDI input device:     Use the following command to destroy a created MIDI input device:
# Line 1651  Internet-Draft       LinuxSampler Contro Line 1898  Internet-Draft       LinuxSampler Contro
1898    
1899     Possible Answers:     Possible Answers:
1900    
1901    
1902    
1903    Schoenebeck             Expires November 2, 2005               [Page 34]
1904    
1905    Internet-Draft        LinuxSampler Control Protocol             May 2005
1906    
1907    
1908        "OK" -        "OK" -
1909    
1910           in case the device was successfully destroyed           in case the device was successfully destroyed
1911    
1912        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1913    
1914           in case the device was destroyed, but there are noteworthy           in case the device was destroyed, but there are noteworthy
1915           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
1916           warning message           warning message
1917    
1918        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1919    
1920           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1921           error message           error message
1922    
1923     Example:     Example:
1924    
1925        C: "DESTROY MIDI_INPUT_DEVICE 0"        C: "DESTROY MIDI_INPUT_DEVICE 0"
1926    
1927        S: "OK"        S: "OK"
1928    
1929    
1930  6.3.7  Getting all created MIDI input device count  6.3.7  Getting all created MIDI input device count
1931    
1932     Use the following command to count all created MIDI input devices:     Use the following command to count all created MIDI input devices:
# Line 1674  Internet-Draft       LinuxSampler Contro Line 1935  Internet-Draft       LinuxSampler Contro
1935    
1936     Possible Answers:     Possible Answers:
1937    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 30]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1938        LinuxSampler will answer by sending the current number of all MIDI        LinuxSampler will answer by sending the current number of all MIDI
1939        input devices.        input devices.
1940    
1941     Example:     Example:
1942    
1943        C: "GET MIDI_INPUT_DEVICES"        C: "GET MIDI_INPUT_DEVICES"
1944    
1945        S: "3"        S: "3"
1946    
1947    
1948  6.3.8  Getting all created MIDI input device list  6.3.8  Getting all created MIDI input device list
1949    
1950     Use the following command to list all created MIDI input devices:     Use the following command to list all created MIDI input devices:
# Line 1697  Internet-Draft       LinuxSampler Contro Line 1953  Internet-Draft       LinuxSampler Contro
1953    
1954     Possible Answers:     Possible Answers:
1955    
1956    
1957    
1958    
1959    Schoenebeck             Expires November 2, 2005               [Page 35]
1960    
1961    Internet-Draft        LinuxSampler Control Protocol             May 2005
1962    
1963    
1964        LinuxSampler will answer by sending a comma separated list with        LinuxSampler will answer by sending a comma separated list with
1965        the numerical Ids of all created MIDI input devices.        the numerical Ids of all created MIDI input devices.
1966    
1967     Examples:     Examples:
1968    
1969        C: "LIST MIDI_INPUT_DEVICES"        C: "LIST MIDI_INPUT_DEVICES"
1970    
1971        S: "0,1,2"        S: "0,1,2"
1972    
1973        C: "LIST MIDI_INPUT_DEVICES"        C: "LIST MIDI_INPUT_DEVICES"
1974    
1975        S: "1,3"        S: "1,3"
1976    
1977    
1978  6.3.9  Getting current settings of a MIDI input device  6.3.9  Getting current settings of a MIDI input device
1979    
1980     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
# Line 1731  Internet-Draft       LinuxSampler Contro Line 1998  Internet-Draft       LinuxSampler Contro
1998    
1999    
2000    
   
 Schoenebeck            Expires November 22, 2005               [Page 31]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
   
2001           DRIVER -           DRIVER -
2002              identifier of the used MIDI input driver, as e.g.  returned  
2003                identifier of the used MIDI input driver, as e.g. returned
2004              by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)              by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)
2005              command              command
2006    
2007           ACTIVE -           ACTIVE -
2008    
2009              either true or false, if false then the MIDI device is              either true or false, if false then the MIDI device is
2010              inactive and doesn't listen to any incoming MIDI events and              inactive and doesn't listen to any incoming MIDI events and
2011              thus doesn't forward them to connected sampler channels              thus doesn't forward them to connected sampler channels
2012    
2013    
2014    
2015    Schoenebeck             Expires November 2, 2005               [Page 36]
2016    
2017    Internet-Draft        LinuxSampler Control Protocol             May 2005
2018    
2019    
2020     The mentioned fields above don't have to be in particular order.  The     The mentioned fields above don't have to be in particular order.  The
2021     fields above are only those fields which are returned by all MIDI     fields above are only those fields which are returned by all MIDI
2022     input devices.  Every MIDI input driver might have its own,     input devices.  Every MIDI input driver might have its own,
# Line 1757  Internet-Draft       LinuxSampler Contro Line 2027  Internet-Draft       LinuxSampler Contro
2027     Example:     Example:
2028    
2029        C: "GET MIDI_INPUT_DEVICE INFO 0"        C: "GET MIDI_INPUT_DEVICE INFO 0"
2030    
2031        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
2032    
2033           "ACTIVE: true"           "ACTIVE: true"
2034    
2035           "."           "."
2036    
2037    
2038  6.3.10  Changing settings of MIDI input devices  6.3.10  Changing settings of MIDI input devices
2039    
2040     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
# Line 1769  Internet-Draft       LinuxSampler Contro Line 2043  Internet-Draft       LinuxSampler Contro
2043        SET MIDI_INPUT_DEVICE_PARAMETER <device-id> <key>=<value>        SET MIDI_INPUT_DEVICE_PARAMETER <device-id> <key>=<value>
2044    
2045     Where <device-id> should be replaced by the numerical ID of the MIDI     Where <device-id> should be replaced by the numerical ID of the MIDI
2046     input device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section     input device as returned by the "CREATE MIDI_INPUT_DEVICE"
2047     6.3.5) or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <key> by     (Section 6.3.5) or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command,
2048     the name of the parameter to change and <value> by the new value for     <key> by the name of the parameter to change and <value> by the new
2049     this parameter.     value for this parameter.
2050    
2051     Possible Answers:     Possible Answers:
2052    
2053        "OK" -        "OK" -
2054    
2055           in case setting was successfully changed           in case setting was successfully changed
2056    
2057        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2058    
2059           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
2060           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2061           code and warning message           code and warning message
2062    
2063        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2064    
2065           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2066           error message           error message
2067    
2068    
2069    
2070  Schoenebeck            Expires November 22, 2005               [Page 32]  
2071    Schoenebeck             Expires November 2, 2005               [Page 37]
2072  Internet-Draft       LinuxSampler Control Protocol              May 2005  
2073    Internet-Draft        LinuxSampler Control Protocol             May 2005
2074    
2075    
2076     Example:     Example:
2077    
2078        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
2079    
2080        S: "OK"        S: "OK"
2081    
2082    
2083  6.3.11  Getting information about a MIDI port  6.3.11  Getting information about a MIDI port
2084    
2085     Use the following command to get information about a MIDI port:     Use the following command to get information about a MIDI port:
# Line 1816  Internet-Draft       LinuxSampler Contro Line 2098  Internet-Draft       LinuxSampler Contro
2098        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
2099        character string to that info category.  At the moment the        character string to that info category.  At the moment the
2100        following information categories are defined:        following information categories are defined:
2101    
2102        NAME -        NAME -
2103    
2104           arbitrary character string naming the port           arbitrary character string naming the port
2105    
2106     The field above is only the one which is returned by all MIDI ports     The field above is only the one which is returned by all MIDI ports
# Line 1826  Internet-Draft       LinuxSampler Contro Line 2110  Internet-Draft       LinuxSampler Contro
2110     Example:     Example:
2111    
2112        C: "GET MIDI_INPUT_PORT INFO 0 0"        C: "GET MIDI_INPUT_PORT INFO 0 0"
2113    
2114        S: "NAME: 'Masterkeyboard'"        S: "NAME: 'Masterkeyboard'"
2115    
2116           "ALSA_SEQ_BINDINGS: '64:0'"           "ALSA_SEQ_BINDINGS: '64:0'"
2117    
2118           "."           "."
2119    
2120    
2121  6.3.12  Getting information about specific MIDI port parameter  6.3.12  Getting information about specific MIDI port parameter
2122    
2123     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
2124    
2125    
2126    
2127    Schoenebeck             Expires November 2, 2005               [Page 38]
2128    
2129    Internet-Draft        LinuxSampler Control Protocol             May 2005
2130    
2131    
2132     MIDI port parameter:     MIDI port parameter:
2133    
2134        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>
# Line 1841  Internet-Draft       LinuxSampler Contro Line 2137  Internet-Draft       LinuxSampler Contro
2137     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
2138     MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> the MIDI port     MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> the MIDI port
2139     number and <param> a specific port parameter name for which     number and <param> a specific port parameter name for which
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 33]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2140     information should be obtained (as returned by the "GET     information should be obtained (as returned by the "GET
2141     MIDI_INPUT_PORT INFO" (Section 6.3.11) command).     MIDI_INPUT_PORT INFO" (Section 6.3.11) command).
2142    
# Line 1862  Internet-Draft       LinuxSampler Contro Line 2150  Internet-Draft       LinuxSampler Contro
2150        parameter and there is optional information which are only shown        parameter and there is optional information which are only shown
2151        dependently to the given MIDI port.  At the moment the following        dependently to the given MIDI port.  At the moment the following
2152        information categories are defined:        information categories are defined:
2153    
2154        TYPE -        TYPE -
2155    
2156           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
2157           value(s) or "FLOAT" for dotted number(s) or "STRING" for           value(s) or "FLOAT" for dotted number(s) or "STRING" for
2158           character string(s) (always returned)           character string(s) (always returned)
2159    
2160        DESCRIPTION -        DESCRIPTION -
2161    
2162           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
2163           returned)           returned)
2164    
2165        FIX -        FIX -
2166    
2167           either true or false, if true then this parameter is read only,           either true or false, if true then this parameter is read only,
2168           thus cannot be altered (always returned)           thus cannot be altered (always returned)
2169    
2170        MULTIPLICITY -        MULTIPLICITY -
2171    
2172           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
2173           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
2174           false only a single value allowed (always returned)           false only a single value allowed (always returned)
2175    
2176        RANGE_MIN -        RANGE_MIN -
2177    
2178           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
2179           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
2180    
2181    
2182    
2183    Schoenebeck             Expires November 2, 2005               [Page 39]
2184    
2185    Internet-Draft        LinuxSampler Control Protocol             May 2005
2186    
2187    
2188           this parameter is usually used in conjunction with 'RANGE_MAX'           this parameter is usually used in conjunction with 'RANGE_MAX'
2189           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2190           driver and port parameter)           driver and port parameter)
2191    
2192        RANGE_MAX -        RANGE_MAX -
2193    
2194           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
2195           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
2196           this parameter is usually used in conjunction with 'RANGE_MIN'           this parameter is usually used in conjunction with 'RANGE_MIN'
2197           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2198           driver and port parameter)           driver and port parameter)
2199    
2200        POSSIBILITIES -        POSSIBILITIES -
2201    
2202           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
2203           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
2204           returned, dependent to device and port parameter)           returned, dependent to device and port parameter)
# Line 1897  Internet-Draft       LinuxSampler Contro Line 2207  Internet-Draft       LinuxSampler Contro
2207    
2208     Example:     Example:
2209    
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 34]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2210        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
2211    
2212        S: "DESCRIPTION: bindings to other ALSA sequencer clients"        S: "DESCRIPTION: bindings to other ALSA sequencer clients"
2213    
2214           "TYPE: STRING"           "TYPE: STRING"
2215    
2216           "FIX: false"           "FIX: false"
2217    
2218           "MULTIPLICITY: true"           "MULTIPLICITY: true"
2219    
2220           "POSSIBILITIES: '64:0','68:0','68:1'"           "POSSIBILITIES: '64:0','68:0','68:1'"
2221    
2222           "."           "."
2223    
2224    
2225  6.3.13  Changing settings of MIDI input ports  6.3.13  Changing settings of MIDI input ports
2226    
2227     Use the following command to alter a specific setting of a MIDI input     Use the following command to alter a specific setting of a MIDI input
# Line 1924  Internet-Draft       LinuxSampler Contro Line 2233  Internet-Draft       LinuxSampler Contro
2233     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)
2234     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> by the     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> by the
2235     MIDI port number, <key> by the name of the parameter to change and     MIDI port number, <key> by the name of the parameter to change and
2236    
2237    
2238    
2239    Schoenebeck             Expires November 2, 2005               [Page 40]
2240    
2241    Internet-Draft        LinuxSampler Control Protocol             May 2005
2242    
2243    
2244     <value> by the new value for this parameter.     <value> by the new value for this parameter.
2245    
2246     Possible Answers:     Possible Answers:
2247    
2248        "OK" -        "OK" -
2249    
2250           in case setting was successfully changed           in case setting was successfully changed
2251    
2252        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2253    
2254           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
2255           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2256           code and warning message           code and warning message
2257    
2258        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2259    
2260           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2261           error message           error message
2262    
# Line 1942  Internet-Draft       LinuxSampler Contro Line 2264  Internet-Draft       LinuxSampler Contro
2264    
2265    
2266    
2267    
2268  6.4  Configuring sampler channels  6.4  Configuring sampler channels
2269    
2270     The following commands describe how to add and remove sampler     The following commands describe how to add and remove sampler
# Line 1953  Internet-Draft       LinuxSampler Contro Line 2276  Internet-Draft       LinuxSampler Contro
2276     An instrument file can be loaded and assigned to a sampler channel by     An instrument file can be loaded and assigned to a sampler channel by
2277     one of the following commands:     one of the following commands:
2278    
2279          LOAD INSTRUMENT [NON_MODAL] '<filename>' <instr-index> <sampler-
2280          channel>
   
 Schoenebeck            Expires November 22, 2005               [Page 35]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
       LOAD INSTRUMENT [NON_MODAL] '<filename>' <instr-index>  
       <sampler-channel>  
2281    
2282     Where <filename> is the name of the instrument file on the     Where <filename> is the name of the instrument file on the
2283     LinuxSampler instance's host system, <instr-index> the index of the     LinuxSampler instance's host system, <instr-index> the index of the
# Line 1974  Internet-Draft       LinuxSampler Contro Line 2289  Internet-Draft       LinuxSampler Contro
2289     is that the regular command returns OK only after the instrument has     is that the regular command returns OK only after the instrument has
2290     been fully loaded and the channel is ready to be used while NON_MODAL     been fully loaded and the channel is ready to be used while NON_MODAL
2291     version returns immediately and a background process is launched to     version returns immediately and a background process is launched to
2292     load the instrument on the channel.  The GET CHANNEL INFO (Section  
2293     6.4.10) command can be used to obtain loading progress from  
2294    
2295    Schoenebeck             Expires November 2, 2005               [Page 41]
2296    
2297    Internet-Draft        LinuxSampler Control Protocol             May 2005
2298    
2299    
2300       load the instrument on the channel.  The GET CHANNEL INFO
2301       (Section 6.4.10) command can be used to obtain loading progress from
2302     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks
2303     such as making sure that the file could be read and it is of a proper     such as making sure that the file could be read and it is of a proper
2304     format and SHOULD return ERR and SHOULD not launch the background     format and SHOULD return ERR and SHOULD not launch the background
# Line 1984  Internet-Draft       LinuxSampler Contro Line 2307  Internet-Draft       LinuxSampler Contro
2307     Possible Answers:     Possible Answers:
2308    
2309        "OK" -        "OK" -
2310    
2311           in case the instrument was successfully loaded           in case the instrument was successfully loaded
2312    
2313        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2314    
2315           in case the instrument was loaded successfully, but there are           in case the instrument was loaded successfully, but there are
2316           noteworthy issue(s) related (e.g.  Engine doesn't support one           noteworthy issue(s) related (e.g.  Engine doesn't support one
2317           or more patch parameters provided by the loaded instrument           or more patch parameters provided by the loaded instrument
2318           file), providing an appropriate warning code and warning           file), providing an appropriate warning code and warning
2319           message           message
2320    
2321        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2322    
2323           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2324           error message           error message
2325    
# Line 1999  Internet-Draft       LinuxSampler Contro Line 2327  Internet-Draft       LinuxSampler Contro
2327    
2328    
2329    
2330    
2331  6.4.2  Loading a sampler engine  6.4.2  Loading a sampler engine
2332    
2333     A sampler engine type can be associated to a specific sampler channel     A sampler engine type can be associated to a specific sampler channel
# Line 2009  Internet-Draft       LinuxSampler Contro Line 2338  Internet-Draft       LinuxSampler Contro
2338     Where <engine-name> is an engine name as obtained by the "LIST     Where <engine-name> is an engine name as obtained by the "LIST
2339     AVAILABLE_ENGINES" (Section 6.4.8) command and <sampler-channel> the     AVAILABLE_ENGINES" (Section 6.4.8) command and <sampler-channel> the
2340     sampler channel as returned by the "ADD CHANNEL" (Section 6.4.5) or     sampler channel as returned by the "ADD CHANNEL" (Section 6.4.5) or
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 36]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2341     "LIST CHANNELS" (Section 6.4.4) command where the engine type should     "LIST CHANNELS" (Section 6.4.4) command where the engine type should
2342     be assigned to.  This command should be issued after adding a new     be assigned to.  This command should be issued after adding a new
2343     sampler channel and before any other control commands on the new     sampler channel and before any other control commands on the new
# Line 2024  Internet-Draft       LinuxSampler Contro Line 2345  Internet-Draft       LinuxSampler Contro
2345     sampler channel.  This command has (currently) no way to define or     sampler channel.  This command has (currently) no way to define or
2346     force if a new engine instance should be created and assigned to the     force if a new engine instance should be created and assigned to the
2347     given sampler channel or if an already existing instance of that     given sampler channel or if an already existing instance of that
2348    
2349    
2350    
2351    Schoenebeck             Expires November 2, 2005               [Page 42]
2352    
2353    Internet-Draft        LinuxSampler Control Protocol             May 2005
2354    
2355    
2356     engine type, shared with other sampler channels, should be used.     engine type, shared with other sampler channels, should be used.
2357    
2358     Possible Answers:     Possible Answers:
2359    
2360        "OK" -        "OK" -
2361    
2362           in case the engine was successfully deployed           in case the engine was successfully deployed
2363    
2364        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2365    
2366           in case the engine was deployed successfully, but there are           in case the engine was deployed successfully, but there are
2367           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2368           code and warning message           code and warning message
2369    
2370        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2371    
2372           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2373           error message           error message
2374    
# Line 2042  Internet-Draft       LinuxSampler Contro Line 2376  Internet-Draft       LinuxSampler Contro
2376    
2377    
2378    
2379    
2380  6.4.3  Getting all created sampler channel count  6.4.3  Getting all created sampler channel count
2381    
2382     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
# Line 2058  Internet-Draft       LinuxSampler Contro Line 2393  Internet-Draft       LinuxSampler Contro
2393     Example:     Example:
2394    
2395        C: "GET CHANNELS"        C: "GET CHANNELS"
2396    
2397        S: "12"        S: "12"
2398    
2399    
2400  6.4.4  Getting all created sampler channel list  6.4.4  Getting all created sampler channel list
2401    
2402     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2403     current list of sampler channels, the front-end can send the     current list of sampler channels, the front-end can send the
    following command:  
2404    
2405    
2406    
2407  Schoenebeck            Expires November 22, 2005               [Page 37]  Schoenebeck             Expires November 2, 2005               [Page 43]
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2408    
2409    Internet-Draft        LinuxSampler Control Protocol             May 2005
2410    
2411    
2412       following command:
2413    
2414        LIST CHANNELS        LIST CHANNELS
2415    
# Line 2083  Internet-Draft       LinuxSampler Contro Line 2421  Internet-Draft       LinuxSampler Contro
2421     Example:     Example:
2422    
2423        C: "LIST CHANNELS"        C: "LIST CHANNELS"
2424    
2425        S: "0,1,2,3,4,5,6,9,10,11,15,20"        S: "0,1,2,3,4,5,6,9,10,11,15,20"
2426    
2427    
2428  6.4.5  Adding a new sampler channel  6.4.5  Adding a new sampler channel
2429    
2430     A new sampler channel can be added to the end of the sampler channel     A new sampler channel can be added to the end of the sampler channel
# Line 2095  Internet-Draft       LinuxSampler Contro Line 2435  Internet-Draft       LinuxSampler Contro
2435     This will increment the sampler channel count by one and the new     This will increment the sampler channel count by one and the new
2436     sampler channel will be appended to the end of the sampler channel     sampler channel will be appended to the end of the sampler channel
2437     list.  The front-end should send the respective, related commands     list.  The front-end should send the respective, related commands
2438     right after to e.g.  load an engine, load an instrument and setting     right after to e.g. load an engine, load an instrument and setting
2439     input, output method and eventually other commands to initialize the     input, output method and eventually other commands to initialize the
2440     new channel.  The front-end should use the sampler channel returned     new channel.  The front-end should use the sampler channel returned
2441     by the answer of this command to perform the previously recommended     by the answer of this command to perform the previously recommended
2442     commands, to avoid race conditions e.g.  with other front-ends that     commands, to avoid race conditions e.g. with other front-ends that
2443     might also have sent an "ADD CHANNEL" command.     might also have sent an "ADD CHANNEL" command.
2444    
2445     Possible Answers:     Possible Answers:
2446    
2447        "OK[<sampler-channel>]" -        "OK[<sampler-channel>]" -
2448           in case a new sampler channel could be added, where  
2449           <sampler-channel> reflects the channel number of the new           in case a new sampler channel could be added, where <sampler-
2450           created sampler channel which should be used to set up the           channel> reflects the channel number of the new created sampler
2451           sampler channel by sending subsequent initialization commands           channel which should be used to set up the sampler channel by
2452             sending subsequent initialization commands
2453    
2454        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2455    
2456           in case a new channel was added successfully, but there are           in case a new channel was added successfully, but there are
2457           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2458           code and warning message           code and warning message
       "ERR:<error-code>:<error-message>" -  
          in case it failed, providing an appropriate error code and  
          error message  
2459    
    Example:  
2460    
2461    
2462    
2463    Schoenebeck             Expires November 2, 2005               [Page 44]
2464    
2465    Internet-Draft        LinuxSampler Control Protocol             May 2005
2466    
2467    
2468          "ERR:<error-code>:<error-message>" -
2469    
2470             in case it failed, providing an appropriate error code and
2471             error message
2472    
2473       Example:
2474    
2475    
 Schoenebeck            Expires November 22, 2005               [Page 38]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2476    
2477    
2478  6.4.6  Removing a sampler channel  6.4.6  Removing a sampler channel
# Line 2143  Internet-Draft       LinuxSampler Contro Line 2489  Internet-Draft       LinuxSampler Contro
2489     Possible Answers:     Possible Answers:
2490    
2491        "OK" -        "OK" -
2492    
2493           in case the given sampler channel could be removed           in case the given sampler channel could be removed
2494    
2495        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2496    
2497           in case the given channel was removed, but there are noteworthy           in case the given channel was removed, but there are noteworthy
2498           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2499           warning message           warning message
2500    
2501        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2502    
2503           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2504           error message           error message
2505    
# Line 2156  Internet-Draft       LinuxSampler Contro Line 2507  Internet-Draft       LinuxSampler Contro
2507    
2508    
2509    
2510    
2511  6.4.7  Getting amount of available engines  6.4.7  Getting amount of available engines
2512    
2513     The front-end can ask for the number of available engines by sending     The front-end can ask for the number of available engines by sending
2514     the following command:     the following command:
2515    
2516    
2517    
2518    
2519    Schoenebeck             Expires November 2, 2005               [Page 45]
2520    
2521    Internet-Draft        LinuxSampler Control Protocol             May 2005
2522    
2523    
2524        GET AVAILABLE_ENGINES        GET AVAILABLE_ENGINES
2525    
2526     Possible Answers:     Possible Answers:
# Line 2171  Internet-Draft       LinuxSampler Contro Line 2531  Internet-Draft       LinuxSampler Contro
2531     Example:     Example:
2532    
2533        C: "GET AVAILABLE_ENGINES"        C: "GET AVAILABLE_ENGINES"
2534    
2535        S: "4"        S: "4"
2536    
2537    
2538  6.4.8  Getting all available engines  6.4.8  Getting all available engines
2539    
2540     The front-end can ask for a list of all available engines by sending     The front-end can ask for a list of all available engines by sending
2541     the following command:     the following command:
2542    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 39]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2543        LIST AVAILABLE_ENGINES        LIST AVAILABLE_ENGINES
2544    
2545     Possible Answers:     Possible Answers:
# Line 2197  Internet-Draft       LinuxSampler Contro Line 2552  Internet-Draft       LinuxSampler Contro
2552     Example:     Example:
2553    
2554        C: "LIST AVAILABLE_ENGINES"        C: "LIST AVAILABLE_ENGINES"
2555    
2556        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"
2557    
2558    
2559  6.4.9  Getting information about an engine  6.4.9  Getting information about an engine
2560    
2561     The front-end can ask for information about a specific engine by     The front-end can ask for information about a specific engine by
# Line 2211  Internet-Draft       LinuxSampler Contro Line 2568  Internet-Draft       LinuxSampler Contro
2568    
2569     Possible Answers:     Possible Answers:
2570    
2571    
2572    
2573    
2574    
2575    Schoenebeck             Expires November 2, 2005               [Page 46]
2576    
2577    Internet-Draft        LinuxSampler Control Protocol             May 2005
2578    
2579    
2580        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2581        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2582        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
2583        character string to that info category.  At the moment the        character string to that info category.  At the moment the
2584        following categories are defined:        following categories are defined:
2585    
2586    
2587    
2588           DESCRIPTION -           DESCRIPTION -
2589    
2590              arbitrary description text about the engine              arbitrary description text about the engine
2591    
2592           VERSION -           VERSION -
2593    
2594              arbitrary character string regarding the engine's version              arbitrary character string regarding the engine's version
2595    
2596     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
# Line 2227  Internet-Draft       LinuxSampler Contro Line 2598  Internet-Draft       LinuxSampler Contro
2598     Example:     Example:
2599    
2600        C: "GET ENGINE INFO JoesCustomEngine"        C: "GET ENGINE INFO JoesCustomEngine"
       S: "DESCRIPTION: this is Joe's custom sampler engine"  
          "VERSION: testing-1.0"  
          "."  
   
   
   
2601    
2602          S: "DESCRIPTION: this is Joe's custom sampler engine"
2603    
2604             "VERSION: testing-1.0"
2605    
2606  Schoenebeck            Expires November 22, 2005               [Page 40]           "."
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2607    
2608    
2609  6.4.10  Getting sampler channel information  6.4.10  Getting sampler channel information
# Line 2260  Internet-Draft       LinuxSampler Contro Line 2625  Internet-Draft       LinuxSampler Contro
2625        character string to that setting category.  At the moment the        character string to that setting category.  At the moment the
2626        following categories are defined:        following categories are defined:
2627    
2628    
2629    
2630    
2631    Schoenebeck             Expires November 2, 2005               [Page 47]
2632    
2633    Internet-Draft        LinuxSampler Control Protocol             May 2005
2634    
2635    
2636    
2637    
2638           ENGINE_NAME -           ENGINE_NAME -
2639    
2640              name of the engine that is associated with the sampler              name of the engine that is associated with the sampler
2641              channel, "NONE" if there's no engine associated yet for this              channel, "NONE" if there's no engine associated yet for this
2642              sampler channel              sampler channel
2643    
2644           AUDIO_OUTPUT_DEVICE -           AUDIO_OUTPUT_DEVICE -
2645    
2646              numerical ID of the audio output device which is currently              numerical ID of the audio output device which is currently
2647              connected to this sampler channel to output the audio              connected to this sampler channel to output the audio
2648              signal, "NONE" if there's no device connected to this              signal, "NONE" if there's no device connected to this
2649              sampler channel              sampler channel
2650    
2651           AUDIO_OUTPUT_CHANNELS -           AUDIO_OUTPUT_CHANNELS -
2652    
2653              number of output channels the sampler channel offers              number of output channels the sampler channel offers
2654              (dependent to used sampler engine and loaded instrument)              (dependent to used sampler engine and loaded instrument)
2655    
2656           AUDIO_OUTPUT_ROUTING -           AUDIO_OUTPUT_ROUTING -
2657    
2658              comma separated list which reflects to which audio channel              comma separated list which reflects to which audio channel
2659              of the selected audio output device each sampler output              of the selected audio output device each sampler output
2660              channel is routed to, e.g.  "0,3" would mean the engine's              channel is routed to, e.g. "0,3" would mean the engine's
2661              output channel 0 is routed to channel 0 of the audio output              output channel 0 is routed to channel 0 of the audio output
2662              device and the engine's output channel 1 is routed to the              device and the engine's output channel 1 is routed to the
2663              channel 3 of the audio output device              channel 3 of the audio output device
2664    
2665           INSTRUMENT_FILE -           INSTRUMENT_FILE -
2666    
2667              the file name of the loaded instrument, "NONE" if there's no              the file name of the loaded instrument, "NONE" if there's no
2668              instrument yet loaded for this sampler channel              instrument yet loaded for this sampler channel
2669    
2670           INSTRUMENT_NR -           INSTRUMENT_NR -
2671    
2672              the instrument index number of the loaded instrument              the instrument index number of the loaded instrument
2673    
2674           INSTRUMENT_NAME -           INSTRUMENT_NAME -
2675    
2676              the instrument name of the loaded instrument              the instrument name of the loaded instrument
2677    
2678           INSTRUMENT_STATUS -           INSTRUMENT_STATUS -
2679    
2680              integer values 0 to 100 indicating loading progress              integer values 0 to 100 indicating loading progress
2681              percentage for the instrument.  Negative value indicates a              percentage for the instrument.  Negative value indicates a
2682                loading exception.  Value of 100 indicates that the
2683                instrument is fully loaded.
2684    
2685    
2686    
2687  Schoenebeck            Expires November 22, 2005               [Page 41]  Schoenebeck             Expires November 2, 2005               [Page 48]
2688    
2689  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
2690    
2691    
             loading exception.  Value of 100 indicates that the  
             instrument is fully loaded.  
2692           MIDI_INPUT_DEVICE -           MIDI_INPUT_DEVICE -
2693    
2694              numerical ID of the MIDI input device which is currently              numerical ID of the MIDI input device which is currently
2695              connected to this sampler channel to deliver MIDI input              connected to this sampler channel to deliver MIDI input
2696              commands, "NONE" if there's no device connected to this              commands, "NONE" if there's no device connected to this
2697              sampler channel              sampler channel
2698    
2699           MIDI_INPUT_PORT -           MIDI_INPUT_PORT -
2700    
2701              port number of the MIDI input device              port number of the MIDI input device
2702    
2703           MIDI_INPUT_CHANNEL -           MIDI_INPUT_CHANNEL -
2704    
2705              the MIDI input channel number this sampler channel should              the MIDI input channel number this sampler channel should
2706              listen to or "ALL" to listen on all MIDI channels              listen to or "ALL" to listen on all MIDI channels
2707    
2708           VOLUME -           VOLUME -
2709    
2710              optionally dotted number for the channel volume factor              optionally dotted number for the channel volume factor
2711              (where a value < 1.0 means attenuation and a value > 1.0              (where a value < 1.0 means attenuation and a value > 1.0
2712              means amplification)              means amplification)
2713    
2714             MUTE -
2715    
2716                Determines whether the channel is muted, "true" if the
2717                channel is muted, "false" if the channel is not muted, and
2718                "MUTED_BY_SOLO" if the channel is muted because of the
2719                presence of a solo channel and will be unmuted when there
2720                are no solo channels left
2721    
2722             SOLO -
2723    
2724                Determines whether this is a solo channel, "true" if the
2725                channel is a solo channel; "false" otherwise
2726    
2727     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
2728    
2729     Example:     Example:
2730    
2731        C: "GET CHANNEL INFO 34"        C: "GET CHANNEL INFO 34"
2732    
2733        S: "ENGINE_NAME: GigEngine"        S: "ENGINE_NAME: GigEngine"
2734    
2735           "VOLUME: 1.0"           "VOLUME: 1.0"
2736    
2737           "AUDIO_OUTPUT_DEVICE: 0"           "AUDIO_OUTPUT_DEVICE: 0"
2738    
2739    
2740    
2741    
2742    
2743    Schoenebeck             Expires November 2, 2005               [Page 49]
2744    
2745    Internet-Draft        LinuxSampler Control Protocol             May 2005
2746    
2747    
2748           "AUDIO_OUTPUT_CHANNELS: 2"           "AUDIO_OUTPUT_CHANNELS: 2"
2749    
2750           "AUDIO_OUTPUT_ROUTING: 0,1"           "AUDIO_OUTPUT_ROUTING: 0,1"
2751    
2752           "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"           "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"
2753    
2754           "INSTRUMENT_NR: 0"           "INSTRUMENT_NR: 0"
2755    
2756           "INSTRUMENT_NAME: Fazioli Piano"           "INSTRUMENT_NAME: Fazioli Piano"
2757    
2758           "INSTRUMENT_STATUS: 100"           "INSTRUMENT_STATUS: 100"
2759    
2760           "MIDI_INPUT_DEVICE: 0"           "MIDI_INPUT_DEVICE: 0"
2761    
2762           "MIDI_INPUT_PORT: 0"           "MIDI_INPUT_PORT: 0"
2763    
2764           "MIDI_INPUT_CHANNEL: 5"           "MIDI_INPUT_CHANNEL: 5"
2765    
2766           "."           "."
2767    
2768    
2769  6.4.11  Current number of active voices  6.4.11  Current number of active voices
2770    
2771     The front-end can ask for the current number of active voices on a     The front-end can ask for the current number of active voices on a
# Line 2346  Internet-Draft       LinuxSampler Contro Line 2779  Internet-Draft       LinuxSampler Contro
2779    
2780     Possible Answers:     Possible Answers:
2781    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 42]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2782        LinuxSampler will answer by returning the number of active voices        LinuxSampler will answer by returning the number of active voices
2783        on that channel.        on that channel.
2784    
# Line 2360  Internet-Draft       LinuxSampler Contro Line 2786  Internet-Draft       LinuxSampler Contro
2786    
2787    
2788    
2789    
2790  6.4.12  Current number of active disk streams  6.4.12  Current number of active disk streams
2791    
2792     The front-end can ask for the current number of active disk streams     The front-end can ask for the current number of active disk streams
2793     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
2794    
2795    
2796    
2797    
2798    
2799    Schoenebeck             Expires November 2, 2005               [Page 50]
2800    
2801    Internet-Draft        LinuxSampler Control Protocol             May 2005
2802    
2803    
2804        GET CHANNEL STREAM_COUNT <sampler-channel>        GET CHANNEL STREAM_COUNT <sampler-channel>
2805    
2806     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
# Line 2382  Internet-Draft       LinuxSampler Contro Line 2818  Internet-Draft       LinuxSampler Contro
2818    
2819    
2820    
2821    
2822  6.4.13  Current fill state of disk stream buffers  6.4.13  Current fill state of disk stream buffers
2823    
2824     The front-end can ask for the current fill state of all disk streams     The front-end can ask for the current fill state of all disk streams
# Line 2400  Internet-Draft       LinuxSampler Contro Line 2837  Internet-Draft       LinuxSampler Contro
2837    
2838     Possible Answers:     Possible Answers:
2839    
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 43]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2840        LinuxSampler will either answer by returning a comma separated        LinuxSampler will either answer by returning a comma separated
2841        string with the fill state of all disk stream buffers on that        string with the fill state of all disk stream buffers on that
2842        channel or an empty line if there are no active disk streams or        channel or an empty line if there are no active disk streams or
# Line 2422  Internet-Draft       LinuxSampler Contro Line 2850  Internet-Draft       LinuxSampler Contro
2850    
2851     Examples:     Examples:
2852    
2853    
2854    
2855    Schoenebeck             Expires November 2, 2005               [Page 51]
2856    
2857    Internet-Draft        LinuxSampler Control Protocol             May 2005
2858    
2859    
2860        C: "GET CHANNEL BUFFER_FILL BYTES 4"        C: "GET CHANNEL BUFFER_FILL BYTES 4"
2861    
2862        S: "[115]420500,[116]510300,[75]110000,[120]230700"        S: "[115]420500,[116]510300,[75]110000,[120]230700"
2863    
2864        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
2865    
2866        S: "[115]90%,[116]98%,[75]40%,[120]62%"        S: "[115]90%,[116]98%,[75]40%,[120]62%"
2867    
2868        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
2869    
2870        S: ""        S: ""
2871    
2872    
2873  6.4.14  Setting audio output device  6.4.14  Setting audio output device
2874    
2875     The front-end can set the audio output device on a specific sampler     The front-end can set the audio output device on a specific sampler
# Line 2447  Internet-Draft       LinuxSampler Contro Line 2888  Internet-Draft       LinuxSampler Contro
2888     Possible Answers:     Possible Answers:
2889    
2890        "OK" -        "OK" -
2891    
2892           on success           on success
2893    
2894        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2895    
2896           if audio output device was set, but there are noteworthy           if audio output device was set, but there are noteworthy
2897           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2898           warning message           warning message
2899    
2900        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2901    
2902           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2903           error message           error message
2904    
# Line 2460  Internet-Draft       LinuxSampler Contro Line 2906  Internet-Draft       LinuxSampler Contro
2906    
2907    
2908    
2909  Schoenebeck            Expires November 22, 2005               [Page 44]  
2910    
2911  Internet-Draft       LinuxSampler Control Protocol              May 2005  Schoenebeck             Expires November 2, 2005               [Page 52]
2912    
2913    Internet-Draft        LinuxSampler Control Protocol             May 2005
2914    
2915    
2916    
2917    
# Line 2474  Internet-Draft       LinuxSampler Contro Line 2923  Internet-Draft       LinuxSampler Contro
2923     The front-end can alter the audio output type on a specific sampler     The front-end can alter the audio output type on a specific sampler
2924     channel by sending the following command:     channel by sending the following command:
2925    
2926        SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel>        SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-
2927        <audio-output-type>        type>
2928    
2929     Where <audio-output-type> is currently either "ALSA" or "JACK" and     Where <audio-output-type> is currently either "ALSA" or "JACK" and
2930     <sampler-channel> is the respective sampler channel number.     <sampler-channel> is the respective sampler channel number.
# Line 2483  Internet-Draft       LinuxSampler Contro Line 2932  Internet-Draft       LinuxSampler Contro
2932     Possible Answers:     Possible Answers:
2933    
2934        "OK" -        "OK" -
2935    
2936           on success           on success
2937    
2938        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2939    
2940           if audio output type was set, but there are noteworthy issue(s)           if audio output type was set, but there are noteworthy issue(s)
2941           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
2942           message           message
2943    
2944        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2945    
2946           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2947           error message           error message
2948    
# Line 2496  Internet-Draft       LinuxSampler Contro Line 2950  Internet-Draft       LinuxSampler Contro
2950    
2951    
2952    
2953    
2954  6.4.16  Setting audio output channel  6.4.16  Setting audio output channel
2955    
2956     The front-end can alter the audio output channel on a specific     The front-end can alter the audio output channel on a specific
# Line 2506  Internet-Draft       LinuxSampler Contro Line 2961  Internet-Draft       LinuxSampler Contro
2961    
2962     Where <sampler-chan> is the sampler channel number as returned by the     Where <sampler-chan> is the sampler channel number as returned by the
2963     "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)     "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
    command, <audio-out> is the numerical ID of the sampler channel's  
    audio output channel which should be rerouted and <audio-in> is the  
    numerical ID of the audio channel of the selected audio output device  
    where <audio-out> should be routed to.  
2964    
    Possible Answers:  
2965    
2966    
2967    Schoenebeck             Expires November 2, 2005               [Page 53]
2968    
2969    Internet-Draft        LinuxSampler Control Protocol             May 2005
2970    
 Schoenebeck            Expires November 22, 2005               [Page 45]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2971    
2972       command, <audio-out> is the numerical ID of the sampler channel's
2973       audio output channel which should be rerouted and <audio-in> is the
2974       numerical ID of the audio channel of the selected audio output device
2975       where <audio-out> should be routed to.
2976    
2977       Possible Answers:
2978    
2979        "OK" -        "OK" -
2980    
2981           on success           on success
2982    
2983        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2984    
2985           if audio output channel was set, but there are noteworthy           if audio output channel was set, but there are noteworthy
2986           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2987           warning message           warning message
2988    
2989        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2990    
2991           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2992           error message           error message
2993    
# Line 2535  Internet-Draft       LinuxSampler Contro Line 2995  Internet-Draft       LinuxSampler Contro
2995    
2996    
2997    
2998    
2999  6.4.17  Setting MIDI input device  6.4.17  Setting MIDI input device
3000    
3001     The front-end can set the MIDI input device on a specific sampler     The front-end can set the MIDI input device on a specific sampler
# Line 2551  Internet-Draft       LinuxSampler Contro Line 3012  Internet-Draft       LinuxSampler Contro
3012     Possible Answers:     Possible Answers:
3013    
3014        "OK" -        "OK" -
3015    
3016           on success           on success
3017    
3018    
3019    
3020    
3021    
3022    
3023    Schoenebeck             Expires November 2, 2005               [Page 54]
3024    
3025    Internet-Draft        LinuxSampler Control Protocol             May 2005
3026    
3027    
3028        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3029    
3030           if MIDI input device was set, but there are noteworthy issue(s)           if MIDI input device was set, but there are noteworthy issue(s)
3031           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3032           message           message
3033    
3034        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3035    
3036           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3037           error message           error message
3038    
# Line 2564  Internet-Draft       LinuxSampler Contro Line 3040  Internet-Draft       LinuxSampler Contro
3040    
3041    
3042    
3043    
3044  6.4.18  Setting MIDI input type  6.4.18  Setting MIDI input type
3045    
3046     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
3047    
3048     The front-end can alter the MIDI input type on a specific sampler     The front-end can alter the MIDI input type on a specific sampler
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 46]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3049     channel by sending the following command:     channel by sending the following command:
3050    
3051        SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type>        SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type>
3052    
3053     Where <midi-input-type> is currently only "ALSA" and     Where <midi-input-type> is currently only "ALSA" and <sampler-
3054     <sampler-channel> is the respective sampler channel number.     channel> is the respective sampler channel number.
3055    
3056     Possible Answers:     Possible Answers:
3057    
3058        "OK" -        "OK" -
3059    
3060           on success           on success
3061    
3062        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3063    
3064           if MIDI input type was set, but there are noteworthy issue(s)           if MIDI input type was set, but there are noteworthy issue(s)
3065           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3066           message           message
3067    
3068        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3069    
3070           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3071           error message           error message
3072    
# Line 2600  Internet-Draft       LinuxSampler Contro Line 3074  Internet-Draft       LinuxSampler Contro
3074    
3075    
3076    
3077    
3078    
3079    Schoenebeck             Expires November 2, 2005               [Page 55]
3080    
3081    Internet-Draft        LinuxSampler Control Protocol             May 2005
3082    
3083    
3084    
3085    
3086    
3087  6.4.19  Setting MIDI input port  6.4.19  Setting MIDI input port
3088    
3089     The front-end can alter the MIDI input port on a specific sampler     The front-end can alter the MIDI input port on a specific sampler
# Line 2613  Internet-Draft       LinuxSampler Contro Line 3097  Internet-Draft       LinuxSampler Contro
3097     Possible Answers:     Possible Answers:
3098    
3099        "OK" -        "OK" -
3100    
3101           on success           on success
3102    
3103        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3104    
3105           if MIDI input port was set, but there are noteworthy issue(s)           if MIDI input port was set, but there are noteworthy issue(s)
3106           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3107           message           message
3108    
3109        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3110    
3111           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3112           error message           error message
3113    
# Line 2627  Internet-Draft       LinuxSampler Contro Line 3116  Internet-Draft       LinuxSampler Contro
3116    
3117    
3118    
   
 Schoenebeck            Expires November 22, 2005               [Page 47]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
   
   
3119  6.4.20  Setting MIDI input channel  6.4.20  Setting MIDI input channel
3120    
3121     The front-end can alter the MIDI channel a sampler channel should     The front-end can alter the MIDI channel a sampler channel should
# Line 2648  Internet-Draft       LinuxSampler Contro Line 3129  Internet-Draft       LinuxSampler Contro
3129    
3130     Possible Answers:     Possible Answers:
3131    
3132    
3133    
3134    
3135    Schoenebeck             Expires November 2, 2005               [Page 56]
3136    
3137    Internet-Draft        LinuxSampler Control Protocol             May 2005
3138    
3139    
3140        "OK" -        "OK" -
3141    
3142           on success           on success
3143    
3144        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3145    
3146           if MIDI input channel was set, but there are noteworthy           if MIDI input channel was set, but there are noteworthy
3147           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
3148           warning message           warning message
3149    
3150        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3151    
3152           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3153           error message           error message
3154    
# Line 2662  Internet-Draft       LinuxSampler Contro Line 3156  Internet-Draft       LinuxSampler Contro
3156    
3157    
3158    
3159    
3160  6.4.21  Setting channel volume  6.4.21  Setting channel volume
3161    
3162     The front-end can alter the volume of a sampler channel by sending     The front-end can alter the volume of a sampler channel by sending
# Line 2677  Internet-Draft       LinuxSampler Contro Line 3172  Internet-Draft       LinuxSampler Contro
3172     Possible Answers:     Possible Answers:
3173    
3174        "OK" -        "OK" -
3175    
3176           on success           on success
3177    
3178        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3179    
3180           if channel volume was set, but there are noteworthy issue(s)           if channel volume was set, but there are noteworthy issue(s)
3181           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3182             message
3183    
3184          "ERR:<error-code>:<error-message>" -
3185    
3186             in case it failed, providing an appropriate error code and
3187             error message
3188    
3189    
3190    
3191  Schoenebeck            Expires November 22, 2005               [Page 48]  Schoenebeck             Expires November 2, 2005               [Page 57]
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
3192    
3193    Internet-Draft        LinuxSampler Control Protocol             May 2005
3194    
3195    
3196       Examples:
3197    
3198    
3199    
3200    
3201    6.4.22  Muting a sampler channel
3202    
3203       The front-end can mute/unmute a specific sampler channel by sending
3204       the following command:
3205    
3206          SET CHANNEL MUTE <sampler-channel> <mute>
3207    
3208       Where <sampler-channel> is the respective sampler channel number as
3209       returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
3210       (Section 6.4.4) command and <mute> should be replaced either by "1"
3211       to mute the channel or "0" to unmute the channel.
3212    
3213       Possible Answers:
3214    
3215          "OK" -
3216    
3217             on success
3218    
3219          "WRN:<warning-code>:<warning-message>" -
3220    
3221             if the channel was muted/unmuted, but there are noteworthy
3222             issue(s) related, providing an appropriate warning code and
3223             warning message
3224    
3225          "ERR:<error-code>:<error-message>" -
3226    
3227             in case it failed, providing an appropriate error code and
3228             error message
3229    
3230       Examples:
3231    
3232    
3233    
3234    
3235    6.4.23  Soloing a sampler channel
3236    
3237       The front-end can solo/unsolo a specific sampler channel by sending
3238       the following command:
3239    
3240          SET CHANNEL SOLO <sampler-channel> <solo>
3241    
3242       Where <sampler-channel> is the respective sampler channel number as
3243       returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
3244    
3245    
3246    
3247    Schoenebeck             Expires November 2, 2005               [Page 58]
3248    
3249    Internet-Draft        LinuxSampler Control Protocol             May 2005
3250    
3251    
3252       (Section 6.4.4) command and <solo> should be replaced either by "1"
3253       to solo the channel or "0" to unsolo the channel.
3254    
3255       Possible Answers:
3256    
3257          "OK" -
3258    
3259             on success
3260    
3261          "WRN:<warning-code>:<warning-message>" -
3262    
3263             if the channel was soloed/unsoloed, but there are noteworthy
3264             issue(s) related, providing an appropriate warning code and
3265             warning message
3266    
          message  
3267        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3268    
3269           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3270           error message           error message
3271    
# Line 2698  Internet-Draft       LinuxSampler Contro Line 3273  Internet-Draft       LinuxSampler Contro
3273    
3274    
3275    
3276  6.4.22  Resetting a sampler channel  
3277    6.4.24  Resetting a sampler channel
3278    
3279     The front-end can reset a particular sampler channel by sending the     The front-end can reset a particular sampler channel by sending the
3280     following command:     following command:
# Line 2713  Internet-Draft       LinuxSampler Contro Line 3289  Internet-Draft       LinuxSampler Contro
3289     Possible Answers:     Possible Answers:
3290    
3291        "OK" -        "OK" -
3292    
3293           on success           on success
3294    
3295        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3296    
3297           if channel was reset, but there are noteworthy issue(s)           if channel was reset, but there are noteworthy issue(s)
3298           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3299           message           message
3300    
3301    
3302    
3303    Schoenebeck             Expires November 2, 2005               [Page 59]
3304    
3305    Internet-Draft        LinuxSampler Control Protocol             May 2005
3306    
3307    
3308        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3309    
3310           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3311           error message           error message
3312    
# Line 2726  Internet-Draft       LinuxSampler Contro Line 3314  Internet-Draft       LinuxSampler Contro
3314    
3315    
3316    
3317    
3318  6.5  Controlling connection  6.5  Controlling connection
3319    
3320     The following commands are used to control the connection to     The following commands are used to control the connection to
# Line 2736  Internet-Draft       LinuxSampler Contro Line 3325  Internet-Draft       LinuxSampler Contro
3325     The front-end can register itself to the LinuxSampler application to     The front-end can register itself to the LinuxSampler application to
3326     be informed about noteworthy events by sending this command:     be informed about noteworthy events by sending this command:
3327    
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 49]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3328        SUBSCRIBE <event-id>        SUBSCRIBE <event-id>
3329    
3330     where <event-id> will be replaced by the respective event that client     where <event-id> will be replaced by the respective event that client
# Line 2753  Internet-Draft       LinuxSampler Contro Line 3333  Internet-Draft       LinuxSampler Contro
3333     Possible Answers:     Possible Answers:
3334    
3335        "OK" -        "OK" -
3336    
3337           on success           on success
3338    
3339        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3340    
3341           if registration succeeded, but there are noteworthy issue(s)           if registration succeeded, but there are noteworthy issue(s)
3342           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3343           message           message
3344    
3345        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3346    
3347           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3348           error message           error message
3349    
# Line 2766  Internet-Draft       LinuxSampler Contro Line 3351  Internet-Draft       LinuxSampler Contro
3351    
3352    
3353    
3354    
3355    
3356    
3357    
3358    
3359    Schoenebeck             Expires November 2, 2005               [Page 60]
3360    
3361    Internet-Draft        LinuxSampler Control Protocol             May 2005
3362    
3363    
3364  6.5.2  Unregister front-end for not receiving event messages  6.5.2  Unregister front-end for not receiving event messages
3365    
3366     The front-end can unregister itself if it doesn't want to receive     The front-end can unregister itself if it doesn't want to receive
# Line 2779  Internet-Draft       LinuxSampler Contro Line 3374  Internet-Draft       LinuxSampler Contro
3374     Possible Answers:     Possible Answers:
3375    
3376        "OK" -        "OK" -
3377    
3378           on success           on success
3379    
3380        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3381    
3382           if unregistration succeeded, but there are noteworthy issue(s)           if unregistration succeeded, but there are noteworthy issue(s)
3383           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3384           message           message
3385    
3386        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3387    
3388           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3389           error message           error message
3390    
# Line 2793  Internet-Draft       LinuxSampler Contro Line 3393  Internet-Draft       LinuxSampler Contro
3393    
3394    
3395    
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 50]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3396  6.5.3  Enable or disable echo of commands  6.5.3  Enable or disable echo of commands
3397    
3398     To enable or disable back sending of commands to the client the     To enable or disable back sending of commands to the client the
# Line 2817  Internet-Draft       LinuxSampler Contro Line 3409  Internet-Draft       LinuxSampler Contro
3409    
3410     Possible Answers:     Possible Answers:
3411    
3412    
3413    
3414    
3415    Schoenebeck             Expires November 2, 2005               [Page 61]
3416    
3417    Internet-Draft        LinuxSampler Control Protocol             May 2005
3418    
3419    
3420        "OK" -        "OK" -
3421    
3422           usually           usually
3423    
3424        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3425           on syntax error, e.g.  non boolean value  
3426             on syntax error, e.g. non boolean value
3427    
3428     Examples:     Examples:
3429    
3430    
3431    
3432    
3433  6.5.4  Close client connection  6.5.4  Close client connection
3434    
3435     The client can close its network connection to LinuxSampler by     The client can close its network connection to LinuxSampler by
# Line 2849  Internet-Draft       LinuxSampler Contro Line 3453  Internet-Draft       LinuxSampler Contro
3453    
3454     Possible Answers:     Possible Answers:
3455    
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 51]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3456        "OK" -        "OK" -
3457    
3458           always           always
3459    
3460     Examples:     Examples:
3461    
3462    
3463    
3464    
3465  6.6.2  General sampler informations  6.6.2  General sampler informations
3466    
3467     The client can ask for general informations about the LinuxSampler     The client can ask for general informations about the LinuxSampler
3468    
3469    
3470    
3471    Schoenebeck             Expires November 2, 2005               [Page 62]
3472    
3473    Internet-Draft        LinuxSampler Control Protocol             May 2005
3474    
3475    
3476     instance by sending the following command:     instance by sending the following command:
3477    
3478        GET SERVER INFO        GET SERVER INFO
# Line 2879  Internet-Draft       LinuxSampler Contro Line 3485  Internet-Draft       LinuxSampler Contro
3485        character string to that information category.  At the moment the        character string to that information category.  At the moment the
3486        following categories are defined:        following categories are defined:
3487    
3488    
3489    
3490           DESCRIPTION -           DESCRIPTION -
3491    
3492              arbitrary textual description about the sampler              arbitrary textual description about the sampler
3493    
3494           VERSION -           VERSION -
3495    
3496              version of the sampler              version of the sampler
3497    
3498           PROTOCOL_VERSION -           PROTOCOL_VERSION -
3499    
3500              version of the LSCP specification the sampler complies with              version of the LSCP specification the sampler complies with
3501              (see Section 2 for details)              (see Section 2 for details)
3502    
# Line 2908  Internet-Draft       LinuxSampler Contro Line 3521  Internet-Draft       LinuxSampler Contro
3521    
3522    
3523    
3524  Schoenebeck            Expires November 22, 2005               [Page 52]  
3525    
3526  Internet-Draft       LinuxSampler Control Protocol              May 2005  
3527    Schoenebeck             Expires November 2, 2005               [Page 63]
3528    
3529    Internet-Draft        LinuxSampler Control Protocol             May 2005
3530    
3531    
3532  7.  Command Syntax  7.  Command Syntax
# Line 2920  Internet-Draft       LinuxSampler Contro Line 3536  Internet-Draft       LinuxSampler Contro
3536     where applicable.     where applicable.
3537    
3538     input =     input =
3539    
3540        line LF        line LF
3541    
3542        / line CR LF        / line CR LF
3543    
3544     line =     line =
3545    
3546        /* epsilon (empty line ignored) */        /* epsilon (empty line ignored) */
3547    
3548        / comment        / comment
3549    
3550        / command        / command
3551    
3552        / error        / error
3553    
3554     comment =     comment =
3555    
3556        '#'        '#'
3557    
3558        / comment '#'        / comment '#'
3559    
3560        / comment SP        / comment SP
3561    
3562        / comment number        / comment number
3563    
3564        / comment string        / comment string
3565    
3566     command =     command =
3567    
3568        ADD SP CHANNEL        ADD SP CHANNEL
3569    
3570        / GET SP get_instruction        / GET SP get_instruction
3571    
3572        / CREATE SP create_instruction        / CREATE SP create_instruction
3573    
3574        / DESTROY SP destroy_instruction        / DESTROY SP destroy_instruction
3575    
3576        / LIST SP list_instruction        / LIST SP list_instruction
3577    
3578        / LOAD SP load_instruction        / LOAD SP load_instruction
3579    
3580    
3581    
3582    
3583    Schoenebeck             Expires November 2, 2005               [Page 64]
3584    
3585    Internet-Draft        LinuxSampler Control Protocol             May 2005
3586    
3587    
3588        / REMOVE SP CHANNEL SP sampler_channel        / REMOVE SP CHANNEL SP sampler_channel
3589    
3590        / SET SP set_instruction        / SET SP set_instruction
3591    
3592        / SUBSCRIBE SP subscribe_event        / SUBSCRIBE SP subscribe_event
3593    
3594        / UNSUBSCRIBE SP unsubscribe_event        / UNSUBSCRIBE SP unsubscribe_event
3595    
3596        / SELECT SP text        / SELECT SP text
3597    
3598        / RESET SP CHANNEL SP sampler_channel        / RESET SP CHANNEL SP sampler_channel
3599    
3600        / RESET        / RESET
3601    
3602        / QUIT        / QUIT
3603    
3604     subscribe_event =     subscribe_event =
3605    
3606        CHANNEL_COUNT        CHANNEL_COUNT
3607    
3608        / VOICE_COUNT        / VOICE_COUNT
3609    
3610        / STREAM_COUNT        / STREAM_COUNT
3611    
3612        / BUFFER_FILL        / BUFFER_FILL
3613    
3614        / CHANNEL_INFO        / CHANNEL_INFO
3615    
3616        / MISCELLANEOUS        / MISCELLANEOUS
3617    
3618     unsubscribe_event =     unsubscribe_event =
3619    
   
   
 Schoenebeck            Expires November 22, 2005               [Page 53]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3620        CHANNEL_COUNT        CHANNEL_COUNT
3621    
3622        / VOICE_COUNT        / VOICE_COUNT
3623    
3624        / STREAM_COUNT        / STREAM_COUNT
3625    
3626        / BUFFER_FILL        / BUFFER_FILL
3627    
3628        / CHANNEL_INFO        / CHANNEL_INFO
3629    
3630        / MISCELLANEOUS        / MISCELLANEOUS
3631    
3632     get_instruction =     get_instruction =
3633    
3634        AVAILABLE_ENGINES        AVAILABLE_ENGINES
3635    
3636    
3637    
3638    
3639    Schoenebeck             Expires November 2, 2005               [Page 65]
3640    
3641    Internet-Draft        LinuxSampler Control Protocol             May 2005
3642    
3643    
3644        / AVAILABLE_MIDI_INPUT_DRIVERS        / AVAILABLE_MIDI_INPUT_DRIVERS
3645    
3646        / MIDI_INPUT_DRIVER SP INFO SP string        / MIDI_INPUT_DRIVER SP INFO SP string
3647    
3648        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
3649    
3650        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP
3651        key_val_list        key_val_list
3652    
3653        / AVAILABLE_AUDIO_OUTPUT_DRIVERS        / AVAILABLE_AUDIO_OUTPUT_DRIVERS
3654    
3655        / AUDIO_OUTPUT_DRIVER SP INFO SP string        / AUDIO_OUTPUT_DRIVER SP INFO SP string
3656    
3657        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
3658    
3659        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP
3660        key_val_list        key_val_list
3661    
3662        / AUDIO_OUTPUT_DEVICES        / AUDIO_OUTPUT_DEVICES
3663    
3664        / MIDI_INPUT_DEVICES        / MIDI_INPUT_DEVICES
3665    
3666        / AUDIO_OUTPUT_DEVICE SP INFO SP number        / AUDIO_OUTPUT_DEVICE SP INFO SP number
3667    
3668        / MIDI_INPUT_DEVICE SP INFO SP number        / MIDI_INPUT_DEVICE SP INFO SP number
3669    
3670        / MIDI_INPUT_PORT SP INFO SP number SP number        / MIDI_INPUT_PORT SP INFO SP number SP number
3671    
3672        / MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string        / MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
3673    
3674        / AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number        / AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
3675    
3676        / AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP        / AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP
3677        string        string
3678    
3679        / CHANNELS        / CHANNELS
3680    
3681        / CHANNEL SP INFO SP sampler_channel        / CHANNEL SP INFO SP sampler_channel
3682    
3683        / CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel        / CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
3684    
3685        / CHANNEL SP STREAM_COUNT SP sampler_channel        / CHANNEL SP STREAM_COUNT SP sampler_channel
3686    
3687        / CHANNEL SP VOICE_COUNT SP sampler_channel        / CHANNEL SP VOICE_COUNT SP sampler_channel
3688    
3689        / ENGINE SP INFO SP engine_name        / ENGINE SP INFO SP engine_name
3690    
3691    
3692    
3693    
3694    
3695    Schoenebeck             Expires November 2, 2005               [Page 66]
3696    
3697    Internet-Draft        LinuxSampler Control Protocol             May 2005
3698    
3699    
3700        / SERVER SP INFO        / SERVER SP INFO
3701    
3702     set_instruction =     set_instruction =
3703    
3704        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='
3705        param_val_list        param_val_list
3706    
3707        / AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '='        / AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '='
3708        param_val_list        param_val_list
3709    
3710        / MIDI_INPUT_DEVICE_PARAMETER SP number SP string '='        / MIDI_INPUT_DEVICE_PARAMETER SP number SP string '='
3711        param_val_list        param_val_list
3712    
3713        / MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '='        / MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '='
3714        param_val_list        param_val_list
       / CHANNEL SP set_chan_instruction  
       / ECHO SP boolean  
3715    
3716          / CHANNEL SP set_chan_instruction
3717    
3718          / ECHO SP boolean
   
 Schoenebeck            Expires November 22, 2005               [Page 54]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
3719    
3720     create_instruction =     create_instruction =
3721    
3722        AUDIO_OUTPUT_DEVICE SP string SP key_val_list        AUDIO_OUTPUT_DEVICE SP string SP key_val_list
3723    
3724        / AUDIO_OUTPUT_DEVICE SP string        / AUDIO_OUTPUT_DEVICE SP string
3725    
3726        / MIDI_INPUT_DEVICE SP string SP key_val_list        / MIDI_INPUT_DEVICE SP string SP key_val_list
3727    
3728        / MIDI_INPUT_DEVICE SP string        / MIDI_INPUT_DEVICE SP string
3729    
3730     destroy_instruction =     destroy_instruction =
3731    
3732        AUDIO_OUTPUT_DEVICE SP number        AUDIO_OUTPUT_DEVICE SP number
3733    
3734        / MIDI_INPUT_DEVICE SP number        / MIDI_INPUT_DEVICE SP number
3735    
3736     load_instruction =     load_instruction =
3737    
3738        INSTRUMENT SP load_instr_args        INSTRUMENT SP load_instr_args
3739    
3740        / ENGINE SP load_engine_args        / ENGINE SP load_engine_args
3741    
3742     set_chan_instruction =     set_chan_instruction =
3743    
3744        AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index        AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
3745    
3746        / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index        / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index
3747        SP audio_channel_index        SP audio_channel_index
3748    
3749    
3750    
3751    Schoenebeck             Expires November 2, 2005               [Page 67]
3752    
3753    Internet-Draft        LinuxSampler Control Protocol             May 2005
3754    
3755    
3756        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
3757    
3758        / MIDI_INPUT SP sampler_channel SP device_index SP        / MIDI_INPUT SP sampler_channel SP device_index SP
3759        midi_input_port_index SP midi_input_channel_index        midi_input_port_index SP midi_input_channel_index
3760    
3761        / MIDI_INPUT_DEVICE SP sampler_channel SP device_index        / MIDI_INPUT_DEVICE SP sampler_channel SP device_index
3762    
3763        / MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index        / MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
3764    
3765        / MIDI_INPUT_CHANNEL SP sampler_channel SP        / MIDI_INPUT_CHANNEL SP sampler_channel SP
3766        midi_input_channel_index        midi_input_channel_index
3767    
3768        / MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name        / MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
3769    
3770        / VOLUME SP sampler_channel SP volume_value        / VOLUME SP sampler_channel SP volume_value
3771    
3772          / MUTE SP sampler_channel SP boolean
3773    
3774          / SOLO SP sampler_channel SP boolean
3775    
3776     key_val_list =     key_val_list =
3777    
3778        string '=' param_val_list        string '=' param_val_list
3779    
3780        / key_val_list SP string '=' param_val_list        / key_val_list SP string '=' param_val_list
3781    
3782     buffer_size_type =     buffer_size_type =
3783    
3784        BYTES        BYTES
3785    
3786        / PERCENTAGE        / PERCENTAGE
3787    
3788     list_instruction =     list_instruction =
3789    
3790        AUDIO_OUTPUT_DEVICES        AUDIO_OUTPUT_DEVICES
3791    
3792        / MIDI_INPUT_DEVICES        / MIDI_INPUT_DEVICES
3793    
3794        / CHANNELS        / CHANNELS
3795    
3796        / AVAILABLE_ENGINES        / AVAILABLE_ENGINES
3797    
3798        / AVAILABLE_MIDI_INPUT_DRIVERS        / AVAILABLE_MIDI_INPUT_DRIVERS
3799    
3800        / AVAILABLE_AUDIO_OUTPUT_DRIVERS        / AVAILABLE_AUDIO_OUTPUT_DRIVERS
3801    
3802     load_instr_args =     load_instr_args =
       filename SP instrument_index SP sampler_channel  
       / NON_MODAL SP filename SP instrument_index SP sampler_channel  
3803    
3804    
3805    
3806    
3807  Schoenebeck            Expires November 22, 2005               [Page 55]  Schoenebeck             Expires November 2, 2005               [Page 68]
3808    
3809  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
3810    
3811    
3812          filename SP instrument_index SP sampler_channel
3813    
3814          / NON_MODAL SP filename SP instrument_index SP sampler_channel
3815    
3816     load_engine_args =     load_engine_args =
3817    
3818        engine_name SP sampler_channel        engine_name SP sampler_channel
3819    
3820     device_index =     device_index =
3821    
3822        number        number
3823    
3824     audio_channel_index =     audio_channel_index =
3825    
3826        number        number
3827    
3828     audio_output_type_name =     audio_output_type_name =
3829    
3830        string        string
3831    
3832     midi_input_port_index =     midi_input_port_index =
3833    
3834        number        number
3835    
3836     midi_input_channel_index =     midi_input_channel_index =
3837    
3838        number        number
3839    
3840        / ALL        / ALL
3841    
3842     midi_input_type_name =     midi_input_type_name =
3843    
3844        string        string
3845    
3846     volume_value =     volume_value =
3847    
3848        dotnum        dotnum
3849    
3850        / number        / number
3851    
3852     sampler_channel =     sampler_channel =
       number  
3853    
    instrument_index =  
3854        number        number
3855    
3856     engine_name =     instrument_index =
       string  
   
    filename =  
       stringval  
   
    param_val_list =  
       param_val  
       / param_val_list','param_val  
   
    param_val =  
       string  
       / '\'' string '\''  
       / '\"' string '\"'  
       / number  
   
   
   
   
 Schoenebeck            Expires November 22, 2005               [Page 56]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
       / dotnum  
   
   
   
3857    
3858          number
3859    
3860    
3861    
3862    
3863    Schoenebeck             Expires November 2, 2005               [Page 69]
3864    
3865    Internet-Draft        LinuxSampler Control Protocol             May 2005
3866    
3867    
3868       engine_name =
3869    
3870          string
3871    
3872       filename =
3873    
3874          stringval
3875    
3876       param_val_list =
3877    
3878          param_val
3879    
3880          / param_val_list','param_val
3881    
3882       param_val =
3883    
3884          string
3885    
3886          / '\'' string '\''
3887    
3888          / '\"' string '\"'
3889    
3890          / number
3891    
3892          / dotnum
3893    
3894    
3895    
# Line 3187  Internet-Draft       LinuxSampler Contro Line 3916  Internet-Draft       LinuxSampler Contro
3916    
3917    
3918    
3919    Schoenebeck             Expires November 2, 2005               [Page 70]
3920    
3921  Schoenebeck            Expires November 22, 2005               [Page 57]  Internet-Draft        LinuxSampler Control Protocol             May 2005
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
3922    
3923    
3924  8.  Events  8.  Events
# Line 3214  Internet-Draft       LinuxSampler Contro Line 3942  Internet-Draft       LinuxSampler Contro
3942    
3943  8.2  Number of active voices changed  8.2  Number of active voices changed
3944    
3945     Client may want to be notified when the number of voices on the     Client may want to be notified when the number of voices on the back-
3946     back-end changes by issuing the following command:     end changes by issuing the following command:
3947    
3948        SUBSCRIBE VOICE_COUNT        SUBSCRIBE VOICE_COUNT
3949    
# Line 3244  Internet-Draft       LinuxSampler Contro Line 3972  Internet-Draft       LinuxSampler Contro
3972    
3973    
3974    
3975  Schoenebeck            Expires November 22, 2005               [Page 58]  Schoenebeck             Expires November 2, 2005               [Page 71]
3976    
3977  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
3978    
3979    
3980     active disk streams on that channel.     active disk streams on that channel.
# Line 3264  Internet-Draft       LinuxSampler Contro Line 3992  Internet-Draft       LinuxSampler Contro
3992    
3993     where <sampler-channel> will be replaced by the sampler channel the     where <sampler-channel> will be replaced by the sampler channel the
3994     buffer fill state change occurred on and <fill-data> will be replaced     buffer fill state change occurred on and <fill-data> will be replaced
3995     by the buffer fill data for this channel as described in Section     by the buffer fill data for this channel as described in
3996     6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE" (Section     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"
3997     6.4.13) command was issued on this channel.     (Section 6.4.13) command was issued on this channel.
3998    
3999  8.5  Channel information changed  8.5  Channel information changed
4000    
# Line 3295  Internet-Draft       LinuxSampler Contro Line 4023  Internet-Draft       LinuxSampler Contro
4023    
4024     Server will start sending the following notification messages:     Server will start sending the following notification messages:
4025    
       "NOTIFY:MISCELLANEOUS:<string>"  
4026    
4027    
4028    
4029    
 Schoenebeck            Expires November 22, 2005               [Page 59]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
4030    
4031    Schoenebeck             Expires November 2, 2005               [Page 72]
4032    
4033    Internet-Draft        LinuxSampler Control Protocol             May 2005
4034    
4035    
4036          "NOTIFY:MISCELLANEOUS:<string>"
4037    
4038     where <string> will be replaced by whatever data server wants to send     where <string> will be replaced by whatever data server wants to send
4039     to the client.  Client MAY display this data to the user AS IS to     to the client.  Client MAY display this data to the user AS IS to
# Line 3354  Internet-Draft       LinuxSampler Contro Line 4084  Internet-Draft       LinuxSampler Contro
4084    
4085    
4086    
4087    Schoenebeck             Expires November 2, 2005               [Page 73]
4088    
4089    Internet-Draft        LinuxSampler Control Protocol             May 2005
 Schoenebeck            Expires November 22, 2005               [Page 60]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
4090    
4091    
4092  9.  Security Considerations  9.  Security Considerations
# Line 3412  Internet-Draft       LinuxSampler Contro Line 4140  Internet-Draft       LinuxSampler Contro
4140    
4141    
4142    
4143  Schoenebeck            Expires November 22, 2005               [Page 61]  Schoenebeck             Expires November 2, 2005               [Page 74]
4144    
4145  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
4146    
4147    
4148  10.  Acknowledgments  10.  Acknowledgments
# Line 3424  Internet-Draft       LinuxSampler Contro Line 4152  Internet-Draft       LinuxSampler Contro
4152     list:     list:
4153    
4154        Rui Nuno Capela        Rui Nuno Capela
4155    
4156        Vladimir Senkov        Vladimir Senkov
4157    
4158        Mark Knecht        Mark Knecht
4159    
4160        Grigor Iliev        Grigor Iliev
4161    
4162  11  References  
4163    11.  References
4164    
4165     [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate     [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
4166                Requirement Levels", RFC 2119, 1997.                Requirement Levels", RFC 2119, 1997.
# Line 3448  Author's Address Line 4180  Author's Address
4180     74081 Heilbronn     74081 Heilbronn
4181     Germany     Germany
4182    
4183     EMail: schoenebeck at software minus engineering dot org     Email: schoenebeck at software minus engineering dot org
   
4184    
4185    
4186    
# Line 3465  Author's Address Line 4196  Author's Address
4196    
4197    
4198    
4199    Schoenebeck             Expires November 2, 2005               [Page 75]
4200    
4201    Internet-Draft        LinuxSampler Control Protocol             May 2005
   
 Schoenebeck            Expires November 22, 2005               [Page 62]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
4202    
4203    
4204  Intellectual Property Statement  Intellectual Property Statement
# Line 3482  Intellectual Property Statement Line 4210  Intellectual Property Statement
4210     might or might not be available; neither does it represent that it     might or might not be available; neither does it represent that it
4211     has made any effort to identify any such rights.  Information on the     has made any effort to identify any such rights.  Information on the
4212     IETF's procedures with respect to rights in standards-track and     IETF's procedures with respect to rights in standards-track and
4213     standards-related documentation can be found in BCP-11.  Copies of     standards-related documentation can be found in BCP 11.  Copies of
4214     claims of rights made available for publication and any assurances of     claims of rights made available for publication and any assurances of
4215     licenses to be made available, or the result of an attempt made to     licenses to be made available, or the result of an attempt made to
4216     obtain a general license or permission for the use of such     obtain a general license or permission for the use of such
# Line 3524  Full Copyright Statement Line 4252  Full Copyright Statement
4252    
4253    
4254    
4255  Schoenebeck            Expires November 22, 2005               [Page 63]  Schoenebeck             Expires November 2, 2005               [Page 76]
4256    
4257  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol             May 2005
4258    
4259    
4260     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
# Line 3580  Acknowledgment Line 4308  Acknowledgment
4308    
4309    
4310    
4311  Schoenebeck            Expires November 22, 2005               [Page 64]  Schoenebeck             Expires November 2, 2005               [Page 77]
4312    

Legend:
Removed from v.575  
changed lines
  Added in v.708

  ViewVC Help
Powered by ViewVC