/[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 709 by schoenebeck, Thu Jul 21 09:36:52 2005 UTC revision 945 by schoenebeck, Sun Nov 26 16:39:49 2006 UTC
# Line 3  Line 3 
3    
4  LinuxSampler Developers                                   C. Schoenebeck  LinuxSampler Developers                                   C. Schoenebeck
5  Internet-Draft                           Interessengemeinschaft Software  Internet-Draft                           Interessengemeinschaft Software
6  Expires: January 22, 2006                              Engineering e. V.  Expires: May 30, 2007                                  Engineering e. V.
7                                                             July 21, 2005                                                         November 26, 2006
8    
9    
10                       LinuxSampler Control Protocol                       LinuxSampler Control Protocol
11                                  LSCP 1.1                                  LSCP 1.2
12    
13  Status of this Memo  Status of this Memo
14    
# Line 31  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 January 22, 2006.     This Internet-Draft will expire on May 30, 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    
# Line 52  Abstract Line 52  Abstract
52    
53    
54    
55  Schoenebeck             Expires January 22, 2006                [Page 1]  Schoenebeck               Expires May 30, 2007                  [Page 1]
56    
57  Internet-Draft        LinuxSampler Control Protocol            July 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  . . . . . . . . . . . . . . . . . . . .  5
63     2.   Versioning of this specification . . . . . . . . . . . . . .   5     2.  Versioning of this specification . . . . . . . . . . . . . . .  6
64     3.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   6     3.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  7
65     4.   Focus of this protocol . . . . . . . . . . . . . . . . . . .   7     4.  Focus of this protocol . . . . . . . . . . . . . . . . . . . .  8
66     5.   Communication Overview . . . . . . . . . . . . . . . . . . .   8     5.  Communication Overview . . . . . . . . . . . . . . . . . . . .  9
67       5.1  Request/response communication method  . . . . . . . . . .   8       5.1.  Request/response communication method  . . . . . . . . . .  9
68         5.1.1  Result format  . . . . . . . . . . . . . . . . . . . .   9         5.1.1.  Result format  . . . . . . . . . . . . . . . . . . . . 10
69       5.2  Subscribe/notify communication method  . . . . . . . . . .  11       5.2.  Subscribe/notify communication method  . . . . . . . . . . 12
70     6.   Description for control commands . . . . . . . . . . . . . .  13     6.  Description for control commands . . . . . . . . . . . . . . . 14
71       6.1  Ignored lines and comments . . . . . . . . . . . . . . . .  13       6.1.  Ignored lines and comments . . . . . . . . . . . . . . . . 14
72       6.2  Configuring audio drivers  . . . . . . . . . . . . . . . .  13       6.2.  Configuring audio drivers  . . . . . . . . . . . . . . . . 14
73         6.2.1  Getting amount of available audio output drivers . . .  13         6.2.1.  Getting amount of available audio output drivers . . . 14
74         6.2.2  Getting all available audio output drivers . . . . . .  14         6.2.2.  Getting all available audio output drivers . . . . . . 15
75         6.2.3  Getting information about a specific audio output         6.2.3.  Getting information about a specific audio output
76                driver . . . . . . . . . . . . . . . . . . . . . . . .  14                 driver . . . . . . . . . . . . . . . . . . . . . . . . 15
77         6.2.4  Getting information about specific audio output         6.2.4.  Getting information about specific audio output
78                driver parameter . . . . . . . . . . . . . . . . . . .  15                 driver parameter . . . . . . . . . . . . . . . . . . . 16
79         6.2.5  Creating an audio output device  . . . . . . . . . . .  19         6.2.5.  Creating an audio output device  . . . . . . . . . . . 20
80         6.2.6  Destroying an audio output device  . . . . . . . . . .  20         6.2.6.  Destroying an audio output device  . . . . . . . . . . 21
81         6.2.7  Getting all created audio output device count  . . . .  21         6.2.7.  Getting all created audio output device count  . . . . 22
82         6.2.8  Getting all created audio output device list . . . . .  21         6.2.8.  Getting all created audio output device list . . . . . 22
83         6.2.9  Getting current settings of an audio output device . .  21         6.2.9.  Getting current settings of an audio output device . . 22
84         6.2.10   Changing settings of audio output devices  . . . . .  23         6.2.10. Changing settings of audio output devices  . . . . . . 24
85         6.2.11   Getting information about an audio channel . . . . .  24         6.2.11. Getting information about an audio channel . . . . . . 24
86         6.2.12   Getting information about specific audio channel         6.2.12. Getting information about specific audio channel
87                  parameter  . . . . . . . . . . . . . . . . . . . . .  25                 parameter  . . . . . . . . . . . . . . . . . . . . . . 26
88         6.2.13   Changing settings of audio output channels . . . . .  27         6.2.13. Changing settings of audio output channels . . . . . . 28
89       6.3  Configuring MIDI input drivers . . . . . . . . . . . . . .  28       6.3.  Configuring MIDI input drivers . . . . . . . . . . . . . . 29
90         6.3.1  Getting amount of available MIDI input drivers . . . .  29         6.3.1.  Getting amount of available MIDI input drivers . . . . 30
91         6.3.2  Getting all available MIDI input drivers . . . . . . .  29         6.3.2.  Getting all available MIDI input drivers . . . . . . . 30
92         6.3.3  Getting information about a specific MIDI input         6.3.3.  Getting information about a specific MIDI input
93                driver . . . . . . . . . . . . . . . . . . . . . . . .  30                 driver . . . . . . . . . . . . . . . . . . . . . . . . 30
94         6.3.4  Getting information about specific MIDI input         6.3.4.  Getting information about specific MIDI input
95                driver parameter . . . . . . . . . . . . . . . . . . .  31                 driver parameter . . . . . . . . . . . . . . . . . . . 31
96         6.3.5  Creating a MIDI input device . . . . . . . . . . . . .  33         6.3.5.  Creating a MIDI input device . . . . . . . . . . . . . 34
97         6.3.6  Destroying a MIDI input device . . . . . . . . . . . .  34         6.3.6.  Destroying a MIDI input device . . . . . . . . . . . . 35
98         6.3.7  Getting all created MIDI input device count  . . . . .  35         6.3.7.  Getting all created MIDI input device count  . . . . . 36
99         6.3.8  Getting all created MIDI input device list . . . . . .  35         6.3.8.  Getting all created MIDI input device list . . . . . . 36
100         6.3.9  Getting current settings of a MIDI input device  . . .  36         6.3.9.  Getting current settings of a MIDI input device  . . . 36
101         6.3.10   Changing settings of MIDI input devices  . . . . . .  37         6.3.10. Changing settings of MIDI input devices  . . . . . . . 38
102         6.3.11   Getting information about a MIDI port  . . . . . . .  38         6.3.11. Getting information about a MIDI port  . . . . . . . . 38
103         6.3.12   Getting information about specific MIDI port         6.3.12. Getting information about specific MIDI port
104                  parameter  . . . . . . . . . . . . . . . . . . . . .  38                 parameter  . . . . . . . . . . . . . . . . . . . . . . 39
105         6.3.13   Changing settings of MIDI input ports  . . . . . . .  40         6.3.13. Changing settings of MIDI input ports  . . . . . . . . 41
106       6.4  Configuring sampler channels . . . . . . . . . . . . . . .  41       6.4.  Configuring sampler channels . . . . . . . . . . . . . . . 42
107         6.4.1  Loading an instrument  . . . . . . . . . . . . . . . .  41         6.4.1.  Loading an instrument  . . . . . . . . . . . . . . . . 42
108    
109    
110    
111  Schoenebeck             Expires January 22, 2006                [Page 2]  Schoenebeck               Expires May 30, 2007                  [Page 2]
112    
113  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
114    
115    
116         6.4.2  Loading a sampler engine . . . . . . . . . . . . . . .  42         6.4.2.  Loading a sampler engine . . . . . . . . . . . . . . . 43
117         6.4.3  Getting all created sampler channel count  . . . . . .  43         6.4.3.  Getting all created sampler channel count  . . . . . . 44
118         6.4.4  Getting all created sampler channel list . . . . . . .  43         6.4.4.  Getting all created sampler channel list . . . . . . . 44
119         6.4.5  Adding a new sampler channel . . . . . . . . . . . . .  44         6.4.5.  Adding a new sampler channel . . . . . . . . . . . . . 44
120         6.4.6  Removing a sampler channel . . . . . . . . . . . . . .  45         6.4.6.  Removing a sampler channel . . . . . . . . . . . . . . 45
121         6.4.7  Getting amount of available engines  . . . . . . . . .  45         6.4.7.  Getting amount of available engines  . . . . . . . . . 46
122         6.4.8  Getting all available engines  . . . . . . . . . . . .  46         6.4.8.  Getting all available engines  . . . . . . . . . . . . 46
123         6.4.9  Getting information about an engine  . . . . . . . . .  46         6.4.9.  Getting information about an engine  . . . . . . . . . 47
124         6.4.10   Getting sampler channel information  . . . . . . . .  47         6.4.10. Getting sampler channel information  . . . . . . . . . 48
125         6.4.11   Current number of active voices  . . . . . . . . . .  50         6.4.11. Current number of active voices  . . . . . . . . . . . 51
126         6.4.12   Current number of active disk streams  . . . . . . .  50         6.4.12. Current number of active disk streams  . . . . . . . . 51
127         6.4.13   Current fill state of disk stream buffers  . . . . .  51         6.4.13. Current fill state of disk stream buffers  . . . . . . 51
128         6.4.14   Setting audio output device  . . . . . . . . . . . .  52         6.4.14. Setting audio output device  . . . . . . . . . . . . . 52
129         6.4.15   Setting audio output type  . . . . . . . . . . . . .  53         6.4.15. Setting audio output type  . . . . . . . . . . . . . . 53
130         6.4.16   Setting audio output channel . . . . . . . . . . . .  53         6.4.16. Setting audio output channel . . . . . . . . . . . . . 54
131         6.4.17   Setting MIDI input device  . . . . . . . . . . . . .  54         6.4.17. Setting MIDI input device  . . . . . . . . . . . . . . 55
132         6.4.18   Setting MIDI input type  . . . . . . . . . . . . . .  55         6.4.18. Setting MIDI input type  . . . . . . . . . . . . . . . 55
133         6.4.19   Setting MIDI input port  . . . . . . . . . . . . . .  56         6.4.19. Setting MIDI input port  . . . . . . . . . . . . . . . 56
134         6.4.20   Setting MIDI input channel . . . . . . . . . . . . .  56         6.4.20. Setting MIDI input channel . . . . . . . . . . . . . . 57
135         6.4.21   Setting channel volume . . . . . . . . . . . . . . .  57         6.4.21. Setting channel volume . . . . . . . . . . . . . . . . 57
136         6.4.22   Muting a sampler channel . . . . . . . . . . . . . .  58         6.4.22. Muting a sampler channel . . . . . . . . . . . . . . . 58
137         6.4.23   Soloing a sampler channel  . . . . . . . . . . . . .  58         6.4.23. Soloing a sampler channel  . . . . . . . . . . . . . . 59
138         6.4.24   Resetting a sampler channel  . . . . . . . . . . . .  59         6.4.24. Resetting a sampler channel  . . . . . . . . . . . . . 59
139       6.5  Controlling connection . . . . . . . . . . . . . . . . . .  60       6.5.  Controlling connection . . . . . . . . . . . . . . . . . . 60
140         6.5.1  Register front-end for receiving event messages  . . .  60         6.5.1.  Register front-end for receiving event messages  . . . 60
141         6.5.2  Unregister front-end for not receiving event         6.5.2.  Unregister front-end for not receiving event
142                messages . . . . . . . . . . . . . . . . . . . . . . .  61                 messages . . . . . . . . . . . . . . . . . . . . . . . 61
143         6.5.3  Enable or disable echo of commands . . . . . . . . . .  61         6.5.3.  Enable or disable echo of commands . . . . . . . . . . 62
144         6.5.4  Close client connection  . . . . . . . . . . . . . . .  62         6.5.4.  Close client connection  . . . . . . . . . . . . . . . 62
145       6.6  Global commands  . . . . . . . . . . . . . . . . . . . . .  62       6.6.  Global commands  . . . . . . . . . . . . . . . . . . . . . 62
146         6.6.1  Reset sampler  . . . . . . . . . . . . . . . . . . . .  62         6.6.1.  Current number of active voices  . . . . . . . . . . . 62
147         6.6.2  General sampler informations . . . . . . . . . . . . .  62         6.6.2.  Maximum amount of active voices  . . . . . . . . . . . 63
148     7.   Command Syntax . . . . . . . . . . . . . . . . . . . . . . .  64         6.6.3.  Reset sampler  . . . . . . . . . . . . . . . . . . . . 63
149     8.   Events . . . . . . . . . . . . . . . . . . . . . . . . . . .  71         6.6.4.  General sampler informations . . . . . . . . . . . . . 63
150       8.1  Number of sampler channels changed . . . . . . . . . . . .  71       6.7.  MIDI Instrument Mapping  . . . . . . . . . . . . . . . . . 64
151       8.2  Number of active voices changed  . . . . . . . . . . . . .  71         6.7.1.  Create or replace a MIDI instrument map entry  . . . . 64
152       8.3  Number of active disk streams changed  . . . . . . . . . .  71         6.7.2.  Getting ammount of MIDI instrument map entries . . . . 67
153       8.4  Disk stream buffer fill state changed  . . . . . . . . . .  72         6.7.3.  Getting indeces of all MIDI instrument map entries . . 67
154       8.5  Channel information changed  . . . . . . . . . . . . . . .  72         6.7.4.  Remove an entry from the MIDI instrument map . . . . . 68
155       8.6  Miscellaneous and debugging events . . . . . . . . . . . .  72         6.7.5.  Get current settings of MIDI instrument map entry  . . 69
156     9.   Security Considerations  . . . . . . . . . . . . . . . . . .  74         6.7.6.  Clear MIDI instrument map  . . . . . . . . . . . . . . 70
157     10.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  75     7.  Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . 72
158     11.  References . . . . . . . . . . . . . . . . . . . . . . . . .  75     8.  Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
159          Author's Address . . . . . . . . . . . . . . . . . . . . . .  75       8.1.  Number of sampler channels changed . . . . . . . . . . . . 81
160          Intellectual Property and Copyright Statements . . . . . . .  76       8.2.  Number of active voices changed  . . . . . . . . . . . . . 81
161         8.3.  Number of active disk streams changed  . . . . . . . . . . 81
162         8.4.  Disk stream buffer fill state changed  . . . . . . . . . . 82
163         8.5.  Channel information changed  . . . . . . . . . . . . . . . 82
164    
165    
166    
167    Schoenebeck               Expires May 30, 2007                  [Page 3]
168    
169    Internet-Draft        LinuxSampler Control Protocol        November 2006
170    
171    
172         8.6.  Total number of active voices changed  . . . . . . . . . . 82
173         8.7.  Miscellaneous and debugging events . . . . . . . . . . . . 83
174       9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 84
175       10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 85
176       11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 85
177       Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 86
178       Intellectual Property and Copyright Statements . . . . . . . . . . 87
179    
180    
181    
182    
183    
184    
185    
186    
187    
188    
189    
190    
191    
192    
193    
194    
195    
196    
197    
198    
199    
200    
201    
202    
203    
204    
 Schoenebeck             Expires January 22, 2006                [Page 3]  
205    
206  Internet-Draft        LinuxSampler Control Protocol            July 2005  
207    
208    
209    
210    
211    
212    
213    
214    
215    
216    
217    
218    
219    
220    
221    
222    
223    Schoenebeck               Expires May 30, 2007                  [Page 4]
224    
225    Internet-Draft        LinuxSampler Control Protocol        November 2006
226    
227    
228  1.  Requirements notation  1.  Requirements notation
# Line 220  Internet-Draft        LinuxSampler Contr Line 276  Internet-Draft        LinuxSampler Contr
276    
277    
278    
279  Schoenebeck             Expires January 22, 2006                [Page 4]  Schoenebeck               Expires May 30, 2007                  [Page 5]
280    
281  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
282    
283    
284  2.  Versioning of this specification  2.  Versioning of this specification
# Line 251  Internet-Draft        LinuxSampler Contr Line 307  Internet-Draft        LinuxSampler Contr
307         sampler's LSCP minor version.         sampler's LSCP minor version.
308    
309     Compatibility can only be claimed if both rules are true.  The     Compatibility can only be claimed if both rules are true.  The
310     frontend can use the "GET SERVER INFO" (Section 6.6.2) command to get     frontend can use the "GET SERVER INFO" (Section 6.6.4) command to get
311     the version of the LSCP specification the sampler complies with.     the version of the LSCP specification the sampler complies with.
312    
313    
# Line 276  Internet-Draft        LinuxSampler Contr Line 332  Internet-Draft        LinuxSampler Contr
332    
333    
334    
335  Schoenebeck             Expires January 22, 2006                [Page 5]  Schoenebeck               Expires May 30, 2007                  [Page 6]
336    
337  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
338    
339    
340  3.  Introduction  3.  Introduction
# Line 332  Internet-Draft        LinuxSampler Contr Line 388  Internet-Draft        LinuxSampler Contr
388    
389    
390    
391  Schoenebeck             Expires January 22, 2006                [Page 6]  Schoenebeck               Expires May 30, 2007                  [Page 7]
392    
393  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
394    
395    
396  4.  Focus of this protocol  4.  Focus of this protocol
# Line 388  Internet-Draft        LinuxSampler Contr Line 444  Internet-Draft        LinuxSampler Contr
444    
445    
446    
447  Schoenebeck             Expires January 22, 2006                [Page 7]  Schoenebeck               Expires May 30, 2007                  [Page 8]
448    
449  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
450    
451    
452  5.  Communication Overview  5.  Communication Overview
# Line 405  Internet-Draft        LinuxSampler Contr Line 461  Internet-Draft        LinuxSampler Contr
461     more effort to be implemented in the front-end application.  The two     more effort to be implemented in the front-end application.  The two
462     communication methods will be described next.     communication methods will be described next.
463    
464  5.1  Request/response communication method  5.1.  Request/response communication method
465    
466     This simple communication method is based on TCP [RFC793].  The     This simple communication method is based on TCP [RFC793].  The
467     front-end application establishes a TCP connection to the     front-end application establishes a TCP connection to the
# Line 444  Internet-Draft        LinuxSampler Contr Line 500  Internet-Draft        LinuxSampler Contr
500    
501    
502    
503  Schoenebeck             Expires January 22, 2006                [Page 8]  Schoenebeck               Expires May 30, 2007                  [Page 9]
504    
505    Internet-Draft        LinuxSampler Control Protocol        November 2006
506    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
507    
508    5.1.1.  Result format
 5.1.1  Result format  
509    
510     Result set could be one of the following types:     Result set could be one of the following types:
511    
# Line 500  Internet-Draft        LinuxSampler Contr Line 556  Internet-Draft        LinuxSampler Contr
556    
557    
558    
559  Schoenebeck             Expires January 22, 2006                [Page 9]  Schoenebeck               Expires May 30, 2007                 [Page 10]
560    
561  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
562    
563    
564     set has the following format:     set has the following format:
# Line 556  Internet-Draft        LinuxSampler Contr Line 612  Internet-Draft        LinuxSampler Contr
612    
613    
614    
615  Schoenebeck             Expires January 22, 2006               [Page 10]  Schoenebeck               Expires May 30, 2007                 [Page 11]
616    
617  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
618    
619    
620     Each line of the result set MUST end with <CRLF>.     Each line of the result set MUST end with <CRLF>.
# Line 573  Internet-Draft        LinuxSampler Contr Line 629  Internet-Draft        LinuxSampler Contr
629    
630        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
631    
632    5.2.  Subscribe/notify communication method
 5.2  Subscribe/notify communication method  
633    
634     This more sophisticated communication method is actually only an     This more sophisticated communication method is actually only an
635     extension of the simple request/response communication method.  The     extension of the simple request/response communication method.  The
# Line 609  Internet-Draft        LinuxSampler Contr Line 664  Internet-Draft        LinuxSampler Contr
664    
665     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
666         in the stream before or after the response, but NOT in the         in the stream before or after the response, but NOT in the
667           middle.  Same is true about the response.  It should never be
668    
669    
670    
671  Schoenebeck             Expires January 22, 2006               [Page 11]  Schoenebeck               Expires May 30, 2007                 [Page 12]
672    
673  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
674    
675    
        middle.  Same is true about the response.  It should never be  
676         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
677         response.         response.
678    
# Line 668  Internet-Draft        LinuxSampler Contr Line 723  Internet-Draft        LinuxSampler Contr
723    
724    
725    
 Schoenebeck             Expires January 22, 2006               [Page 12]  
726    
727  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 30, 2007                 [Page 13]
728    
729    Internet-Draft        LinuxSampler Control Protocol        November 2006
730    
731    
732  6.  Description for control commands  6.  Description for control commands
# Line 682  Internet-Draft        LinuxSampler Contr Line 738  Internet-Draft        LinuxSampler Contr
738     LinuxSampler signals the end of the response by a "." (single dot)     LinuxSampler signals the end of the response by a "." (single dot)
739     line.     line.
740    
741  6.1  Ignored lines and comments  6.1.  Ignored lines and comments
742    
743     White lines, that is lines which only contain space and tabulator     White lines, that is lines which only contain space and tabulator
744     characters, and lines that start with a "#" character are ignored,     characters, and lines that start with a "#" character are ignored,
745     thus it's possible for example to group commands and to place     thus it's possible for example to group commands and to place
746     comments in a LSCP script file.     comments in a LSCP script file.
747    
748  6.2  Configuring audio drivers  6.2.  Configuring audio drivers
749    
750     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
751     multiple audio devices simultaneously, e.g. to output the sound of     multiple audio devices simultaneously, e.g. to output the sound of
# Line 718  Internet-Draft        LinuxSampler Contr Line 774  Internet-Draft        LinuxSampler Contr
774     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
775     possible values, etc.     possible values, etc.
776    
777  6.2.1  Getting amount of available audio output drivers  6.2.1.  Getting amount of available audio output drivers
778    
779     Use the following command to get the number of audio output drivers     Use the following command to get the number of audio output drivers
780    
781    
782    
783  Schoenebeck             Expires January 22, 2006               [Page 13]  Schoenebeck               Expires May 30, 2007                 [Page 14]
784    
785  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
786    
787    
788     currently available for the LinuxSampler instance:     currently available for the LinuxSampler instance:
# Line 744  Internet-Draft        LinuxSampler Contr Line 800  Internet-Draft        LinuxSampler Contr
800    
801        S: "2"        S: "2"
802    
803    6.2.2.  Getting all available audio output drivers
 6.2.2  Getting all available audio output drivers  
804    
805     Use the following command to list all audio output drivers currently     Use the following command to list all audio output drivers currently
806     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 763  Internet-Draft        LinuxSampler Contr Line 818  Internet-Draft        LinuxSampler Contr
818    
819        S: "ALSA,JACK"        S: "ALSA,JACK"
820    
821    6.2.3.  Getting information about a specific audio output driver
 6.2.3  Getting information about a specific audio output driver  
822    
823     Use the following command to get detailed information about a     Use the following command to get detailed information about a
824     specific audio output driver:     specific audio output driver:
# Line 780  Internet-Draft        LinuxSampler Contr Line 834  Internet-Draft        LinuxSampler Contr
834    
835    
836    
 Schoenebeck             Expires January 22, 2006               [Page 14]  
837    
838  Internet-Draft        LinuxSampler Control Protocol            July 2005  
839    Schoenebeck               Expires May 30, 2007                 [Page 15]
840    
841    Internet-Draft        LinuxSampler Control Protocol        November 2006
842    
843    
844        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
# Line 823  Internet-Draft        LinuxSampler Contr Line 879  Internet-Draft        LinuxSampler Contr
879    
880           "."           "."
881    
882    6.2.4.  Getting information about specific audio output driver parameter
 6.2.4  Getting information about specific audio output driver parameter  
883    
884     Use the following command to get detailed information about a     Use the following command to get detailed information about a
885     specific audio output driver parameter:     specific audio output driver parameter:
# Line 833  Internet-Draft        LinuxSampler Contr Line 888  Internet-Draft        LinuxSampler Contr
888    
889     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
890     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,
891       <prm> a specific parameter name for which information should be
892    
893    
894    
895  Schoenebeck             Expires January 22, 2006               [Page 15]  Schoenebeck               Expires May 30, 2007                 [Page 16]
896    
897  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
898    
899    
    <prm> a specific parameter name for which information should be  
900     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"
901     (Section 6.2.3) command) and <deplist> is an optional list of     (Section 6.2.3) command) and <deplist> is an optional list of
902     parameters on which the sought parameter <prm> depends on, <deplist>     parameters on which the sought parameter <prm> depends on, <deplist>
# Line 892  Internet-Draft        LinuxSampler Contr Line 947  Internet-Draft        LinuxSampler Contr
947    
948    
949    
 Schoenebeck             Expires January 22, 2006               [Page 16]  
950    
951  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 30, 2007                 [Page 17]
952    
953    Internet-Draft        LinuxSampler Control Protocol        November 2006
954    
955    
956        MULTIPLICITY -        MULTIPLICITY -
# Line 948  Internet-Draft        LinuxSampler Contr Line 1004  Internet-Draft        LinuxSampler Contr
1004    
1005    
1006    
1007  Schoenebeck             Expires January 22, 2006               [Page 17]  Schoenebeck               Expires May 30, 2007                 [Page 18]
1008    
1009  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1010    
1011    
1012           returned, dependent to driver parameter)           returned, dependent to driver parameter)
# Line 1004  Internet-Draft        LinuxSampler Contr Line 1060  Internet-Draft        LinuxSampler Contr
1060    
1061    
1062    
1063  Schoenebeck             Expires January 22, 2006               [Page 18]  Schoenebeck               Expires May 30, 2007                 [Page 19]
1064    
1065  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1066    
1067    
1068           "TYPE: INT"           "TYPE: INT"
# Line 1027  Internet-Draft        LinuxSampler Contr Line 1083  Internet-Draft        LinuxSampler Contr
1083    
1084           "."           "."
1085    
1086    6.2.5.  Creating an audio output device
1087    
1088  6.2.5  Creating an audio output device     Use the following command to create a new audio output device for the
1089       desired audio output system:
    Use the following command to create a new audio output device for  
    the desired audio output system:  
1090    
1091        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]
1092    
# Line 1057  Internet-Draft        LinuxSampler Contr Line 1112  Internet-Draft        LinuxSampler Contr
1112           in case the device was created successfully, where <device-id>           in case the device was created successfully, where <device-id>
1113           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1114           issue(s) related (e.g. sound card doesn't support given           issue(s) related (e.g. sound card doesn't support given
1115             hardware parameters and the driver is using fall-back values),
1116    
1117    
1118    
1119  Schoenebeck             Expires January 22, 2006               [Page 19]  Schoenebeck               Expires May 30, 2007                 [Page 20]
1120    
1121  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1122    
1123    
          hardware parameters and the driver is using fall-back values),  
1124           providing an appropriate warning code and warning message           providing an appropriate warning code and warning message
1125    
1126        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
# Line 1083  Internet-Draft        LinuxSampler Contr Line 1138  Internet-Draft        LinuxSampler Contr
1138    
1139        S: "OK[1]"        S: "OK[1]"
1140    
1141    6.2.6.  Destroying an audio output device
 6.2.6  Destroying an audio output device  
1142    
1143     Use the following command to destroy a created output device:     Use the following command to destroy a created output device:
1144    
# Line 1114  Internet-Draft        LinuxSampler Contr Line 1168  Internet-Draft        LinuxSampler Contr
1168           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1169           error message           error message
1170    
1171       Example:
1172    
1173    
 Schoenebeck             Expires January 22, 2006               [Page 20]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1174    
1175    Schoenebeck               Expires May 30, 2007                 [Page 21]
1176    
1177    Internet-Draft        LinuxSampler Control Protocol        November 2006
1178    
    Example:  
1179    
1180        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1181    
1182        S: "OK"        S: "OK"
1183    
1184    6.2.7.  Getting all created audio output device count
 6.2.7  Getting all created audio output device count  
1185    
1186     Use the following command to count all created audio output devices:     Use the following command to count all created audio output devices:
1187    
# Line 1145  Internet-Draft        LinuxSampler Contr Line 1198  Internet-Draft        LinuxSampler Contr
1198    
1199        S: "4"        S: "4"
1200    
1201    6.2.8.  Getting all created audio output device list
 6.2.8  Getting all created audio output device list  
1202    
1203     Use the following command to list all created audio output devices:     Use the following command to list all created audio output devices:
1204    
# Line 1163  Internet-Draft        LinuxSampler Contr Line 1215  Internet-Draft        LinuxSampler Contr
1215    
1216        S: "0,1,4,5"        S: "0,1,4,5"
1217    
1218    6.2.9.  Getting current settings of an audio output device
 6.2.9  Getting current settings of an audio output device  
1219    
1220     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1221     created audio output device:     created audio output device:
1222    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 21]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1223        GET AUDIO_OUTPUT_DEVICE INFO <device-id>        GET AUDIO_OUTPUT_DEVICE INFO <device-id>
1224    
1225     Where <device-id> should be replaced by numerical ID of the audio     Where <device-id> should be replaced by numerical ID of the audio
1226     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"
1227     (Section 6.2.8) command.     (Section 6.2.8) command.
1228    
1229    
1230    
1231    Schoenebeck               Expires May 30, 2007                 [Page 22]
1232    
1233    Internet-Draft        LinuxSampler Control Protocol        November 2006
1234    
1235    
1236     Possible Answers:     Possible Answers:
1237    
1238     LinuxSampler will answer by sending a <CRLF> separated list.  Each     LinuxSampler will answer by sending a <CRLF> separated list.  Each
# Line 1225  Internet-Draft        LinuxSampler Contr Line 1275  Internet-Draft        LinuxSampler Contr
1275    
1276        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
1277    
1278             "CHANNELS: 2"
1279    
1280             "SAMPLERATE: 44100"
1281    
1282             "ACTIVE: true"
1283    
 Schoenebeck             Expires January 22, 2006               [Page 22]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1284    
1285    
          "CHANNELS: 2"  
1286    
1287           "SAMPLERATE: 44100"  Schoenebeck               Expires May 30, 2007                 [Page 23]
1288    
1289    Internet-Draft        LinuxSampler Control Protocol        November 2006
1290    
          "ACTIVE: true"  
1291    
1292           "FRAGMENTS: 2"           "FRAGMENTS: 2"
1293    
# Line 1247  Internet-Draft        LinuxSampler Contr Line 1297  Internet-Draft        LinuxSampler Contr
1297    
1298           "."           "."
1299    
1300    6.2.10.  Changing settings of audio output devices
 6.2.10  Changing settings of audio output devices  
1301    
1302     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
1303     audio output device:     audio output device:
# Line 1280  Internet-Draft        LinuxSampler Contr Line 1329  Internet-Draft        LinuxSampler Contr
1329    
1330     Example:     Example:
1331    
1332          C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
1333    
1334          S: "OK"
1335    
1336    6.2.11.  Getting information about an audio channel
1337    
1338       Use the following command to get information about an audio channel:
1339    
 Schoenebeck             Expires January 22, 2006               [Page 23]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
       C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"  
1340    
       S: "OK"  
1341    
1342    
1343  6.2.11  Getting information about an audio channel  Schoenebeck               Expires May 30, 2007                 [Page 24]
1344    
1345    Internet-Draft        LinuxSampler Control Protocol        November 2006
1346    
    Use the following command to get information about an audio channel:  
1347    
1348        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>
1349    
# Line 1337  Internet-Draft        LinuxSampler Contr Line 1384  Internet-Draft        LinuxSampler Contr
1384              actually will be routed / added to (only returned in case              actually will be routed / added to (only returned in case
1385              the audio channel is mix channel)              the audio channel is mix channel)
1386    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 24]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1387     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
1388     fields above are only those fields which are generally returned for     fields above are only those fields which are generally returned for
1389     the described cases by all audio channels regardless of the audio     the described cases by all audio channels regardless of the audio
# Line 1353  Internet-Draft        LinuxSampler Contr Line 1392  Internet-Draft        LinuxSampler Contr
1392    
1393     Examples:     Examples:
1394    
1395    
1396    
1397    
1398    
1399    Schoenebeck               Expires May 30, 2007                 [Page 25]
1400    
1401    Internet-Draft        LinuxSampler Control Protocol        November 2006
1402    
1403    
1404        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
1405    
1406        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
# Line 1389  Internet-Draft        LinuxSampler Contr Line 1437  Internet-Draft        LinuxSampler Contr
1437    
1438           "."           "."
1439    
1440    6.2.12.  Getting information about specific audio channel parameter
 6.2.12  Getting information about specific audio channel parameter  
1441    
1442     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 25]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1443     audio channel parameter:     audio channel parameter:
1444    
1445        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>        GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO <dev-id> <chan> <param>
# Line 1410  Internet-Draft        LinuxSampler Contr Line 1449  Internet-Draft        LinuxSampler Contr
1449     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio
1450     channel number and <param> a specific channel parameter name for     channel number and <param> a specific channel parameter name for
1451     which information should be obtained (as returned by the "GET     which information should be obtained (as returned by the "GET
1452    
1453    
1454    
1455    Schoenebeck               Expires May 30, 2007                 [Page 26]
1456    
1457    Internet-Draft        LinuxSampler Control Protocol        November 2006
1458    
1459    
1460     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).
1461    
1462     Possible Answers:     Possible Answers:
# Line 1448  Internet-Draft        LinuxSampler Contr Line 1495  Internet-Draft        LinuxSampler Contr
1495              values and false only a single value allowed (always              values and false only a single value allowed (always
1496              returned)              returned)
1497    
1498             RANGE_MIN -
1499    
1500                defines lower limit of the allowed value range for this
1501                parameter, can be an integer value as well as a dotted
1502                number, usually used in conjunction with 'RANGE_MAX', but
1503                may also appear without (optionally returned, dependent to
1504                driver and channel parameter)
1505    
1506    
1507    
 Schoenebeck             Expires January 22, 2006               [Page 26]  
1508    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1509    
1510    
1511           RANGE_MIN -  Schoenebeck               Expires May 30, 2007                 [Page 27]
1512    
1513    Internet-Draft        LinuxSampler Control Protocol        November 2006
1514    
             defines lower limit of the allowed value range for this  
             parameter, can be an integer value as well as a dotted  
             number, usually used in conjunction with 'RANGE_MAX', but  
             may also appear without (optionally returned, dependent to  
             driver and channel parameter)  
1515    
1516           RANGE_MAX -           RANGE_MAX -
1517    
# Line 1498  Internet-Draft        LinuxSampler Contr Line 1546  Internet-Draft        LinuxSampler Contr
1546    
1547           "."           "."
1548    
1549    6.2.13.  Changing settings of audio output channels
 6.2.13  Changing settings of audio output channels  
1550    
1551     Use the following command to alter a specific setting of an audio     Use the following command to alter a specific setting of an audio
1552     output channel:     output channel:
1553    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 27]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1554        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>
1555    
1556     Where <dev-id> should be replaced by the numerical ID of the audio     Where <dev-id> should be replaced by the numerical ID of the audio
# Line 1523  Internet-Draft        LinuxSampler Contr Line 1561  Internet-Draft        LinuxSampler Contr
1561    
1562     Possible Answers:     Possible Answers:
1563    
1564    
1565    
1566    
1567    Schoenebeck               Expires May 30, 2007                 [Page 28]
1568    
1569    Internet-Draft        LinuxSampler Control Protocol        November 2006
1570    
1571    
1572        "OK" -        "OK" -
1573    
1574           in case setting was successfully changed           in case setting was successfully changed
# Line 1548  Internet-Draft        LinuxSampler Contr Line 1594  Internet-Draft        LinuxSampler Contr
1594    
1595        S: "OK"        S: "OK"
1596    
1597    6.3.  Configuring MIDI input drivers
 6.3  Configuring MIDI input drivers  
1598    
1599     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
1600     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet
# Line 1561  Internet-Draft        LinuxSampler Contr Line 1606  Internet-Draft        LinuxSampler Contr
1606    
1607     Instead of defining commands and parameters for each driver     Instead of defining commands and parameters for each driver
1608     individually, all possible parameters, their meanings and possible     individually, all possible parameters, their meanings and possible
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 28]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1609     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
1610     abstract, but has the advantage, that front-ends can be written     abstract, but has the advantage, that front-ends can be written
1611     independently of what drivers are currently implemented and what     independently of what drivers are currently implemented and what
# Line 1580  Internet-Draft        LinuxSampler Contr Line 1617  Internet-Draft        LinuxSampler Contr
1617     as the commands for configuring audio output drivers, already     as the commands for configuring audio output drivers, already
1618     described in the last chapter.     described in the last chapter.
1619    
1620    
1621    
1622    
1623    Schoenebeck               Expires May 30, 2007                 [Page 29]
1624    
1625    Internet-Draft        LinuxSampler Control Protocol        November 2006
1626    
1627    
1628     Note: examples in this chapter showing particular parameters of     Note: examples in this chapter showing particular parameters of
1629     drivers are not meant as specification of the drivers' parameters.     drivers are not meant as specification of the drivers' parameters.
1630     Driver implementations in LinuxSampler might have complete different     Driver implementations in LinuxSampler might have complete different
# Line 1588  Internet-Draft        LinuxSampler Contr Line 1633  Internet-Draft        LinuxSampler Contr
1633     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
1634     possible values, etc.     possible values, etc.
1635    
1636  6.3.1  Getting amount of available MIDI input drivers  6.3.1.  Getting amount of available MIDI input drivers
1637    
1638     Use the following command to get the number of MIDI input drivers     Use the following command to get the number of MIDI input drivers
1639     currently available for the LinuxSampler instance:     currently available for the LinuxSampler instance:
# Line 1606  Internet-Draft        LinuxSampler Contr Line 1651  Internet-Draft        LinuxSampler Contr
1651    
1652        S: "2"        S: "2"
1653    
1654    6.3.2.  Getting all available MIDI input drivers
 6.3.2  Getting all available MIDI input drivers  
1655    
1656     Use the following command to list all MIDI input drivers currently     Use the following command to list all MIDI input drivers currently
1657     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 1616  Internet-Draft        LinuxSampler Contr Line 1660  Internet-Draft        LinuxSampler Contr
1660    
1661     Possible Answers:     Possible Answers:
1662    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 29]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1663        LinuxSampler will answer by sending comma separated character        LinuxSampler will answer by sending comma separated character
1664        strings, each symbolizing a MIDI input driver.        strings, each symbolizing a MIDI input driver.
1665    
# Line 1634  Internet-Draft        LinuxSampler Contr Line 1669  Internet-Draft        LinuxSampler Contr
1669    
1670        S: "ALSA,JACK"        S: "ALSA,JACK"
1671    
1672    6.3.3.  Getting information about a specific MIDI input driver
 6.3.3  Getting information about a specific MIDI input driver  
1673    
1674     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1675     specific MIDI input driver:     specific MIDI input driver:
1676    
1677    
1678    
1679    Schoenebeck               Expires May 30, 2007                 [Page 30]
1680    
1681    Internet-Draft        LinuxSampler Control Protocol        November 2006
1682    
1683    
1684        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>
1685    
1686     Where <midi-input-driver> is the name of the MIDI input driver as     Where <midi-input-driver> is the name of the MIDI input driver as
# Line 1673  Internet-Draft        LinuxSampler Contr Line 1714  Internet-Draft        LinuxSampler Contr
1714    
1715     Example:     Example:
1716    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 30]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1717        C: "GET MIDI_INPUT_DRIVER INFO ALSA"        C: "GET MIDI_INPUT_DRIVER INFO ALSA"
1718    
1719        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
# Line 1691  Internet-Draft        LinuxSampler Contr Line 1724  Internet-Draft        LinuxSampler Contr
1724    
1725           "."           "."
1726    
1727    6.3.4.  Getting information about specific MIDI input driver parameter
 6.3.4  Getting information about specific MIDI input driver parameter  
1728    
1729     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1730     specific parameter of a specific MIDI input driver:     specific parameter of a specific MIDI input driver:
1731    
1732    
1733    
1734    
1735    Schoenebeck               Expires May 30, 2007                 [Page 31]
1736    
1737    Internet-Draft        LinuxSampler Control Protocol        November 2006
1738    
1739    
1740        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]
1741    
1742     Where <midit> is the name of the MIDI input driver as returned by the     Where <midit> is the name of the MIDI input driver as returned by the
# Line 1729  Internet-Draft        LinuxSampler Contr Line 1769  Internet-Draft        LinuxSampler Contr
1769           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
1770           parameter)           parameter)
1771    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 31]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1772        DESCRIPTION -        DESCRIPTION -
1773    
1774           arbitrary text describing the purpose of the parameter (always           arbitrary text describing the purpose of the parameter (always
# Line 1753  Internet-Draft        LinuxSampler Contr Line 1785  Internet-Draft        LinuxSampler Contr
1785    
1786           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
1787           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
1788    
1789    
1790    
1791    Schoenebeck               Expires May 30, 2007                 [Page 32]
1792    
1793    Internet-Draft        LinuxSampler Control Protocol        November 2006
1794    
1795    
1796           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1797           matter which driver parameter)           matter which driver parameter)
1798    
# Line 1784  Internet-Draft        LinuxSampler Contr Line 1824  Internet-Draft        LinuxSampler Contr
1824           character strings are encapsulated into apostrophes (')           character strings are encapsulated into apostrophes (')
1825           (optionally returned, dependent to driver parameter)           (optionally returned, dependent to driver parameter)
1826    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 32]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1827        RANGE_MIN -        RANGE_MIN -
1828    
1829           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
# Line 1809  Internet-Draft        LinuxSampler Contr Line 1840  Internet-Draft        LinuxSampler Contr
1840           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1841           driver parameter)           driver parameter)
1842    
1843    
1844    
1845    
1846    
1847    Schoenebeck               Expires May 30, 2007                 [Page 33]
1848    
1849    Internet-Draft        LinuxSampler Control Protocol        November 2006
1850    
1851    
1852        POSSIBILITIES -        POSSIBILITIES -
1853    
1854           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
# Line 1835  Internet-Draft        LinuxSampler Contr Line 1875  Internet-Draft        LinuxSampler Contr
1875    
1876           "."           "."
1877    
1878    6.3.5.  Creating a MIDI input device
1879    
1880  6.3.5  Creating a MIDI input device     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  
1881     desired MIDI input system:     desired MIDI input system:
1882    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 33]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1883        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]
1884    
1885     Where <midi-input-driver> should be replaced by the desired MIDI     Where <midi-input-driver> should be replaced by the desired MIDI
# Line 1867  Internet-Draft        LinuxSampler Contr Line 1898  Internet-Draft        LinuxSampler Contr
1898           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1899           is the numerical ID of the new device           is the numerical ID of the new device
1900    
1901    
1902    
1903    Schoenebeck               Expires May 30, 2007                 [Page 34]
1904    
1905    Internet-Draft        LinuxSampler Control Protocol        November 2006
1906    
1907    
1908        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1909    
1910           in case the driver was loaded successfully, where <device-id>           in case the driver was loaded successfully, where <device-id>
# Line 1885  Internet-Draft        LinuxSampler Contr Line 1923  Internet-Draft        LinuxSampler Contr
1923    
1924        S: "OK[0]"        S: "OK[0]"
1925    
1926    6.3.6.  Destroying a MIDI input device
 6.3.6  Destroying a MIDI input device  
1927    
1928     Use the following command to destroy a created MIDI input device:     Use the following command to destroy a created MIDI input device:
1929    
# Line 1898  Internet-Draft        LinuxSampler Contr Line 1935  Internet-Draft        LinuxSampler Contr
1935    
1936     Possible Answers:     Possible Answers:
1937    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 34]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1938        "OK" -        "OK" -
1939    
1940           in case the device was successfully destroyed           in case the device was successfully destroyed
# Line 1922  Internet-Draft        LinuxSampler Contr Line 1952  Internet-Draft        LinuxSampler Contr
1952    
1953     Example:     Example:
1954    
1955    
1956    
1957    
1958    
1959    Schoenebeck               Expires May 30, 2007                 [Page 35]
1960    
1961    Internet-Draft        LinuxSampler Control Protocol        November 2006
1962    
1963    
1964        C: "DESTROY MIDI_INPUT_DEVICE 0"        C: "DESTROY MIDI_INPUT_DEVICE 0"
1965    
1966        S: "OK"        S: "OK"
1967    
1968    6.3.7.  Getting all created MIDI input device count
 6.3.7  Getting all created MIDI input device count  
1969    
1970     Use the following command to count all created MIDI input devices:     Use the following command to count all created MIDI input devices:
1971    
# Line 1944  Internet-Draft        LinuxSampler Contr Line 1982  Internet-Draft        LinuxSampler Contr
1982    
1983        S: "3"        S: "3"
1984    
1985    6.3.8.  Getting all created MIDI input device list
 6.3.8  Getting all created MIDI input device list  
1986    
1987     Use the following command to list all created MIDI input devices:     Use the following command to list all created MIDI input devices:
1988    
# Line 1953  Internet-Draft        LinuxSampler Contr Line 1990  Internet-Draft        LinuxSampler Contr
1990    
1991     Possible Answers:     Possible Answers:
1992    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 35]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1993        LinuxSampler will answer by sending a comma separated list with        LinuxSampler will answer by sending a comma separated list with
1994        the numerical Ids of all created MIDI input devices.        the numerical Ids of all created MIDI input devices.
1995    
# Line 1974  Internet-Draft        LinuxSampler Contr Line 2003  Internet-Draft        LinuxSampler Contr
2003    
2004        S: "1,3"        S: "1,3"
2005    
2006    6.3.9.  Getting current settings of a MIDI input device
 6.3.9  Getting current settings of a MIDI input device  
2007    
2008     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
2009     created MIDI input device:     created MIDI input device:
2010    
2011    
2012    
2013    
2014    
2015    Schoenebeck               Expires May 30, 2007                 [Page 36]
2016    
2017    Internet-Draft        LinuxSampler Control Protocol        November 2006
2018    
2019    
2020        GET MIDI_INPUT_DEVICE INFO <device-id>        GET MIDI_INPUT_DEVICE INFO <device-id>
2021    
2022     Where <device-id> is the numerical ID of the MIDI input device as     Where <device-id> is the numerical ID of the MIDI input device as
# Line 2010  Internet-Draft        LinuxSampler Contr Line 2047  Internet-Draft        LinuxSampler Contr
2047              inactive and doesn't listen to any incoming MIDI events and              inactive and doesn't listen to any incoming MIDI events and
2048              thus doesn't forward them to connected sampler channels              thus doesn't forward them to connected sampler channels
2049    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 36]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2050     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
2051     fields above are only those fields which are returned by all MIDI     fields above are only those fields which are returned by all MIDI
2052     input devices.  Every MIDI input driver might have its own,     input devices.  Every MIDI input driver might have its own,
# Line 2035  Internet-Draft        LinuxSampler Contr Line 2065  Internet-Draft        LinuxSampler Contr
2065           "."           "."
2066    
2067    
2068  6.3.10  Changing settings of MIDI input devices  
2069    
2070    
2071    Schoenebeck               Expires May 30, 2007                 [Page 37]
2072    
2073    Internet-Draft        LinuxSampler Control Protocol        November 2006
2074    
2075    
2076    6.3.10.  Changing settings of MIDI input devices
2077    
2078     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
2079     MIDI input device:     MIDI input device:
# Line 2065  Internet-Draft        LinuxSampler Contr Line 2103  Internet-Draft        LinuxSampler Contr
2103           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2104           error message           error message
2105    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 37]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2106     Example:     Example:
2107    
2108        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
2109    
2110        S: "OK"        S: "OK"
2111    
2112    6.3.11.  Getting information about a MIDI port
 6.3.11  Getting information about a MIDI port  
2113    
2114     Use the following command to get information about a MIDI port:     Use the following command to get information about a MIDI port:
2115    
# Line 2093  Internet-Draft        LinuxSampler Contr Line 2122  Internet-Draft        LinuxSampler Contr
2122    
2123     Possible Answers:     Possible Answers:
2124    
2125    
2126    
2127    Schoenebeck               Expires May 30, 2007                 [Page 38]
2128    
2129    Internet-Draft        LinuxSampler Control Protocol        November 2006
2130    
2131    
2132        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2133        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2134        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
# Line 2117  Internet-Draft        LinuxSampler Contr Line 2153  Internet-Draft        LinuxSampler Contr
2153    
2154           "."           "."
2155    
2156    6.3.12.  Getting information about specific MIDI port parameter
 6.3.12  Getting information about specific MIDI port parameter  
2157    
2158     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 38]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2159     MIDI port parameter:     MIDI port parameter:
2160    
2161        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>        GET MIDI_INPUT_PORT_PARAMETER INFO <dev-id> <port> <param>
# Line 2151  Internet-Draft        LinuxSampler Contr Line 2178  Internet-Draft        LinuxSampler Contr
2178        dependently to the given MIDI port.  At the moment the following        dependently to the given MIDI port.  At the moment the following
2179        information categories are defined:        information categories are defined:
2180    
2181    
2182    
2183    Schoenebeck               Expires May 30, 2007                 [Page 39]
2184    
2185    Internet-Draft        LinuxSampler Control Protocol        November 2006
2186    
2187    
2188        TYPE -        TYPE -
2189    
2190           either "BOOL" for boolean value(s) or "INT" for integer           either "BOOL" for boolean value(s) or "INT" for integer
# Line 2177  Internet-Draft        LinuxSampler Contr Line 2211  Internet-Draft        LinuxSampler Contr
2211    
2212           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
2213           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 39]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2214           this parameter is usually used in conjunction with 'RANGE_MAX'           this parameter is usually used in conjunction with 'RANGE_MAX'
2215           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2216           driver and port parameter)           driver and port parameter)
# Line 2207  Internet-Draft        LinuxSampler Contr Line 2233  Internet-Draft        LinuxSampler Contr
2233    
2234     Example:     Example:
2235    
2236    
2237    
2238    
2239    Schoenebeck               Expires May 30, 2007                 [Page 40]
2240    
2241    Internet-Draft        LinuxSampler Control Protocol        November 2006
2242    
2243    
2244        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
2245    
2246        S: "DESCRIPTION: bindings to other ALSA sequencer clients"        S: "DESCRIPTION: bindings to other ALSA sequencer clients"
# Line 2221  Internet-Draft        LinuxSampler Contr Line 2255  Internet-Draft        LinuxSampler Contr
2255    
2256           "."           "."
2257    
2258    6.3.13.  Changing settings of MIDI input ports
 6.3.13  Changing settings of MIDI input ports  
2259    
2260     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
2261     port:     port:
# Line 2233  Internet-Draft        LinuxSampler Contr Line 2266  Internet-Draft        LinuxSampler Contr
2266     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)
2267     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> by the     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command, <port> by the
2268     MIDI port number, <key> by the name of the parameter to change and     MIDI port number, <key> by the name of the parameter to change and
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 40]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2269     <value> by the new value for this parameter.     <value> by the new value for this parameter.
2270    
2271     Possible Answers:     Possible Answers:
# Line 2265  Internet-Draft        LinuxSampler Contr Line 2290  Internet-Draft        LinuxSampler Contr
2290    
2291    
2292    
2293  6.4  Configuring sampler channels  
2294    
2295    Schoenebeck               Expires May 30, 2007                 [Page 41]
2296    
2297    Internet-Draft        LinuxSampler Control Protocol        November 2006
2298    
2299    
2300    
2301    
2302    6.4.  Configuring sampler channels
2303    
2304     The following commands describe how to add and remove sampler     The following commands describe how to add and remove sampler
2305     channels, associate a sampler channel with a sampler engine, load     channels, associate a sampler channel with a sampler engine, load
2306     instruments and connect sampler channels to MIDI and audio devices.     instruments and connect sampler channels to MIDI and audio devices.
2307    
2308  6.4.1  Loading an instrument  6.4.1.  Loading an instrument
2309    
2310     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
2311     one of the following commands:     one of the following commands:
# Line 2289  Internet-Draft        LinuxSampler Contr Line 2323  Internet-Draft        LinuxSampler Contr
2323     is that the regular command returns OK only after the instrument has     is that the regular command returns OK only after the instrument has
2324     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
2325     version returns immediately and a background process is launched to     version returns immediately and a background process is launched to
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 41]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2326     load the instrument on the channel.  The GET CHANNEL INFO     load the instrument on the channel.  The GET CHANNEL INFO
2327     (Section 6.4.10) command can be used to obtain loading progress from     (Section 6.4.10) command can be used to obtain loading progress from
2328     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks
# Line 2318  Internet-Draft        LinuxSampler Contr Line 2344  Internet-Draft        LinuxSampler Contr
2344           file), providing an appropriate warning code and warning           file), providing an appropriate warning code and warning
2345           message           message
2346    
2347    
2348    
2349    
2350    
2351    Schoenebeck               Expires May 30, 2007                 [Page 42]
2352    
2353    Internet-Draft        LinuxSampler Control Protocol        November 2006
2354    
2355    
2356        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2357    
2358           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 2327  Internet-Draft        LinuxSampler Contr Line 2362  Internet-Draft        LinuxSampler Contr
2362    
2363    
2364    
2365    6.4.2.  Loading a sampler engine
 6.4.2  Loading a sampler engine  
2366    
2367     A sampler engine type can be associated to a specific sampler channel     A sampler engine type can be associated to a specific sampler channel
2368     by the following command:     by the following command:
# Line 2345  Internet-Draft        LinuxSampler Contr Line 2379  Internet-Draft        LinuxSampler Contr
2379     sampler channel.  This command has (currently) no way to define or     sampler channel.  This command has (currently) no way to define or
2380     force if a new engine instance should be created and assigned to the     force if a new engine instance should be created and assigned to the
2381     given sampler channel or if an already existing instance of that     given sampler channel or if an already existing instance of that
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 42]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2382     engine type, shared with other sampler channels, should be used.     engine type, shared with other sampler channels, should be used.
2383    
2384     Possible Answers:     Possible Answers:
# Line 2377  Internet-Draft        LinuxSampler Contr Line 2403  Internet-Draft        LinuxSampler Contr
2403    
2404    
2405    
2406  6.4.3  Getting all created sampler channel count  
2407    Schoenebeck               Expires May 30, 2007                 [Page 43]
2408    
2409    Internet-Draft        LinuxSampler Control Protocol        November 2006
2410    
2411    
2412    
2413    
2414    6.4.3.  Getting all created sampler channel count
2415    
2416     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2417     current amount of sampler channels, the front-end can send the     current amount of sampler channels, the front-end can send the
# Line 2396  Internet-Draft        LinuxSampler Contr Line 2430  Internet-Draft        LinuxSampler Contr
2430    
2431        S: "12"        S: "12"
2432    
2433    6.4.4.  Getting all created sampler channel list
 6.4.4  Getting all created sampler channel list  
2434    
2435     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2436     current list of sampler channels, the front-end can send the     current list of sampler channels, the front-end can send the
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 43]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2437     following command:     following command:
2438    
2439        LIST CHANNELS        LIST CHANNELS
# Line 2424  Internet-Draft        LinuxSampler Contr Line 2449  Internet-Draft        LinuxSampler Contr
2449    
2450        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"
2451    
2452    6.4.5.  Adding a new sampler channel
 6.4.5  Adding a new sampler channel  
2453    
2454     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
2455     list by sending the following command:     list by sending the following command:
# Line 2433  Internet-Draft        LinuxSampler Contr Line 2457  Internet-Draft        LinuxSampler Contr
2457        ADD CHANNEL        ADD CHANNEL
2458    
2459     This will increment the sampler channel count by one and the new     This will increment the sampler channel count by one and the new
2460    
2461    
2462    
2463    Schoenebeck               Expires May 30, 2007                 [Page 44]
2464    
2465    Internet-Draft        LinuxSampler Control Protocol        November 2006
2466    
2467    
2468     sampler channel will be appended to the end of the sampler channel     sampler channel will be appended to the end of the sampler channel
2469     list.  The front-end should send the respective, related commands     list.  The front-end should send the respective, related commands
2470     right after to e.g. load an engine, load an instrument and setting     right after to e.g. load an engine, load an instrument and setting
# Line 2457  Internet-Draft        LinuxSampler Contr Line 2489  Internet-Draft        LinuxSampler Contr
2489           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2490           code and warning message           code and warning message
2491    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 44]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2492        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2493    
2494           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 2474  Internet-Draft        LinuxSampler Contr Line 2498  Internet-Draft        LinuxSampler Contr
2498    
2499    
2500    
2501    6.4.6.  Removing a sampler channel
 6.4.6  Removing a sampler channel  
2502    
2503     A sampler channel can be removed by sending the following command:     A sampler channel can be removed by sending the following command:
2504    
# Line 2488  Internet-Draft        LinuxSampler Contr Line 2511  Internet-Draft        LinuxSampler Contr
2511    
2512     Possible Answers:     Possible Answers:
2513    
2514    
2515    
2516    
2517    
2518    
2519    Schoenebeck               Expires May 30, 2007                 [Page 45]
2520    
2521    Internet-Draft        LinuxSampler Control Protocol        November 2006
2522    
2523    
2524        "OK" -        "OK" -
2525    
2526           in case the given sampler channel could be removed           in case the given sampler channel could be removed
# Line 2507  Internet-Draft        LinuxSampler Contr Line 2540  Internet-Draft        LinuxSampler Contr
2540    
2541    
2542    
2543    6.4.7.  Getting amount of available engines
 6.4.7  Getting amount of available engines  
2544    
2545     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
2546     the following command:     the following command:
2547    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 45]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2548        GET AVAILABLE_ENGINES        GET AVAILABLE_ENGINES
2549    
2550     Possible Answers:     Possible Answers:
# Line 2534  Internet-Draft        LinuxSampler Contr Line 2558  Internet-Draft        LinuxSampler Contr
2558    
2559        S: "4"        S: "4"
2560    
2561    6.4.8.  Getting all available engines
 6.4.8  Getting all available engines  
2562    
2563     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
2564     the following command:     the following command:
# Line 2544  Internet-Draft        LinuxSampler Contr Line 2567  Internet-Draft        LinuxSampler Contr
2567    
2568     Possible Answers:     Possible Answers:
2569    
2570    
2571    
2572    
2573    
2574    
2575    Schoenebeck               Expires May 30, 2007                 [Page 46]
2576    
2577    Internet-Draft        LinuxSampler Control Protocol        November 2006
2578    
2579    
2580        LinuxSampler will answer by sending a comma separated list of the        LinuxSampler will answer by sending a comma separated list of the
2581        engines' names encapsulated into apostrophes (').  Engine names        engines' names encapsulated into apostrophes (').  Engine names
2582        can consist of lower and upper cases, digits and underlines ("_"        can consist of lower and upper cases, digits and underlines ("_"
# Line 2555  Internet-Draft        LinuxSampler Contr Line 2588  Internet-Draft        LinuxSampler Contr
2588    
2589        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"
2590    
2591    6.4.9.  Getting information about an engine
 6.4.9  Getting information about an engine  
2592    
2593     The front-end can ask for information about a specific engine by     The front-end can ask for information about a specific engine by
2594     sending the following command:     sending the following command:
# Line 2568  Internet-Draft        LinuxSampler Contr Line 2600  Internet-Draft        LinuxSampler Contr
2600    
2601     Possible Answers:     Possible Answers:
2602    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 46]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2603        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2604        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2605        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
# Line 2601  Internet-Draft        LinuxSampler Contr Line 2624  Internet-Draft        LinuxSampler Contr
2624    
2625        S: "DESCRIPTION: this is Joe's custom sampler engine"        S: "DESCRIPTION: this is Joe's custom sampler engine"
2626    
2627    
2628    
2629    
2630    
2631    Schoenebeck               Expires May 30, 2007                 [Page 47]
2632    
2633    Internet-Draft        LinuxSampler Control Protocol        November 2006
2634    
2635    
2636           "VERSION: testing-1.0"           "VERSION: testing-1.0"
2637    
2638           "."           "."
2639    
2640    6.4.10.  Getting sampler channel information
 6.4.10  Getting sampler channel information  
2641    
2642     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
2643     by sending the following command:     by sending the following command:
# Line 2627  Internet-Draft        LinuxSampler Contr Line 2658  Internet-Draft        LinuxSampler Contr
2658    
2659    
2660    
   
 Schoenebeck             Expires January 22, 2006               [Page 47]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
   
   
2661           ENGINE_NAME -           ENGINE_NAME -
2662    
2663              name of the engine that is associated with the sampler              name of the engine that is associated with the sampler
# Line 2658  Internet-Draft        LinuxSampler Contr Line 2681  Internet-Draft        LinuxSampler Contr
2681              comma separated list which reflects to which audio channel              comma separated list which reflects to which audio channel
2682              of the selected audio output device each sampler output              of the selected audio output device each sampler output
2683              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
2684    
2685    
2686    
2687    Schoenebeck               Expires May 30, 2007                 [Page 48]
2688    
2689    Internet-Draft        LinuxSampler Control Protocol        November 2006
2690    
2691    
2692              output channel 0 is routed to channel 0 of the audio output              output channel 0 is routed to channel 0 of the audio output
2693              device and the engine's output channel 1 is routed to the              device and the engine's output channel 1 is routed to the
2694              channel 3 of the audio output device              channel 3 of the audio output device
# Line 2682  Internet-Draft        LinuxSampler Contr Line 2713  Internet-Draft        LinuxSampler Contr
2713              loading exception.  Value of 100 indicates that the              loading exception.  Value of 100 indicates that the
2714              instrument is fully loaded.              instrument is fully loaded.
2715    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 48]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2716           MIDI_INPUT_DEVICE -           MIDI_INPUT_DEVICE -
2717    
2718              numerical ID of the MIDI input device which is currently              numerical ID of the MIDI input device which is currently
# Line 2711  Internet-Draft        LinuxSampler Contr Line 2735  Internet-Draft        LinuxSampler Contr
2735              (where a value < 1.0 means attenuation and a value > 1.0              (where a value < 1.0 means attenuation and a value > 1.0
2736              means amplification)              means amplification)
2737    
2738    
2739    
2740    
2741    
2742    
2743    Schoenebeck               Expires May 30, 2007                 [Page 49]
2744    
2745    Internet-Draft        LinuxSampler Control Protocol        November 2006
2746    
2747    
2748           MUTE -           MUTE -
2749    
2750              Determines whether the channel is muted, "true" if the              Determines whether the channel is muted, "true" if the
# Line 2736  Internet-Draft        LinuxSampler Contr Line 2770  Internet-Draft        LinuxSampler Contr
2770    
2771           "AUDIO_OUTPUT_DEVICE: 0"           "AUDIO_OUTPUT_DEVICE: 0"
2772    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 49]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2773           "AUDIO_OUTPUT_CHANNELS: 2"           "AUDIO_OUTPUT_CHANNELS: 2"
2774    
2775           "AUDIO_OUTPUT_ROUTING: 0,1"           "AUDIO_OUTPUT_ROUTING: 0,1"
# Line 2766  Internet-Draft        LinuxSampler Contr Line 2791  Internet-Draft        LinuxSampler Contr
2791           "."           "."
2792    
2793    
2794  6.4.11  Current number of active voices  
2795    
2796    
2797    
2798    
2799    Schoenebeck               Expires May 30, 2007                 [Page 50]
2800    
2801    Internet-Draft        LinuxSampler Control Protocol        November 2006
2802    
2803    
2804    6.4.11.  Current number of active voices
2805    
2806     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
2807     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2786  Internet-Draft        LinuxSampler Contr Line 2821  Internet-Draft        LinuxSampler Contr
2821    
2822    
2823    
2824    6.4.12.  Current number of active disk streams
 6.4.12  Current number of active disk streams  
2825    
2826     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
2827     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
2828    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 50]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2829        GET CHANNEL STREAM_COUNT <sampler-channel>        GET CHANNEL STREAM_COUNT <sampler-channel>
2830    
2831     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
# Line 2818  Internet-Draft        LinuxSampler Contr Line 2843  Internet-Draft        LinuxSampler Contr
2843    
2844    
2845    
2846    6.4.13.  Current fill state of disk stream buffers
 6.4.13  Current fill state of disk stream buffers  
2847    
2848     The front-end can ask for the current fill state of all disk streams     The front-end can ask for the current fill state of all disk streams
2849     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
2850    
2851    
2852    
2853    
2854    
2855    Schoenebeck               Expires May 30, 2007                 [Page 51]
2856    
2857    Internet-Draft        LinuxSampler Control Protocol        November 2006
2858    
2859    
2860        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>
2861    
2862     to get the fill state in bytes or     to get the fill state in bytes or
# Line 2850  Internet-Draft        LinuxSampler Contr Line 2883  Internet-Draft        LinuxSampler Contr
2883    
2884     Examples:     Examples:
2885    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 51]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2886        C: "GET CHANNEL BUFFER_FILL BYTES 4"        C: "GET CHANNEL BUFFER_FILL BYTES 4"
2887    
2888        S: "[115]420500,[116]510300,[75]110000,[120]230700"        S: "[115]420500,[116]510300,[75]110000,[120]230700"
# Line 2869  Internet-Draft        LinuxSampler Contr Line 2895  Internet-Draft        LinuxSampler Contr
2895    
2896        S: ""        S: ""
2897    
2898    6.4.14.  Setting audio output device
 6.4.14  Setting audio output device  
2899    
2900     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
2901     channel by sending the following command:     channel by sending the following command:
# Line 2880  Internet-Draft        LinuxSampler Contr Line 2905  Internet-Draft        LinuxSampler Contr
2905    
2906     Where <sampler-channel> is the respective sampler channel number as     Where <sampler-channel> is the respective sampler channel number as
2907     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
2908    
2909    
2910    
2911    Schoenebeck               Expires May 30, 2007                 [Page 52]
2912    
2913    Internet-Draft        LinuxSampler Control Protocol        November 2006
2914    
2915    
2916     (Section 6.4.4) command and <audio-device-id> is the numerical ID of     (Section 6.4.4) command and <audio-device-id> is the numerical ID of
2917     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
2918     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
# Line 2906  Internet-Draft        LinuxSampler Contr Line 2939  Internet-Draft        LinuxSampler Contr
2939    
2940    
2941    
2942    6.4.15.  Setting audio output type
   
 Schoenebeck             Expires January 22, 2006               [Page 52]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
   
   
   
 6.4.15  Setting audio output type  
2943    
2944     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
2945    
# Line 2937  Internet-Draft        LinuxSampler Contr Line 2960  Internet-Draft        LinuxSampler Contr
2960    
2961        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2962    
2963    
2964    
2965    
2966    
2967    Schoenebeck               Expires May 30, 2007                 [Page 53]
2968    
2969    Internet-Draft        LinuxSampler Control Protocol        November 2006
2970    
2971    
2972           if audio output type was set, but there are noteworthy issue(s)           if audio output type was set, but there are noteworthy issue(s)
2973           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
2974           message           message
# Line 2950  Internet-Draft        LinuxSampler Contr Line 2982  Internet-Draft        LinuxSampler Contr
2982    
2983    
2984    
2985    6.4.16.  Setting audio output channel
 6.4.16  Setting audio output channel  
2986    
2987     The front-end can alter the audio output channel on a specific     The front-end can alter the audio output channel on a specific
2988     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2961  Internet-Draft        LinuxSampler Contr Line 2992  Internet-Draft        LinuxSampler Contr
2992    
2993     Where <sampler-chan> is the sampler channel number as returned by the     Where <sampler-chan> is the sampler channel number as returned by the
2994     "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)     "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 53]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2995     command, <audio-out> is the numerical ID of the sampler channel's     command, <audio-out> is the numerical ID of the sampler channel's
2996     audio output channel which should be rerouted and <audio-in> is the     audio output channel which should be rerouted and <audio-in> is the
2997     numerical ID of the audio channel of the selected audio output device     numerical ID of the audio channel of the selected audio output device
# Line 2996  Internet-Draft        LinuxSampler Contr Line 3019  Internet-Draft        LinuxSampler Contr
3019    
3020    
3021    
3022  6.4.17  Setting MIDI input device  
3023    Schoenebeck               Expires May 30, 2007                 [Page 54]
3024    
3025    Internet-Draft        LinuxSampler Control Protocol        November 2006
3026    
3027    
3028    
3029    
3030    6.4.17.  Setting MIDI input device
3031    
3032     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
3033     channel by sending the following command:     channel by sending the following command:
# Line 3005  Internet-Draft        LinuxSampler Contr Line 3036  Internet-Draft        LinuxSampler Contr
3036    
3037     Where <sampler-channel> is the sampler channel number as returned by     Where <sampler-channel> is the sampler channel number as returned by
3038     the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)     the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4)
3039     command and <midi-device-id> is  the numerical ID of the MIDI input     command and <midi-device-id> is the numerical ID of the MIDI input
3040     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)     device as returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5)
3041     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command.     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command.
3042    
# Line 3015  Internet-Draft        LinuxSampler Contr Line 3046  Internet-Draft        LinuxSampler Contr
3046    
3047           on success           on success
3048    
   
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 54]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3049        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3050    
3051           if MIDI input device was set, but there are noteworthy issue(s)           if MIDI input device was set, but there are noteworthy issue(s)
# Line 3040  Internet-Draft        LinuxSampler Contr Line 3061  Internet-Draft        LinuxSampler Contr
3061    
3062    
3063    
3064    6.4.18.  Setting MIDI input type
 6.4.18  Setting MIDI input type  
3065    
3066     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
3067    
# Line 3053  Internet-Draft        LinuxSampler Contr Line 3073  Internet-Draft        LinuxSampler Contr
3073     Where <midi-input-type> is currently only "ALSA" and <sampler-     Where <midi-input-type> is currently only "ALSA" and <sampler-
3074     channel> is the respective sampler channel number.     channel> is the respective sampler channel number.
3075    
3076    
3077    
3078    
3079    Schoenebeck               Expires May 30, 2007                 [Page 55]
3080    
3081    Internet-Draft        LinuxSampler Control Protocol        November 2006
3082    
3083    
3084     Possible Answers:     Possible Answers:
3085    
3086        "OK" -        "OK" -
# Line 3074  Internet-Draft        LinuxSampler Contr Line 3102  Internet-Draft        LinuxSampler Contr
3102    
3103    
3104    
3105    6.4.19.  Setting MIDI input port
   
 Schoenebeck             Expires January 22, 2006               [Page 55]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
   
   
   
 6.4.19  Setting MIDI input port  
3106    
3107     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
3108     channel by sending the following command:     channel by sending the following command:
# Line 3111  Internet-Draft        LinuxSampler Contr Line 3129  Internet-Draft        LinuxSampler Contr
3129           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3130           error message           error message
3131    
    Examples:  
3132    
3133    
3134    
3135    Schoenebeck               Expires May 30, 2007                 [Page 56]
3136    
3137    Internet-Draft        LinuxSampler Control Protocol        November 2006
3138    
3139    
3140       Examples:
3141    
3142    
3143  6.4.20  Setting MIDI input channel  
3144    6.4.20.  Setting MIDI input channel
3145    
3146     The front-end can alter the MIDI channel a sampler channel should     The front-end can alter the MIDI channel a sampler channel should
3147     listen to by sending the following command:     listen to by sending the following command:
# Line 3129  Internet-Draft        LinuxSampler Contr Line 3154  Internet-Draft        LinuxSampler Contr
3154    
3155     Possible Answers:     Possible Answers:
3156    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 56]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3157        "OK" -        "OK" -
3158    
3159           on success           on success
# Line 3156  Internet-Draft        LinuxSampler Contr Line 3173  Internet-Draft        LinuxSampler Contr
3173    
3174    
3175    
3176    6.4.21.  Setting channel volume
 6.4.21  Setting channel volume  
3177    
3178     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
3179     the following command:     the following command:
# Line 3169  Internet-Draft        LinuxSampler Contr Line 3185  Internet-Draft        LinuxSampler Contr
3185     means amplification) and <sampler-channel> defines the sampler     means amplification) and <sampler-channel> defines the sampler
3186     channel where this volume factor should be set.     channel where this volume factor should be set.
3187    
3188    
3189    
3190    
3191    Schoenebeck               Expires May 30, 2007                 [Page 57]
3192    
3193    Internet-Draft        LinuxSampler Control Protocol        November 2006
3194    
3195    
3196     Possible Answers:     Possible Answers:
3197    
3198        "OK" -        "OK" -
# Line 3186  Internet-Draft        LinuxSampler Contr Line 3210  Internet-Draft        LinuxSampler Contr
3210           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3211           error message           error message
3212    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 57]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3213     Examples:     Examples:
3214    
3215    
3216    
3217    6.4.22.  Muting a sampler channel
 6.4.22  Muting a sampler channel  
3218    
3219     The front-end can mute/unmute a specific sampler channel by sending     The front-end can mute/unmute a specific sampler channel by sending
3220     the following command:     the following command:
# Line 3224  Internet-Draft        LinuxSampler Contr Line 3240  Internet-Draft        LinuxSampler Contr
3240    
3241        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3242    
3243    
3244    
3245    
3246    
3247    Schoenebeck               Expires May 30, 2007                 [Page 58]
3248    
3249    Internet-Draft        LinuxSampler Control Protocol        November 2006
3250    
3251    
3252           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3253           error message           error message
3254    
# Line 3231  Internet-Draft        LinuxSampler Contr Line 3256  Internet-Draft        LinuxSampler Contr
3256    
3257    
3258    
3259    6.4.23.  Soloing a sampler channel
 6.4.23  Soloing a sampler channel  
3260    
3261     The front-end can solo/unsolo a specific sampler channel by sending     The front-end can solo/unsolo a specific sampler channel by sending
3262     the following command:     the following command:
# Line 3241  Internet-Draft        LinuxSampler Contr Line 3265  Internet-Draft        LinuxSampler Contr
3265    
3266     Where <sampler-channel> is the respective sampler channel number as     Where <sampler-channel> is the respective sampler channel number as
3267     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 58]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3268     (Section 6.4.4) command and <solo> should be replaced either by "1"     (Section 6.4.4) command and <solo> should be replaced either by "1"
3269     to solo the channel or "0" to unsolo the channel.     to solo the channel or "0" to unsolo the channel.
3270    
# Line 3273  Internet-Draft        LinuxSampler Contr Line 3289  Internet-Draft        LinuxSampler Contr
3289    
3290    
3291    
3292    6.4.24.  Resetting a sampler channel
 6.4.24  Resetting a sampler channel  
3293    
3294     The front-end can reset a particular sampler channel by sending the     The front-end can reset a particular sampler channel by sending the
3295     following command:     following command:
# Line 3282  Internet-Draft        LinuxSampler Contr Line 3297  Internet-Draft        LinuxSampler Contr
3297        RESET CHANNEL <sampler-channel>        RESET CHANNEL <sampler-channel>
3298    
3299     Where <sampler-channel> defines the sampler channel to be reset.     Where <sampler-channel> defines the sampler channel to be reset.
3300    
3301    
3302    
3303    Schoenebeck               Expires May 30, 2007                 [Page 59]
3304    
3305    Internet-Draft        LinuxSampler Control Protocol        November 2006
3306    
3307    
3308     This will cause the engine on that sampler channel, its voices and     This will cause the engine on that sampler channel, its voices and
3309     eventually disk streams and all control and status variables to be     eventually disk streams and all control and status variables to be
3310     reset.     reset.
# Line 3298  Internet-Draft        LinuxSampler Contr Line 3321  Internet-Draft        LinuxSampler Contr
3321           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3322           message           message
3323    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 59]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3324        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3325    
3326           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 3314  Internet-Draft        LinuxSampler Contr Line 3330  Internet-Draft        LinuxSampler Contr
3330    
3331    
3332    
3333    6.5.  Controlling connection
 6.5  Controlling connection  
3334    
3335     The following commands are used to control the connection to     The following commands are used to control the connection to
3336     LinuxSampler.     LinuxSampler.
3337    
3338  6.5.1  Register front-end for receiving event messages  6.5.1.  Register front-end for receiving event messages
3339    
3340     The front-end can register itself to the LinuxSampler application to     The front-end can register itself to the LinuxSampler application to
3341     be informed about noteworthy events by sending this command:     be informed about noteworthy events by sending this command:
# Line 3336  Internet-Draft        LinuxSampler Contr Line 3351  Internet-Draft        LinuxSampler Contr
3351    
3352           on success           on success
3353    
3354    
3355    
3356    
3357    
3358    
3359    Schoenebeck               Expires May 30, 2007                 [Page 60]
3360    
3361    Internet-Draft        LinuxSampler Control Protocol        November 2006
3362    
3363    
3364        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3365    
3366           if registration succeeded, but there are noteworthy issue(s)           if registration succeeded, but there are noteworthy issue(s)
# Line 3351  Internet-Draft        LinuxSampler Contr Line 3376  Internet-Draft        LinuxSampler Contr
3376    
3377    
3378    
3379    6.5.2.  Unregister front-end for not receiving event messages
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 60]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
 6.5.2  Unregister front-end for not receiving event messages  
3380    
3381     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
3382     event messages anymore by sending the following command:     event messages anymore by sending the following command:
# Line 3393  Internet-Draft        LinuxSampler Contr Line 3408  Internet-Draft        LinuxSampler Contr
3408    
3409    
3410    
3411  6.5.3  Enable or disable echo of commands  
3412    
3413    
3414    
3415    Schoenebeck               Expires May 30, 2007                 [Page 61]
3416    
3417    Internet-Draft        LinuxSampler Control Protocol        November 2006
3418    
3419    
3420    6.5.3.  Enable or disable echo of commands
3421    
3422     To enable or disable back sending of commands to the client the     To enable or disable back sending of commands to the client the
3423     following command can be used:     following command can be used:
# Line 3409  Internet-Draft        LinuxSampler Contr Line 3433  Internet-Draft        LinuxSampler Contr
3433    
3434     Possible Answers:     Possible Answers:
3435    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 61]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3436        "OK" -        "OK" -
3437    
3438           usually           usually
# Line 3429  Internet-Draft        LinuxSampler Contr Line 3445  Internet-Draft        LinuxSampler Contr
3445    
3446    
3447    
3448    6.5.4.  Close client connection
 6.5.4  Close client connection  
3449    
3450     The client can close its network connection to LinuxSampler by     The client can close its network connection to LinuxSampler by
3451     sending the following command:     sending the following command:
# Line 3440  Internet-Draft        LinuxSampler Contr Line 3455  Internet-Draft        LinuxSampler Contr
3455     This is probably more interesting for manual telnet connections to     This is probably more interesting for manual telnet connections to
3456     LinuxSampler than really useful for a front-end implementation.     LinuxSampler than really useful for a front-end implementation.
3457    
3458  6.6  Global commands  6.6.  Global commands
3459    
3460     The following commands have global impact on the sampler.     The following commands have global impact on the sampler.
3461    
3462  6.6.1  Reset sampler  6.6.1.  Current number of active voices
3463    
3464     The front-end can reset the whole sampler by sending the following     The front-end can ask for the current number of active voices on the
3465     command:     sampler by sending the following command:
3466    
3467        RESET  
3468    
3469    
3470    
3471    Schoenebeck               Expires May 30, 2007                 [Page 62]
3472    
3473    Internet-Draft        LinuxSampler Control Protocol        November 2006
3474    
3475    
3476          GET TOTAL_VOICE_COUNT
3477    
3478     Possible Answers:     Possible Answers:
3479    
3480        "OK" -        LinuxSampler will answer by returning the number of all active
3481          voices on the sampler.
3482    
3483           always  6.6.2.  Maximum amount of active voices
3484    
3485     Examples:     The front-end can ask for the maximum number of active voices by
3486       sending the following command:
3487    
3488          GET TOTAL_VOICE_COUNT_MAX
3489    
3490       Possible Answers:
3491    
3492          LinuxSampler will answer by returning the maximum number of active
3493          voices.
3494    
3495  6.6.2  General sampler informations  6.6.3.  Reset sampler
3496    
3497     The client can ask for general informations about the LinuxSampler     The front-end can reset the whole sampler by sending the following
3498       command:
3499    
3500          RESET
3501    
3502       Possible Answers:
3503    
3504          "OK" -
3505    
3506             always
3507    
3508       Examples:
3509    
 Schoenebeck             Expires January 22, 2006               [Page 62]  
3510    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
3511    
3512    6.6.4.  General sampler informations
3513    
3514       The client can ask for general informations about the LinuxSampler
3515     instance by sending the following command:     instance by sending the following command:
3516    
3517        GET SERVER INFO        GET SERVER INFO
# Line 3482  Internet-Draft        LinuxSampler Contr Line 3521  Internet-Draft        LinuxSampler Contr
3521        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
3522        answer line begins with the information category name followed by        answer line begins with the information category name followed by
3523        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
3524    
3525    
3526    
3527    Schoenebeck               Expires May 30, 2007                 [Page 63]
3528    
3529    Internet-Draft        LinuxSampler Control Protocol        November 2006
3530    
3531    
3532        character string to that information category.  At the moment the        character string to that information category.  At the moment the
3533        following categories are defined:        following categories are defined:
3534    
# Line 3503  Internet-Draft        LinuxSampler Contr Line 3550  Internet-Draft        LinuxSampler Contr
3550     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
3551     Other fields might be added in future.     Other fields might be added in future.
3552    
3553    6.7.  MIDI Instrument Mapping
3554    
3555       The MIDI protocol provides a way to switch between instruments by
3556       sending so called MIDI bank select and MIDI program change messages
3557       which are essentially just numbers.  The following commands allow to
3558       actually map arbitrary MIDI bank select / program change numbers with
3559       real instruments.
3560    
3561       By default, that is when the sampler is launched, this map will be
3562       empty, thus the sampler will simply ignore all program change
3563       messages.  The front-end has to explicitly add entries to the map so
3564       the sampler knows how to react on a given program change message,
3565       that is by switching to the respectively defined engine type and
3566       loading the respective instrument.
3567    
3568       Also note per MIDI specification a bank select message does not cause
3569       to switch to another instrument.  Instead when receiving a bank
3570       select message the bank value will be stored and a subsequent program
3571       change message (which may occur at any time) will finally cause the
3572       sampler to switch to the respective instrument as reflected by the
3573       current MIDI instrument map.
3574    
3575    6.7.1.  Create or replace a MIDI instrument map entry
3576    
3577       The front-end can create a new or replace an existing entry in the
3578       sampler's MIDI instrument map by sending the following command:
3579    
3580    
3581    
3582    
3583    Schoenebeck               Expires May 30, 2007                 [Page 64]
3584    
3585    Internet-Draft        LinuxSampler Control Protocol        November 2006
3586    
3587    
3588          MAP MIDI_INSTRUMENT <midi_bank_msb> <midi_bank_lsb> <midi_prog>
3589          <engine_name> <filename> <instrument_index> <volume_value>
3590          [<instr_load_mode>] [<name>]
3591    
3592       Where <midi_bank_msb> is an integer value between 0..127 reflecting
3593       the MIDI bank select MSB (coarse) index, <midi_bank_lsb> an integer
3594       value between 0..127 reflecting the MIDI bank select LSB (fine)
3595       index, <midi_prog> an integer value between 0..127 reflecting the
3596       MIDI program change index, <engine_name> a sampler engine name as
3597       returned by the "LIST AVAILABLE_ENGINES" (Section 6.4.8) command (not
3598       encapsulated into apostrophes), <filename> the name of the
3599       instrument's file to be deployed (encapsulated into apostrophes),
3600       <instrument_index> the index (integer value) of the instrument within
3601       the given file, <volume_value> reflects the master volume of the
3602       instrument as optionally dotted number (where a value < 1.0 means
3603       attenuation and a value > 1.0 means amplification).  This parameter
3604       easily allows to adjust the volume of all intruments within a custom
3605       instrument map without having to adjust their instrument files.  The
3606       OPTIONAL <instr_load_mode> argument defines the life time of the
3607       instrument, that is when the instrument should be loaded, when freed
3608       and has exactly the following possibilities:
3609    
3610          "ON_DEMAND" -
3611    
3612             The instrument will be loaded when needed, that is when
3613             demanded by at least one sampler channel.  It will immediately
3614             be freed from memory when not needed by any sampler channel
3615             anymore.
3616    
3617          "ON_DEMAND_HOLD" -
3618    
3619             The instrument will be loaded when needed, that is when
3620             demanded by at least one sampler channel.  It will be kept in
3621             memory even when not needed by any sampler channel anymore.
3622             Instruments with this mode are only freed when the sampler is
3623             reset or all mapping entries with this mode (and respective
3624             instrument) are explicitly changed to "ON_DEMAND" and no
3625             sampler channel is using the instrument anymore.
3626    
3627          "PERSISTENT" -
3628    
3629             The instrument will immediately be loaded into memory in the
3630             background when this mapping command is sent and the instrument
3631             is kept all the time.  Instruments with this mode are only
3632             freed when the sampler is reset or all mapping entries with
3633             this mode (and respective instrument) are explicitly changed to
3634             "ON_DEMAND" and no sampler channel is using the instrument
3635             anymore.
3636    
3637    
3638    
3639    Schoenebeck               Expires May 30, 2007                 [Page 65]
3640    
3641    Internet-Draft        LinuxSampler Control Protocol        November 2006
3642    
3643    
3644          not supplied -
3645    
3646             In case there is no <instr_load_mode> argument given, it will
3647             be up to the InstrumentManager to decide which mode to use.
3648             Usually it will use "ON_DEMAND" if an entry for the given
3649             instrument does not exist in the InstrumentManager's list yet,
3650             otherwise if an entry already exists, it will simply stick with
3651             the mode currently reflected by the already existing entry,
3652             that is it will not change the mode.
3653    
3654       The <instr_load_mode> argument thus allows to define an appropriate
3655       strategy (low memory consumption vs. fast instrument switching) for
3656       each instrument individually.  Note, the following restrictions apply
3657       to this argument: "ON_DEMAND_HOLD" and "PERSISTENT" have to be
3658       supported by the respective sampler engine (which is technically the
3659       case when the engine provides an InstrumentManager for its format).
3660       If this is not the case the argument will automatically fall back to
3661       the default value "ON_DEMAND".  Also the load mode of one instrument
3662       may automatically change the laod mode of other instrument(s), i.e.
3663       because the instruments are part of the same file and the engine does
3664       not allow a way to manage load modes for them individually.  Due to
3665       this, in case the frontend shows the load modes of entries, the
3666       frontend should retrieve the actual mode by i.e. sending "GET
3667       MIDI_INSTRUMENT INFO" (Section 6.7.5) command(s).  Finally the
3668       OPTIONAL <name> argument allows to set a custom name (encapsulated
3669       into apostrophes) for the mapping entry, useful for frontends for
3670       displaying an appropriate name for mapped instruments (using "GET
3671       MIDI_INSTRUMENT INFO" (Section 6.7.5)).
3672    
3673       The "MAP MIDI_INSTRUMENT" command will immediately return, thus it
3674       will not block when an instrument is to be loaded due to a
3675       "PERSISTENT" type entry as instruments are loaded in the background.
3676       As a consequence this command may not necessarily return an error
3677       i.e. when the given instrument file does not exist or may turn out to
3678       be corrupt.
3679    
3680       Possible Answers:
3681    
3682          "OK" -
3683    
3684             usually
3685    
3686          "ERR:<error-code>:<error-message>" -
3687    
3688             when the given engine does not exist or a value is out of range
3689    
3690       Examples:
3691    
3692    
3693    
3694    
3695    Schoenebeck               Expires May 30, 2007                 [Page 66]
3696    
3697    Internet-Draft        LinuxSampler Control Protocol        November 2006
3698    
3699    
3700          C: "MAP MIDI_INSTRUMENT 3 0 0 gig '/usr/share/Steinway D.gig' 0
3701          0.8 PERSISTENT"
3702    
3703          S: "OK"
3704    
3705          C: "MAP MIDI_INSTRUMENT 127 4 50 gig '/home/john/foostrings.gig' 7
3706          1.0"
3707    
3708          S: "OK"
3709    
3710          C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0
3711          'Normal Piano'"
3712    
3713          S: "OK"
3714    
3715          C: "MAP MIDI_INSTRUMENT 1 0 0 gig '/usr/share/piano.gig' 0 0.25
3716          'Silent Piano'"
3717    
3718          S: "OK"
3719    
3720          C: "MAP MIDI_INSTRUMENT 99 8 120 gig '/home/joe/foodrums.gig' 0
3721          1.0 PERSISTENT 'Foo Drumkit'"
3722    
3723          S: "OK"
3724    
3725    6.7.2.  Getting ammount of MIDI instrument map entries
3726    
3727       The front-end can query the amount of currently existing MIDI
3728       instrument map entries by sending the following command:
3729    
3730          GET MIDI_INSTRUMENTS
3731    
3732       Possible Answers:
3733    
3734          LinuxSampler will answer by sending the current number of entries
3735          in the sampler's MIDI instrument map.
3736    
3737       Example:
3738    
3739          C: "GET MIDI_INSTRUMENTS"
3740    
3741          S: "634"
3742    
3743    6.7.3.  Getting indeces of all MIDI instrument map entries
3744    
3745       The front-end can query a list of all currently existing MIDI
3746       instrument map entries by sending the following command:
3747    
3748    
 Schoenebeck             Expires January 22, 2006               [Page 63]  
3749    
3750  Internet-Draft        LinuxSampler Control Protocol            July 2005  
3751    Schoenebeck               Expires May 30, 2007                 [Page 67]
3752    
3753    Internet-Draft        LinuxSampler Control Protocol        November 2006
3754    
3755    
3756          LIST MIDI_INSTRUMENTS
3757    
3758       Possible Answers:
3759    
3760          LinuxSampler will answer by sending a comma separated list of MIDI
3761          bank MSB (coarse) - MIDI bank LSB (fine) - MIDI program triples,
3762          where each triple is encapsulated into curly braces.  The list is
3763          returned in one single line.  Each triple just reflects the key of
3764          the respective map entry, thus subsequent "GET MIDI_INSTRUMENT
3765          INFO" (Section 6.7.5) command(s) are necessary to retrieve
3766          detailed informations about each entry.
3767    
3768       Example:
3769    
3770          C: "LIST MIDI_INSTRUMENTS"
3771    
3772          S: "{0,0,0},{0,0,1},{120,0,3},{120,0,4},{23,127,127}"
3773    
3774    6.7.4.  Remove an entry from the MIDI instrument map
3775    
3776       The front-end can delete an entry from the MIDI instrument map by
3777       sending the following command:
3778    
3779          UNMAP MIDI_INSTRUMENT <midi_bank_msb> <midi_bank_lsb> <midi_prog>
3780    
3781       Where <midi_bank_msb> is an integer value between 0..127 reflecting
3782       the MIDI bank MSB (coarse) value, <midi_bank_lsb> an integer value
3783       between 0..127 reflecting the MIDI bank LSB (fine) value and
3784       <midi_prog> an integer value between 0..127 reflecting the MIDI
3785       program value of the map entrie's key index triple.
3786    
3787       Possible Answers:
3788    
3789          "OK" -
3790    
3791             usually
3792    
3793          "ERR:<error-code>:<error-message>" -
3794    
3795             when index out of bounds
3796    
3797       Example:
3798    
3799          C: "UNMAP MIDI_INSTRUMENT 2 40 127"
3800    
3801          S: "OK"
3802    
3803    
3804    
3805    
3806    
3807    Schoenebeck               Expires May 30, 2007                 [Page 68]
3808    
3809    Internet-Draft        LinuxSampler Control Protocol        November 2006
3810    
3811    
3812    6.7.5.  Get current settings of MIDI instrument map entry
3813    
3814       The front-end can retrieve the current settings of a certain
3815       instrument map entry by sending the following command:
3816    
3817          GET MIDI_INSTRUMENT INFO <midi_bank_msb> <midi_bank_lsb>
3818          <midi_prog>
3819    
3820       Where <midi_bank_msb> is an integer value between 0..127 reflecting
3821       the MIDI bank MSB (coarse) value, <midi_bank_lsb> an integer value
3822       between 0..127 reflecting the MIDI bank LSB (fine) value and
3823       <midi_prog> an integer value between 0..127 reflecting the MIDI
3824       program value of the map entrie's key index triple.
3825    
3826       Possible Answers:
3827    
3828          LinuxSampler will answer by sending a <CRLF> separated list.  Each
3829          answer line begins with the information category name followed by
3830          a colon and then a space character <SP> and finally the info
3831          character string to that info category.  At the moment the
3832          following categories are defined:
3833    
3834          "NAME" -
3835    
3836             Name for this MIDI instrument map entry (if defined).  This
3837             name shall be used by frontends for displaying a name for this
3838             mapped instrument.  It can be set and changed with the "MAP
3839             MIDI_INSTRUMENT" (Section 6.7.1) command and does not have to
3840             be unique.
3841    
3842          "ENGINE_NAME" -
3843    
3844             Name of the engine to be deployed for this instrument.
3845    
3846          "INSTRUMENT_FILE" -
3847    
3848             File name of the instrument.
3849    
3850          "INSTRUMENT_NR" -
3851    
3852             Index of the instrument within the file.
3853    
3854          "INSTRUMENT_NAME" -
3855    
3856             Name of the loaded instrument as reflected by its file.  In
3857             contrast to the "NAME" field, the "INSTRUMENT_NAME" field
3858             cannot be changed.
3859    
3860    
3861    
3862    
3863    Schoenebeck               Expires May 30, 2007                 [Page 69]
3864    
3865    Internet-Draft        LinuxSampler Control Protocol        November 2006
3866    
3867    
3868          "LOAD_MODE" -
3869    
3870             Life time of instrument (see "MAP MIDI_INSTRUMENT"
3871             (Section 6.7.1) for details about this setting).
3872    
3873          "VOLUME" -
3874    
3875             master volume of the instrument as optionally dotted number
3876             (where a value < 1.0 means attenuation and a value > 1.0 means
3877             amplification)
3878    
3879          The mentioned fields above don't have to be in particular order.
3880    
3881       Example:
3882    
3883          C: "GET MIDI_INSTRUMENT INFO 3 45 120"
3884    
3885          S: "NAME: Drums for Foo Song"
3886    
3887             "ENGINE_NAME: GigEngine"
3888    
3889             "INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
3890    
3891             "INSTRUMENT_NR: 0"
3892    
3893             "INSTRUMENT_NAME: Joe's Drumkit"
3894    
3895             "LOAD_MODE: PERSISTENT"
3896    
3897             "VOLUME: 1.0"
3898    
3899             "."
3900    
3901    6.7.6.  Clear MIDI instrument map
3902    
3903       The front-end can clear the whole MIDI instrument map, that is delete
3904       all entries by sending the following command:
3905    
3906          CLEAR MIDI_INSTRUMENTS
3907    
3908       Possible Answers:
3909    
3910          "OK" -
3911    
3912             always
3913    
3914       Example:
3915    
3916    
3917    
3918    
3919    Schoenebeck               Expires May 30, 2007                 [Page 70]
3920    
3921    Internet-Draft        LinuxSampler Control Protocol        November 2006
3922    
3923    
3924          C: "CLEAR MIDI_INSTRUMENTS"
3925    
3926          S: "OK"
3927    
3928    
3929    
3930    
3931    
3932    
3933    
3934    
3935    
3936    
3937    
3938    
3939    
3940    
3941    
3942    
3943    
3944    
3945    
3946    
3947    
3948    
3949    
3950    
3951    
3952    
3953    
3954    
3955    
3956    
3957    
3958    
3959    
3960    
3961    
3962    
3963    
3964    
3965    
3966    
3967    
3968    
3969    
3970    
3971    
3972    
3973    
3974    
3975    Schoenebeck               Expires May 30, 2007                 [Page 71]
3976    
3977    Internet-Draft        LinuxSampler Control Protocol        November 2006
3978    
3979    
3980  7.  Command Syntax  7.  Command Syntax
# Line 3567  Internet-Draft        LinuxSampler Contr Line 4015  Internet-Draft        LinuxSampler Contr
4015    
4016        ADD SP CHANNEL        ADD SP CHANNEL
4017    
4018          / MAP SP map_instruction
4019    
4020          / UNMAP SP unmap_instruction
4021    
4022        / GET SP get_instruction        / GET SP get_instruction
4023    
4024        / CREATE SP create_instruction        / CREATE SP create_instruction
4025    
4026        / DESTROY SP destroy_instruction        / DESTROY SP destroy_instruction
4027    
       / LIST SP list_instruction  
   
       / LOAD SP load_instruction  
4028    
4029    
4030    
4031    Schoenebeck               Expires May 30, 2007                 [Page 72]
4032    
4033    Internet-Draft        LinuxSampler Control Protocol        November 2006
4034    
 Schoenebeck             Expires January 22, 2006               [Page 64]  
4035    
4036  Internet-Draft        LinuxSampler Control Protocol            July 2005        / LIST SP list_instruction
4037    
4038          / LOAD SP load_instruction
4039    
4040        / REMOVE SP CHANNEL SP sampler_channel        / REMOVE SP remove_instruction
4041    
4042        / SET SP set_instruction        / SET SP set_instruction
4043    
# Line 3595  Internet-Draft        LinuxSampler Contr Line 4047  Internet-Draft        LinuxSampler Contr
4047    
4048        / SELECT SP text        / SELECT SP text
4049    
4050        / RESET SP CHANNEL SP sampler_channel        / RESET SP reset_instruction
4051    
4052          / CLEAR SP clear_instruction
4053    
4054        / RESET        / RESET
4055    
# Line 3615  Internet-Draft        LinuxSampler Contr Line 4069  Internet-Draft        LinuxSampler Contr
4069    
4070        / MISCELLANEOUS        / MISCELLANEOUS
4071    
4072          / TOTAL_VOICE_COUNT
4073    
4074     unsubscribe_event =     unsubscribe_event =
4075    
4076        CHANNEL_COUNT        CHANNEL_COUNT
# Line 3625  Internet-Draft        LinuxSampler Contr Line 4081  Internet-Draft        LinuxSampler Contr
4081    
4082        / BUFFER_FILL        / BUFFER_FILL
4083    
4084    
4085    
4086    
4087    Schoenebeck               Expires May 30, 2007                 [Page 73]
4088    
4089    Internet-Draft        LinuxSampler Control Protocol        November 2006
4090    
4091    
4092        / CHANNEL_INFO        / CHANNEL_INFO
4093    
4094        / MISCELLANEOUS        / MISCELLANEOUS
4095    
4096     get_instruction =        / TOTAL_VOICE_COUNT
4097    
4098        AVAILABLE_ENGINES     map_instruction =
4099    
4100          MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog SP
4101          engine_name SP filename SP instrument_index SP volume_value
4102    
4103          / MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog
4104          SP engine_name SP filename SP instrument_index SP volume_value SP
4105          instr_load_mode
4106    
4107          / MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog
4108          SP engine_name SP filename SP instrument_index SP volume_value SP
4109          entry_name
4110    
4111          / MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog
4112          SP engine_name SP filename SP instrument_index SP volume_value SP
4113          instr_load_mode SP entry_name
4114    
4115  Schoenebeck             Expires January 22, 2006               [Page 65]     unmap_instruction =
4116    
4117  Internet-Draft        LinuxSampler Control Protocol            July 2005        MIDI_INSTRUMENT SP midi_bank_msb SP midi_bank_lsb SP midi_prog
4118    
4119       remove_instruction =
4120    
4121          CHANNEL SP sampler_channel
4122    
4123       get_instruction =
4124    
4125          AVAILABLE_ENGINES
4126    
4127        / AVAILABLE_MIDI_INPUT_DRIVERS        / AVAILABLE_MIDI_INPUT_DRIVERS
4128    
# Line 3654  Internet-Draft        LinuxSampler Contr Line 4137  Internet-Draft        LinuxSampler Contr
4137    
4138        / AUDIO_OUTPUT_DRIVER SP INFO SP string        / AUDIO_OUTPUT_DRIVER SP INFO SP string
4139    
4140    
4141    
4142    
4143    Schoenebeck               Expires May 30, 2007                 [Page 74]
4144    
4145    Internet-Draft        LinuxSampler Control Protocol        November 2006
4146    
4147    
4148        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string
4149    
4150        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP        / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP
# Line 3688  Internet-Draft        LinuxSampler Contr Line 4179  Internet-Draft        LinuxSampler Contr
4179    
4180        / ENGINE SP INFO SP engine_name        / ENGINE SP INFO SP engine_name
4181    
4182          / SERVER SP INFO
4183    
4184          / TOTAL_VOICE_COUNT
4185    
4186          / TOTAL_VOICE_COUNT_MAX
4187    
4188          / MIDI_INSTRUMENTS
4189    
4190  Schoenebeck             Expires January 22, 2006               [Page 66]        / MIDI_INSTRUMENT SP INFO SP midi_bank_msb SP midi_bank_lsb SP
4191          midi_prog
4192    
4193       set_instruction =
4194    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
4195    
4196    
       / SERVER SP INFO  
4197    
4198     set_instruction =  
4199    Schoenebeck               Expires May 30, 2007                 [Page 75]
4200    
4201    Internet-Draft        LinuxSampler Control Protocol        November 2006
4202    
4203    
4204        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='
4205        param_val_list        param_val_list
# Line 3727  Internet-Draft        LinuxSampler Contr Line 4227  Internet-Draft        LinuxSampler Contr
4227    
4228        / MIDI_INPUT_DEVICE SP string        / MIDI_INPUT_DEVICE SP string
4229    
4230       reset_instruction =
4231    
4232          CHANNEL SP sampler_channel
4233    
4234       clear_instruction =
4235    
4236          MIDI_INSTRUMENTS
4237    
4238     destroy_instruction =     destroy_instruction =
4239    
4240        AUDIO_OUTPUT_DEVICE SP number        AUDIO_OUTPUT_DEVICE SP number
# Line 3741  Internet-Draft        LinuxSampler Contr Line 4249  Internet-Draft        LinuxSampler Contr
4249    
4250     set_chan_instruction =     set_chan_instruction =
4251    
       AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index  
4252    
       / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index  
       SP audio_channel_index  
4253    
4254    
4255    Schoenebeck               Expires May 30, 2007                 [Page 76]
4256    
4257    Internet-Draft        LinuxSampler Control Protocol        November 2006
4258    
 Schoenebeck             Expires January 22, 2006               [Page 67]  
4259    
4260  Internet-Draft        LinuxSampler Control Protocol            July 2005        AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
4261    
4262          / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index
4263          SP audio_channel_index
4264    
4265        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
4266    
# Line 3795  Internet-Draft        LinuxSampler Contr Line 4304  Internet-Draft        LinuxSampler Contr
4304    
4305        / AVAILABLE_ENGINES        / AVAILABLE_ENGINES
4306    
       / AVAILABLE_MIDI_INPUT_DRIVERS  
4307    
       / AVAILABLE_AUDIO_OUTPUT_DRIVERS  
4308    
    load_instr_args =  
4309    
4310    
4311    Schoenebeck               Expires May 30, 2007                 [Page 77]
4312    
4313    Internet-Draft        LinuxSampler Control Protocol        November 2006
4314    
4315    
4316  Schoenebeck             Expires January 22, 2006               [Page 68]        / AVAILABLE_MIDI_INPUT_DRIVERS
4317    
4318          / AVAILABLE_AUDIO_OUTPUT_DRIVERS
4319    
4320  Internet-Draft        LinuxSampler Control Protocol            July 2005        / MIDI_INSTRUMENTS
4321    
4322       load_instr_args =
4323    
4324        filename SP instrument_index SP sampler_channel        filename SP instrument_index SP sampler_channel
4325    
# Line 3817  Internet-Draft        LinuxSampler Contr Line 4329  Internet-Draft        LinuxSampler Contr
4329    
4330        engine_name SP sampler_channel        engine_name SP sampler_channel
4331    
4332       instr_load_mode =
4333    
4334          ON_DEMAND
4335    
4336          / ON_DEMAND_HOLD
4337    
4338          / PERSISTENT
4339    
4340     device_index =     device_index =
4341    
4342        number        number
# Line 3841  Internet-Draft        LinuxSampler Contr Line 4361  Internet-Draft        LinuxSampler Contr
4361    
4362     midi_input_type_name =     midi_input_type_name =
4363    
       string  
4364    
    volume_value =  
4365    
       dotnum  
4366    
4367        / number  Schoenebeck               Expires May 30, 2007                 [Page 78]
4368    
4369    Internet-Draft        LinuxSampler Control Protocol        November 2006
4370    
4371     sampler_channel =  
4372          string
4373    
4374       midi_bank_msb =
4375    
4376        number        number
4377    
4378     instrument_index =     midi_bank_lsb =
4379    
4380        number        number
4381    
4382       midi_prog =
4383    
4384          number
4385    
4386       volume_value =
4387    
4388  Schoenebeck             Expires January 22, 2006               [Page 69]        dotnum
4389    
4390  Internet-Draft        LinuxSampler Control Protocol            July 2005        / number
4391    
4392       sampler_channel =
4393    
4394          number
4395    
4396       instrument_index =
4397    
4398          number
4399    
4400     engine_name =     engine_name =
4401    
# Line 3873  Internet-Draft        LinuxSampler Contr Line 4405  Internet-Draft        LinuxSampler Contr
4405    
4406        stringval        stringval
4407    
4408       entry_name =
4409    
4410          stringval
4411    
4412     param_val_list =     param_val_list =
4413    
4414        param_val        param_val
# Line 3881  Internet-Draft        LinuxSampler Contr Line 4417  Internet-Draft        LinuxSampler Contr
4417    
4418     param_val =     param_val =
4419    
       string  
4420    
       / '\'' string '\''  
4421    
4422        / '\"' string '\"'  
4423    Schoenebeck               Expires May 30, 2007                 [Page 79]
4424    
4425    Internet-Draft        LinuxSampler Control Protocol        November 2006
4426    
4427    
4428          string
4429    
4430          / stringval
4431    
4432        / number        / number
4433    
# Line 3916  Internet-Draft        LinuxSampler Contr Line 4458  Internet-Draft        LinuxSampler Contr
4458    
4459    
4460    
 Schoenebeck             Expires January 22, 2006               [Page 70]  
4461    
4462  Internet-Draft        LinuxSampler Control Protocol            July 2005  
4463    
4464    
4465    
4466    
4467    
4468    
4469    
4470    
4471    
4472    
4473    
4474    
4475    
4476    
4477    
4478    
4479    Schoenebeck               Expires May 30, 2007                 [Page 80]
4480    
4481    Internet-Draft        LinuxSampler Control Protocol        November 2006
4482    
4483    
4484  8.  Events  8.  Events
# Line 3926  Internet-Draft        LinuxSampler Contr Line 4486  Internet-Draft        LinuxSampler Contr
4486     This chapter will describe all currently defined events supported by     This chapter will describe all currently defined events supported by
4487     LinuxSampler.     LinuxSampler.
4488    
4489  8.1  Number of sampler channels changed  8.1.  Number of sampler channels changed
4490    
4491     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
4492     the back-end changes by issuing the following command:     the back-end changes by issuing the following command:
# Line 3940  Internet-Draft        LinuxSampler Contr Line 4500  Internet-Draft        LinuxSampler Contr
4500     where <channels> will be replaced by the new number of sampler     where <channels> will be replaced by the new number of sampler
4501     channels.     channels.
4502    
4503  8.2  Number of active voices changed  8.2.  Number of active voices changed
4504    
4505     Client may want to be notified when the number of voices on the back-     Client may want to be notified when the number of voices on the back-
4506     end changes by issuing the following command:     end changes by issuing the following command:
# Line 3955  Internet-Draft        LinuxSampler Contr Line 4515  Internet-Draft        LinuxSampler Contr
4515     voice count change occurred and <voices> by the new number of active     voice count change occurred and <voices> by the new number of active
4516     voices on that channel.     voices on that channel.
4517    
4518  8.3  Number of active disk streams changed  8.3.  Number of active disk streams changed
4519    
4520     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
4521     back-end changes by issuing the following command: SUBSCRIBE     back-end changes by issuing the following command: SUBSCRIBE
# Line 3972  Internet-Draft        LinuxSampler Contr Line 4532  Internet-Draft        LinuxSampler Contr
4532    
4533    
4534    
4535  Schoenebeck             Expires January 22, 2006               [Page 71]  Schoenebeck               Expires May 30, 2007                 [Page 81]
4536    
4537  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4538    
4539    
4540     active disk streams on that channel.     active disk streams on that channel.
4541    
4542  8.4  Disk stream buffer fill state changed  8.4.  Disk stream buffer fill state changed
4543    
4544     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
4545     stream on the back-end changes by issuing the following command:     stream on the back-end changes by issuing the following command:
# Line 3996  Internet-Draft        LinuxSampler Contr Line 4556  Internet-Draft        LinuxSampler Contr
4556     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"
4557     (Section 6.4.13) command was issued on this channel.     (Section 6.4.13) command was issued on this channel.
4558    
4559  8.5  Channel information changed  8.5.  Channel information changed
4560    
4561     Client may want to be notified when changes were made to sampler     Client may want to be notified when changes were made to sampler
4562     channels on the back-end by issuing the following command:     channels on the back-end by issuing the following command:
# Line 4014  Internet-Draft        LinuxSampler Contr Line 4574  Internet-Draft        LinuxSampler Contr
4574     rather than real time events happening on the server, it is believed     rather than real time events happening on the server, it is believed
4575     that an empty notification message is sufficient here.     that an empty notification message is sufficient here.
4576    
4577  8.6  Miscellaneous and debugging events  8.6.  Total number of active voices changed
4578    
4579     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
4580     occurring at the server by issuing the following command:     back-end changes by issuing the following command:
4581    
4582        SUBSCRIBE MISCELLANEOUS        SUBSCRIBE TOTAL_VOICE_COUNT
4583    
4584     Server will start sending the following notification messages:     Server will start sending the following notification messages:
4585    
# Line 4028  Internet-Draft        LinuxSampler Contr Line 4588  Internet-Draft        LinuxSampler Contr
4588    
4589    
4590    
4591  Schoenebeck             Expires January 22, 2006               [Page 72]  Schoenebeck               Expires May 30, 2007                 [Page 82]
4592    
4593  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
   
   
       "NOTIFY:MISCELLANEOUS:<string>"  
   
    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.  
   
   
   
   
   
   
4594    
4595    
4596          "NOTIFY:TOTAL_VOICE_COUNT:<voices>
4597    
4598       where <voices> will be replaced by the new number of all currently
4599       active voices.
4600    
4601    8.7.  Miscellaneous and debugging events
4602    
4603       Client may want to be notified of miscellaneous and debugging events
4604       occurring at the server by issuing the following command:
4605    
4606          SUBSCRIBE MISCELLANEOUS
4607    
4608       Server will start sending the following notification messages:
4609    
4610          "NOTIFY:MISCELLANEOUS:<string>"
4611    
4612       where <string> will be replaced by whatever data server wants to send
4613       to the client.  Client MAY display this data to the user AS IS to
4614       facilitate debugging.
4615    
4616    
4617    
# Line 4084  Internet-Draft        LinuxSampler Contr Line 4643  Internet-Draft        LinuxSampler Contr
4643    
4644    
4645    
 Schoenebeck             Expires January 22, 2006               [Page 73]  
4646    
4647  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 30, 2007                 [Page 83]
4648    
4649    Internet-Draft        LinuxSampler Control Protocol        November 2006
4650    
4651    
4652  9.  Security Considerations  9.  Security Considerations
# Line 4140  Internet-Draft        LinuxSampler Contr Line 4700  Internet-Draft        LinuxSampler Contr
4700    
4701    
4702    
4703  Schoenebeck             Expires January 22, 2006               [Page 74]  Schoenebeck               Expires May 30, 2007                 [Page 84]
4704    
4705  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4706    
4707    
4708  10.  Acknowledgments  10.  Acknowledgments
# Line 4172  Internet-Draft        LinuxSampler Contr Line 4732  Internet-Draft        LinuxSampler Contr
4732                CONTROL PROTOCOL", RFC 793, 1981.                CONTROL PROTOCOL", RFC 793, 1981.
4733    
4734    
4735    
4736    
4737    
4738    
4739    
4740    
4741    
4742    
4743    
4744    
4745    
4746    
4747    
4748    
4749    
4750    
4751    
4752    
4753    
4754    
4755    
4756    
4757    
4758    
4759    Schoenebeck               Expires May 30, 2007                 [Page 85]
4760    
4761    Internet-Draft        LinuxSampler Control Protocol        November 2006
4762    
4763    
4764  Author's Address  Author's Address
4765    
4766     C. Schoenebeck     C. Schoenebeck
# Line 4196  Author's Address Line 4785  Author's Address
4785    
4786    
4787    
 Schoenebeck             Expires January 22, 2006               [Page 75]  
4788    
4789  Internet-Draft        LinuxSampler Control Protocol            July 2005  
4790    
4791    
4792    
4793    
4794    
4795    
4796    
4797    
4798    
4799    
4800    
4801    
4802    
4803    
4804    
4805    
4806    
4807    
4808    
4809    
4810    
4811    
4812    
4813    
4814    
4815    Schoenebeck               Expires May 30, 2007                 [Page 86]
4816    
4817    Internet-Draft        LinuxSampler Control Protocol        November 2006
4818    
4819    
4820  Intellectual Property Statement  Intellectual Property Statement
# Line 4226  Intellectual Property Statement Line 4842  Intellectual Property Statement
4842    
4843  Full Copyright Statement  Full Copyright Statement
4844    
4845     Copyright (C) The Internet Society (2005).  All Rights Reserved.     Copyright (C) The Internet Society (2006).  All Rights Reserved.
4846    
4847     This document and translations of it may be copied and furnished to     This document and translations of it may be copied and furnished to
4848     others, and derivative works that comment on or otherwise explain it     others, and derivative works that comment on or otherwise explain it
# Line 4252  Full Copyright Statement Line 4868  Full Copyright Statement
4868    
4869    
4870    
4871  Schoenebeck             Expires January 22, 2006               [Page 76]  Schoenebeck               Expires May 30, 2007                 [Page 87]
4872    
4873  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4874    
4875    
4876     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
# Line 4308  Acknowledgment Line 4924  Acknowledgment
4924    
4925    
4926    
4927  Schoenebeck             Expires January 22, 2006               [Page 77]  Schoenebeck               Expires May 30, 2007                 [Page 88]
4928    

Legend:
Removed from v.709  
changed lines
  Added in v.945

  ViewVC Help
Powered by ViewVC