/[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 542 by senoner, Sun May 15 15:31:45 2005 UTC revision 940 by schoenebeck, Sat Nov 25 17:18:12 2006 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 7, 2005                              Engineering e. V.  Expires: May 29, 2007                                  Engineering e. V.
7                                                               May 9, 2005                                                         November 25, 2006
8    
9    
10                       LinuxSampler Control Protocol                       LinuxSampler Control Protocol
11                                  lscp.txt                                  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 7, 2005.     This Internet-Draft will expire on May 29, 2007.
35    
36  Copyright Notice  Copyright Notice
37    
38     Copyright (C) The Internet Society (2005).  All Rights Reserved.     Copyright (C) The Internet Society (2006).  All Rights Reserved.
39    
40  Abstract  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 main application, which is a sophisticated console     LinuxSampler backend application, which is a sophisticated server-
45     application essentially playing back audio samples and manipulating     like console application essentially playing back audio samples and
46     the samples in real time to certain extent.     manipulating the samples in real time to certain extent.
   
47    
48    
49    
# Line 52  Abstract Line 52  Abstract
52    
53    
54    
55  Schoenebeck             Expires November 7, 2005                [Page 1]  Schoenebeck               Expires May 29, 2007                  [Page 1]
56    
57  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
58    
59    
60  Table of Contents  Table of Contents
61    
62     1.   Requirements notation  . . . . . . . . . . . . . . . . . . .   4     1.  Requirements notation  . . . . . . . . . . . . . . . . . . . .  4
63     2.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   5     2.  Versioning of this specification . . . . . . . . . . . . . . .  5
64     3.   Focus of this protocol . . . . . . . . . . . . . . . . . . .   6     3.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  6
65     4.   Communication Overview . . . . . . . . . . . . . . . . . . .   7     4.  Focus of this protocol . . . . . . . . . . . . . . . . . . . .  7
66       4.1  Request/response communication method  . . . . . . . . . .   7     5.  Communication Overview . . . . . . . . . . . . . . . . . . . .  8
67         4.1.1  Result format  . . . . . . . . . . . . . . . . . . . .   8       5.1.  Request/response communication method  . . . . . . . . . .  8
68       4.2  Subscribe/notify communication method  . . . . . . . . . .   9         5.1.1.  Result format  . . . . . . . . . . . . . . . . . . . .  9
69     5.   Description for control commands . . . . . . . . . . . . . .  12       5.2.  Subscribe/notify communication method  . . . . . . . . . . 11
70       5.1  Ignored lines and comments . . . . . . . . . . . . . . . .  12     6.  Description for control commands . . . . . . . . . . . . . . . 13
71       5.2  Configuring audio drivers  . . . . . . . . . . . . . . . .  12       6.1.  Ignored lines and comments . . . . . . . . . . . . . . . . 13
72         5.2.1  Getting amount of available audio output drivers . . .  12       6.2.  Configuring audio drivers  . . . . . . . . . . . . . . . . 13
73         5.2.2  Getting all available audio output drivers . . . . . .  13         6.2.1.  Getting amount of available audio output drivers . . . 13
74         5.2.3  Getting information about a specific audio output         6.2.2.  Getting all available audio output drivers . . . . . . 14
75                driver . . . . . . . . . . . . . . . . . . . . . . . .  13         6.2.3.  Getting information about a specific audio output
76         5.2.4  Getting information about specific audio output                 driver . . . . . . . . . . . . . . . . . . . . . . . . 14
77                driver parameter . . . . . . . . . . . . . . . . . . .  14         6.2.4.  Getting information about specific audio output
78         5.2.5  Creating an audio output device  . . . . . . . . . . .  17                 driver parameter . . . . . . . . . . . . . . . . . . . 15
79         5.2.6  Destroying an audio output device  . . . . . . . . . .  17         6.2.5.  Creating an audio output device  . . . . . . . . . . . 19
80         5.2.7  Getting all created audio output device count  . . . .  18         6.2.6.  Destroying an audio output device  . . . . . . . . . . 20
81         5.2.8  Getting all created audio output device list . . . . .  18         6.2.7.  Getting all created audio output device count  . . . . 21
82         5.2.9  Getting current settings of an audio output device . .  19         6.2.8.  Getting all created audio output device list . . . . . 21
83         5.2.10   Changing settings of audio output devices  . . . . .  20         6.2.9.  Getting current settings of an audio output device . . 21
84         5.2.11   Getting information about an audio channel . . . . .  20         6.2.10. Changing settings of audio output devices  . . . . . . 23
85         5.2.12   Getting information about specific audio channel         6.2.11. Getting information about an audio channel . . . . . . 23
86                  parameter  . . . . . . . . . . . . . . . . . . . . .  22         6.2.12. Getting information about specific audio channel
87         5.2.13   Changing settings of audio output channels . . . . .  23                 parameter  . . . . . . . . . . . . . . . . . . . . . . 25
88       5.3  Configuring MIDI input drivers . . . . . . . . . . . . . .  24         6.2.13. Changing settings of audio output channels . . . . . . 27
89         5.3.1  Getting amount of available MIDI input drivers . . . .  24       6.3.  Configuring MIDI input drivers . . . . . . . . . . . . . . 28
90         5.3.2  Getting all available MIDI input drivers . . . . . . .  25         6.3.1.  Getting amount of available MIDI input drivers . . . . 29
91         5.3.3  Getting information about a specific MIDI input         6.3.2.  Getting all available MIDI input drivers . . . . . . . 29
92                driver . . . . . . . . . . . . . . . . . . . . . . . .  25         6.3.3.  Getting information about a specific MIDI input
93         5.3.4  Getting information about specific MIDI input                 driver . . . . . . . . . . . . . . . . . . . . . . . . 29
94                driver parameter . . . . . . . . . . . . . . . . . . .  26         6.3.4.  Getting information about specific MIDI input
95         5.3.5  Creating a MIDI input device . . . . . . . . . . . . .  28                 driver parameter . . . . . . . . . . . . . . . . . . . 30
96         5.3.6  Destroying a MIDI input device . . . . . . . . . . . .  29         6.3.5.  Creating a MIDI input device . . . . . . . . . . . . . 33
97         5.3.7  Getting all created MIDI input device count  . . . . .  29         6.3.6.  Destroying a MIDI input device . . . . . . . . . . . . 34
98         5.3.8  Getting all created MIDI input device list . . . . . .  29         6.3.7.  Getting all created MIDI input device count  . . . . . 35
99         5.3.9  Getting current settings of a MIDI input device  . . .  30         6.3.8.  Getting all created MIDI input device list . . . . . . 35
100         5.3.10   Changing settings of MIDI input devices  . . . . . .  31         6.3.9.  Getting current settings of a MIDI input device  . . . 35
101         5.3.11   Getting information about a MIDI port  . . . . . . .  31         6.3.10. Changing settings of MIDI input devices  . . . . . . . 37
102         5.3.12   Getting information about specific MIDI port         6.3.11. Getting information about a MIDI port  . . . . . . . . 37
103                  parameter  . . . . . . . . . . . . . . . . . . . . .  32         6.3.12. Getting information about specific MIDI port
104         5.3.13   Changing settings of MIDI input ports  . . . . . . .  33                 parameter  . . . . . . . . . . . . . . . . . . . . . . 38
105       5.4  Configuring sampler channels . . . . . . . . . . . . . . .  34         6.3.13. Changing settings of MIDI input ports  . . . . . . . . 40
106         5.4.1  Loading an instrument  . . . . . . . . . . . . . . . .  34       6.4.  Configuring sampler channels . . . . . . . . . . . . . . . 41
107         5.4.2  Loading a sampler engine . . . . . . . . . . . . . . .  35         6.4.1.  Loading an instrument  . . . . . . . . . . . . . . . . 41
108    
109    
110    
111  Schoenebeck             Expires November 7, 2005                [Page 2]  Schoenebeck               Expires May 29, 2007                  [Page 2]
112    
113  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
114    
115    
116         5.4.3  Getting all created sampler channel count  . . . . . .  36         6.4.2.  Loading a sampler engine . . . . . . . . . . . . . . . 42
117         5.4.4  Getting all created sampler channel list . . . . . . .  36         6.4.3.  Getting all created sampler channel count  . . . . . . 43
118         5.4.5  Adding a new sampler channel . . . . . . . . . . . . .  36         6.4.4.  Getting all created sampler channel list . . . . . . . 43
119         5.4.6  Removing a sampler channel . . . . . . . . . . . . . .  37         6.4.5.  Adding a new sampler channel . . . . . . . . . . . . . 43
120         5.4.7  Getting amount of available engines  . . . . . . . . .  38         6.4.6.  Removing a sampler channel . . . . . . . . . . . . . . 44
121         5.4.8  Getting all available engines  . . . . . . . . . . . .  38         6.4.7.  Getting amount of available engines  . . . . . . . . . 45
122         5.4.9  Getting information about an engine  . . . . . . . . .  38         6.4.8.  Getting all available engines  . . . . . . . . . . . . 45
123         5.4.10   Getting sampler channel information  . . . . . . . .  39         6.4.9.  Getting information about an engine  . . . . . . . . . 46
124         5.4.11   Current number of active voices  . . . . . . . . . .  41         6.4.10. Getting sampler channel information  . . . . . . . . . 47
125         5.4.12   Current number of active disk streams  . . . . . . .  41         6.4.11. Current number of active voices  . . . . . . . . . . . 50
126         5.4.13   Current fill state of disk stream buffers  . . . . .  42         6.4.12. Current number of active disk streams  . . . . . . . . 50
127         5.4.14   Setting audio output device  . . . . . . . . . . . .  42         6.4.13. Current fill state of disk stream buffers  . . . . . . 50
128         5.4.15   Setting audio output type  . . . . . . . . . . . . .  43         6.4.14. Setting audio output device  . . . . . . . . . . . . . 51
129         5.4.16   Setting audio output channel . . . . . . . . . . . .  44         6.4.15. Setting audio output type  . . . . . . . . . . . . . . 52
130         5.4.17   Setting MIDI input device  . . . . . . . . . . . . .  44         6.4.16. Setting audio output channel . . . . . . . . . . . . . 53
131         5.4.18   Setting MIDI input type  . . . . . . . . . . . . . .  45         6.4.17. Setting MIDI input device  . . . . . . . . . . . . . . 54
132         5.4.19   Setting MIDI input port  . . . . . . . . . . . . . .  45         6.4.18. Setting MIDI input type  . . . . . . . . . . . . . . . 54
133         5.4.20   Setting MIDI input channel . . . . . . . . . . . . .  46         6.4.19. Setting MIDI input port  . . . . . . . . . . . . . . . 55
134         5.4.21   Setting channel volume . . . . . . . . . . . . . . .  46         6.4.20. Setting MIDI input channel . . . . . . . . . . . . . . 56
135         5.4.22   Resetting a sampler channel  . . . . . . . . . . . .  47         6.4.21. Setting channel volume . . . . . . . . . . . . . . . . 56
136       5.5  Controlling connection . . . . . . . . . . . . . . . . . .  48         6.4.22. Muting a sampler channel . . . . . . . . . . . . . . . 57
137         5.5.1  Register front-end for receiving event messages  . . .  48         6.4.23. Soloing a sampler channel  . . . . . . . . . . . . . . 58
138         5.5.2  Unregister front-end for not receiving event         6.4.24. Resetting a sampler channel  . . . . . . . . . . . . . 58
139                messages . . . . . . . . . . . . . . . . . . . . . . .  48       6.5.  Controlling connection . . . . . . . . . . . . . . . . . . 59
140         5.5.3  Enable or disable echo of commands . . . . . . . . . .  49         6.5.1.  Register front-end for receiving event messages  . . . 59
141         5.5.4  Close client connection  . . . . . . . . . . . . . . .  49         6.5.2.  Unregister front-end for not receiving event
142       5.6  Global commands  . . . . . . . . . . . . . . . . . . . . .  50                 messages . . . . . . . . . . . . . . . . . . . . . . . 60
143         5.6.1  Reset sampler  . . . . . . . . . . . . . . . . . . . .  50         6.5.3.  Enable or disable echo of commands . . . . . . . . . . 61
144     6.   Command Syntax . . . . . . . . . . . . . . . . . . . . . . .  51         6.5.4.  Close client connection  . . . . . . . . . . . . . . . 61
145     7.   Events . . . . . . . . . . . . . . . . . . . . . . . . . . .  52       6.6.  Global commands  . . . . . . . . . . . . . . . . . . . . . 61
146       7.1  Number of sampler channels changed . . . . . . . . . . . .  52         6.6.1.  Current number of active voices  . . . . . . . . . . . 61
147       7.2  Number of active voices changed  . . . . . . . . . . . . .  52         6.6.2.  Maximum amount of active voices  . . . . . . . . . . . 62
148       7.3  Number of active disk streams changed  . . . . . . . . . .  52         6.6.3.  Reset sampler  . . . . . . . . . . . . . . . . . . . . 62
149       7.4  Disk stream buffer fill state changed  . . . . . . . . . .  53         6.6.4.  General sampler informations . . . . . . . . . . . . . 62
150       7.5  Channel information changed  . . . . . . . . . . . . . . .  53     7.  Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . 64
151       7.6  Miscellaneous and debugging events . . . . . . . . . . . .  53     8.  Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
152     8.   Security Considerations  . . . . . . . . . . . . . . . . . .  55       8.1.  Number of sampler channels changed . . . . . . . . . . . . 71
153     9.   Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  56       8.2.  Number of active voices changed  . . . . . . . . . . . . . 71
154     10.  References . . . . . . . . . . . . . . . . . . . . . . . . .  56       8.3.  Number of active disk streams changed  . . . . . . . . . . 71
155          Author's Address . . . . . . . . . . . . . . . . . . . . . .  56       8.4.  Disk stream buffer fill state changed  . . . . . . . . . . 72
156          Intellectual Property and Copyright Statements . . . . . . .  57       8.5.  Channel information changed  . . . . . . . . . . . . . . . 72
157         8.6.  Total number of active voices changed  . . . . . . . . . . 72
158         8.7.  Miscellaneous and debugging events . . . . . . . . . . . . 73
159       9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 74
160       10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 75
161       11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 75
162       Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 76
163       Intellectual Property and Copyright Statements . . . . . . . . . . 77
164    
165    
166    
167    Schoenebeck               Expires May 29, 2007                  [Page 3]
   
   
 Schoenebeck             Expires November 7, 2005                [Page 3]  
168    
169  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
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 May 29, 2007                  [Page 4]
224    
225    Internet-Draft        LinuxSampler Control Protocol        November 2006
226    
227    
228    2.  Versioning of this specification
229    
230       LSCP will certainly be extended and enhanced by-and-by.  Each
231       official release of the LSCP specification will be tagged with a
232       unique version tuple.  The version tuple consists at least of a major
233       and minor version number like:
234    
235          "1.2"
236    
237       In this example the major version number would be "1" and the minor
238       version number would be "2".  Note that the version tuple might also
239       have more than two elements.  The major version number defines a
240       group of backward compatible versions.  That means a frontend is
241       compatible to the connected sampler if and only if the LSCP versions
242       to which each of the two parties complies to, match both of the
243       following rules:
244    
245       Compatibility:
246    
247       1.  The frontend's LSCP major version and the sampler's LSCP major
248           version are exactly equal.
249    
250       2.  The frontend's LSCP minor version is less or equal than the
251           sampler's LSCP minor version.
252    
253       Compatibility can only be claimed if both rules are true.  The
254       frontend can use the "GET SERVER INFO" (Section 6.6.4) command to get
255       the version of the LSCP specification the sampler complies with.
256    
257    
258    
259    
260    
261    
262    
263    
264    
265    
266    
267    
268    
269    
270    
271    
272    
273    
274    
275    
276    
277    
278  Schoenebeck             Expires November 7, 2005                [Page 4]  
279    Schoenebeck               Expires May 29, 2007                  [Page 5]
280    
281  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
282    
283    
284  2.  Introduction  3.  Introduction
285    
286     LinuxSampler is a so called software sampler application capable to     LinuxSampler is a so called software sampler application capable to
287     playback audio samples from a computer's Random Access Memory (RAM)     playback audio samples from a computer's Random Access Memory (RAM)
# Line 235  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 engine will be assigned an own 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
298     output of each sampler channel can be routed to an arbitrary audio     output of each sampler channel can be routed to an arbitrary audio
299     output method (ALSA / JACK) and an arbitrary audio output channel     output method (ALSA / JACK) and an arbitrary audio output channel
# Line 276  Internet-Draft       LinuxSampler Contro Line 332  Internet-Draft       LinuxSampler Contro
332    
333    
334    
335  Schoenebeck             Expires November 7, 2005                [Page 5]  Schoenebeck               Expires May 29, 2007                  [Page 6]
336    
337  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
338    
339    
340  3.  Focus of this protocol  4.  Focus of this protocol
341    
342     Main focus of this protocol is to provide a way to configure a     Main focus of this protocol is to provide a way to configure a
343     running LinuxSampler instance and to retrieve information about it.     running LinuxSampler instance and to retrieve information about it.
# Line 332  Internet-Draft       LinuxSampler Contro Line 388  Internet-Draft       LinuxSampler Contro
388    
389    
390    
391  Schoenebeck             Expires November 7, 2005                [Page 6]  Schoenebeck               Expires May 29, 2007                  [Page 7]
392    
393  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
394    
395    
396  4.  Communication Overview  5.  Communication Overview
397    
398     There are two distinct methods of communication between a running     There are two distinct methods of communication between a running
399     instance of LinuxSampler and one or more control applications, so     instance of LinuxSampler and one or more control applications, so
# Line 349  Internet-Draft       LinuxSampler Contro Line 405  Internet-Draft       LinuxSampler Contro
405     more effort to be implemented in the front-end application.  The two     more effort to be implemented in the front-end application.  The two
406     communication methods will be described next.     communication methods will be described next.
407    
408  4.1  Request/response communication method  5.1.  Request/response communication method
409    
410     This simple communication method is based on TCP.  The front-end     This simple communication method is based on TCP [RFC793].  The
411     application establishes a TCP connection to the LinuxSampler instance     front-end application establishes a TCP connection to the
412     on a certain host system.  Then the front-end application will send     LinuxSampler instance on a certain host system.  Then the front-end
413     certain ASCII based commands as defined in this document (every     application will send certain ASCII based commands as defined in this
414     command line must be CRLF terminated - see "Conventions used in this     document (every command line must be CRLF terminated - see
415     document" at the beginning of this document) and the LinuxSampler     "Conventions used in this document" at the beginning of this
416     application will response after a certain process time with an     document) and the LinuxSampler application will response after a
417     appropriate ASCII based answer, also as defined in this document.  So     certain process time with an appropriate ASCII based answer, also as
418     this TCP communication is simply based on query and answer paradigm.     defined in this document.  So this TCP communication is simply based
419     That way LinuxSampler is only able to answer on queries from     on query and answer paradigm.  That way LinuxSampler is only able to
420     front-ends, but not able to automatically send messages to the client     answer on queries from front-ends, but not able to automatically send
421     if it's not asked to.  The fronted should not reconnect to     messages to the client if it's not asked to.  The fronted should not
422     LinuxSampler for every single command, instead it should keep the     reconnect to LinuxSampler for every single command, instead it should
423     connection established and simply resend message(s) for subsequent     keep the connection established and simply resend message(s) for
424     commands.  To keep information in the front-end up-to-date the     subsequent commands.  To keep information in the front-end up-to-date
425     front-end has to periodically send new requests to get the current     the front-end has to periodically send new requests to get the
426     information from the LinuxSampler instance.  This is often referred     current information from the LinuxSampler instance.  This is often
427     to as "polling".  While polling is simple to implement and may be OK     referred to as "polling".  While polling is simple to implement and
428     to use in some cases, there may be disadvantages to polling such as     may be OK to use in some cases, there may be disadvantages to polling
429     network traffic overhead and information being out of date.  It is     such as network traffic overhead and information being out of date.
430     possible for a client or several clients to open more than one     It is possible for a client or several clients to open more than one
431     connection to the server at the same time.  It is also possible to     connection to the server at the same time.  It is also possible to
432     send more than one request to the server at the same time but if     send more than one request to the server at the same time but if
433     those requests are sent over the same connection server MUST execute     those requests are sent over the same connection server MUST execute
# Line 388  Internet-Draft       LinuxSampler Contro Line 444  Internet-Draft       LinuxSampler Contro
444    
445    
446    
447  Schoenebeck             Expires November 7, 2005                [Page 7]  Schoenebeck               Expires May 29, 2007                  [Page 8]
448    
449  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
450    
451    
452  4.1.1  Result format  5.1.1.  Result format
453    
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 414  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 May 29, 2007                  [Page 9]
504    
505    Internet-Draft        LinuxSampler Control Protocol        November 2006
506    
507    
508       set has the following format:
509    
510          "OK"
511    
512  Schoenebeck             Expires November 7, 2005                [Page 8]     Example:
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
513    
514          C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4"
515    
516        S: "OK"        S: "OK"
517    
# Line 461  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 475  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 May 29, 2007                 [Page 10]
560    
561    Internet-Draft        LinuxSampler Control Protocol        November 2006
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  4.2  Subscribe/notify communication method  5.2.  Subscribe/notify communication method
577    
578     This more sophisticated communication method is actually only an     This more sophisticated communication method is actually only an
579     extension of the simple request/response communication method.  The     extension of the simple request/response communication method.  The
580     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
581     the TCP connection.  Two extra commands are SUBSCRIBE and UNSUBSCRIBE     the TCP connection.  Two extra commands are SUBSCRIBE and UNSUBSCRIBE
582     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 7, 2005                [Page 9]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
583     in receiving notifications about certain events as they happen on the     in receiving notifications about certain events as they happen on the
584     server.  The SUBSCRIBE command has the following syntax:     server.  The SUBSCRIBE command has the following syntax:
585    
# Line 527  Internet-Draft       LinuxSampler Contro Line 602  Internet-Draft       LinuxSampler Contro
602    
603     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
604         appropriate SUBSCRIBE command.         appropriate SUBSCRIBE command.
605    
606     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
607         to subscribe to them.         to subscribe to them.
608    
609     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
610         in the stream before or after the response, but NOT in the         in the stream before or after the response, but NOT in the
611         middle.  Same is true about the response.  It should never be         middle.  Same is true about the response.  It should never be
612    
613    
614    
615    Schoenebeck               Expires May 29, 2007                 [Page 11]
616    
617    Internet-Draft        LinuxSampler Control Protocol        November 2006
618    
619    
620         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
621         response.         response.
622    
# Line 542  Internet-Draft       LinuxSampler Contro Line 627  Internet-Draft       LinuxSampler Contro
627    
628     where <event-id> will be replace by the respective event that client     where <event-id> will be replace by the respective event that client
629     is no longer interested in receiving.  For a list of supported events     is no longer interested in receiving.  For a list of supported events
630     see Section 7.     see Section 8.
631    
632     Example: the fill states of disk stream buffers have changed on     Example: the fill states of disk stream buffers have changed on
633     sampler channel 4 and the LinuxSampler instance will react by sending     sampler channel 4 and the LinuxSampler instance will react by sending
# Line 554  Internet-Draft       LinuxSampler Contro Line 639  Internet-Draft       LinuxSampler Contro
639     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
640     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%.
641    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 10]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
642     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
643     use some connections to receive notifications while using other     use some connections to receive notifications while using other
644     connections to issue commands to the back-end.  This is entirely     connections to issue commands to the back-end.  This is entirely
# Line 590  Internet-Draft       LinuxSampler Contro Line 668  Internet-Draft       LinuxSampler Contro
668    
669    
670    
671    Schoenebeck               Expires May 29, 2007                 [Page 12]
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 11]  
672    
673  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
674    
675    
676  5.  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 5.4.10) or "GET ENGINE INFO" (Section     "GET CHANNEL INFO" (Section 6.4.10) or "GET ENGINE INFO"
681     5.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  5.1  Ignored lines and comments  6.1.  Ignored lines and comments
686    
687     White lines, that is lines which only contain space and tabulator     White lines, that is lines which only contain space and tabulator
688     characters, and lines that start with a "#" character are ignored,     characters, and lines that start with a "#" character are ignored,
689     thus it's possible for example to group commands and to place     thus it's possible for example to group commands and to place
690     comments in a LSCP script file.     comments in a LSCP script file.
691    
692  5.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 649  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 661  Internet-Draft       LinuxSampler Contro Line 718  Internet-Draft       LinuxSampler Contro
718     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
719     possible values, etc.     possible values, etc.
720    
721  5.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 7, 2005               [Page 12]  Schoenebeck               Expires May 29, 2007                 [Page 13]
728    
729  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
730    
731    
732       currently available for the LinuxSampler instance:
733    
734        GET AVAILABLE_AUDIO_OUTPUT_DRIVERS        GET AVAILABLE_AUDIO_OUTPUT_DRIVERS
735    
736     Possible Answers:     Possible Answers:
# Line 683  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  5.2.2  Getting all available audio output drivers  6.2.2.  Getting all available audio output drivers
748    
749     Use the following command to list all audio output drivers currently     Use the following command to list all audio output drivers currently
750     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 700  Internet-Draft       LinuxSampler Contro Line 759  Internet-Draft       LinuxSampler Contro
759     Example:     Example:
760    
761        C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"        C: "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS"
762    
763        S: "ALSA,JACK"        S: "ALSA,JACK"
764    
765  5.2.3  Getting information about a specific audio output driver  6.2.3.  Getting information about a specific audio output driver
766    
767     Use the following command to get detailed information about a     Use the following command to get detailed information about a
768     specific audio output driver:     specific audio output driver:
# Line 710  Internet-Draft       LinuxSampler Contro Line 770  Internet-Draft       LinuxSampler Contro
770        GET AUDIO_OUTPUT_DRIVER INFO <audio-output-driver>        GET AUDIO_OUTPUT_DRIVER INFO <audio-output-driver>
771    
772     Where <audio-output-driver> is the name of the audio output driver,     Where <audio-output-driver> is the name of the audio output driver,
773     returned by the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 5.2.2)     returned by the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)
774     command.     command.
775    
776     Possible Answers:     Possible Answers:
777    
       LinuxSampler will answer by sending a <CRLF> separated list.  Each  
       answer line begins with the information category name followed by  
       a colon and then a space character <SP> and finally the info  
       character string to that info category.  At the moment the  
       following information categories are defined:  
778    
779    
780    
781    
782  Schoenebeck             Expires November 7, 2005               [Page 13]  
783    Schoenebeck               Expires May 29, 2007                 [Page 14]
784    
785  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
786    
787    
788          LinuxSampler will answer by sending a <CRLF> separated list.  Each
789          answer line begins with the information category name followed by
790          a colon and then a space character <SP> and finally the info
791          character string to that info category.  At the moment the
792          following information categories are defined:
793    
794    
795    
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  5.2.4  Getting information about specific audio output driver parameter  6.2.4.  Getting information about specific audio output driver parameter
827    
828     Use the following command to get detailed information about a     Use the following command to get detailed information about a
829     specific audio output driver parameter:     specific audio output driver parameter:
# Line 758  Internet-Draft       LinuxSampler Contro Line 831  Internet-Draft       LinuxSampler Contro
831        GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO <audio> <prm> [<deplist>]        GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO <audio> <prm> [<deplist>]
832    
833     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
834     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 5.2.2) command,     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,
835     <prm> a specific parameter name for which information should be     <prm> a specific parameter name for which information should be
836     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO" (Section  
837     5.2.3) command) and <deplist> is an optional list of parameters on  
838     which the sought parameter <prm> depends on, <deplist> is a list of  
839     key-value pairs in form of "key1=val1 key2=val2 ...", where character  Schoenebeck               Expires May 29, 2007                 [Page 15]
840     string values are encapsulated into apostrophes (').  Arguments given  
841     with <deplist> which are not dependency parameters of <prm> will be  Internet-Draft        LinuxSampler Control Protocol        November 2006
842     ignored, means the front-end application can simply put all  
843     parameters into <deplist> with the values already selected by the  
844       obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"
845       (Section 6.2.3) command) and <deplist> is an optional list of
846       parameters on which the sought parameter <prm> depends on, <deplist>
847       is a list of key-value pairs in form of "key1=val1 key2=val2 ...",
848       where character string values are encapsulated into apostrophes (').
849       Arguments given with <deplist> which are not dependency parameters of
850       <prm> will be ignored, means the front-end application can simply put
851       all parameters into <deplist> with the values already selected by the
852     user.     user.
853    
854     Possible Answers:     Possible Answers:
# Line 777  Internet-Draft       LinuxSampler Contro Line 858  Internet-Draft       LinuxSampler Contro
858        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
859        character string to that info category.  There are information        character string to that info category.  There are information
860        which is always returned, independently of the given driver        which is always returned, independently of the given driver
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 14]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
861        parameter and there are optional information which is only shown        parameter and there are optional information which is only shown
862        dependently to given driver parameter.  At the moment the        dependently to given driver parameter.  At the moment the
863        following information categories are defined:        following information categories are defined:
864    
865        TYPE -        TYPE -
866    
867           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
868           value(s) or "FLOAT" for dotted number(s) or "STRING" for           value(s) or "FLOAT" for dotted number(s) or "STRING" for
869           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
870           parameter)           parameter)
871    
872        DESCRIPTION -        DESCRIPTION -
873    
874           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
875           returned, no matter which driver parameter)           returned, no matter which driver parameter)
876    
877        MANDATORY -        MANDATORY -
878    
879           either true or false, defines if this parameter must be given           either true or false, defines if this parameter must be given
880           when the device is to be created with the 'CREATE           when the device is to be created with the 'CREATE
881           AUDIO_OUTPUT_DEVICE' (Section 5.2.5) command (always returned,           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,
882           no matter which driver parameter)           no matter which driver parameter)
883    
884        FIX -        FIX -
885    
886           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
887           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
888           AUDIO_OUTPUT_DEVICE' (Section 5.2.5) command (always returned,           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,
889           no matter which driver parameter)           no matter which driver parameter)
890    
891    
892    
893    
894    
895    Schoenebeck               Expires May 29, 2007                 [Page 16]
896    
897    Internet-Draft        LinuxSampler Control Protocol        November 2006
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           comma separated list of paramters this parameter depends on,  
909             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,
912           for example assuming that an audio driver (like the ALSA           for example assuming that an audio driver (like the ALSA
# Line 822  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 5.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 7, 2005               [Page 15]  
   
 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 May 29, 2007                 [Page 17]
952    
953    Internet-Draft        LinuxSampler Control Protocol        November 2006
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 859  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 May 29, 2007                 [Page 18]
1008    
1009    Internet-Draft        LinuxSampler Control Protocol        November 2006
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 7, 2005               [Page 16]           "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  5.2.5  Creating an audio output device  6.2.5.  Creating an audio output device
1031    
1032     Use the following command to create a new audio output device for     Use the following command to create a new audio output device for the
1033     the desired audio output system:     desired audio output system:
1034    
1035        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]
1036    
1037     Where <audio-output-driver> should be replaced by the desired audio     Where <audio-output-driver> should be replaced by the desired audio
1038     output system and <param-list> by an optional list of driver specific     output system as returned by the "LIST
1039     parameters in form of "key1=val1 key2=val2 ...", where character     AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command and <param-
1040     string values should be encapsulated into apostrophes (').  Note that     list> by an optional list of driver specific parameters in form of
1041     there might be drivers which require parameter(s) to be given with     "key1=val1 key2=val2 ...", where character string values should be
1042     this command.  Use the previously described commands in this chapter     encapsulated into apostrophes (').  Note that there might be drivers
1043     to get this information.     which require parameter(s) to be given with this command.  Use the
1044       previously described commands in this chapter to get this
1045       information.
1046    
1047     Possible Answers:     Possible Answers:
1048    
1049        "OK[<device-id>]" -        "OK[<device-id>]" -
1050    
1051           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1052           is the numerical ID of the new device           is the numerical ID of the new device
1053    
1054        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1055    
1056           in case the device was created successfully, where <device-id>           in case the device was created successfully, where <device-id>
1057           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1058           issue(s) related (e.g.  sound card doesn't support given           issue(s) related (e.g. sound card doesn't support given
1059           hardware parameters and the driver is using fall-back values),           hardware parameters and the driver is using fall-back values),
1060    
1061    
1062    
1063    Schoenebeck               Expires May 29, 2007                 [Page 19]
1064    
1065    Internet-Draft        LinuxSampler Control Protocol        November 2006
1066    
1067    
1068           providing an appropriate warning code and warning message           providing an appropriate warning code and warning message
1069    
1070        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1071    
1072           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1073           error message           error message
1074    
1075     Examples:     Examples:
1076    
1077        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA"
1078    
1079        S: "OK[0]"        S: "OK[0]"
1080    
1081        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='2,0' SAMPLERATE=96000"
1082    
1083        S: "OK[1]"        S: "OK[1]"
1084    
1085  5.2.6  Destroying an audio output device  6.2.6.  Destroying an audio output device
1086    
1087     Use the following command to destroy a created output device:     Use the following command to destroy a created output device:
1088    
1089        DESTROY AUDIO_OUTPUT_DEVICE <device-id>        DESTROY AUDIO_OUTPUT_DEVICE <device-id>
1090    
1091     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
1092       output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
1093       (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
1094       command.
 Schoenebeck             Expires November 7, 2005               [Page 17]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
    output device as given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section  
    5.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 5.2.8) command.  
1095    
1096     Possible Answers:     Possible Answers:
1097    
1098        "OK" -        "OK" -
1099    
1100           in case the device was successfully destroyed           in case the device was successfully destroyed
1101    
1102        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1103    
1104           in case the device was destroyed successfully, but there are           in case the device was destroyed successfully, but there are
1105           noteworthy issue(s) related (e.g.  an audio over ethernet           noteworthy issue(s) related (e.g. an audio over ethernet driver
1106           driver was unloaded but the other host might not be informed           was unloaded but the other host might not be informed about
1107           about this situation), providing an appropriate warning code           this situation), providing an appropriate warning code and
1108           and warning message           warning message
1109    
1110        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1111    
1112           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1113           error message           error message
1114    
1115     Example:     Example:
1116    
1117    
1118    
1119    Schoenebeck               Expires May 29, 2007                 [Page 20]
1120    
1121    Internet-Draft        LinuxSampler Control Protocol        November 2006
1122    
1123    
1124        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1125    
1126        S: "OK"        S: "OK"
1127    
1128  5.2.7  Getting all created audio output device count  6.2.7.  Getting all created audio output device count
1129    
1130     Use the following command to count all created audio output devices:     Use the following command to count all created audio output devices:
1131    
# Line 989  Internet-Draft       LinuxSampler Contro Line 1139  Internet-Draft       LinuxSampler Contro
1139     Example:     Example:
1140    
1141        C: "GET AUDIO_OUTPUT_DEVICES"        C: "GET AUDIO_OUTPUT_DEVICES"
1142    
1143        S: "4"        S: "4"
1144    
1145  5.2.8  Getting all created audio output device list  6.2.8.  Getting all created audio output device list
1146    
1147     Use the following command to list all created audio output devices:     Use the following command to list all created audio output devices:
1148    
# Line 1002  Internet-Draft       LinuxSampler Contro Line 1153  Internet-Draft       LinuxSampler Contro
1153        LinuxSampler will answer by sending a comma separated list with        LinuxSampler will answer by sending a comma separated list with
1154        the numerical IDs of all audio output devices.        the numerical IDs of all audio output devices.
1155    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 18]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1156     Example:     Example:
1157    
1158        C: "LIST AUDIO_OUTPUT_DEVICES"        C: "LIST AUDIO_OUTPUT_DEVICES"
1159    
1160        S: "0,1,4,5"        S: "0,1,4,5"
1161    
1162  5.2.9  Getting current settings of an audio output device  6.2.9.  Getting current settings of an audio output device
1163    
1164     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1165     created audio output device:     created audio output device:
# Line 1022  Internet-Draft       LinuxSampler Contro Line 1167  Internet-Draft       LinuxSampler Contro
1167        GET AUDIO_OUTPUT_DEVICE INFO <device-id>        GET AUDIO_OUTPUT_DEVICE INFO <device-id>
1168    
1169     Where <device-id> should be replaced by numerical ID of the audio     Where <device-id> should be replaced by numerical ID of the audio
1170     output device as e.g.  returned by the "LIST AUDIO_OUTPUT_DEVICES"     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"
1171     (Section 5.2.8) command.     (Section 6.2.8) command.
1172    
1173    
1174    
1175    Schoenebeck               Expires May 29, 2007                 [Page 21]
1176    
1177    Internet-Draft        LinuxSampler Control Protocol        November 2006
1178    
1179    
1180     Possible Answers:     Possible Answers:
1181    
# Line 1036  Internet-Draft       LinuxSampler Contro Line 1188  Internet-Draft       LinuxSampler Contro
1188     (independently of device):     (independently of device):
1189    
1190        DRIVER -        DRIVER -
1191    
1192           identifier of the used audio output driver, as also returned by           identifier of the used audio output driver, as also returned by
1193           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 5.2.2)           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)
1194           command           command
1195    
1196        CHANNELS -        CHANNELS -
1197    
1198           amount of audio output channels this device currently offers           amount of audio output channels this device currently offers
1199    
1200        SAMPLERATE -        SAMPLERATE -
1201    
1202           playback sample rate the device uses           playback sample rate the device uses
1203    
1204        ACTIVE -        ACTIVE -
1205    
1206           either true or false, if false then the audio device is           either true or false, if false then the audio device is
1207           inactive and doesn't output any sound, nor do the sampler           inactive and doesn't output any sound, nor do the sampler
1208           channels connected to this audio device render any audio           channels connected to this audio device render any audio
# Line 1051  Internet-Draft       LinuxSampler Contro Line 1210  Internet-Draft       LinuxSampler Contro
1210     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
1211     fields above are only those fields which are returned by all audio     fields above are only those fields which are returned by all audio
1212     output devices.  Every audio output driver might have its own,     output devices.  Every audio output driver might have its own,
1213     additional driver specific parameters (see Section 5.2.3) which are     additional driver specific parameters (see Section 6.2.3) which are
1214     also returned by this command.     also returned by this command.
1215    
1216     Example:     Example:
1217    
1218          C: "GET AUDIO_OUTPUT_DEVICE INFO 0"
1219    
1220          S: "DRIVER: ALSA"
1221    
1222             "CHANNELS: 2"
1223    
1224             "SAMPLERATE: 44100"
1225    
1226             "ACTIVE: true"
1227    
1228    
1229    
1230  Schoenebeck             Expires November 7, 2005               [Page 19]  
1231    Schoenebeck               Expires May 29, 2007                 [Page 22]
1232    
1233  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1234    
1235    
       C: "GET AUDIO_OUTPUT_DEVICE INFO 0"  
       S: "DRIVER: ALSA"  
          "CHANNELS: 2"  
          "SAMPLERATE: 44100"  
          "ACTIVE: true"  
1236           "FRAGMENTS: 2"           "FRAGMENTS: 2"
1237    
1238           "FRAGMENTSIZE: 128"           "FRAGMENTSIZE: 128"
1239    
1240           "CARD: '0,0'"           "CARD: '0,0'"
1241    
1242           "."           "."
1243    
1244  5.2.10  Changing settings of audio output devices  6.2.10.  Changing settings of audio output devices
1245    
1246     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
1247     audio output device:     audio output device:
# Line 1083  Internet-Draft       LinuxSampler Contro Line 1249  Internet-Draft       LinuxSampler Contro
1249        SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>        SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>
1250    
1251     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
1252     output device, <key> by the name of the parameter to change and     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
1253     <value> by the new value for this parameter.     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
1254       command, <key> by the name of the parameter to change and <value> by
1255       the new value for this parameter.
1256    
1257     Possible Answers:     Possible Answers:
1258    
1259        "OK" -        "OK" -
1260    
1261           in case setting was successfully changed           in case setting was successfully changed
1262    
1263        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1264    
1265           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
1266           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
1267           code and warning message           code and warning message
1268    
1269        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1270    
1271           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1272           error message           error message
1273    
1274     Example:     Example:
1275    
1276        C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"        C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
1277    
1278        S: "OK"        S: "OK"
1279    
1280  5.2.11  Getting information about an audio channel  6.2.11.  Getting information about an audio channel
1281    
1282     Use the following command to get information about an audio channel:     Use the following command to get information about an audio channel:
1283    
       GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>  
1284    
    Where <device-id> is the numerical ID of the audio output device and  
    <audio-chan> the audio channel number.  
1285    
    Possible Answers:  
1286    
1287    Schoenebeck               Expires May 29, 2007                 [Page 23]
1288    
1289    Internet-Draft        LinuxSampler Control Protocol        November 2006
1290    
1291    
1292  Schoenebeck             Expires November 7, 2005               [Page 20]        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>
1293    
1294  Internet-Draft       LinuxSampler Control Protocol              May 2005     Where <device-id> is the numerical ID of the audio output device as
1295       given by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST
1296       AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command and <audio-chan> the
1297       audio channel number.
1298    
1299       Possible Answers:
1300    
1301        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
1302        answer line begins with the information category name followed by        answer line begins with the information category name followed by
# Line 1127  Internet-Draft       LinuxSampler Contro Line 1304  Internet-Draft       LinuxSampler Contro
1304        character string to that info category.  At the moment the        character string to that info category.  At the moment the
1305        following information categories are defined:        following information categories are defined:
1306    
1307    
1308    
1309           NAME -           NAME -
1310    
1311              arbitrary character string naming the channel, which doesn't              arbitrary character string naming the channel, which doesn't
1312              have to be unique (always returned by all audio channels)              have to be unique (always returned by all audio channels)
1313    
1314           IS_MIX_CHANNEL -           IS_MIX_CHANNEL -
1315    
1316              either true or false, a mix-channel is not a real,              either true or false, a mix-channel is not a real,
1317              independent audio channel, but a virtual channel which is              independent audio channel, but a virtual channel which is
1318              mixed to another real channel, this mechanism is needed for              mixed to another real channel, this mechanism is needed for
1319              sampler engines which need more audio channels than the used              sampler engines which need more audio channels than the used
1320              audio system might be able to offer (always returned by all              audio system might be able to offer (always returned by all
1321              audio channels)              audio channels)
1322    
1323           MIX_CHANNEL_DESTINATION -           MIX_CHANNEL_DESTINATION -
1324    
1325              numerical ID (positive integer including 0) which reflects              numerical ID (positive integer including 0) which reflects
1326              the real audio channel (of the same audio output device)              the real audio channel (of the same audio output device)
1327              this mix channel refers to, means where the audio signal              this mix channel refers to, means where the audio signal
# Line 1152  Internet-Draft       LinuxSampler Contro Line 1336  Internet-Draft       LinuxSampler Contro
1336    
1337     Examples:     Examples:
1338    
1339    
1340    
1341    
1342    
1343    Schoenebeck               Expires May 29, 2007                 [Page 24]
1344    
1345    Internet-Draft        LinuxSampler Control Protocol        November 2006
1346    
1347    
1348        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
1349    
1350        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
1351    
1352           "IS_MIX_CHANNEL: false"           "IS_MIX_CHANNEL: false"
1353    
1354           "."           "."
1355    
1356        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
1357    
1358        S: "NAME: studio monitor right"        S: "NAME: studio monitor right"
1359    
1360           "IS_MIX_CHANNEL: false"           "IS_MIX_CHANNEL: false"
          "."  
1361    
       C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"  
       S: "NAME: studio monitor left"  
          "IS_MIX_CHANNEL: true"  
          "MIX_CHANNEL_DESTINATION: 1"  
1362           "."           "."
1363    
1364          C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
1365    
1366          S: "NAME: studio monitor left"
1367    
1368             "IS_MIX_CHANNEL: true"
1369    
1370             "MIX_CHANNEL_DESTINATION: 1"
1371    
1372  Schoenebeck             Expires November 7, 2005               [Page 21]           "."
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
1373    
1374        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
1375    
1376        S: "NAME: 'ardour (left)'"        S: "NAME: 'ardour (left)'"
1377    
1378           "IS_MIX_CHANNEL: false"           "IS_MIX_CHANNEL: false"
1379    
1380           "JACK_BINDINGS: 'ardour:0'"           "JACK_BINDINGS: 'ardour:0'"
1381    
1382           "."           "."
1383    
1384  5.2.12  Getting information about specific audio channel parameter  6.2.12.  Getting information about specific audio channel parameter
1385    
1386     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
1387     audio channel parameter:     audio channel parameter:
# Line 1191  Internet-Draft       LinuxSampler Contro Line 1389  Internet-Draft       LinuxSampler Contro
1389        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>
1390    
1391     Where <dev-id> is the numerical ID of the audio output device as     Where <dev-id> is the numerical ID of the audio output device as
1392     returned by the "LIST AUDIO_OUTPUT_DEVICES" (Section 5.2.8) command,     returned by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST
1393     <chan> the audio channel number and <param> a specific channel     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio
1394     parameter name for which information should be obtained (as returned     channel number and <param> a specific channel parameter name for
1395     by the "GET AUDIO_OUTPUT_CHANNEL INFO" (Section 5.2.11) command).     which information should be obtained (as returned by the "GET
1396    
1397    
1398    
1399    Schoenebeck               Expires May 29, 2007                 [Page 25]
1400    
1401    Internet-Draft        LinuxSampler Control Protocol        November 2006
1402    
1403    
1404       AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).
1405    
1406     Possible Answers:     Possible Answers:
1407    
# Line 1207  Internet-Draft       LinuxSampler Contro Line 1414  Internet-Draft       LinuxSampler Contro
1414        dependently to the given audio channel.  At the moment the        dependently to the given audio channel.  At the moment the
1415        following information categories are defined:        following information categories are defined:
1416    
1417    
1418    
1419           TYPE -           TYPE -
1420    
1421              either "BOOL" for boolean value(s) or "INT" for integer              either "BOOL" for boolean value(s) or "INT" for integer
1422              value(s) or "FLOAT" for dotted number(s) or "STRING" for              value(s) or "FLOAT" for dotted number(s) or "STRING" for
1423              character string(s) (always returned)              character string(s) (always returned)
1424    
1425           DESCRIPTION -           DESCRIPTION -
1426    
1427              arbitrary text describing the purpose of the parameter              arbitrary text describing the purpose of the parameter
1428              (always returned)              (always returned)
1429    
1430           FIX -           FIX -
1431    
1432              either true or false, if true then this parameter is read              either true or false, if true then this parameter is read
1433              only, thus cannot be altered (always returned)              only, thus cannot be altered (always returned)
1434    
1435           MULTIPLICITY -           MULTIPLICITY -
1436    
1437              either true or false, defines if this parameter allows only              either true or false, defines if this parameter allows only
1438              one value or a list of values, where true means multiple              one value or a list of values, where true means multiple
1439              values and false only a single value allowed (always              values and false only a single value allowed (always
1440              returned)              returned)
1441    
1442           RANGE_MIN -           RANGE_MIN -
1443    
1444              defines lower limit of the allowed value range for this              defines lower limit of the allowed value range for this
1445              parameter, can be an integer value as well as a dotted              parameter, can be an integer value as well as a dotted
1446                number, usually used in conjunction with 'RANGE_MAX', but
1447                may also appear without (optionally returned, dependent to
1448                driver and channel parameter)
1449    
1450    
1451    
1452  Schoenebeck             Expires November 7, 2005               [Page 22]  
1453    
1454    
1455    Schoenebeck               Expires May 29, 2007                 [Page 26]
1456    
1457  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1458    
1459    
             number, usually used in conjunction with 'RANGE_MAX', but  
             may also appear without (optionally returned, dependent to  
             driver and channel parameter)  
1460           RANGE_MAX -           RANGE_MAX -
1461    
1462              defines upper limit of the allowed value range for this              defines upper 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_MIN', but              number, usually used in conjunction with 'RANGE_MIN', 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           POSSIBILITIES -           POSSIBILITIES -
1469    
1470              comma separated list of possible values for this parameter,              comma separated list of possible values for this parameter,
1471              character strings are encapsulated into apostrophes              character strings are encapsulated into apostrophes
1472              (optionally returned, dependent to driver and channel              (optionally returned, dependent to driver and channel
1473              parameter)              parameter)
1474    
1475        The mentioned fields above don't have to be in particular order.        The mentioned fields above don't have to be in particular order.
1476    
1477     Example:     Example:
1478    
1479        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
1480    
1481        S: "DESCRIPTION: bindings to other JACK clients"        S: "DESCRIPTION: bindings to other JACK clients"
1482    
1483           "TYPE: STRING"           "TYPE: STRING"
1484    
1485           "FIX: false"           "FIX: false"
1486    
1487           "MULTIPLICITY: true"           "MULTIPLICITY: true"
1488    
1489           "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"           "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"
1490    
1491           "."           "."
1492    
1493  5.2.13  Changing settings of audio output channels  6.2.13.  Changing settings of audio output channels
1494    
1495     Use the following command to alter a specific setting of an audio     Use the following command to alter a specific setting of an audio
1496     output channel:     output channel:
# Line 1267  Internet-Draft       LinuxSampler Contro Line 1498  Internet-Draft       LinuxSampler Contro
1498        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>
1499    
1500     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
1501     device, <chn> by the audio channel number, <key> by the name of the     output device as returned by the "CREATE AUDIO_OUTPUT_DEVICE"
1502       (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
1503       command, <chn> by the audio channel number, <key> by the name of the
1504     parameter to change and <value> by the new value for this parameter.     parameter to change and <value> by the new value for this parameter.
1505    
1506     Possible Answers:     Possible Answers:
1507    
1508    
1509    
1510    
1511    Schoenebeck               Expires May 29, 2007                 [Page 27]
1512    
1513    Internet-Draft        LinuxSampler Control Protocol        November 2006
1514    
1515    
1516        "OK" -        "OK" -
1517    
1518           in case setting was successfully changed           in case setting was successfully changed
1519    
1520        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1521    
1522           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
1523           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
1524           code and warning message           code and warning message
1525    
1526        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1527    
1528           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1529           error message           error message
1530    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 23]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1531     Example:     Example:
1532    
1533        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"
1534    
1535        S: "OK"        S: "OK"
1536    
1537        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
1538    
1539        S: "OK"        S: "OK"
1540    
1541  5.3  Configuring MIDI input drivers  6.3.  Configuring MIDI input drivers
1542    
1543     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
1544     multiple MIDI devices simultaneously, e.g.  to use MIDI over ethernet     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet
1545     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
1546     another sampler channel.  For particular MIDI input systems it's also     another sampler channel.  For particular MIDI input systems it's also
1547     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 1312  Internet-Draft       LinuxSampler Contro Line 1553  Internet-Draft       LinuxSampler Contro
1553     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
1554     abstract, but has the advantage, that front-ends can be written     abstract, but has the advantage, that front-ends can be written
1555     independently of what drivers are currently implemented and what     independently of what drivers are currently implemented and what
1556     parameters these drivers are actually offering.  This means     parameters these drivers are actually offering.  This means front-
1557     front-ends can even handle drivers which are implemented somewhere in     ends can even handle drivers which are implemented somewhere in
1558     future without modifying the front-end at all.     future without modifying the front-end at all.
1559    
1560     Commands for configuring MIDI input devices are pretty much the same     Commands for configuring MIDI input devices are pretty much the same
1561     as the commands for configuring audio output drivers, already     as the commands for configuring audio output drivers, already
1562     described in the last chapter.     described in the last chapter.
1563    
1564    
1565    
1566    
1567    Schoenebeck               Expires May 29, 2007                 [Page 28]
1568    
1569    Internet-Draft        LinuxSampler Control Protocol        November 2006
1570    
1571    
1572     Note: examples in this chapter showing particular parameters of     Note: examples in this chapter showing particular parameters of
1573     drivers are not meant as specification of the drivers' parameters.     drivers are not meant as specification of the drivers' parameters.
1574     Driver implementations in LinuxSampler might have complete different     Driver implementations in LinuxSampler might have complete different
# Line 1328  Internet-Draft       LinuxSampler Contro Line 1577  Internet-Draft       LinuxSampler Contro
1577     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
1578     possible values, etc.     possible values, etc.
1579    
1580  5.3.1  Getting amount of available MIDI input drivers  6.3.1.  Getting amount of available MIDI input drivers
1581    
1582     Use the following command to get the number of MIDI input drivers     Use the following command to get the number of MIDI input drivers
1583     currently available for the LinuxSampler instance:     currently available for the LinuxSampler instance:
# Line 1337  Internet-Draft       LinuxSampler Contro Line 1586  Internet-Draft       LinuxSampler Contro
1586    
1587     Possible Answers:     Possible Answers:
1588    
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 24]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1589        LinuxSampler will answer by sending the number of available MIDI        LinuxSampler will answer by sending the number of available MIDI
1590        input drivers.        input drivers.
1591    
1592     Example:     Example:
1593    
1594        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
1595    
1596        S: "2"        S: "2"
1597    
1598  5.3.2  Getting all available MIDI input drivers  6.3.2.  Getting all available MIDI input drivers
1599    
1600     Use the following command to list all MIDI input drivers currently     Use the following command to list all MIDI input drivers currently
1601     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 1368  Internet-Draft       LinuxSampler Contro Line 1610  Internet-Draft       LinuxSampler Contro
1610     Example:     Example:
1611    
1612        C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"        C: "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
1613    
1614        S: "ALSA,JACK"        S: "ALSA,JACK"
1615    
1616  5.3.3  Getting information about a specific MIDI input driver  6.3.3.  Getting information about a specific MIDI input driver
1617    
1618     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1619     specific MIDI input driver:     specific MIDI input driver:
1620    
1621    
1622    
1623    Schoenebeck               Expires May 29, 2007                 [Page 29]
1624    
1625    Internet-Draft        LinuxSampler Control Protocol        November 2006
1626    
1627    
1628        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>
1629    
1630     Where <midi-input-driver> is the name of the MIDI input driver.     Where <midi-input-driver> is the name of the MIDI input driver as
1631       returned by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)
1632       command.
1633    
1634     Possible Answers:     Possible Answers:
1635    
# Line 1387  Internet-Draft       LinuxSampler Contro Line 1639  Internet-Draft       LinuxSampler Contro
1639        character string to that info category.  At the moment the        character string to that info category.  At the moment the
1640        following information categories are defined:        following information categories are defined:
1641    
          DESCRIPTION -  
             arbitrary description text about the MIDI input driver  
          VERSION -  
             arbitrary character string regarding the driver's version  
          PARAMETERS -  
1642    
1643    
1644             DESCRIPTION -
1645    
1646                arbitrary description text about the MIDI input driver
1647    
1648             VERSION -
1649    
1650  Schoenebeck             Expires November 7, 2005               [Page 25]              arbitrary character string regarding the driver's version
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
1651    
1652             PARAMETERS -
1653    
1654              comma separated list of all parameters available for the              comma separated list of all parameters available for the
1655              given MIDI input driver              given MIDI input driver
1656    
1657        The mentioned fields above don't have to be in particular order.        The mentioned fields above don't have to be in particular order.
1658    
1659     Example:     Example:
1660    
1661        C: "GET MIDI_INPUT_DRIVER INFO ALSA"        C: "GET MIDI_INPUT_DRIVER INFO ALSA"
1662    
1663        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
1664    
1665           "VERSION: 1.0"           "VERSION: 1.0"
1666    
1667           "PARAMETERS: DRIVER,ACTIVE"           "PARAMETERS: DRIVER,ACTIVE"
1668    
1669           "."           "."
1670    
1671  5.3.4  Getting information about specific MIDI input driver parameter  6.3.4.  Getting information about specific MIDI input driver parameter
1672    
1673     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1674     specific parameter of a specific MIDI input driver:     specific parameter of a specific MIDI input driver:
1675    
1676    
1677    
1678    
1679    Schoenebeck               Expires May 29, 2007                 [Page 30]
1680    
1681    Internet-Draft        LinuxSampler Control Protocol        November 2006
1682    
1683    
1684        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]
1685    
1686     Where <midi-t> is the name of the MIDI input driver as returned by     Where <midit> is the name of the MIDI input driver as returned by the
1687     the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 5.3.2) command,     "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2) command, <param>
1688     <param> a specific parameter name for which information should be     a specific parameter name for which information should be obtained
1689     obtained (as returned by the "GET MIDI_INPUT_DRIVER INFO" (Section     (as returned by the "GET MIDI_INPUT_DRIVER INFO" (Section 6.3.3)
1690     5.3.3) command) and <deplist> is an optional list of parameters on     command) and <deplist> is an optional list of parameters on which the
1691     which the sought parameter <param> depends on, <deplist> is a     sought parameter <param> depends on, <deplist> is a key-value pair
1692     key-value pair list in form of "key1=val1 key2=val2 ...", where     list in form of "key1=val1 key2=val2 ...", where character string
1693     character string values are encapsulated into apostrophes (').     values are encapsulated into apostrophes (').  Arguments given with
1694     Arguments given with <deplist> which are not dependency parameters of     <deplist> which are not dependency parameters of <param> will be
1695     <param> will be ignored, means the front-end application can simply     ignored, means the front-end application can simply put all
1696     put all parameters in <deplist> with the values selected by the user.     parameters in <deplist> with the values selected by the user.
1697    
1698     Possible Answers:     Possible Answers:
1699    
# Line 1444  Internet-Draft       LinuxSampler Contro Line 1707  Internet-Draft       LinuxSampler Contro
1707     defined:     defined:
1708    
1709        TYPE -        TYPE -
1710    
1711           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
1712           value(s) or "FLOAT" for dotted number(s) or "STRING" for           value(s) or "FLOAT" for dotted number(s) or "STRING" for
1713           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
1714           parameter)           parameter)
1715    
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 26]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1716        DESCRIPTION -        DESCRIPTION -
1717    
1718           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
1719           returned, no matter which driver parameter)           returned, no matter which driver parameter)
1720    
1721        MANDATORY -        MANDATORY -
1722    
1723           either true or false, defines if this parameter must be given           either true or false, defines if this parameter must be given
1724           when the device is to be created with the 'CREATE           when the device is to be created with the 'CREATE
1725           MIDI_INPUT_DEVICE' (Section 5.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1726           matter which driver parameter)           matter which driver parameter)
1727    
1728        FIX -        FIX -
1729    
1730           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
1731           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
1732           MIDI_INPUT_DEVICE' (Section 5.3.5) command (always returned, no  
1733    
1734    
1735    Schoenebeck               Expires May 29, 2007                 [Page 31]
1736    
1737    Internet-Draft        LinuxSampler Control Protocol        November 2006
1738    
1739    
1740             MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1741           matter which driver parameter)           matter which driver parameter)
1742    
1743        MULTIPLICITY -        MULTIPLICITY -
1744    
1745           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
1746           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
1747           false only a single value allowed (always returned, no matter           false only a single value allowed (always returned, no matter
1748           which driver parameter)           which driver parameter)
1749    
1750        DEPENDS -        DEPENDS -
1751           comma separated list of paramters this parameter depends on,  
1752             comma separated list of parameters this parameter depends on,
1753           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'
1754           and 'POSSIBILITIES' might depend on these listed parameters,           and 'POSSIBILITIES' might depend on these listed parameters,
1755           for example assuming that an audio driver (like the ALSA           for example assuming that an audio driver (like the ALSA
# Line 1485  Internet-Draft       LinuxSampler Contro Line 1758  Internet-Draft       LinuxSampler Contro
1758           possible values for 'samplerate' depends on the sound card           possible values for 'samplerate' depends on the sound card
1759           which can be chosen by the 'card' parameter (optionally           which can be chosen by the 'card' parameter (optionally
1760           returned, dependent to driver parameter)           returned, dependent to driver parameter)
1761    
1762        DEFAULT -        DEFAULT -
1763    
1764           reflects the default value for this parameter which is used           reflects the default value for this parameter which is used
1765           when the device is created and not explicitly given with the           when the device is created and not explicitly given with the
1766           'CREATE MIDI_INPUT_DEVICE' (Section 5.3.5) command, in case of           'CREATE MIDI_INPUT_DEVICE' (Section 6.3.5) command, in case of
1767           MULTIPLCITY=true, this is a comma separated list, that's why           MULTIPLCITY=true, this is a comma separated list, that's why
1768           character strings are encapsulated into apostrophes (')           character strings are encapsulated into apostrophes (')
1769           (optionally returned, dependent to driver parameter)           (optionally returned, dependent to driver parameter)
1770    
1771        RANGE_MIN -        RANGE_MIN -
1772    
1773           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
1774           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
1775           this parameter is often used in conjunction with RANGE_MAX, but           this parameter is often used in conjunction with RANGE_MAX, but
1776           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1777           driver parameter)           driver parameter)
1778    
1779        RANGE_MAX -        RANGE_MAX -
1780    
1781           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
1782           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
1783           this parameter is often used in conjunction with RANGE_MIN, but           this parameter is often used in conjunction with RANGE_MIN, but
# Line 1508  Internet-Draft       LinuxSampler Contro Line 1787  Internet-Draft       LinuxSampler Contro
1787    
1788    
1789    
1790  Schoenebeck             Expires November 7, 2005               [Page 27]  
1791    Schoenebeck               Expires May 29, 2007                 [Page 32]
1792    
1793  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1794    
1795    
1796        POSSIBILITIES -        POSSIBILITIES -
1797    
1798           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
1799           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
1800           returned, dependent to driver parameter)           returned, dependent to driver parameter)
# Line 1523  Internet-Draft       LinuxSampler Contro Line 1804  Internet-Draft       LinuxSampler Contro
1804     Example:     Example:
1805    
1806        C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"        C: "GET MIDI_INPUT_DRIVER_PARAMETER INFO ALSA ACTIVE"
1807    
1808        S: "DESCRIPTION: Whether device is enabled"        S: "DESCRIPTION: Whether device is enabled"
1809    
1810           "TYPE: BOOL"           "TYPE: BOOL"
1811    
1812           "MANDATORY: false"           "MANDATORY: false"
1813    
1814           "FIX: false"           "FIX: false"
1815    
1816           "MULTIPLICITY: false"           "MULTIPLICITY: false"
1817    
1818           "DEFAULT: true"           "DEFAULT: true"
1819    
1820           "."           "."
1821    
1822  5.3.5  Creating a MIDI input device  6.3.5.  Creating a MIDI input device
1823    
1824     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
1825     desired MIDI input system:     desired MIDI input system:
1826    
1827        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]
1828    
1829     Where <midi-input-driver> should be replaced by the desired MIDI     Where <midi-input-driver> should be replaced by the desired MIDI
1830     input system and <param-list> by an optional list of driver specific     input system as returned by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS"
1831     parameters in form of "key1=val1 key2=val2 ...", where character     (Section 6.3.2) command and <param-list> by an optional list of
1832     string values should be encapsulated into apostrophes (').  Note that     driver specific parameters in form of "key1=val1 key2=val2 ...",
1833     there might be drivers which require parameter(s) to be given with     where character string values should be encapsulated into apostrophes
1834     this command.  Use the previously described commands in this chapter     (').  Note that there might be drivers which require parameter(s) to
1835     to get that information.     be given with this command.  Use the previously described commands in
1836       this chapter to get that information.
1837    
1838     Possible Answers:     Possible Answers:
1839    
1840        "OK[<device-id>]" -        "OK[<device-id>]" -
1841    
1842           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1843           is the numerical ID of the new device           is the numerical ID of the new device
1844    
1845    
1846    
1847    Schoenebeck               Expires May 29, 2007                 [Page 33]
1848    
1849    Internet-Draft        LinuxSampler Control Protocol        November 2006
1850    
1851    
1852        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1853    
1854           in case the driver was loaded successfully, where <device-id>           in case the driver was loaded successfully, where <device-id>
1855           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1856           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
1857           warning message           warning message
1858    
1859        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1860    
1861           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1862           error message           error message
1863    
1864     Example:     Example:
1865    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 28]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1866        C: "CREATE MIDI_INPUT_DEVICE ALSA"        C: "CREATE MIDI_INPUT_DEVICE ALSA"
1867    
1868        S: "OK[0]"        S: "OK[0]"
1869    
1870  5.3.6  Destroying a MIDI input device  6.3.6.  Destroying a MIDI input device
1871    
1872     Use the following command to destroy a created MIDI input device:     Use the following command to destroy a created MIDI input device:
1873    
1874        DESTROY MIDI_INPUT_DEVICE <device-id>        DESTROY MIDI_INPUT_DEVICE <device-id>
1875    
1876     Where <device-id> should be replaced by the device's numerical ID.     Where <device-id> should be replaced by the device's numerical ID as
1877       returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
1878       MIDI_INPUT_DEVICES" (Section 6.3.8) command.
1879    
1880     Possible Answers:     Possible Answers:
1881    
1882        "OK" -        "OK" -
1883    
1884           in case the device was successfully destroyed           in case the device was successfully destroyed
1885    
1886        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
1887    
1888           in case the device was destroyed, but there are noteworthy           in case the device was destroyed, but there are noteworthy
1889           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
1890           warning message           warning message
1891    
1892        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1893    
1894           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1895           error message           error message
1896    
1897     Example:     Example:
1898    
1899    
1900    
1901    
1902    
1903    Schoenebeck               Expires May 29, 2007                 [Page 34]
1904    
1905    Internet-Draft        LinuxSampler Control Protocol        November 2006
1906    
1907    
1908        C: "DESTROY MIDI_INPUT_DEVICE 0"        C: "DESTROY MIDI_INPUT_DEVICE 0"
1909    
1910        S: "OK"        S: "OK"
1911    
1912  5.3.7  Getting all created MIDI input device count  6.3.7.  Getting all created MIDI input device count
1913    
1914     Use the following command to count all created MIDI input devices:     Use the following command to count all created MIDI input devices:
1915    
# Line 1611  Internet-Draft       LinuxSampler Contro Line 1923  Internet-Draft       LinuxSampler Contro
1923     Example:     Example:
1924    
1925        C: "GET MIDI_INPUT_DEVICES"        C: "GET MIDI_INPUT_DEVICES"
1926    
1927        S: "3"        S: "3"
1928    
1929  5.3.8  Getting all created MIDI input device list  6.3.8.  Getting all created MIDI input device list
1930    
1931     Use the following command to list all created MIDI input devices:     Use the following command to list all created MIDI input devices:
1932    
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 29]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1933        LIST MIDI_INPUT_DEVICES        LIST MIDI_INPUT_DEVICES
1934    
1935     Possible Answers:     Possible Answers:
# Line 1635  Internet-Draft       LinuxSampler Contro Line 1940  Internet-Draft       LinuxSampler Contro
1940     Examples:     Examples:
1941    
1942        C: "LIST MIDI_INPUT_DEVICES"        C: "LIST MIDI_INPUT_DEVICES"
1943    
1944        S: "0,1,2"        S: "0,1,2"
1945    
1946        C: "LIST MIDI_INPUT_DEVICES"        C: "LIST MIDI_INPUT_DEVICES"
1947    
1948        S: "1,3"        S: "1,3"
1949    
1950  5.3.9  Getting current settings of a MIDI input device  6.3.9.  Getting current settings of a MIDI input device
1951    
1952     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1953     created MIDI input device:     created MIDI input device:
1954    
1955    
1956    
1957    
1958    
1959    Schoenebeck               Expires May 29, 2007                 [Page 35]
1960    
1961    Internet-Draft        LinuxSampler Control Protocol        November 2006
1962    
1963    
1964        GET MIDI_INPUT_DEVICE INFO <device-id>        GET MIDI_INPUT_DEVICE INFO <device-id>
1965    
1966     Where <device-id> is the numerical ID of the MIDI input device.     Where <device-id> is the numerical ID of the MIDI input device as
1967       returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
1968       MIDI_INPUT_DEVICES" (Section 6.3.8) command.
1969    
1970     Possible Answers:     Possible Answers:
1971    
# Line 1659  Internet-Draft       LinuxSampler Contro Line 1977  Internet-Draft       LinuxSampler Contro
1977        apostrophes (').  At the moment the following information        apostrophes (').  At the moment the following information
1978        categories are defined (independent of driver):        categories are defined (independent of driver):
1979    
1980    
1981    
1982           DRIVER -           DRIVER -
1983              identifier of the used MIDI input driver, as e.g.  returned  
1984              by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 5.3.2)              identifier of the used MIDI input driver, as e.g. returned
1985                by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)
1986              command              command
1987    
1988           ACTIVE -           ACTIVE -
1989    
1990              either true or false, if false then the MIDI device is              either true or false, if false then the MIDI device is
1991              inactive and doesn't listen to any incoming MIDI events and              inactive and doesn't listen to any incoming MIDI events and
1992              thus doesn't forward them to connected sampler channels              thus doesn't forward them to connected sampler channels
# Line 1672  Internet-Draft       LinuxSampler Contro Line 1995  Internet-Draft       LinuxSampler Contro
1995     fields above are only those fields which are returned by all MIDI     fields above are only those fields which are returned by all MIDI
1996     input devices.  Every MIDI input driver might have its own,     input devices.  Every MIDI input driver might have its own,
1997     additional driver specific parameters (see "GET MIDI_INPUT_DRIVER     additional driver specific parameters (see "GET MIDI_INPUT_DRIVER
1998     INFO" (Section 5.3.3) command) which are also returned by this     INFO" (Section 6.3.3) command) which are also returned by this
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 30]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
1999     command.     command.
2000    
2001     Example:     Example:
2002    
2003        C: "GET MIDI_INPUT_DEVICE INFO 0"        C: "GET MIDI_INPUT_DEVICE INFO 0"
2004    
2005        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
2006    
2007           "ACTIVE: true"           "ACTIVE: true"
2008    
2009           "."           "."
2010    
2011  5.3.10  Changing settings of MIDI input devices  
2012    
2013    
2014    
2015    Schoenebeck               Expires May 29, 2007                 [Page 36]
2016    
2017    Internet-Draft        LinuxSampler Control Protocol        November 2006
2018    
2019    
2020    6.3.10.  Changing settings of MIDI input devices
2021    
2022     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
2023     MIDI input device:     MIDI input device:
# Line 1698  Internet-Draft       LinuxSampler Contro Line 2025  Internet-Draft       LinuxSampler Contro
2025        SET MIDI_INPUT_DEVICE_PARAMETER <device-id> <key>=<value>        SET MIDI_INPUT_DEVICE_PARAMETER <device-id> <key>=<value>
2026    
2027     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
2028     input device, <key> by the name of the parameter to change and     input device as returned by the "CREATE MIDI_INPUT_DEVICE"
2029     <value> by the new value for this parameter.     (Section 6.3.5) or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command,
2030       <key> by the name of the parameter to change and <value> by the new
2031       value for this parameter.
2032    
2033     Possible Answers:     Possible Answers:
2034    
2035        "OK" -        "OK" -
2036    
2037           in case setting was successfully changed           in case setting was successfully changed
2038    
2039        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2040    
2041           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
2042           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2043           code and warning message           code and warning message
2044    
2045        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2046    
2047           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2048           error message           error message
2049    
2050     Example:     Example:
2051    
2052        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
2053    
2054        S: "OK"        S: "OK"
2055    
2056  5.3.11  Getting information about a MIDI port  6.3.11.  Getting information about a MIDI port
2057    
2058     Use the following command to get information about a MIDI port:     Use the following command to get information about a MIDI port:
2059    
2060        GET MIDI_INPUT_PORT INFO <device-id> <midi-port>        GET MIDI_INPUT_PORT INFO <device-id> <midi-port>
2061    
2062     Where <device-id> is the numerical ID of the MIDI input device and     Where <device-id> is the numerical ID of the MIDI input device as
2063     <midi-port> the MIDI input port number.     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
2064       MIDI_INPUT_DEVICES" (Section 6.3.8) command and <midi-port> the MIDI
2065       input port number.
2066    
2067     Possible Answers:     Possible Answers:
2068    
2069    
2070    
2071    Schoenebeck               Expires May 29, 2007                 [Page 37]
 Schoenebeck             Expires November 7, 2005               [Page 31]  
2072    
2073  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
2074    
2075    
2076        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
# Line 1742  Internet-Draft       LinuxSampler Contro Line 2078  Internet-Draft       LinuxSampler Contro
2078        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
2079        character string to that info category.  At the moment the        character string to that info category.  At the moment the
2080        following information categories are defined:        following information categories are defined:
2081    
2082        NAME -        NAME -
2083    
2084           arbitrary character string naming the port           arbitrary character string naming the port
2085    
2086     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 1752  Internet-Draft       LinuxSampler Contro Line 2090  Internet-Draft       LinuxSampler Contro
2090     Example:     Example:
2091    
2092        C: "GET MIDI_INPUT_PORT INFO 0 0"        C: "GET MIDI_INPUT_PORT INFO 0 0"
2093    
2094        S: "NAME: 'Masterkeyboard'"        S: "NAME: 'Masterkeyboard'"
2095    
2096           "ALSA_SEQ_BINDINGS: '64:0'"           "ALSA_SEQ_BINDINGS: '64:0'"
2097    
2098           "."           "."
2099    
2100  5.3.12  Getting information about specific MIDI port parameter  6.3.12.  Getting information about specific MIDI port parameter
2101    
2102     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
2103     MIDI port parameter:     MIDI port parameter:
# Line 1764  Internet-Draft       LinuxSampler Contro Line 2105  Internet-Draft       LinuxSampler Contro
2105        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>
2106    
2107     Where <dev-id> is the numerical ID of the MIDI input device as     Where <dev-id> is the numerical ID of the MIDI input device as
2108     returned by the "LIST MIDI_INPUT_DEVICES" (Section 5.3.8) command,     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
2109     <port> the MIDI port number and <param> a specific port parameter     MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> the MIDI port
2110     name for which information should be obtained (as returned by the     number and <param> a specific port parameter name for which
2111     "GET MIDI_INPUT_PORT INFO" (Section 5.3.11) command).     information should be obtained (as returned by the "GET
2112       MIDI_INPUT_PORT INFO" (Section 6.3.11) command).
2113    
2114     Possible Answers:     Possible Answers:
2115    
# Line 1779  Internet-Draft       LinuxSampler Contro Line 2121  Internet-Draft       LinuxSampler Contro
2121        parameter and there is optional information which are only shown        parameter and there is optional information which are only shown
2122        dependently to the given MIDI port.  At the moment the following        dependently to the given MIDI port.  At the moment the following
2123        information categories are defined:        information categories are defined:
       TYPE -  
          either "BOOL" for boolean value(s) or "INT" for integer  
          value(s) or "FLOAT" for dotted number(s) or "STRING" for  
          character string(s) (always returned)  
       DESCRIPTION -  
2124    
2125    
2126    
2127    Schoenebeck               Expires May 29, 2007                 [Page 38]
 Schoenebeck             Expires November 7, 2005               [Page 32]  
2128    
2129  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
2130    
2131    
2132          TYPE -
2133    
2134             either "BOOL" for boolean value(s) or "INT" for integer
2135             value(s) or "FLOAT" for dotted number(s) or "STRING" for
2136             character string(s) (always returned)
2137    
2138          DESCRIPTION -
2139    
2140           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
2141           returned)           returned)
2142    
2143        FIX -        FIX -
2144    
2145           either true or false, if true then this parameter is read only,           either true or false, if true then this parameter is read only,
2146           thus cannot be altered (always returned)           thus cannot be altered (always returned)
2147    
2148        MULTIPLICITY -        MULTIPLICITY -
2149    
2150           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
2151           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
2152           false only a single value allowed (always returned)           false only a single value allowed (always returned)
2153    
2154        RANGE_MIN -        RANGE_MIN -
2155    
2156           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
2157           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
2158           this parameter is usually used in conjunction with 'RANGE_MAX'           this parameter is usually used in conjunction with 'RANGE_MAX'
2159           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2160           driver and port parameter)           driver and port parameter)
2161    
2162        RANGE_MAX -        RANGE_MAX -
2163    
2164           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
2165           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
2166           this parameter is usually used in conjunction with 'RANGE_MIN'           this parameter is usually used in conjunction with 'RANGE_MIN'
2167           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2168           driver and port parameter)           driver and port parameter)
2169    
2170        POSSIBILITIES -        POSSIBILITIES -
2171    
2172           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
2173           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
2174           returned, dependent to device and port parameter)           returned, dependent to device and port parameter)
# Line 1823  Internet-Draft       LinuxSampler Contro Line 2177  Internet-Draft       LinuxSampler Contro
2177    
2178     Example:     Example:
2179    
2180    
2181    
2182    
2183    Schoenebeck               Expires May 29, 2007                 [Page 39]
2184    
2185    Internet-Draft        LinuxSampler Control Protocol        November 2006
2186    
2187    
2188        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
2189    
2190        S: "DESCRIPTION: bindings to other ALSA sequencer clients"        S: "DESCRIPTION: bindings to other ALSA sequencer clients"
2191    
2192           "TYPE: STRING"           "TYPE: STRING"
2193    
2194           "FIX: false"           "FIX: false"
2195    
2196           "MULTIPLICITY: true"           "MULTIPLICITY: true"
2197    
2198           "POSSIBILITIES: '64:0','68:0','68:1'"           "POSSIBILITIES: '64:0','68:0','68:1'"
2199    
2200           "."           "."
2201    
2202  5.3.13  Changing settings of MIDI input ports  6.3.13.  Changing settings of MIDI input ports
2203    
2204     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
2205     port:     port:
# Line 1839  Internet-Draft       LinuxSampler Contro Line 2207  Internet-Draft       LinuxSampler Contro
2207        SET MIDI_INPUT_PORT_PARAMETER <device-id> <port> <key>=<value>        SET MIDI_INPUT_PORT_PARAMETER <device-id> <port> <key>=<value>
2208    
2209     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
2210     device, <port> by the MIDI port number, <key> by the name of the     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)
2211     parameter to change and <value> by the new value for this parameter.     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> by the
2212       MIDI port number, <key> by the name of the parameter to change and
2213       <value> by the new value for this parameter.
   
 Schoenebeck             Expires November 7, 2005               [Page 33]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
2214    
2215     Possible Answers:     Possible Answers:
2216    
2217        "OK" -        "OK" -
2218    
2219           in case setting was successfully changed           in case setting was successfully changed
2220    
2221        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2222    
2223           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
2224           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2225           code and warning message           code and warning message
2226    
2227        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2228    
2229           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2230           error message           error message
2231    
# Line 1865  Internet-Draft       LinuxSampler Contro Line 2233  Internet-Draft       LinuxSampler Contro
2233    
2234    
2235    
2236  5.4  Configuring sampler channels  
2237    
2238    
2239    Schoenebeck               Expires May 29, 2007                 [Page 40]
2240    
2241    Internet-Draft        LinuxSampler Control Protocol        November 2006
2242    
2243    
2244    
2245    
2246    6.4.  Configuring sampler channels
2247    
2248     The following commands describe how to add and remove sampler     The following commands describe how to add and remove sampler
2249     channels, deploy sampler engines, load instruments and connect     channels, associate a sampler channel with a sampler engine, load
2250     sampler channels to MIDI and audio devices.     instruments and connect sampler channels to MIDI and audio devices.
2251    
2252  5.4.1  Loading an instrument  6.4.1.  Loading an instrument
2253    
2254     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
2255     one of the following commands:     one of the following commands:
2256    
2257        LOAD INSTRUMENT [NON_MODAL] '<filename>' <instr-index>        LOAD INSTRUMENT [NON_MODAL] '<filename>' <instr-index> <sampler-
2258        <sampler-channel>        channel>
2259    
2260     Where <filename> is the name of the instrument file on the     Where <filename> is the name of the instrument file on the
2261     LinuxSampler instance's host system, <instr-index> the index of the     LinuxSampler instance's host system, <instr-index> the index of the
# Line 1889  Internet-Draft       LinuxSampler Contro Line 2267  Internet-Draft       LinuxSampler Contro
2267     is that the regular command returns OK only after the instrument has     is that the regular command returns OK only after the instrument has
2268     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
2269     version returns immediately and a background process is launched to     version returns immediately and a background process is launched to
2270     load the instrument on the channel.  The GET CHANNEL INFO (Section     load the instrument on the channel.  The GET CHANNEL INFO
2271     5.4.10) command can be used to obtain loading progress from     (Section 6.4.10) command can be used to obtain loading progress from
2272     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks
2273     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
2274     format and SHOULD return ERR and SHOULD not launch the background     format and SHOULD return ERR and SHOULD not launch the background
# Line 1898  Internet-Draft       LinuxSampler Contro Line 2276  Internet-Draft       LinuxSampler Contro
2276    
2277     Possible Answers:     Possible Answers:
2278    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 34]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2279        "OK" -        "OK" -
2280    
2281           in case the instrument was successfully loaded           in case the instrument was successfully loaded
2282    
2283        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2284    
2285           in case the instrument was loaded successfully, but there are           in case the instrument was loaded successfully, but there are
2286           noteworthy issue(s) related (e.g.  Engine doesn't support one           noteworthy issue(s) related (e.g.  Engine doesn't support one
2287           or more patch parameters provided by the loaded instrument           or more patch parameters provided by the loaded instrument
2288           file), providing an appropriate warning code and warning           file), providing an appropriate warning code and warning
2289           message           message
2290    
2291    
2292    
2293    
2294    
2295    Schoenebeck               Expires May 29, 2007                 [Page 41]
2296    
2297    Internet-Draft        LinuxSampler Control Protocol        November 2006
2298    
2299    
2300        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2301    
2302           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2303           error message           error message
2304    
# Line 1921  Internet-Draft       LinuxSampler Contro Line 2306  Internet-Draft       LinuxSampler Contro
2306    
2307    
2308    
2309  5.4.2  Loading a sampler engine  6.4.2.  Loading a sampler engine
2310    
2311     A sample engine can be deployed and assigned to a specific sampler     A sampler engine type can be associated to a specific sampler channel
2312     channel by the following command:     by the following command:
2313    
2314        LOAD ENGINE <engine-name> <sampler-channel>        LOAD ENGINE <engine-name> <sampler-channel>
2315    
2316     Where <engine-name> is an engine name as obtained by the "LIST     Where <engine-name> is an engine name as obtained by the "LIST
2317     AVAILABLE_ENGINES" (Section 5.4.8) command and <sampler-channel> the     AVAILABLE_ENGINES" (Section 6.4.8) command and <sampler-channel> the
2318     sampler channel the deployed engine should be assigned to.  Even if     sampler channel as returned by the "ADD CHANNEL" (Section 6.4.5) or
2319     the respective sampler channel has already a deployed engine with     "LIST CHANNELS" (Section 6.4.4) command where the engine type should
2320     that engine name, a new engine instance will be assigned to the     be assigned to.  This command should be issued after adding a new
2321     sampler channel.     sampler channel and before any other control commands on the new
2322       sampler channel.  It can also be used to change the engine type of a
2323       sampler channel.  This command has (currently) no way to define or
2324       force if a new engine instance should be created and assigned to the
2325       given sampler channel or if an already existing instance of that
2326       engine type, shared with other sampler channels, should be used.
2327    
2328     Possible Answers:     Possible Answers:
2329    
2330        "OK" -        "OK" -
2331    
2332           in case the engine was successfully deployed           in case the engine was successfully deployed
2333    
2334        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2335    
2336           in case the engine was deployed successfully, but there are           in case the engine was deployed successfully, but there are
2337           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2338           code and warning message           code and warning message
2339    
2340        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2341    
2342           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2343           error message           error message
2344    
# Line 1953  Internet-Draft       LinuxSampler Contro Line 2348  Internet-Draft       LinuxSampler Contro
2348    
2349    
2350    
2351    Schoenebeck               Expires May 29, 2007                 [Page 42]
2352    
2353    Internet-Draft        LinuxSampler Control Protocol        November 2006
2354    
2355    
2356    
 Schoenebeck             Expires November 7, 2005               [Page 35]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
2357    
2358  5.4.3  Getting all created sampler channel count  6.4.3.  Getting all created sampler channel count
2359    
2360     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2361     current amount of sampler channels, the front-end can send the     current amount of sampler channels, the front-end can send the
# Line 1977  Internet-Draft       LinuxSampler Contro Line 2371  Internet-Draft       LinuxSampler Contro
2371     Example:     Example:
2372    
2373        C: "GET CHANNELS"        C: "GET CHANNELS"
2374    
2375        S: "12"        S: "12"
2376    
2377  5.4.4  Getting all created sampler channel list  6.4.4.  Getting all created sampler channel list
2378    
2379     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2380     current list of sampler channels, the front-end can send the     current list of sampler channels, the front-end can send the
# Line 1995  Internet-Draft       LinuxSampler Contro Line 2390  Internet-Draft       LinuxSampler Contro
2390     Example:     Example:
2391    
2392        C: "LIST CHANNELS"        C: "LIST CHANNELS"
2393    
2394        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"
2395    
2396  5.4.5  Adding a new sampler channel  6.4.5.  Adding a new sampler channel
2397    
2398     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
2399     list by sending the following command:     list by sending the following command:
# Line 2005  Internet-Draft       LinuxSampler Contro Line 2401  Internet-Draft       LinuxSampler Contro
2401        ADD CHANNEL        ADD CHANNEL
2402    
2403     This will increment the sampler channel count by one and the new     This will increment the sampler channel count by one and the new
    sampler channel will be appended to the end of the sampler channel  
    list.  The front-end should send the respective, related commands  
    right after to e.g.  load an engine, load an instrument and setting  
    input, output method and eventually other commands to initialize the  
2404    
2405    
2406    
2407  Schoenebeck             Expires November 7, 2005               [Page 36]  Schoenebeck               Expires May 29, 2007                 [Page 43]
2408    
2409  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
2410    
2411    
2412       sampler channel will be appended to the end of the sampler channel
2413       list.  The front-end should send the respective, related commands
2414       right after to e.g. load an engine, load an instrument and setting
2415       input, output method and eventually other commands to initialize the
2416     new channel.  The front-end should use the sampler channel returned     new channel.  The front-end should use the sampler channel returned
2417     by the answer of this command to perform the previously recommended     by the answer of this command to perform the previously recommended
2418     commands, to avoid race conditions e.g.  with other front-ends that     commands, to avoid race conditions e.g. with other front-ends that
2419     might also have sent an "ADD CHANNEL" command.     might also have sent an "ADD CHANNEL" command.
2420    
2421     Possible Answers:     Possible Answers:
2422    
2423        "OK[<sampler-channel>]" -        "OK[<sampler-channel>]" -
2424           in case a new sampler channel could be added, where  
2425           <sampler-channel> reflects the channel number of the new           in case a new sampler channel could be added, where <sampler-
2426           created sampler channel which should the be used to set up the           channel> reflects the channel number of the new created sampler
2427           sampler channel by sending subsequent intialization commands           channel which should be used to set up the sampler channel by
2428             sending subsequent initialization commands
2429    
2430        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2431    
2432           in case a new channel was added successfully, but there are           in case a new channel was added successfully, but there are
2433           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2434           code and warning message           code and warning message
2435    
2436        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2437    
2438           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2439           error message           error message
2440    
# Line 2041  Internet-Draft       LinuxSampler Contro Line 2442  Internet-Draft       LinuxSampler Contro
2442    
2443    
2444    
2445  5.4.6  Removing a sampler channel  6.4.6.  Removing a sampler channel
2446    
2447     A sampler channel can be removed by sending the following command:     A sampler channel can be removed by sending the following command:
2448    
2449        REMOVE CHANNEL <sampler-channel>        REMOVE CHANNEL <sampler-channel>
2450    
2451     This will decrement the sampler channel count by one and also     Where <sampler-channel> should be replaced by the number of the
2452     decrement the channel numbers of all subsequent sampler channels by     sampler channel as given by the "ADD CHANNEL" (Section 6.4.5) or
2453     one.     "LIST CHANNELS" (Section 6.4.4) command.  The channel numbers of all
2454       subsequent sampler channels remain the same.
2455    
2456     Possible Answers:     Possible Answers:
2457    
2458    
2459    
2460    
2461    
2462    
2463    Schoenebeck               Expires May 29, 2007                 [Page 44]
2464    
2465    Internet-Draft        LinuxSampler Control Protocol        November 2006
2466    
2467    
2468        "OK" -        "OK" -
2469    
2470           in case the given sampler channel could be removed           in case the given sampler channel could be removed
2471    
2472        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2473    
2474           in case the given channel was removed, but there are noteworthy           in case the given channel was removed, but there are noteworthy
2475           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2476           warning message           warning message
2477    
2478        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2479    
2480           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2481           error message           error message
2482    
# Line 2067  Internet-Draft       LinuxSampler Contro Line 2484  Internet-Draft       LinuxSampler Contro
2484    
2485    
2486    
2487    6.4.7.  Getting amount of available engines
 Schoenebeck             Expires November 7, 2005               [Page 37]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
   
   
 5.4.7  Getting amount of available engines  
2488    
2489     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
2490     the following command:     the following command:
# Line 2090  Internet-Draft       LinuxSampler Contro Line 2499  Internet-Draft       LinuxSampler Contro
2499     Example:     Example:
2500    
2501        C: "GET AVAILABLE_ENGINES"        C: "GET AVAILABLE_ENGINES"
2502    
2503        S: "4"        S: "4"
2504    
2505  5.4.8  Getting all available engines  6.4.8.  Getting all available engines
2506    
2507     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
2508     the following command:     the following command:
# Line 2101  Internet-Draft       LinuxSampler Contro Line 2511  Internet-Draft       LinuxSampler Contro
2511    
2512     Possible Answers:     Possible Answers:
2513    
2514        LinuxSampler will answer by sending a comma separated character  
2515        string of the engines' names.  Engine names can consist of lower  
2516        and upper cases, digits and underlines ("_" character).  
2517    
2518    
2519    Schoenebeck               Expires May 29, 2007                 [Page 45]
2520    
2521    Internet-Draft        LinuxSampler Control Protocol        November 2006
2522    
2523    
2524          LinuxSampler will answer by sending a comma separated list of the
2525          engines' names encapsulated into apostrophes (').  Engine names
2526          can consist of lower and upper cases, digits and underlines ("_"
2527          character).
2528    
2529     Example:     Example:
2530    
2531        C: "LIST AVAILABLE_ENGINES"        C: "LIST AVAILABLE_ENGINES"
       S: "GigEngine,AkaiEngine,DLSEngine,JoesCustomEngine"  
2532    
2533  5.4.9  Getting information about an engine        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"
2534    
2535    6.4.9.  Getting information about an engine
2536    
2537     The front-end can ask for information about a specific engine by     The front-end can ask for information about a specific engine by
2538     sending the following command:     sending the following command:
# Line 2118  Internet-Draft       LinuxSampler Contro Line 2540  Internet-Draft       LinuxSampler Contro
2540        GET ENGINE INFO <engine-name>        GET ENGINE INFO <engine-name>
2541    
2542     Where <engine-name> is an engine name as obtained by the "LIST     Where <engine-name> is an engine name as obtained by the "LIST
2543     AVAILABLE_ENGINES" (Section 5.4.8) command.     AVAILABLE_ENGINES" (Section 6.4.8) command.
2544    
2545     Possible Answers:     Possible Answers:
2546    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 38]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2547        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2548        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2549        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
2550        character string to that info category.  At the moment the        character string to that info category.  At the moment the
2551        following categories are defined:        following categories are defined:
2552    
2553    
2554    
2555           DESCRIPTION -           DESCRIPTION -
2556    
2557              arbitrary description text about the engine              arbitrary description text about the engine
2558    
2559           VERSION -           VERSION -
2560    
2561              arbitrary character string regarding the engine's version              arbitrary character string regarding the engine's version
2562    
2563     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 2145  Internet-Draft       LinuxSampler Contro Line 2565  Internet-Draft       LinuxSampler Contro
2565     Example:     Example:
2566    
2567        C: "GET ENGINE INFO JoesCustomEngine"        C: "GET ENGINE INFO JoesCustomEngine"
2568    
2569        S: "DESCRIPTION: this is Joe's custom sampler engine"        S: "DESCRIPTION: this is Joe's custom sampler engine"
2570    
2571    
2572    
2573    
2574    
2575    Schoenebeck               Expires May 29, 2007                 [Page 46]
2576    
2577    Internet-Draft        LinuxSampler Control Protocol        November 2006
2578    
2579    
2580           "VERSION: testing-1.0"           "VERSION: testing-1.0"
2581    
2582           "."           "."
2583    
2584  5.4.10  Getting sampler channel information  6.4.10.  Getting sampler channel information
2585    
2586     The front-end can ask for the current settings of a sampler channel     The front-end can ask for the current settings of a sampler channel
2587     by sending the following command:     by sending the following command:
# Line 2157  Internet-Draft       LinuxSampler Contro Line 2589  Internet-Draft       LinuxSampler Contro
2589        GET CHANNEL INFO <sampler-channel>        GET CHANNEL INFO <sampler-channel>
2590    
2591     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
2592     is interested in.     is interested in as returned by the "ADD CHANNEL" (Section 6.4.5) or
2593       "LIST CHANNELS" (Section 6.4.4) command.
2594    
2595     Possible Answers:     Possible Answers:
2596    
# Line 2167  Internet-Draft       LinuxSampler Contro Line 2600  Internet-Draft       LinuxSampler Contro
2600        character string to that setting category.  At the moment the        character string to that setting category.  At the moment the
2601        following categories are defined:        following categories are defined:
2602    
2603    
2604    
2605           ENGINE_NAME -           ENGINE_NAME -
2606              name of the engine that is deployed on the sampler channel,  
2607              "NONE" if there's no engine deployed yet for this sampler              name of the engine that is associated with the sampler
2608              channel              channel, "NONE" if there's no engine associated yet for this
2609                sampler channel
2610    
2611           AUDIO_OUTPUT_DEVICE -           AUDIO_OUTPUT_DEVICE -
2612    
2613              numerical ID of the audio output device which is currently              numerical ID of the audio output device which is currently
2614              connected to this sampler channel to output the audio              connected to this sampler channel to output the audio
2615              signal, "NONE" if there's no device connected to this              signal, "NONE" if there's no device connected to this
2616              sampler channel              sampler channel
2617    
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 39]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2618           AUDIO_OUTPUT_CHANNELS -           AUDIO_OUTPUT_CHANNELS -
2619    
2620              number of output channels the sampler channel offers              number of output channels the sampler channel offers
2621              (dependent to used sampler engine and loaded instrument)              (dependent to used sampler engine and loaded instrument)
2622    
2623           AUDIO_OUTPUT_ROUTING -           AUDIO_OUTPUT_ROUTING -
2624    
2625              comma separated list which reflects to which audio channel              comma separated list which reflects to which audio channel
2626              of the selected audio output device each sampler output              of the selected audio output device each sampler output
2627              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
2628    
2629    
2630    
2631    Schoenebeck               Expires May 29, 2007                 [Page 47]
2632    
2633    Internet-Draft        LinuxSampler Control Protocol        November 2006
2634    
2635    
2636              output channel 0 is routed to channel 0 of the audio output              output channel 0 is routed to channel 0 of the audio output
2637              device and the engine's output channel 1 is routed to the              device and the engine's output channel 1 is routed to the
2638              channel 3 of the audio output device              channel 3 of the audio output device
2639    
2640           INSTRUMENT_FILE -           INSTRUMENT_FILE -
2641    
2642              the file name of the loaded instrument, "NONE" if there's no              the file name of the loaded instrument, "NONE" if there's no
2643              instrument yet loaded for this sampler channel              instrument yet loaded for this sampler channel
2644    
2645           INSTRUMENT_NR -           INSTRUMENT_NR -
2646    
2647              the instrument index number of the loaded instrument              the instrument index number of the loaded instrument
2648    
2649           INSTRUMENT_NAME -           INSTRUMENT_NAME -
2650    
2651              the instrument name of the loaded instrument              the instrument name of the loaded instrument
2652    
2653           INSTRUMENT_STATUS -           INSTRUMENT_STATUS -
2654    
2655              integer values 0 to 100 indicating loading progress              integer values 0 to 100 indicating loading progress
2656              percentage for the instrument.  Negative value indicates a              percentage for the instrument.  Negative value indicates a
2657              loading exception.  Value of 100 indicates that the              loading exception.  Value of 100 indicates that the
2658              instrument is fully loaded.              instrument is fully loaded.
2659    
2660           MIDI_INPUT_DEVICE -           MIDI_INPUT_DEVICE -
2661    
2662              numerical ID of the MIDI input device which is currently              numerical ID of the MIDI input device which is currently
2663              connected to this sampler channel to deliver MIDI input              connected to this sampler channel to deliver MIDI input
2664              commands, "NONE" if there's no device connected to this              commands, "NONE" if there's no device connected to this
2665              sampler channel              sampler channel
2666    
2667           MIDI_INPUT_PORT -           MIDI_INPUT_PORT -
2668    
2669              port number of the MIDI input device              port number of the MIDI input device
2670    
2671           MIDI_INPUT_CHANNEL -           MIDI_INPUT_CHANNEL -
2672    
2673              the MIDI input channel number this sampler channel should              the MIDI input channel number this sampler channel should
2674              listen to or "ALL" to listen on all MIDI channels              listen to or "ALL" to listen on all MIDI channels
2675    
2676           VOLUME -           VOLUME -
2677    
2678              optionally dotted number for the channel volume factor              optionally dotted number for the channel volume factor
2679              (where a value < 1.0 means attenuation and a value > 1.0              (where a value < 1.0 means attenuation and a value > 1.0
2680              means amplification)              means amplification)
2681    
2682    
2683    
2684    
2685    
2686    
2687    Schoenebeck               Expires May 29, 2007                 [Page 48]
2688    
2689    Internet-Draft        LinuxSampler Control Protocol        November 2006
2690    
2691    
2692             MUTE -
2693    
2694                Determines whether the channel is muted, "true" if the
2695                channel is muted, "false" if the channel is not muted, and
2696                "MUTED_BY_SOLO" if the channel is muted because of the
2697                presence of a solo channel and will be unmuted when there
2698                are no solo channels left
2699    
2700             SOLO -
2701    
2702                Determines whether this is a solo channel, "true" if the
2703                channel is a solo channel; "false" otherwise
2704    
2705     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
2706    
2707     Example:     Example:
2708    
2709        C: "GET CHANNEL INFO 34"        C: "GET CHANNEL INFO 34"
       S: "ENGINE_NAME: GigEngine"  
          "VOLUME: 1.0"  
          "AUDIO_OUTPUT_DEVICE: 0"  
          "AUDIO_OUTPUT_CHANNELS: 2"  
          "AUDIO_OUTPUT_ROUTING: 0,1"  
2710    
2711          S: "ENGINE_NAME: GigEngine"
2712    
2713             "VOLUME: 1.0"
2714    
2715             "AUDIO_OUTPUT_DEVICE: 0"
2716    
2717  Schoenebeck             Expires November 7, 2005               [Page 40]           "AUDIO_OUTPUT_CHANNELS: 2"
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2718    
2719             "AUDIO_OUTPUT_ROUTING: 0,1"
2720    
2721           "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"           "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"
2722    
2723           "INSTRUMENT_NR: 0"           "INSTRUMENT_NR: 0"
2724    
2725           "INSTRUMENT_NAME: Fazioli Piano"           "INSTRUMENT_NAME: Fazioli Piano"
2726    
2727           "INSTRUMENT_STATUS: 100"           "INSTRUMENT_STATUS: 100"
2728    
2729           "MIDI_INPUT_DEVICE: 0"           "MIDI_INPUT_DEVICE: 0"
2730    
2731           "MIDI_INPUT_PORT: 0"           "MIDI_INPUT_PORT: 0"
2732    
2733           "MIDI_INPUT_CHANNEL: 5"           "MIDI_INPUT_CHANNEL: 5"
2734    
2735           "."           "."
2736    
2737  5.4.11  Current number of active voices  
2738    
2739    
2740    
2741    
2742    
2743    Schoenebeck               Expires May 29, 2007                 [Page 49]
2744    
2745    Internet-Draft        LinuxSampler Control Protocol        November 2006
2746    
2747    
2748    6.4.11.  Current number of active voices
2749    
2750     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
2751     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2258  Internet-Draft       LinuxSampler Contro Line 2753  Internet-Draft       LinuxSampler Contro
2753        GET CHANNEL VOICE_COUNT <sampler-channel>        GET CHANNEL VOICE_COUNT <sampler-channel>
2754    
2755     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
2756     is interested in.     is interested in as returned by the "ADD CHANNEL" (Section 6.4.5) or
2757       "LIST CHANNELS" (Section 6.4.4) command.
2758    
2759     Possible Answers:     Possible Answers:
2760    
# Line 2269  Internet-Draft       LinuxSampler Contro Line 2765  Internet-Draft       LinuxSampler Contro
2765    
2766    
2767    
2768  5.4.12  Current number of active disk streams  6.4.12.  Current number of active disk streams
2769    
2770     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
2771     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
# Line 2277  Internet-Draft       LinuxSampler Contro Line 2773  Internet-Draft       LinuxSampler Contro
2773        GET CHANNEL STREAM_COUNT <sampler-channel>        GET CHANNEL STREAM_COUNT <sampler-channel>
2774    
2775     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
2776     is interested in.     is interested in as returned by the "ADD CHANNEL" (Section 6.4.5) or
2777       "LIST CHANNELS" (Section 6.4.4) command.
2778    
2779     Possible Answers:     Possible Answers:
2780    
# Line 2290  Internet-Draft       LinuxSampler Contro Line 2787  Internet-Draft       LinuxSampler Contro
2787    
2788    
2789    
2790    6.4.13.  Current fill state of disk stream buffers
2791    
2792       The front-end can ask for the current fill state of all disk streams
2793       on a sampler channel by sending the following command:
2794    
 Schoenebeck             Expires November 7, 2005               [Page 41]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
2795    
2796    
2797    
2798    
2799  5.4.13  Current fill state of disk stream buffers  Schoenebeck               Expires May 29, 2007                 [Page 50]
2800    
2801    Internet-Draft        LinuxSampler Control Protocol        November 2006
2802    
    The front-end can ask for the current fill state of all disk streams  
    on a sampler channel by sending the following command:  
2803    
2804        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>
2805    
# Line 2311  Internet-Draft       LinuxSampler Contro Line 2808  Internet-Draft       LinuxSampler Contro
2808        GET CHANNEL BUFFER_FILL PERCENTAGE <sampler-channel>        GET CHANNEL BUFFER_FILL PERCENTAGE <sampler-channel>
2809    
2810     to get the fill state in percent, where <sampler-channel> is the     to get the fill state in percent, where <sampler-channel> is the
2811     sampler channel number the front-end is interested in.     sampler channel number the front-end is interested in as returned by
2812       the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
2813       command.
2814    
2815     Possible Answers:     Possible Answers:
2816    
# Line 2329  Internet-Draft       LinuxSampler Contro Line 2828  Internet-Draft       LinuxSampler Contro
2828     Examples:     Examples:
2829    
2830        C: "GET CHANNEL BUFFER_FILL BYTES 4"        C: "GET CHANNEL BUFFER_FILL BYTES 4"
2831    
2832        S: "[115]420500,[116]510300,[75]110000,[120]230700"        S: "[115]420500,[116]510300,[75]110000,[120]230700"
2833    
2834        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
2835    
2836        S: "[115]90%,[116]98%,[75]40%,[120]62%"        S: "[115]90%,[116]98%,[75]40%,[120]62%"
2837    
2838        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"        C: "GET CHANNEL BUFFER_FILL PERCENTAGE 4"
2839    
2840        S: ""        S: ""
2841    
2842  5.4.14  Setting audio output device  6.4.14.  Setting audio output device
2843    
2844     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
2845     channel by sending the following command:     channel by sending the following command:
# Line 2343  Internet-Draft       LinuxSampler Contro Line 2847  Internet-Draft       LinuxSampler Contro
2847        SET CHANNEL AUDIO_OUTPUT_DEVICE <sampler-channel>        SET CHANNEL AUDIO_OUTPUT_DEVICE <sampler-channel>
2848        <audio-device-id>        <audio-device-id>
2849    
2850     Where <audio-device-id> is the numerical ID of the audio output     Where <sampler-channel> is the respective sampler channel number as
2851     device and <sampler-channel> is the respective sampler channel     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
2852    
2853    
2854    
2855  Schoenebeck             Expires November 7, 2005               [Page 42]  Schoenebeck               Expires May 29, 2007                 [Page 51]
2856    
2857  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
2858    
2859    
2860     number.     (Section 6.4.4) command and <audio-device-id> is the numerical ID of
2861       the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
2862       (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
2863       command.
2864    
2865     Possible Answers:     Possible Answers:
2866    
2867        "OK" -        "OK" -
2868    
2869           on success           on success
2870    
2871        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2872    
2873           if audio output device was set, but there are noteworthy           if audio output device was set, but there are noteworthy
2874           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2875           warning message           warning message
2876    
2877        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2878    
2879           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2880           error message           error message
2881    
# Line 2371  Internet-Draft       LinuxSampler Contro Line 2883  Internet-Draft       LinuxSampler Contro
2883    
2884    
2885    
2886  5.4.15  Setting audio output type  6.4.15.  Setting audio output type
2887    
2888     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
2889    
2890     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
2891     channel by sending the following command:     channel by sending the following command:
2892    
2893        SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel>        SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-
2894        <audio-output-type>        type>
2895    
2896     Where <audio-output-type> is currently either "ALSA" or "JACK" and     Where <audio-output-type> is currently either "ALSA" or "JACK" and
2897     <sampler-channel> is the respective sampler channel number.     <sampler-channel> is the respective sampler channel number.
# Line 2387  Internet-Draft       LinuxSampler Contro Line 2899  Internet-Draft       LinuxSampler Contro
2899     Possible Answers:     Possible Answers:
2900    
2901        "OK" -        "OK" -
2902    
2903           on success           on success
2904    
2905        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2906    
2907    
2908    
2909    
2910    
2911    Schoenebeck               Expires May 29, 2007                 [Page 52]
2912    
2913    Internet-Draft        LinuxSampler Control Protocol        November 2006
2914    
2915    
2916           if audio output type was set, but there are noteworthy issue(s)           if audio output type was set, but there are noteworthy issue(s)
2917           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
2918           message           message
2919    
2920        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2921    
2922           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2923           error message           error message
2924    
# Line 2400  Internet-Draft       LinuxSampler Contro Line 2926  Internet-Draft       LinuxSampler Contro
2926    
2927    
2928    
2929    6.4.16.  Setting audio output channel
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 43]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
 5.4.16  Setting audio output channel  
2930    
2931     The front-end can alter the audio output channel on a specific     The front-end can alter the audio output channel on a specific
2932     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2417  Internet-Draft       LinuxSampler Contro Line 2934  Internet-Draft       LinuxSampler Contro
2934        SET CHANNEL AUDIO_OUTPUT_CHANNEL <sampler-chan> <audio-out>        SET CHANNEL AUDIO_OUTPUT_CHANNEL <sampler-chan> <audio-out>
2935        <audio-in>        <audio-in>
2936    
2937     Where <sampler-chan> is the sampler channel number, <audio-out> is     Where <sampler-chan> is the sampler channel number as returned by the
2938     the numerical ID of the sampler channel's audio output channel which     "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
2939     should be rerouted and <audio-in> is the numerical ID of the audio     command, <audio-out> is the numerical ID of the sampler channel's
2940     channel of the selected audio output device where <audio-out> should     audio output channel which should be rerouted and <audio-in> is the
2941     be routed to.     numerical ID of the audio channel of the selected audio output device
2942       where <audio-out> should be routed to.
2943    
2944     Possible Answers:     Possible Answers:
2945    
2946        "OK" -        "OK" -
2947    
2948           on success           on success
2949    
2950        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2951    
2952           if audio output channel was set, but there are noteworthy           if audio output channel was set, but there are noteworthy
2953           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
2954           warning message           warning message
2955    
2956        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2957    
2958           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2959           error message           error message
2960    
# Line 2439  Internet-Draft       LinuxSampler Contro Line 2962  Internet-Draft       LinuxSampler Contro
2962    
2963    
2964    
2965  5.4.17  Setting MIDI input device  
2966    
2967    Schoenebeck               Expires May 29, 2007                 [Page 53]
2968    
2969    Internet-Draft        LinuxSampler Control Protocol        November 2006
2970    
2971    
2972    
2973    
2974    6.4.17.  Setting MIDI input device
2975    
2976     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
2977     channel by sending the following command:     channel by sending the following command:
2978    
2979        SET CHANNEL MIDI_INPUT_DEVICE <sampler-channel> <midi-device-id>        SET CHANNEL MIDI_INPUT_DEVICE <sampler-channel> <midi-device-id>
2980    
2981     Where <sampler-channel> is the sampler channel number and     Where <sampler-channel> is the sampler channel number as returned by
2982     <midi-device-id> is the the numerical ID of the MIDI input device.     the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
2983       command and <midi-device-id> is the numerical ID of the MIDI input
2984       device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)
2985       or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command.
2986    
2987     Possible Answers:     Possible Answers:
2988    
2989        "OK" -        "OK" -
2990    
2991           on success           on success
2992    
2993        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2994    
2995           if MIDI input device was set, but there are noteworthy issue(s)           if MIDI input device was set, but there are noteworthy issue(s)
2996           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
2997           message           message
2998    
   
   
 Schoenebeck             Expires November 7, 2005               [Page 44]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
2999        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3000    
3001           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3002           error message           error message
3003    
# Line 2473  Internet-Draft       LinuxSampler Contro Line 3005  Internet-Draft       LinuxSampler Contro
3005    
3006    
3007    
3008  5.4.18  Setting MIDI input type  6.4.18.  Setting MIDI input type
3009    
3010     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
3011    
# Line 2482  Internet-Draft       LinuxSampler Contro Line 3014  Internet-Draft       LinuxSampler Contro
3014    
3015        SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type>        SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type>
3016    
3017     Where <midi-input-type> is currently only "ALSA" and     Where <midi-input-type> is currently only "ALSA" and <sampler-
3018     <sampler-channel> is the respective sampler channel number.     channel> is the respective sampler channel number.
3019    
3020    
3021    
3022    
3023    Schoenebeck               Expires May 29, 2007                 [Page 54]
3024    
3025    Internet-Draft        LinuxSampler Control Protocol        November 2006
3026    
3027    
3028     Possible Answers:     Possible Answers:
3029    
3030        "OK" -        "OK" -
3031    
3032           on success           on success
3033    
3034        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3035    
3036           if MIDI input type was set, but there are noteworthy issue(s)           if MIDI input type was set, but there are noteworthy issue(s)
3037           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3038           message           message
3039    
3040        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3041    
3042           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3043           error message           error message
3044    
# Line 2501  Internet-Draft       LinuxSampler Contro Line 3046  Internet-Draft       LinuxSampler Contro
3046    
3047    
3048    
3049  5.4.19  Setting MIDI input port  6.4.19.  Setting MIDI input port
3050    
3051     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
3052     channel by sending the following command:     channel by sending the following command:
# Line 2513  Internet-Draft       LinuxSampler Contro Line 3058  Internet-Draft       LinuxSampler Contro
3058    
3059     Possible Answers:     Possible Answers:
3060    
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 45]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
3061        "OK" -        "OK" -
3062    
3063           on success           on success
3064    
3065        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3066    
3067           if MIDI input port was set, but there are noteworthy issue(s)           if MIDI input port was set, but there are noteworthy issue(s)
3068           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3069           message           message
3070    
3071        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3072    
3073           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3074           error messag           error message
3075    
3076    
3077    
3078    
3079    Schoenebeck               Expires May 29, 2007                 [Page 55]
3080    
3081    Internet-Draft        LinuxSampler Control Protocol        November 2006
3082    
3083    
3084     Examples:     Examples:
3085    
3086    
3087    
3088  5.4.20  Setting MIDI input channel  6.4.20.  Setting MIDI input channel
3089    
3090     The front-end can alter the MIDI channel a sampler channel should     The front-end can alter the MIDI channel a sampler channel should
3091     listen to by sending the following command:     listen to by sending the following command:
# Line 2549  Internet-Draft       LinuxSampler Contro Line 3099  Internet-Draft       LinuxSampler Contro
3099     Possible Answers:     Possible Answers:
3100    
3101        "OK" -        "OK" -
3102    
3103           on success           on success
3104    
3105        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3106    
3107           if MIDI input channel was set, but there are noteworthy           if MIDI input channel was set, but there are noteworthy
3108           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
3109           warning message           warning message
3110    
3111        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3112    
3113           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3114           error message           error message
3115    
# Line 2562  Internet-Draft       LinuxSampler Contro Line 3117  Internet-Draft       LinuxSampler Contro
3117    
3118    
3119    
3120  5.4.21  Setting channel volume  6.4.21.  Setting channel volume
3121    
3122     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
3123     the following command:     the following command:
3124    
3125        SET CHANNEL VOLUME <sampler-channel> <volume>        SET CHANNEL VOLUME <sampler-channel> <volume>
3126    
3127       Where <volume> is an optionally dotted positive number (a value
3128       smaller than 1.0 means attenuation, whereas a value greater than 1.0
3129       means amplification) and <sampler-channel> defines the sampler
3130       channel where this volume factor should be set.
3131    
3132    
3133    
3134    
3135  Schoenebeck             Expires November 7, 2005               [Page 46]  Schoenebeck               Expires May 29, 2007                 [Page 56]
3136    
3137  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
   
3138    
    Where <volume> is an optionally dotted positive number (a value  
    smaller than 1.0 means attenuation, whereas a value greater than 1.0  
    means amplification) and <sampler-channel> defines the sampler  
    channel where this volume factor should be set.  
3139    
3140     Possible Answers:     Possible Answers:
3141    
3142        "OK" -        "OK" -
3143    
3144           on success           on success
3145    
3146        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3147    
3148           if channel volume was set, but there are noteworthy issue(s)           if channel volume was set, but there are noteworthy issue(s)
3149           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3150           message           message
3151    
3152          "ERR:<error-code>:<error-message>" -
3153    
3154             in case it failed, providing an appropriate error code and
3155             error message
3156    
3157       Examples:
3158    
3159    
3160    
3161    6.4.22.  Muting a sampler channel
3162    
3163       The front-end can mute/unmute a specific sampler channel by sending
3164       the following command:
3165    
3166          SET CHANNEL MUTE <sampler-channel> <mute>
3167    
3168       Where <sampler-channel> is the respective sampler channel number as
3169       returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
3170       (Section 6.4.4) command and <mute> should be replaced either by "1"
3171       to mute the channel or "0" to unmute the channel.
3172    
3173       Possible Answers:
3174    
3175          "OK" -
3176    
3177             on success
3178    
3179          "WRN:<warning-code>:<warning-message>" -
3180    
3181             if the channel was muted/unmuted, but there are noteworthy
3182             issue(s) related, providing an appropriate warning code and
3183             warning message
3184    
3185          "ERR:<error-code>:<error-message>" -
3186    
3187    
3188    
3189    
3190    
3191    Schoenebeck               Expires May 29, 2007                 [Page 57]
3192    
3193    Internet-Draft        LinuxSampler Control Protocol        November 2006
3194    
3195    
3196             in case it failed, providing an appropriate error code and
3197             error message
3198    
3199       Examples:
3200    
3201    
3202    
3203    6.4.23.  Soloing a sampler channel
3204    
3205       The front-end can solo/unsolo a specific sampler channel by sending
3206       the following command:
3207    
3208          SET CHANNEL SOLO <sampler-channel> <solo>
3209    
3210       Where <sampler-channel> is the respective sampler channel number as
3211       returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
3212       (Section 6.4.4) command and <solo> should be replaced either by "1"
3213       to solo the channel or "0" to unsolo the channel.
3214    
3215       Possible Answers:
3216    
3217          "OK" -
3218    
3219             on success
3220    
3221          "WRN:<warning-code>:<warning-message>" -
3222    
3223             if the channel was soloed/unsoloed, but there are noteworthy
3224             issue(s) related, providing an appropriate warning code and
3225             warning message
3226    
3227        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3228    
3229           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3230           error message           error message
3231    
# Line 2598  Internet-Draft       LinuxSampler Contro Line 3233  Internet-Draft       LinuxSampler Contro
3233    
3234    
3235    
3236  5.4.22  Resetting a sampler channel  6.4.24.  Resetting a sampler channel
3237    
3238     The front-end can reset a particular sampler channel by sending the     The front-end can reset a particular sampler channel by sending the
3239     following command:     following command:
# Line 2606  Internet-Draft       LinuxSampler Contro Line 3241  Internet-Draft       LinuxSampler Contro
3241        RESET CHANNEL <sampler-channel>        RESET CHANNEL <sampler-channel>
3242    
3243     Where <sampler-channel> defines the sampler channel to be reset.     Where <sampler-channel> defines the sampler channel to be reset.
3244    
3245    
3246    
3247    Schoenebeck               Expires May 29, 2007                 [Page 58]
3248    
3249    Internet-Draft        LinuxSampler Control Protocol        November 2006
3250    
3251    
3252     This will cause the engine on that sampler channel, its voices and     This will cause the engine on that sampler channel, its voices and
3253     eventually disk streams and all control and status variables to be     eventually disk streams and all control and status variables to be
3254     reset.     reset.
# Line 2613  Internet-Draft       LinuxSampler Contro Line 3256  Internet-Draft       LinuxSampler Contro
3256     Possible Answers:     Possible Answers:
3257    
3258        "OK" -        "OK" -
3259    
3260           on success           on success
3261    
3262        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3263    
3264           if channel was reset, but there are noteworthy issue(s)           if channel was reset, but there are noteworthy issue(s)
3265           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3266           message           message
3267    
3268        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3269    
3270           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3271           error message           error message
3272    
# Line 2626  Internet-Draft       LinuxSampler Contro Line 3274  Internet-Draft       LinuxSampler Contro
3274    
3275    
3276    
3277    6.5.  Controlling connection
   
 Schoenebeck             Expires November 7, 2005               [Page 47]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
   
   
 5.5  Controlling connection  
3278    
3279     The following commands are used to control the connection to     The following commands are used to control the connection to
3280     LinuxSampler.     LinuxSampler.
3281    
3282  5.5.1  Register front-end for receiving event messages  6.5.1.  Register front-end for receiving event messages
3283    
3284     The front-end can register itself to the LinuxSampler application to     The front-end can register itself to the LinuxSampler application to
3285     be informed about noteworthy events by sending this command:     be informed about noteworthy events by sending this command:
# Line 2653  Internet-Draft       LinuxSampler Contro Line 3292  Internet-Draft       LinuxSampler Contro
3292     Possible Answers:     Possible Answers:
3293    
3294        "OK" -        "OK" -
3295    
3296           on success           on success
3297    
3298    
3299    
3300    
3301    
3302    
3303    Schoenebeck               Expires May 29, 2007                 [Page 59]
3304    
3305    Internet-Draft        LinuxSampler Control Protocol        November 2006
3306    
3307    
3308        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3309    
3310           if registration succeeded, but there are noteworthy issue(s)           if registration succeeded, but there are noteworthy issue(s)
3311           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3312           message           message
3313    
3314        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3315    
3316           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3317           error message           error message
3318    
# Line 2666  Internet-Draft       LinuxSampler Contro Line 3320  Internet-Draft       LinuxSampler Contro
3320    
3321    
3322    
3323  5.5.2  Unregister front-end for not receiving event messages  6.5.2.  Unregister front-end for not receiving event messages
3324    
3325     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
3326     event messages anymore by sending the following command:     event messages anymore by sending the following command:
# Line 2679  Internet-Draft       LinuxSampler Contro Line 3333  Internet-Draft       LinuxSampler Contro
3333     Possible Answers:     Possible Answers:
3334    
3335        "OK" -        "OK" -
          on success  
   
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 48]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
3336    
3337             on success
3338    
3339        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3340    
3341           if unregistration succeeded, but there are noteworthy issue(s)           if unregistration 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 2701  Internet-Draft       LinuxSampler Contro Line 3351  Internet-Draft       LinuxSampler Contro
3351    
3352    
3353    
3354  5.5.3  Enable or disable echo of commands  
3355    
3356    
3357    
3358    
3359    Schoenebeck               Expires May 29, 2007                 [Page 60]
3360    
3361    Internet-Draft        LinuxSampler Control Protocol        November 2006
3362    
3363    
3364    6.5.3.  Enable or disable echo of commands
3365    
3366     To enable or disable back sending of commands to the client the     To enable or disable back sending of commands to the client the
3367     following command can be used:     following command can be used:
# Line 2718  Internet-Draft       LinuxSampler Contro Line 3378  Internet-Draft       LinuxSampler Contro
3378     Possible Answers:     Possible Answers:
3379    
3380        "OK" -        "OK" -
3381    
3382           usually           usually
3383    
3384        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3385           on syntax error, e.g.  non boolean value  
3386             on syntax error, e.g. non boolean value
3387    
3388     Examples:     Examples:
3389    
3390    
3391    
3392  5.5.4  Close client connection  6.5.4.  Close client connection
3393    
3394     The client can close its network connection to LinuxSampler by     The client can close its network connection to LinuxSampler by
3395     sending the following command:     sending the following command:
# Line 2736  Internet-Draft       LinuxSampler Contro Line 3399  Internet-Draft       LinuxSampler Contro
3399     This is probably more interesting for manual telnet connections to     This is probably more interesting for manual telnet connections to
3400     LinuxSampler than really useful for a front-end implementation.     LinuxSampler than really useful for a front-end implementation.
3401    
3402    6.6.  Global commands
3403    
3404       The following commands have global impact on the sampler.
3405    
3406    6.6.1.  Current number of active voices
3407    
3408       The front-end can ask for the current number of active voices on the
3409       sampler by sending the following command:
3410    
3411  Schoenebeck             Expires November 7, 2005               [Page 49]  
3412    
3413    
3414    
3415    Schoenebeck               Expires May 29, 2007                 [Page 61]
3416    
3417  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3418    
3419    
3420  5.6  Global commands        GET TOTAL_VOICE_COUNT
3421    
3422     The following commands have global impact on the sampler.     Possible Answers:
3423    
3424          LinuxSampler will answer by returning the number of all active
3425          voices on the sampler.
3426    
3427    6.6.2.  Maximum amount of active voices
3428    
3429       The front-end can ask for the maximum number of active voices by
3430       sending the following command:
3431    
3432  5.6.1  Reset sampler        GET TOTAL_VOICE_COUNT_MAX
3433    
3434       Possible Answers:
3435    
3436          LinuxSampler will answer by returning the maximum number of active
3437          voices.
3438    
3439    6.6.3.  Reset sampler
3440    
3441     The front-end can reset the whole sampler by sending the following     The front-end can reset the whole sampler by sending the following
3442     command:     command:
# Line 2759  Internet-Draft       LinuxSampler Contro Line 3446  Internet-Draft       LinuxSampler Contro
3446     Possible Answers:     Possible Answers:
3447    
3448        "OK" -        "OK" -
3449    
3450           always           always
3451    
3452     Examples:     Examples:
3453    
3454    
3455    
3456    6.6.4.  General sampler informations
3457    
3458       The client can ask for general informations about the LinuxSampler
3459       instance by sending the following command:
3460    
3461          GET SERVER INFO
3462    
3463       Possible Answers:
3464    
3465          LinuxSampler will answer by sending a <CRLF> separated list.  Each
3466          answer line begins with the information category name followed by
3467          a colon and then a space character <SP> and finally the info
3468    
3469    
3470    
3471    Schoenebeck               Expires May 29, 2007                 [Page 62]
3472    
3473    Internet-Draft        LinuxSampler Control Protocol        November 2006
3474    
3475    
3476          character string to that information category.  At the moment the
3477          following categories are defined:
3478    
3479    
3480    
3481             DESCRIPTION -
3482    
3483                arbitrary textual description about the sampler
3484    
3485             VERSION -
3486    
3487                version of the sampler
3488    
3489             PROTOCOL_VERSION -
3490    
3491                version of the LSCP specification the sampler complies with
3492                (see Section 2 for details)
3493    
3494       The mentioned fields above don't have to be in particular order.
3495       Other fields might be added in future.
3496    
3497    
3498    
# Line 2796  Internet-Draft       LinuxSampler Contro Line 3522  Internet-Draft       LinuxSampler Contro
3522    
3523    
3524    
3525  Schoenebeck             Expires November 7, 2005               [Page 50]  
3526    
3527    Schoenebeck               Expires May 29, 2007                 [Page 63]
3528    
3529    Internet-Draft        LinuxSampler Control Protocol        November 2006
3530    
3531    
3532    7.  Command Syntax
3533    
3534       The grammar of the control protocol as descibed in Section 6 is
3535       defined below using Backus-Naur Form (BNF as described in [RFC2234])
3536       where applicable.
3537    
3538       input =
3539    
3540          line LF
3541    
3542          / line CR LF
3543    
3544       line =
3545    
3546          /* epsilon (empty line ignored) */
3547    
3548          / comment
3549    
3550          / command
3551    
3552          / error
3553    
3554       comment =
3555    
3556          '#'
3557    
3558          / comment '#'
3559    
3560          / comment SP
3561    
3562          / comment number
3563    
3564          / comment string
3565    
3566       command =
3567    
3568          ADD SP CHANNEL
3569    
3570          / GET SP get_instruction
3571    
3572          / CREATE SP create_instruction
3573    
3574          / DESTROY SP destroy_instruction
3575    
3576          / LIST SP list_instruction
3577    
3578          / LOAD SP load_instruction
3579    
3580    
3581    
3582    
3583    Schoenebeck               Expires May 29, 2007                 [Page 64]
3584    
3585    Internet-Draft        LinuxSampler Control Protocol        November 2006
3586    
3587    
3588          / REMOVE SP CHANNEL SP sampler_channel
3589    
3590          / SET SP set_instruction
3591    
3592          / SUBSCRIBE SP subscribe_event
3593    
3594          / UNSUBSCRIBE SP unsubscribe_event
3595    
3596          / SELECT SP text
3597    
3598          / RESET SP CHANNEL SP sampler_channel
3599    
3600          / RESET
3601    
3602          / QUIT
3603    
3604       subscribe_event =
3605    
3606          CHANNEL_COUNT
3607    
3608          / VOICE_COUNT
3609    
3610          / STREAM_COUNT
3611    
3612          / BUFFER_FILL
3613    
3614          / CHANNEL_INFO
3615    
3616          / MISCELLANEOUS
3617    
3618          / TOTAL_VOICE_COUNT
3619    
3620       unsubscribe_event =
3621    
3622          CHANNEL_COUNT
3623    
3624          / VOICE_COUNT
3625    
3626          / STREAM_COUNT
3627    
3628          / BUFFER_FILL
3629    
3630          / CHANNEL_INFO
3631    
3632          / MISCELLANEOUS
3633    
3634          / TOTAL_VOICE_COUNT
3635    
3636    
3637    
3638    
3639    Schoenebeck               Expires May 29, 2007                 [Page 65]
3640    
3641  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3642    
3643    
3644       get_instruction =
3645    
3646          AVAILABLE_ENGINES
3647    
3648          / AVAILABLE_MIDI_INPUT_DRIVERS
3649    
3650          / MIDI_INPUT_DRIVER SP INFO SP string
3651    
3652  6.  Command Syntax        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string
3653    
3654     TODO: will soon automatically included from src/network/lscp.y,        / MIDI_INPUT_DRIVER_PARAMETER SP INFO SP string SP string SP
3655     meanwhile have a look at that file to get the exact definition of the        key_val_list
    command syntax.  
3656    
3657          / AVAILABLE_AUDIO_OUTPUT_DRIVERS
3658    
3659          / AUDIO_OUTPUT_DRIVER SP INFO SP string
3660    
3661          / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
3662    
3663          / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP
3664          key_val_list
3665    
3666          / AUDIO_OUTPUT_DEVICES
3667    
3668          / MIDI_INPUT_DEVICES
3669    
3670          / AUDIO_OUTPUT_DEVICE SP INFO SP number
3671    
3672          / MIDI_INPUT_DEVICE SP INFO SP number
3673    
3674          / MIDI_INPUT_PORT SP INFO SP number SP number
3675    
3676          / MIDI_INPUT_PORT_PARAMETER SP INFO SP number SP number SP string
3677    
3678          / AUDIO_OUTPUT_CHANNEL SP INFO SP number SP number
3679    
3680          / AUDIO_OUTPUT_CHANNEL_PARAMETER SP INFO SP number SP number SP
3681          string
3682    
3683          / CHANNELS
3684    
3685          / CHANNEL SP INFO SP sampler_channel
3686    
3687          / CHANNEL SP BUFFER_FILL SP buffer_size_type SP sampler_channel
3688    
3689          / CHANNEL SP STREAM_COUNT SP sampler_channel
3690    
3691    
3692    
3693    
3694    
3695    Schoenebeck               Expires May 29, 2007                 [Page 66]
3696    
3697    Internet-Draft        LinuxSampler Control Protocol        November 2006
3698    
3699    
3700          / CHANNEL SP VOICE_COUNT SP sampler_channel
3701    
3702          / ENGINE SP INFO SP engine_name
3703    
3704          / SERVER SP INFO
3705    
3706          / TOTAL_VOICE_COUNT
3707    
3708          / TOTAL_VOICE_COUNT_MAX
3709    
3710       set_instruction =
3711    
3712          AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='
3713          param_val_list
3714    
3715          / AUDIO_OUTPUT_CHANNEL_PARAMETER SP number SP number SP string '='
3716          param_val_list
3717    
3718          / MIDI_INPUT_DEVICE_PARAMETER SP number SP string '='
3719          param_val_list
3720    
3721          / MIDI_INPUT_PORT_PARAMETER SP number SP number SP string '='
3722          param_val_list
3723    
3724          / CHANNEL SP set_chan_instruction
3725    
3726          / ECHO SP boolean
3727    
3728       create_instruction =
3729    
3730          AUDIO_OUTPUT_DEVICE SP string SP key_val_list
3731    
3732          / AUDIO_OUTPUT_DEVICE SP string
3733    
3734          / MIDI_INPUT_DEVICE SP string SP key_val_list
3735    
3736          / MIDI_INPUT_DEVICE SP string
3737    
3738       destroy_instruction =
3739    
3740          AUDIO_OUTPUT_DEVICE SP number
3741    
3742          / MIDI_INPUT_DEVICE SP number
3743    
3744       load_instruction =
3745    
3746          INSTRUMENT SP load_instr_args
3747    
3748    
3749    
3750    
3751  Schoenebeck             Expires November 7, 2005               [Page 51]  Schoenebeck               Expires May 29, 2007                 [Page 67]
3752    
3753  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3754    
3755    
3756          / ENGINE SP load_engine_args
3757    
3758       set_chan_instruction =
3759    
3760          AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
3761    
3762          / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index
3763          SP audio_channel_index
3764    
3765          / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
3766    
3767          / MIDI_INPUT SP sampler_channel SP device_index SP
3768          midi_input_port_index SP midi_input_channel_index
3769    
3770          / MIDI_INPUT_DEVICE SP sampler_channel SP device_index
3771    
3772          / MIDI_INPUT_PORT SP sampler_channel SP midi_input_port_index
3773    
3774          / MIDI_INPUT_CHANNEL SP sampler_channel SP
3775          midi_input_channel_index
3776    
3777          / MIDI_INPUT_TYPE SP sampler_channel SP midi_input_type_name
3778    
3779          / VOLUME SP sampler_channel SP volume_value
3780    
3781          / MUTE SP sampler_channel SP boolean
3782    
3783  7.  Events        / SOLO SP sampler_channel SP boolean
3784    
3785       key_val_list =
3786    
3787          string '=' param_val_list
3788    
3789          / key_val_list SP string '=' param_val_list
3790    
3791       buffer_size_type =
3792    
3793          BYTES
3794    
3795          / PERCENTAGE
3796    
3797       list_instruction =
3798    
3799          AUDIO_OUTPUT_DEVICES
3800    
3801          / MIDI_INPUT_DEVICES
3802    
3803    
3804    
3805    
3806    
3807    Schoenebeck               Expires May 29, 2007                 [Page 68]
3808    
3809    Internet-Draft        LinuxSampler Control Protocol        November 2006
3810    
3811    
3812          / CHANNELS
3813    
3814          / AVAILABLE_ENGINES
3815    
3816          / AVAILABLE_MIDI_INPUT_DRIVERS
3817    
3818          / AVAILABLE_AUDIO_OUTPUT_DRIVERS
3819    
3820       load_instr_args =
3821    
3822          filename SP instrument_index SP sampler_channel
3823    
3824          / NON_MODAL SP filename SP instrument_index SP sampler_channel
3825    
3826       load_engine_args =
3827    
3828          engine_name SP sampler_channel
3829    
3830       device_index =
3831    
3832          number
3833    
3834       audio_channel_index =
3835    
3836          number
3837    
3838       audio_output_type_name =
3839    
3840          string
3841    
3842       midi_input_port_index =
3843    
3844          number
3845    
3846       midi_input_channel_index =
3847    
3848          number
3849    
3850          / ALL
3851    
3852       midi_input_type_name =
3853    
3854          string
3855    
3856       volume_value =
3857    
3858          dotnum
3859    
3860    
3861    
3862    
3863    Schoenebeck               Expires May 29, 2007                 [Page 69]
3864    
3865    Internet-Draft        LinuxSampler Control Protocol        November 2006
3866    
3867    
3868          / number
3869    
3870       sampler_channel =
3871    
3872          number
3873    
3874       instrument_index =
3875    
3876          number
3877    
3878       engine_name =
3879    
3880          string
3881    
3882       filename =
3883    
3884          stringval
3885    
3886       param_val_list =
3887    
3888          param_val
3889    
3890          / param_val_list','param_val
3891    
3892       param_val =
3893    
3894          string
3895    
3896          / stringval
3897    
3898          / number
3899    
3900          / dotnum
3901    
3902    
3903    
3904    
3905    
3906    
3907    
3908    
3909    
3910    
3911    
3912    
3913    
3914    
3915    
3916    
3917    
3918    
3919    Schoenebeck               Expires May 29, 2007                 [Page 70]
3920    
3921    Internet-Draft        LinuxSampler Control Protocol        November 2006
3922    
3923    
3924    8.  Events
3925    
3926     This chapter will describe all currently defined events supported by     This chapter will describe all currently defined events supported by
3927     LinuxSampler.     LinuxSampler.
3928    
3929  7.1  Number of sampler channels changed  8.1.  Number of sampler channels changed
3930    
3931     Client may want to be notified when the total number of channels on     Client may want to be notified when the total number of channels on
3932     the back-end changes by issuing the following command:     the back-end changes by issuing the following command:
3933    
3934        SUBSCRIBE CHANNELS        SUBSCRIBE CHANNEL_COUNT
3935    
3936     Server will start sending the following notification messages:     Server will start sending the following notification messages:
3937    
3938        "NOTIFY:CHANNELS:<channels>"        "NOTIFY:CHANNEL_COUNT:<channels>"
3939    
3940     where <channels> will be replaced by the new number of sampler     where <channels> will be replaced by the new number of sampler
3941     channels.     channels.
3942    
3943  7.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 2891  Internet-Draft       LinuxSampler Contro Line 3955  Internet-Draft       LinuxSampler Contro
3955     voice count change occurred and <voices> by the new number of active     voice count change occurred and <voices> by the new number of active
3956     voices on that channel.     voices on that channel.
3957    
3958  7.3  Number of active disk streams changed  8.3.  Number of active disk streams changed
3959    
3960     Client may want to be notified when the number of streams on the     Client may want to be notified when the number of streams on the
3961     back-end changes by issuing the following command: SUBSCRIBE     back-end changes by issuing the following command: SUBSCRIBE
# Line 2908  Internet-Draft       LinuxSampler Contro Line 3972  Internet-Draft       LinuxSampler Contro
3972    
3973    
3974    
3975  Schoenebeck             Expires November 7, 2005               [Page 52]  Schoenebeck               Expires May 29, 2007                 [Page 71]
3976    
3977  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3978    
3979    
3980     active disk streams on that channel.     active disk streams on that channel.
3981    
3982  7.4  Disk stream buffer fill state changed  8.4.  Disk stream buffer fill state changed
3983    
3984     Client may want to be notified when the buffer fill state of a disk     Client may want to be notified when the buffer fill state of a disk
3985     stream on the back-end changes by issuing the following command:     stream on the back-end changes by issuing the following command:
# Line 2928  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     5.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE" (Section     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"
3997     5.4.13) command was issued on this channel.     (Section 6.4.13) command was issued on this channel.
3998    
3999  7.5  Channel information changed  8.5.  Channel information changed
4000    
4001     Client may want to be notified when changes were made to sampler     Client may want to be notified when changes were made to sampler
4002     channels on the back-end changes by issuing the following command:     channels on the back-end by issuing the following command:
4003    
4004        SUBSCRIBE INFO        SUBSCRIBE CHANNEL_INFO
4005    
4006     Server will start sending the following notification messages:     Server will start sending the following notification messages:
4007    
4008        "NOTIFY:INFO:<sampler-channel>"        "NOTIFY:CHANNEL_INFO:<sampler-channel>"
4009    
4010     where <sampler-channel> will be replaced by the sampler channel the     where <sampler-channel> will be replaced by the sampler channel the
4011     channel info change occurred.  The front-end will have to send the     channel info change occurred.  The front-end will have to send the
# Line 2950  Internet-Draft       LinuxSampler Contro Line 4014  Internet-Draft       LinuxSampler Contro
4014     rather than real time events happening on the server, it is believed     rather than real time events happening on the server, it is believed
4015     that an empty notification message is sufficient here.     that an empty notification message is sufficient here.
4016    
4017  7.6  Miscellaneous and debugging events  8.6.  Total number of active voices changed
4018    
4019     Client may want to be notified of miscellaneous and debugging events     Client may want to be notified when the total number of voices on the
4020     occurring at the server by issuing the following command:     back-end changes by issuing the following command:
4021    
4022        SUBSCRIBE MISCELLANEOUS        SUBSCRIBE TOTAL_VOICE_COUNT
4023    
4024     Server will start sending the following notification messages:     Server will start sending the following notification messages:
4025    
       "NOTIFY:MISCELLANEOUS:<string>"  
   
   
   
   
 Schoenebeck             Expires November 7, 2005               [Page 53]  
   
 Internet-Draft       LinuxSampler Control Protocol              May 2005  
   
   
    where <string> will be replaced by whatever data server wants to send  
    to the client.  Client MAY display this data to the user AS IS to  
    facilitate debugging.  
   
   
4026    
4027    
4028    
4029    
4030    
4031    Schoenebeck               Expires May 29, 2007                 [Page 72]
4032    
4033    Internet-Draft        LinuxSampler Control Protocol        November 2006
4034    
4035    
4036          "NOTIFY:TOTAL_VOICE_COUNT:<voices>
4037    
4038       where <voices> will be replaced by the new number of all currently
4039       active voices.
4040    
4041    8.7.  Miscellaneous and debugging events
4042    
4043       Client may want to be notified of miscellaneous and debugging events
4044       occurring at the server by issuing the following command:
4045    
4046          SUBSCRIBE MISCELLANEOUS
4047    
4048       Server will start sending the following notification messages:
4049    
4050          "NOTIFY:MISCELLANEOUS:<string>"
4051    
4052       where <string> will be replaced by whatever data server wants to send
4053       to the client.  Client MAY display this data to the user AS IS to
4054       facilitate debugging.
4055    
4056    
4057    
# Line 3020  Internet-Draft       LinuxSampler Contro Line 4084  Internet-Draft       LinuxSampler Contro
4084    
4085    
4086    
4087  Schoenebeck             Expires November 7, 2005               [Page 54]  Schoenebeck               Expires May 29, 2007                 [Page 73]
4088    
4089  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4090    
4091    
4092  8.  Security Considerations  9.  Security Considerations
4093    
4094     As there is so far no method of authentication and authorization     As there is so far no method of authentication and authorization
4095     defined and so not required for a client applications to succeed to     defined and so not required for a client applications to succeed to
# Line 3076  Internet-Draft       LinuxSampler Contro Line 4140  Internet-Draft       LinuxSampler Contro
4140    
4141    
4142    
4143  Schoenebeck             Expires November 7, 2005               [Page 55]  Schoenebeck               Expires May 29, 2007                 [Page 74]
4144    
4145  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4146    
4147    
4148  9.  Acknowledgments  10.  Acknowledgments
4149    
4150     This document has benefited greatly from the comments of the     This document has benefited greatly from the comments of the
4151     following people, discussed on the LinuxSampler developer's mailing     following people, discussed on the LinuxSampler developer's mailing
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  10  References        Grigor Iliev
4161    
4162    
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", BCP 14, RFC 2119, March 1997.                Requirement Levels", RFC 2119, 1997.
4167    
4168       [RFC2234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
4169                  Specifications", RFC 2234, 1997.
4170    
4171       [RFC793]   Defense Advanced Research Projects Agency, "TRANSMISSION
4172                  CONTROL PROTOCOL", RFC 793, 1981.
4173    
4174    
4175    
4176    
4177    
4178    
4179    
4180    
4181    
4182    
4183    
4184    
4185    
4186    
4187    
4188    
4189    
4190    
4191    
4192    
4193    
4194    
4195    
4196    
4197    
4198    
4199    Schoenebeck               Expires May 29, 2007                 [Page 75]
4200    
4201    Internet-Draft        LinuxSampler Control Protocol        November 2006
4202    
4203    
4204  Author's Address  Author's Address
# Line 3105  Author's Address Line 4209  Author's Address
4209     74081 Heilbronn     74081 Heilbronn
4210     Germany     Germany
4211    
4212     EMail: schoenebeck at software minus engineering dot org     Email: schoenebeck at software minus engineering dot org
4213    
4214    
4215    
4216    
4217    
4218    
4219    
4220    
4221    
4222    
4223    
4224    
4225    
4226    
4227    
4228    
4229    
4230    
4231    
# Line 3132  Author's Address Line 4252  Author's Address
4252    
4253    
4254    
4255  Schoenebeck             Expires November 7, 2005               [Page 56]  Schoenebeck               Expires May 29, 2007                 [Page 76]
4256    
4257  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4258    
4259    
4260  Intellectual Property Statement  Intellectual Property Statement
# Line 3146  Intellectual Property Statement Line 4266  Intellectual Property Statement
4266     might or might not be available; neither does it represent that it     might or might not be available; neither does it represent that it
4267     has made any effort to identify any such rights.  Information on the     has made any effort to identify any such rights.  Information on the
4268     IETF's procedures with respect to rights in standards-track and     IETF's procedures with respect to rights in standards-track and
4269     standards-related documentation can be found in BCP-11.  Copies of     standards-related documentation can be found in BCP 11.  Copies of
4270     claims of rights made available for publication and any assurances of     claims of rights made available for publication and any assurances of
4271     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
4272     obtain a general license or permission for the use of such     obtain a general license or permission for the use of such
# Line 3162  Intellectual Property Statement Line 4282  Intellectual Property Statement
4282    
4283  Full Copyright Statement  Full Copyright Statement
4284    
4285     Copyright (C) The Internet Society (2005).  All Rights Reserved.     Copyright (C) The Internet Society (2006).  All Rights Reserved.
4286    
4287     This document and translations of it may be copied and furnished to     This document and translations of it may be copied and furnished to
4288     others, and derivative works that comment on or otherwise explain it     others, and derivative works that comment on or otherwise explain it
# Line 3188  Full Copyright Statement Line 4308  Full Copyright Statement
4308    
4309    
4310    
4311  Schoenebeck             Expires November 7, 2005               [Page 57]  Schoenebeck               Expires May 29, 2007                 [Page 77]
4312    
4313  Internet-Draft       LinuxSampler Control Protocol              May 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4314    
4315    
4316     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
# Line 3244  Acknowledgment Line 4364  Acknowledgment
4364    
4365    
4366    
4367  Schoenebeck             Expires November 7, 2005               [Page 58]  Schoenebeck               Expires May 29, 2007                 [Page 78]
4368    

Legend:
Removed from v.542  
changed lines
  Added in v.940

  ViewVC Help
Powered by ViewVC