/[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 940 by schoenebeck, Sat Nov 25 17:18:12 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 29, 2007                                  Engineering e. V.
7                                                             July 21, 2005                                                         November 25, 2006
8    
9    
10                       LinuxSampler Control Protocol                       LinuxSampler Control Protocol
# 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 29, 2007.
35    
36  Copyright Notice  Copyright Notice
37    
38     Copyright (C) The Internet Society (2005).  All Rights Reserved.     Copyright (C) The Internet Society (2006).  All Rights Reserved.
39    
40  Abstract  Abstract
41    
# Line 52  Abstract Line 52  Abstract
52    
53    
54    
55  Schoenebeck             Expires January 22, 2006                [Page 1]  Schoenebeck               Expires May 29, 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  . . . . . . . . . . . . . . . . . . . .  4
63     2.   Versioning of this specification . . . . . . . . . . . . . .   5     2.  Versioning of this specification . . . . . . . . . . . . . . .  5
64     3.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   6     3.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  6
65     4.   Focus of this protocol . . . . . . . . . . . . . . . . . . .   7     4.  Focus of this protocol . . . . . . . . . . . . . . . . . . . .  7
66     5.   Communication Overview . . . . . . . . . . . . . . . . . . .   8     5.  Communication Overview . . . . . . . . . . . . . . . . . . . .  8
67       5.1  Request/response communication method  . . . . . . . . . .   8       5.1.  Request/response communication method  . . . . . . . . . .  8
68         5.1.1  Result format  . . . . . . . . . . . . . . . . . . . .   9         5.1.1.  Result format  . . . . . . . . . . . . . . . . . . . .  9
69       5.2  Subscribe/notify communication method  . . . . . . . . . .  11       5.2.  Subscribe/notify communication method  . . . . . . . . . . 11
70     6.   Description for control commands . . . . . . . . . . . . . .  13     6.  Description for control commands . . . . . . . . . . . . . . . 13
71       6.1  Ignored lines and comments . . . . . . . . . . . . . . . .  13       6.1.  Ignored lines and comments . . . . . . . . . . . . . . . . 13
72       6.2  Configuring audio drivers  . . . . . . . . . . . . . . . .  13       6.2.  Configuring audio drivers  . . . . . . . . . . . . . . . . 13
73         6.2.1  Getting amount of available audio output drivers . . .  13         6.2.1.  Getting amount of available audio output drivers . . . 13
74         6.2.2  Getting all available audio output drivers . . . . . .  14         6.2.2.  Getting all available audio output drivers . . . . . . 14
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 . . . . . . . . . . . . . . . . . . . . . . . . 14
77         6.2.4  Getting information about specific audio output         6.2.4.  Getting information about specific audio output
78                driver parameter . . . . . . . . . . . . . . . . . . .  15                 driver parameter . . . . . . . . . . . . . . . . . . . 15
79         6.2.5  Creating an audio output device  . . . . . . . . . . .  19         6.2.5.  Creating an audio output device  . . . . . . . . . . . 19
80         6.2.6  Destroying an audio output device  . . . . . . . . . .  20         6.2.6.  Destroying an audio output device  . . . . . . . . . . 20
81         6.2.7  Getting all created audio output device count  . . . .  21         6.2.7.  Getting all created audio output device count  . . . . 21
82         6.2.8  Getting all created audio output device list . . . . .  21         6.2.8.  Getting all created audio output device list . . . . . 21
83         6.2.9  Getting current settings of an audio output device . .  21         6.2.9.  Getting current settings of an audio output device . . 21
84         6.2.10   Changing settings of audio output devices  . . . . .  23         6.2.10. Changing settings of audio output devices  . . . . . . 23
85         6.2.11   Getting information about an audio channel . . . . .  24         6.2.11. Getting information about an audio channel . . . . . . 23
86         6.2.12   Getting information about specific audio channel         6.2.12. Getting information about specific audio channel
87                  parameter  . . . . . . . . . . . . . . . . . . . . .  25                 parameter  . . . . . . . . . . . . . . . . . . . . . . 25
88         6.2.13   Changing settings of audio output channels . . . . .  27         6.2.13. Changing settings of audio output channels . . . . . . 27
89       6.3  Configuring MIDI input drivers . . . . . . . . . . . . . .  28       6.3.  Configuring MIDI input drivers . . . . . . . . . . . . . . 28
90         6.3.1  Getting amount of available MIDI input drivers . . . .  29         6.3.1.  Getting amount of available MIDI input drivers . . . . 29
91         6.3.2  Getting all available MIDI input drivers . . . . . . .  29         6.3.2.  Getting all available MIDI input drivers . . . . . . . 29
92         6.3.3  Getting information about a specific MIDI input         6.3.3.  Getting information about a specific MIDI input
93                driver . . . . . . . . . . . . . . . . . . . . . . . .  30                 driver . . . . . . . . . . . . . . . . . . . . . . . . 29
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 . . . . . . . . . . . . . . . . . . . 30
96         6.3.5  Creating a MIDI input device . . . . . . . . . . . . .  33         6.3.5.  Creating a MIDI input device . . . . . . . . . . . . . 33
97         6.3.6  Destroying a MIDI input device . . . . . . . . . . . .  34         6.3.6.  Destroying a MIDI input device . . . . . . . . . . . . 34
98         6.3.7  Getting all created MIDI input device count  . . . . .  35         6.3.7.  Getting all created MIDI input device count  . . . . . 35
99         6.3.8  Getting all created MIDI input device list . . . . . .  35         6.3.8.  Getting all created MIDI input device list . . . . . . 35
100         6.3.9  Getting current settings of a MIDI input device  . . .  36         6.3.9.  Getting current settings of a MIDI input device  . . . 35
101         6.3.10   Changing settings of MIDI input devices  . . . . . .  37         6.3.10. Changing settings of MIDI input devices  . . . . . . . 37
102         6.3.11   Getting information about a MIDI port  . . . . . . .  38         6.3.11. Getting information about a MIDI port  . . . . . . . . 37
103         6.3.12   Getting information about specific MIDI port         6.3.12. Getting information about specific MIDI port
104                  parameter  . . . . . . . . . . . . . . . . . . . . .  38                 parameter  . . . . . . . . . . . . . . . . . . . . . . 38
105         6.3.13   Changing settings of MIDI input ports  . . . . . . .  40         6.3.13. Changing settings of MIDI input ports  . . . . . . . . 40
106       6.4  Configuring sampler channels . . . . . . . . . . . . . . .  41       6.4.  Configuring sampler channels . . . . . . . . . . . . . . . 41
107         6.4.1  Loading an instrument  . . . . . . . . . . . . . . . .  41         6.4.1.  Loading an instrument  . . . . . . . . . . . . . . . . 41
108    
109    
110    
111  Schoenebeck             Expires January 22, 2006                [Page 2]  Schoenebeck               Expires May 29, 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 . . . . . . . . . . . . . . . 42
117         6.4.3  Getting all created sampler channel count  . . . . . .  43         6.4.3.  Getting all created sampler channel count  . . . . . . 43
118         6.4.4  Getting all created sampler channel list . . . . . . .  43         6.4.4.  Getting all created sampler channel list . . . . . . . 43
119         6.4.5  Adding a new sampler channel . . . . . . . . . . . . .  44         6.4.5.  Adding a new sampler channel . . . . . . . . . . . . . 43
120         6.4.6  Removing a sampler channel . . . . . . . . . . . . . .  45         6.4.6.  Removing a sampler channel . . . . . . . . . . . . . . 44
121         6.4.7  Getting amount of available engines  . . . . . . . . .  45         6.4.7.  Getting amount of available engines  . . . . . . . . . 45
122         6.4.8  Getting all available engines  . . . . . . . . . . . .  46         6.4.8.  Getting all available engines  . . . . . . . . . . . . 45
123         6.4.9  Getting information about an engine  . . . . . . . . .  46         6.4.9.  Getting information about an engine  . . . . . . . . . 46
124         6.4.10   Getting sampler channel information  . . . . . . . .  47         6.4.10. Getting sampler channel information  . . . . . . . . . 47
125         6.4.11   Current number of active voices  . . . . . . . . . .  50         6.4.11. Current number of active voices  . . . . . . . . . . . 50
126         6.4.12   Current number of active disk streams  . . . . . . .  50         6.4.12. Current number of active disk streams  . . . . . . . . 50
127         6.4.13   Current fill state of disk stream buffers  . . . . .  51         6.4.13. Current fill state of disk stream buffers  . . . . . . 50
128         6.4.14   Setting audio output device  . . . . . . . . . . . .  52         6.4.14. Setting audio output device  . . . . . . . . . . . . . 51
129         6.4.15   Setting audio output type  . . . . . . . . . . . . .  53         6.4.15. Setting audio output type  . . . . . . . . . . . . . . 52
130         6.4.16   Setting audio output channel . . . . . . . . . . . .  53         6.4.16. Setting audio output channel . . . . . . . . . . . . . 53
131         6.4.17   Setting MIDI input device  . . . . . . . . . . . . .  54         6.4.17. Setting MIDI input device  . . . . . . . . . . . . . . 54
132         6.4.18   Setting MIDI input type  . . . . . . . . . . . . . .  55         6.4.18. Setting MIDI input type  . . . . . . . . . . . . . . . 54
133         6.4.19   Setting MIDI input port  . . . . . . . . . . . . . .  56         6.4.19. Setting MIDI input port  . . . . . . . . . . . . . . . 55
134         6.4.20   Setting MIDI input channel . . . . . . . . . . . . .  56         6.4.20. Setting MIDI input channel . . . . . . . . . . . . . . 56
135         6.4.21   Setting channel volume . . . . . . . . . . . . . . .  57         6.4.21. Setting channel volume . . . . . . . . . . . . . . . . 56
136         6.4.22   Muting a sampler channel . . . . . . . . . . . . . .  58         6.4.22. Muting a sampler channel . . . . . . . . . . . . . . . 57
137         6.4.23   Soloing a sampler channel  . . . . . . . . . . . . .  58         6.4.23. Soloing a sampler channel  . . . . . . . . . . . . . . 58
138         6.4.24   Resetting a sampler channel  . . . . . . . . . . . .  59         6.4.24. Resetting a sampler channel  . . . . . . . . . . . . . 58
139       6.5  Controlling connection . . . . . . . . . . . . . . . . . .  60       6.5.  Controlling connection . . . . . . . . . . . . . . . . . . 59
140         6.5.1  Register front-end for receiving event messages  . . .  60         6.5.1.  Register front-end for receiving event messages  . . . 59
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 . . . . . . . . . . . . . . . . . . . . . . . 60
143         6.5.3  Enable or disable echo of commands . . . . . . . . . .  61         6.5.3.  Enable or disable echo of commands . . . . . . . . . . 61
144         6.5.4  Close client connection  . . . . . . . . . . . . . . .  62         6.5.4.  Close client connection  . . . . . . . . . . . . . . . 61
145       6.6  Global commands  . . . . . . . . . . . . . . . . . . . . .  62       6.6.  Global commands  . . . . . . . . . . . . . . . . . . . . . 61
146         6.6.1  Reset sampler  . . . . . . . . . . . . . . . . . . . .  62         6.6.1.  Current number of active voices  . . . . . . . . . . . 61
147         6.6.2  General sampler informations . . . . . . . . . . . . .  62         6.6.2.  Maximum amount of active voices  . . . . . . . . . . . 62
148     7.   Command Syntax . . . . . . . . . . . . . . . . . . . . . . .  64         6.6.3.  Reset sampler  . . . . . . . . . . . . . . . . . . . . 62
149     8.   Events . . . . . . . . . . . . . . . . . . . . . . . . . . .  71         6.6.4.  General sampler informations . . . . . . . . . . . . . 62
150       8.1  Number of sampler channels changed . . . . . . . . . . . .  71     7.  Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . 64
151       8.2  Number of active voices changed  . . . . . . . . . . . . .  71     8.  Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
152       8.3  Number of active disk streams changed  . . . . . . . . . .  71       8.1.  Number of sampler channels changed . . . . . . . . . . . . 71
153       8.4  Disk stream buffer fill state changed  . . . . . . . . . .  72       8.2.  Number of active voices changed  . . . . . . . . . . . . . 71
154       8.5  Channel information changed  . . . . . . . . . . . . . . .  72       8.3.  Number of active disk streams changed  . . . . . . . . . . 71
155       8.6  Miscellaneous and debugging events . . . . . . . . . . . .  72       8.4.  Disk stream buffer fill state changed  . . . . . . . . . . 72
156     9.   Security Considerations  . . . . . . . . . . . . . . . . . .  74       8.5.  Channel information changed  . . . . . . . . . . . . . . . 72
157     10.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  75       8.6.  Total number of active voices changed  . . . . . . . . . . 72
158     11.  References . . . . . . . . . . . . . . . . . . . . . . . . .  75       8.7.  Miscellaneous and debugging events . . . . . . . . . . . . 73
159          Author's Address . . . . . . . . . . . . . . . . . . . . . .  75     9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 74
160          Intellectual Property and Copyright Statements . . . . . . .  76     10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 75
161       11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 75
162       Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 76
163       Intellectual Property and Copyright Statements . . . . . . . . . . 77
164    
165    
166    
167  Schoenebeck             Expires January 22, 2006                [Page 3]  Schoenebeck               Expires May 29, 2007                  [Page 3]
168    
169  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
170    
171    
172  1.  Requirements notation  1.  Requirements notation
# Line 220  Internet-Draft        LinuxSampler Contr Line 220  Internet-Draft        LinuxSampler Contr
220    
221    
222    
223  Schoenebeck             Expires January 22, 2006                [Page 4]  Schoenebeck               Expires May 29, 2007                  [Page 4]
224    
225  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
226    
227    
228  2.  Versioning of this specification  2.  Versioning of this specification
# Line 251  Internet-Draft        LinuxSampler Contr Line 251  Internet-Draft        LinuxSampler Contr
251         sampler's LSCP minor version.         sampler's LSCP minor version.
252    
253     Compatibility can only be claimed if both rules are true.  The     Compatibility can only be claimed if both rules are true.  The
254     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
255     the version of the LSCP specification the sampler complies with.     the version of the LSCP specification the sampler complies with.
256    
257    
# Line 276  Internet-Draft        LinuxSampler Contr Line 276  Internet-Draft        LinuxSampler Contr
276    
277    
278    
279  Schoenebeck             Expires January 22, 2006                [Page 5]  Schoenebeck               Expires May 29, 2007                  [Page 5]
280    
281  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
282    
283    
284  3.  Introduction  3.  Introduction
# Line 332  Internet-Draft        LinuxSampler Contr Line 332  Internet-Draft        LinuxSampler Contr
332    
333    
334    
335  Schoenebeck             Expires January 22, 2006                [Page 6]  Schoenebeck               Expires May 29, 2007                  [Page 6]
336    
337  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
338    
339    
340  4.  Focus of this protocol  4.  Focus of this protocol
# Line 388  Internet-Draft        LinuxSampler Contr Line 388  Internet-Draft        LinuxSampler Contr
388    
389    
390    
391  Schoenebeck             Expires January 22, 2006                [Page 7]  Schoenebeck               Expires May 29, 2007                  [Page 7]
392    
393  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
394    
395    
396  5.  Communication Overview  5.  Communication Overview
# Line 405  Internet-Draft        LinuxSampler Contr Line 405  Internet-Draft        LinuxSampler Contr
405     more effort to be implemented in the front-end application.  The two     more effort to be implemented in the front-end application.  The two
406     communication methods will be described next.     communication methods will be described next.
407    
408  5.1  Request/response communication method  5.1.  Request/response communication method
409    
410     This simple communication method is based on TCP [RFC793].  The     This simple communication method is based on TCP [RFC793].  The
411     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 444  Internet-Draft        LinuxSampler Contr
444    
445    
446    
447  Schoenebeck             Expires January 22, 2006                [Page 8]  Schoenebeck               Expires May 29, 2007                  [Page 8]
448    
449    Internet-Draft        LinuxSampler Control Protocol        November 2006
450    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
451    
452    5.1.1.  Result format
 5.1.1  Result format  
453    
454     Result set could be one of the following types:     Result set could be one of the following types:
455    
# Line 500  Internet-Draft        LinuxSampler Contr Line 500  Internet-Draft        LinuxSampler Contr
500    
501    
502    
503  Schoenebeck             Expires January 22, 2006                [Page 9]  Schoenebeck               Expires May 29, 2007                  [Page 9]
504    
505  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
506    
507    
508     set has the following format:     set has the following format:
# Line 556  Internet-Draft        LinuxSampler Contr Line 556  Internet-Draft        LinuxSampler Contr
556    
557    
558    
559  Schoenebeck             Expires January 22, 2006               [Page 10]  Schoenebeck               Expires May 29, 2007                 [Page 10]
560    
561  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
562    
563    
564     Each line of the result set MUST end with <CRLF>.     Each line of the result set MUST end with <CRLF>.
# Line 573  Internet-Draft        LinuxSampler Contr Line 573  Internet-Draft        LinuxSampler Contr
573    
574        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
575    
576    5.2.  Subscribe/notify communication method
 5.2  Subscribe/notify communication method  
577    
578     This more sophisticated communication method is actually only an     This more sophisticated communication method is actually only an
579     extension of the simple request/response communication method.  The     extension of the simple request/response communication method.  The
# Line 609  Internet-Draft        LinuxSampler Contr Line 608  Internet-Draft        LinuxSampler Contr
608    
609     3.  When response is being sent to the client, event MUST be inserted     3.  When response is being sent to the client, event MUST be inserted
610         in the stream before or after the response, but NOT in the         in the stream before or after the response, but NOT in the
611           middle.  Same is true about the response.  It should never be
612    
613    
614    
615  Schoenebeck             Expires January 22, 2006               [Page 11]  Schoenebeck               Expires May 29, 2007                 [Page 11]
616    
617  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
618    
619    
        middle.  Same is true about the response.  It should never be  
620         inserted in the middle of the event message as well as any other         inserted in the middle of the event message as well as any other
621         response.         response.
622    
# Line 668  Internet-Draft        LinuxSampler Contr Line 667  Internet-Draft        LinuxSampler Contr
667    
668    
669    
 Schoenebeck             Expires January 22, 2006               [Page 12]  
670    
671  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 29, 2007                 [Page 12]
672    
673    Internet-Draft        LinuxSampler Control Protocol        November 2006
674    
675    
676  6.  Description for control commands  6.  Description for control commands
# Line 682  Internet-Draft        LinuxSampler Contr Line 682  Internet-Draft        LinuxSampler Contr
682     LinuxSampler signals the end of the response by a "." (single dot)     LinuxSampler signals the end of the response by a "." (single dot)
683     line.     line.
684    
685  6.1  Ignored lines and comments  6.1.  Ignored lines and comments
686    
687     White lines, that is lines which only contain space and tabulator     White lines, that is lines which only contain space and tabulator
688     characters, and lines that start with a "#" character are ignored,     characters, and lines that start with a "#" character are ignored,
689     thus it's possible for example to group commands and to place     thus it's possible for example to group commands and to place
690     comments in a LSCP script file.     comments in a LSCP script file.
691    
692  6.2  Configuring audio drivers  6.2.  Configuring audio drivers
693    
694     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
695     multiple audio devices simultaneously, e.g. to output the sound of     multiple audio devices simultaneously, e.g. to output the sound of
# Line 718  Internet-Draft        LinuxSampler Contr Line 718  Internet-Draft        LinuxSampler Contr
718     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
719     possible values, etc.     possible values, etc.
720    
721  6.2.1  Getting amount of available audio output drivers  6.2.1.  Getting amount of available audio output drivers
722    
723     Use the following command to get the number of audio output drivers     Use the following command to get the number of audio output drivers
724    
725    
726    
727  Schoenebeck             Expires January 22, 2006               [Page 13]  Schoenebeck               Expires May 29, 2007                 [Page 13]
728    
729  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
730    
731    
732     currently available for the LinuxSampler instance:     currently available for the LinuxSampler instance:
# Line 744  Internet-Draft        LinuxSampler Contr Line 744  Internet-Draft        LinuxSampler Contr
744    
745        S: "2"        S: "2"
746    
747    6.2.2.  Getting all available audio output drivers
 6.2.2  Getting all available audio output drivers  
748    
749     Use the following command to list all audio output drivers currently     Use the following command to list all audio output drivers currently
750     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 763  Internet-Draft        LinuxSampler Contr Line 762  Internet-Draft        LinuxSampler Contr
762    
763        S: "ALSA,JACK"        S: "ALSA,JACK"
764    
765    6.2.3.  Getting information about a specific audio output driver
 6.2.3  Getting information about a specific audio output driver  
766    
767     Use the following command to get detailed information about a     Use the following command to get detailed information about a
768     specific audio output driver:     specific audio output driver:
# Line 780  Internet-Draft        LinuxSampler Contr Line 778  Internet-Draft        LinuxSampler Contr
778    
779    
780    
 Schoenebeck             Expires January 22, 2006               [Page 14]  
781    
782  Internet-Draft        LinuxSampler Control Protocol            July 2005  
783    Schoenebeck               Expires May 29, 2007                 [Page 14]
784    
785    Internet-Draft        LinuxSampler Control Protocol        November 2006
786    
787    
788        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 823  Internet-Draft        LinuxSampler Contr
823    
824           "."           "."
825    
826    6.2.4.  Getting information about specific audio output driver parameter
 6.2.4  Getting information about specific audio output driver parameter  
827    
828     Use the following command to get detailed information about a     Use the following command to get detailed information about a
829     specific audio output driver parameter:     specific audio output driver parameter:
# Line 833  Internet-Draft        LinuxSampler Contr Line 832  Internet-Draft        LinuxSampler Contr
832    
833     Where <audio> is the name of the audio output driver as returned by     Where <audio> is the name of the audio output driver as returned by
834     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,
835       <prm> a specific parameter name for which information should be
836    
837    
838    
839  Schoenebeck             Expires January 22, 2006               [Page 15]  Schoenebeck               Expires May 29, 2007                 [Page 15]
840    
841  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
842    
843    
    <prm> a specific parameter name for which information should be  
844     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"
845     (Section 6.2.3) command) and <deplist> is an optional list of     (Section 6.2.3) command) and <deplist> is an optional list of
846     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 891  Internet-Draft        LinuxSampler Contr
891    
892    
893    
 Schoenebeck             Expires January 22, 2006               [Page 16]  
894    
895  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 29, 2007                 [Page 16]
896    
897    Internet-Draft        LinuxSampler Control Protocol        November 2006
898    
899    
900        MULTIPLICITY -        MULTIPLICITY -
# Line 948  Internet-Draft        LinuxSampler Contr Line 948  Internet-Draft        LinuxSampler Contr
948    
949    
950    
951  Schoenebeck             Expires January 22, 2006               [Page 17]  Schoenebeck               Expires May 29, 2007                 [Page 17]
952    
953  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
954    
955    
956           returned, dependent to driver parameter)           returned, dependent to driver parameter)
# Line 1004  Internet-Draft        LinuxSampler Contr Line 1004  Internet-Draft        LinuxSampler Contr
1004    
1005    
1006    
1007  Schoenebeck             Expires January 22, 2006               [Page 18]  Schoenebeck               Expires May 29, 2007                 [Page 18]
1008    
1009  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1010    
1011    
1012           "TYPE: INT"           "TYPE: INT"
# Line 1027  Internet-Draft        LinuxSampler Contr Line 1027  Internet-Draft        LinuxSampler Contr
1027    
1028           "."           "."
1029    
1030    6.2.5.  Creating an audio output device
1031    
1032  6.2.5  Creating an audio output device     Use the following command to create a new audio output device for the
1033       desired audio output system:
    Use the following command to create a new audio output device for  
    the desired audio output system:  
1034    
1035        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]        CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<param-list>]
1036    
# Line 1057  Internet-Draft        LinuxSampler Contr Line 1056  Internet-Draft        LinuxSampler Contr
1056           in case the device was created successfully, where <device-id>           in case the device was created successfully, where <device-id>
1057           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1058           issue(s) related (e.g. sound card doesn't support given           issue(s) related (e.g. sound card doesn't support given
1059             hardware parameters and the driver is using fall-back values),
1060    
1061    
1062    
1063  Schoenebeck             Expires January 22, 2006               [Page 19]  Schoenebeck               Expires May 29, 2007                 [Page 19]
1064    
1065  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
1066    
1067    
          hardware parameters and the driver is using fall-back values),  
1068           providing an appropriate warning code and warning message           providing an appropriate warning code and warning message
1069    
1070        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
# Line 1083  Internet-Draft        LinuxSampler Contr Line 1082  Internet-Draft        LinuxSampler Contr
1082    
1083        S: "OK[1]"        S: "OK[1]"
1084    
1085    6.2.6.  Destroying an audio output device
 6.2.6  Destroying an audio output device  
1086    
1087     Use the following command to destroy a created output device:     Use the following command to destroy a created output device:
1088    
# Line 1114  Internet-Draft        LinuxSampler Contr Line 1112  Internet-Draft        LinuxSampler Contr
1112           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1113           error message           error message
1114    
1115       Example:
1116    
1117    
 Schoenebeck             Expires January 22, 2006               [Page 20]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1118    
1119    Schoenebeck               Expires May 29, 2007                 [Page 20]
1120    
1121    Internet-Draft        LinuxSampler Control Protocol        November 2006
1122    
    Example:  
1123    
1124        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1125    
1126        S: "OK"        S: "OK"
1127    
1128    6.2.7.  Getting all created audio output device count
 6.2.7  Getting all created audio output device count  
1129    
1130     Use the following command to count all created audio output devices:     Use the following command to count all created audio output devices:
1131    
# Line 1145  Internet-Draft        LinuxSampler Contr Line 1142  Internet-Draft        LinuxSampler Contr
1142    
1143        S: "4"        S: "4"
1144    
1145    6.2.8.  Getting all created audio output device list
 6.2.8  Getting all created audio output device list  
1146    
1147     Use the following command to list all created audio output devices:     Use the following command to list all created audio output devices:
1148    
# Line 1163  Internet-Draft        LinuxSampler Contr Line 1159  Internet-Draft        LinuxSampler Contr
1159    
1160        S: "0,1,4,5"        S: "0,1,4,5"
1161    
1162    6.2.9.  Getting current settings of an audio output device
 6.2.9  Getting current settings of an audio output device  
1163    
1164     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1165     created audio output device:     created audio output device:
1166    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 21]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1167        GET AUDIO_OUTPUT_DEVICE INFO <device-id>        GET AUDIO_OUTPUT_DEVICE INFO <device-id>
1168    
1169     Where <device-id> should be replaced by numerical ID of the audio     Where <device-id> should be replaced by numerical ID of the audio
1170     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"
1171     (Section 6.2.8) command.     (Section 6.2.8) command.
1172    
1173    
1174    
1175    Schoenebeck               Expires May 29, 2007                 [Page 21]
1176    
1177    Internet-Draft        LinuxSampler Control Protocol        November 2006
1178    
1179    
1180     Possible Answers:     Possible Answers:
1181    
1182     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 1219  Internet-Draft        LinuxSampler Contr
1219    
1220        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
1221    
1222             "CHANNELS: 2"
1223    
1224             "SAMPLERATE: 44100"
1225    
1226             "ACTIVE: true"
1227    
 Schoenebeck             Expires January 22, 2006               [Page 22]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1228    
1229    
          "CHANNELS: 2"  
1230    
1231           "SAMPLERATE: 44100"  Schoenebeck               Expires May 29, 2007                 [Page 22]
1232    
1233    Internet-Draft        LinuxSampler Control Protocol        November 2006
1234    
          "ACTIVE: true"  
1235    
1236           "FRAGMENTS: 2"           "FRAGMENTS: 2"
1237    
# Line 1247  Internet-Draft        LinuxSampler Contr Line 1241  Internet-Draft        LinuxSampler Contr
1241    
1242           "."           "."
1243    
1244    6.2.10.  Changing settings of audio output devices
 6.2.10  Changing settings of audio output devices  
1245    
1246     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
1247     audio output device:     audio output device:
# Line 1280  Internet-Draft        LinuxSampler Contr Line 1273  Internet-Draft        LinuxSampler Contr
1273    
1274     Example:     Example:
1275    
1276          C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"
1277    
1278          S: "OK"
1279    
1280    6.2.11.  Getting information about an audio channel
1281    
1282       Use the following command to get information about an audio channel:
1283    
 Schoenebeck             Expires January 22, 2006               [Page 23]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
       C: "SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 FRAGMENTSIZE=128"  
1284    
       S: "OK"  
1285    
1286    
1287  6.2.11  Getting information about an audio channel  Schoenebeck               Expires May 29, 2007                 [Page 23]
1288    
1289    Internet-Draft        LinuxSampler Control Protocol        November 2006
1290    
    Use the following command to get information about an audio channel:  
1291    
1292        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>        GET AUDIO_OUTPUT_CHANNEL INFO <device-id> <audio-chan>
1293    
# Line 1337  Internet-Draft        LinuxSampler Contr Line 1328  Internet-Draft        LinuxSampler Contr
1328              actually will be routed / added to (only returned in case              actually will be routed / added to (only returned in case
1329              the audio channel is mix channel)              the audio channel is mix channel)
1330    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 24]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1331     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
1332     fields above are only those fields which are generally returned for     fields above are only those fields which are generally returned for
1333     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 1336  Internet-Draft        LinuxSampler Contr
1336    
1337     Examples:     Examples:
1338    
1339    
1340    
1341    
1342    
1343    Schoenebeck               Expires May 29, 2007                 [Page 24]
1344    
1345    Internet-Draft        LinuxSampler Control Protocol        November 2006
1346    
1347    
1348        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
1349    
1350        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
# Line 1389  Internet-Draft        LinuxSampler Contr Line 1381  Internet-Draft        LinuxSampler Contr
1381    
1382           "."           "."
1383    
1384    6.2.12.  Getting information about specific audio channel parameter
 6.2.12  Getting information about specific audio channel parameter  
1385    
1386     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 25]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1387     audio channel parameter:     audio channel parameter:
1388    
1389        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 1393  Internet-Draft        LinuxSampler Contr
1393     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio
1394     channel number and <param> a specific channel parameter name for     channel number and <param> a specific channel parameter name for
1395     which information should be obtained (as returned by the "GET     which information should be obtained (as returned by the "GET
1396    
1397    
1398    
1399    Schoenebeck               Expires May 29, 2007                 [Page 25]
1400    
1401    Internet-Draft        LinuxSampler Control Protocol        November 2006
1402    
1403    
1404     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).
1405    
1406     Possible Answers:     Possible Answers:
# Line 1448  Internet-Draft        LinuxSampler Contr Line 1439  Internet-Draft        LinuxSampler Contr
1439              values and false only a single value allowed (always              values and false only a single value allowed (always
1440              returned)              returned)
1441    
1442             RANGE_MIN -
1443    
1444                defines lower limit of the allowed value range for this
1445                parameter, can be an integer value as well as a dotted
1446                number, usually used in conjunction with 'RANGE_MAX', but
1447                may also appear without (optionally returned, dependent to
1448                driver and channel parameter)
1449    
1450    
1451    
 Schoenebeck             Expires January 22, 2006               [Page 26]  
1452    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
1453    
1454    
1455           RANGE_MIN -  Schoenebeck               Expires May 29, 2007                 [Page 26]
1456    
1457    Internet-Draft        LinuxSampler Control Protocol        November 2006
1458    
             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)  
1459    
1460           RANGE_MAX -           RANGE_MAX -
1461    
# Line 1498  Internet-Draft        LinuxSampler Contr Line 1490  Internet-Draft        LinuxSampler Contr
1490    
1491           "."           "."
1492    
1493    6.2.13.  Changing settings of audio output channels
 6.2.13  Changing settings of audio output channels  
1494    
1495     Use the following command to alter a specific setting of an audio     Use the following command to alter a specific setting of an audio
1496     output channel:     output channel:
1497    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 27]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1498        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>        SET AUDIO_OUTPUT_CHANNEL_PARAMETER <dev-id> <chn> <key>=<value>
1499    
1500     Where <dev-id> should be replaced by the numerical ID of the audio     Where <dev-id> should be replaced by the numerical ID of the audio
# Line 1523  Internet-Draft        LinuxSampler Contr Line 1505  Internet-Draft        LinuxSampler Contr
1505    
1506     Possible Answers:     Possible Answers:
1507    
1508    
1509    
1510    
1511    Schoenebeck               Expires May 29, 2007                 [Page 27]
1512    
1513    Internet-Draft        LinuxSampler Control Protocol        November 2006
1514    
1515    
1516        "OK" -        "OK" -
1517    
1518           in case setting was successfully changed           in case setting was successfully changed
# Line 1548  Internet-Draft        LinuxSampler Contr Line 1538  Internet-Draft        LinuxSampler Contr
1538    
1539        S: "OK"        S: "OK"
1540    
1541    6.3.  Configuring MIDI input drivers
 6.3  Configuring MIDI input drivers  
1542    
1543     Instances of drivers in LinuxSampler are called devices.  You can use     Instances of drivers in LinuxSampler are called devices.  You can use
1544     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet     multiple MIDI devices simultaneously, e.g. to use MIDI over ethernet
# Line 1561  Internet-Draft        LinuxSampler Contr Line 1550  Internet-Draft        LinuxSampler Contr
1550    
1551     Instead of defining commands and parameters for each driver     Instead of defining commands and parameters for each driver
1552     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  
   
   
1553     values have to be obtained at runtime.  This makes the protocol a bit     values have to be obtained at runtime.  This makes the protocol a bit
1554     abstract, but has the advantage, that front-ends can be written     abstract, but has the advantage, that front-ends can be written
1555     independently of what drivers are currently implemented and what     independently of what drivers are currently implemented and what
# Line 1580  Internet-Draft        LinuxSampler Contr Line 1561  Internet-Draft        LinuxSampler Contr
1561     as the commands for configuring audio output drivers, already     as the commands for configuring audio output drivers, already
1562     described in the last chapter.     described in the last chapter.
1563    
1564    
1565    
1566    
1567    Schoenebeck               Expires May 29, 2007                 [Page 28]
1568    
1569    Internet-Draft        LinuxSampler Control Protocol        November 2006
1570    
1571    
1572     Note: examples in this chapter showing particular parameters of     Note: examples in this chapter showing particular parameters of
1573     drivers are not meant as specification of the drivers' parameters.     drivers are not meant as specification of the drivers' parameters.
1574     Driver implementations in LinuxSampler might have complete different     Driver implementations in LinuxSampler might have complete different
# Line 1588  Internet-Draft        LinuxSampler Contr Line 1577  Internet-Draft        LinuxSampler Contr
1577     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
1578     possible values, etc.     possible values, etc.
1579    
1580  6.3.1  Getting amount of available MIDI input drivers  6.3.1.  Getting amount of available MIDI input drivers
1581    
1582     Use the following command to get the number of MIDI input drivers     Use the following command to get the number of MIDI input drivers
1583     currently available for the LinuxSampler instance:     currently available for the LinuxSampler instance:
# Line 1606  Internet-Draft        LinuxSampler Contr Line 1595  Internet-Draft        LinuxSampler Contr
1595    
1596        S: "2"        S: "2"
1597    
1598    6.3.2.  Getting all available MIDI input drivers
 6.3.2  Getting all available MIDI input drivers  
1599    
1600     Use the following command to list all MIDI input drivers currently     Use the following command to list all MIDI input drivers currently
1601     available for the LinuxSampler instance:     available for the LinuxSampler instance:
# Line 1616  Internet-Draft        LinuxSampler Contr Line 1604  Internet-Draft        LinuxSampler Contr
1604    
1605     Possible Answers:     Possible Answers:
1606    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 29]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1607        LinuxSampler will answer by sending comma separated character        LinuxSampler will answer by sending comma separated character
1608        strings, each symbolizing a MIDI input driver.        strings, each symbolizing a MIDI input driver.
1609    
# Line 1634  Internet-Draft        LinuxSampler Contr Line 1613  Internet-Draft        LinuxSampler Contr
1613    
1614        S: "ALSA,JACK"        S: "ALSA,JACK"
1615    
1616    6.3.3.  Getting information about a specific MIDI input driver
 6.3.3  Getting information about a specific MIDI input driver  
1617    
1618     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1619     specific MIDI input driver:     specific MIDI input driver:
1620    
1621    
1622    
1623    Schoenebeck               Expires May 29, 2007                 [Page 29]
1624    
1625    Internet-Draft        LinuxSampler Control Protocol        November 2006
1626    
1627    
1628        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>        GET MIDI_INPUT_DRIVER INFO <midi-input-driver>
1629    
1630     Where <midi-input-driver> is the name of the MIDI input driver as     Where <midi-input-driver> is the name of the MIDI input driver as
# Line 1673  Internet-Draft        LinuxSampler Contr Line 1658  Internet-Draft        LinuxSampler Contr
1658    
1659     Example:     Example:
1660    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 30]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1661        C: "GET MIDI_INPUT_DRIVER INFO ALSA"        C: "GET MIDI_INPUT_DRIVER INFO ALSA"
1662    
1663        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
# Line 1691  Internet-Draft        LinuxSampler Contr Line 1668  Internet-Draft        LinuxSampler Contr
1668    
1669           "."           "."
1670    
1671    6.3.4.  Getting information about specific MIDI input driver parameter
 6.3.4  Getting information about specific MIDI input driver parameter  
1672    
1673     Use the following command to get detailed information about a     Use the following command to get detailed information about a
1674     specific parameter of a specific MIDI input driver:     specific parameter of a specific MIDI input driver:
1675    
1676    
1677    
1678    
1679    Schoenebeck               Expires May 29, 2007                 [Page 30]
1680    
1681    Internet-Draft        LinuxSampler Control Protocol        November 2006
1682    
1683    
1684        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]        GET MIDI_INPUT_DRIVER_PARAMETER INFO <midit> <param> [<deplist>]
1685    
1686     Where <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 1713  Internet-Draft        LinuxSampler Contr
1713           character string(s) (always returned, no matter which driver           character string(s) (always returned, no matter which driver
1714           parameter)           parameter)
1715    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 31]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1716        DESCRIPTION -        DESCRIPTION -
1717    
1718           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 1729  Internet-Draft        LinuxSampler Contr
1729    
1730           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
1731           changed at any time, once the device is created by the 'CREATE           changed at any time, once the device is created by the 'CREATE
1732    
1733    
1734    
1735    Schoenebeck               Expires May 29, 2007                 [Page 31]
1736    
1737    Internet-Draft        LinuxSampler Control Protocol        November 2006
1738    
1739    
1740           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1741           matter which driver parameter)           matter which driver parameter)
1742    
# Line 1784  Internet-Draft        LinuxSampler Contr Line 1768  Internet-Draft        LinuxSampler Contr
1768           character strings are encapsulated into apostrophes (')           character strings are encapsulated into apostrophes (')
1769           (optionally returned, dependent to driver parameter)           (optionally returned, dependent to driver parameter)
1770    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 32]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1771        RANGE_MIN -        RANGE_MIN -
1772    
1773           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
# Line 1809  Internet-Draft        LinuxSampler Contr Line 1784  Internet-Draft        LinuxSampler Contr
1784           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1785           driver parameter)           driver parameter)
1786    
1787    
1788    
1789    
1790    
1791    Schoenebeck               Expires May 29, 2007                 [Page 32]
1792    
1793    Internet-Draft        LinuxSampler Control Protocol        November 2006
1794    
1795    
1796        POSSIBILITIES -        POSSIBILITIES -
1797    
1798           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
# Line 1835  Internet-Draft        LinuxSampler Contr Line 1819  Internet-Draft        LinuxSampler Contr
1819    
1820           "."           "."
1821    
1822    6.3.5.  Creating a MIDI input device
1823    
1824  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  
1825     desired MIDI input system:     desired MIDI input system:
1826    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 33]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1827        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]        CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<param-list>]
1828    
1829     Where <midi-input-driver> should be replaced by the desired MIDI     Where <midi-input-driver> should be replaced by the desired MIDI
# Line 1867  Internet-Draft        LinuxSampler Contr Line 1842  Internet-Draft        LinuxSampler Contr
1842           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
1843           is the numerical ID of the new device           is the numerical ID of the new device
1844    
1845    
1846    
1847    Schoenebeck               Expires May 29, 2007                 [Page 33]
1848    
1849    Internet-Draft        LinuxSampler Control Protocol        November 2006
1850    
1851    
1852        "WRN[<device-id>]:<warning-code>:<warning-message>" -        "WRN[<device-id>]:<warning-code>:<warning-message>" -
1853    
1854           in case the driver was loaded successfully, where <device-id>           in case the driver was loaded successfully, where <device-id>
# Line 1885  Internet-Draft        LinuxSampler Contr Line 1867  Internet-Draft        LinuxSampler Contr
1867    
1868        S: "OK[0]"        S: "OK[0]"
1869    
1870    6.3.6.  Destroying a MIDI input device
 6.3.6  Destroying a MIDI input device  
1871    
1872     Use the following command to destroy a created MIDI input device:     Use the following command to destroy a created MIDI input device:
1873    
# Line 1898  Internet-Draft        LinuxSampler Contr Line 1879  Internet-Draft        LinuxSampler Contr
1879    
1880     Possible Answers:     Possible Answers:
1881    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 34]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1882        "OK" -        "OK" -
1883    
1884           in case the device was successfully destroyed           in case the device was successfully destroyed
# Line 1922  Internet-Draft        LinuxSampler Contr Line 1896  Internet-Draft        LinuxSampler Contr
1896    
1897     Example:     Example:
1898    
1899    
1900    
1901    
1902    
1903    Schoenebeck               Expires May 29, 2007                 [Page 34]
1904    
1905    Internet-Draft        LinuxSampler Control Protocol        November 2006
1906    
1907    
1908        C: "DESTROY MIDI_INPUT_DEVICE 0"        C: "DESTROY MIDI_INPUT_DEVICE 0"
1909    
1910        S: "OK"        S: "OK"
1911    
1912    6.3.7.  Getting all created MIDI input device count
 6.3.7  Getting all created MIDI input device count  
1913    
1914     Use the following command to count all created MIDI input devices:     Use the following command to count all created MIDI input devices:
1915    
# Line 1944  Internet-Draft        LinuxSampler Contr Line 1926  Internet-Draft        LinuxSampler Contr
1926    
1927        S: "3"        S: "3"
1928    
1929    6.3.8.  Getting all created MIDI input device list
 6.3.8  Getting all created MIDI input device list  
1930    
1931     Use the following command to list all created MIDI input devices:     Use the following command to list all created MIDI input devices:
1932    
# Line 1953  Internet-Draft        LinuxSampler Contr Line 1934  Internet-Draft        LinuxSampler Contr
1934    
1935     Possible Answers:     Possible Answers:
1936    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 35]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1937        LinuxSampler will answer by sending a comma separated list with        LinuxSampler will answer by sending a comma separated list with
1938        the numerical Ids of all created MIDI input devices.        the numerical Ids of all created MIDI input devices.
1939    
# Line 1974  Internet-Draft        LinuxSampler Contr Line 1947  Internet-Draft        LinuxSampler Contr
1947    
1948        S: "1,3"        S: "1,3"
1949    
1950    6.3.9.  Getting current settings of a MIDI input device
 6.3.9  Getting current settings of a MIDI input device  
1951    
1952     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
1953     created MIDI input device:     created MIDI input device:
1954    
1955    
1956    
1957    
1958    
1959    Schoenebeck               Expires May 29, 2007                 [Page 35]
1960    
1961    Internet-Draft        LinuxSampler Control Protocol        November 2006
1962    
1963    
1964        GET MIDI_INPUT_DEVICE INFO <device-id>        GET MIDI_INPUT_DEVICE INFO <device-id>
1965    
1966     Where <device-id> is the numerical ID of the MIDI input device as     Where <device-id> is the numerical ID of the MIDI input device as
# Line 2010  Internet-Draft        LinuxSampler Contr Line 1991  Internet-Draft        LinuxSampler Contr
1991              inactive and doesn't listen to any incoming MIDI events and              inactive and doesn't listen to any incoming MIDI events and
1992              thus doesn't forward them to connected sampler channels              thus doesn't forward them to connected sampler channels
1993    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 36]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
1994     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
1995     fields above are only those fields which are returned by all MIDI     fields above are only those fields which are returned by all MIDI
1996     input devices.  Every MIDI input driver might have its own,     input devices.  Every MIDI input driver might have its own,
# Line 2035  Internet-Draft        LinuxSampler Contr Line 2009  Internet-Draft        LinuxSampler Contr
2009           "."           "."
2010    
2011    
2012  6.3.10  Changing settings of MIDI input devices  
2013    
2014    
2015    Schoenebeck               Expires May 29, 2007                 [Page 36]
2016    
2017    Internet-Draft        LinuxSampler Control Protocol        November 2006
2018    
2019    
2020    6.3.10.  Changing settings of MIDI input devices
2021    
2022     Use the following command to alter a specific setting of a created     Use the following command to alter a specific setting of a created
2023     MIDI input device:     MIDI input device:
# Line 2065  Internet-Draft        LinuxSampler Contr Line 2047  Internet-Draft        LinuxSampler Contr
2047           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2048           error message           error message
2049    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 37]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2050     Example:     Example:
2051    
2052        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"        C: "SET MIDI_INPUT_DEVICE_PARAMETER 0 ACTIVE=false"
2053    
2054        S: "OK"        S: "OK"
2055    
2056    6.3.11.  Getting information about a MIDI port
 6.3.11  Getting information about a MIDI port  
2057    
2058     Use the following command to get information about a MIDI port:     Use the following command to get information about a MIDI port:
2059    
# Line 2093  Internet-Draft        LinuxSampler Contr Line 2066  Internet-Draft        LinuxSampler Contr
2066    
2067     Possible Answers:     Possible Answers:
2068    
2069    
2070    
2071    Schoenebeck               Expires May 29, 2007                 [Page 37]
2072    
2073    Internet-Draft        LinuxSampler Control Protocol        November 2006
2074    
2075    
2076        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2077        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2078        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
# Line 2117  Internet-Draft        LinuxSampler Contr Line 2097  Internet-Draft        LinuxSampler Contr
2097    
2098           "."           "."
2099    
2100    6.3.12.  Getting information about specific MIDI port parameter
 6.3.12  Getting information about specific MIDI port parameter  
2101    
2102     Use the following command to get detailed information about specific     Use the following command to get detailed information about specific
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 38]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2103     MIDI port parameter:     MIDI port parameter:
2104    
2105        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 2122  Internet-Draft        LinuxSampler Contr
2122        dependently to the given MIDI port.  At the moment the following        dependently to the given MIDI port.  At the moment the following
2123        information categories are defined:        information categories are defined:
2124    
2125    
2126    
2127    Schoenebeck               Expires May 29, 2007                 [Page 38]
2128    
2129    Internet-Draft        LinuxSampler Control Protocol        November 2006
2130    
2131    
2132        TYPE -        TYPE -
2133    
2134           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 2155  Internet-Draft        LinuxSampler Contr
2155    
2156           defines lower limit of the allowed value range for this           defines lower limit of the allowed value range for this
2157           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 39]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2158           this parameter is usually used in conjunction with 'RANGE_MAX'           this parameter is usually used in conjunction with 'RANGE_MAX'
2159           but may also appear without (optionally returned, dependent to           but may also appear without (optionally returned, dependent to
2160           driver and port parameter)           driver and port parameter)
# Line 2207  Internet-Draft        LinuxSampler Contr Line 2177  Internet-Draft        LinuxSampler Contr
2177    
2178     Example:     Example:
2179    
2180    
2181    
2182    
2183    Schoenebeck               Expires May 29, 2007                 [Page 39]
2184    
2185    Internet-Draft        LinuxSampler Control Protocol        November 2006
2186    
2187    
2188        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"        C: "GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS"
2189    
2190        S: "DESCRIPTION: bindings to other ALSA sequencer clients"        S: "DESCRIPTION: bindings to other ALSA sequencer clients"
# Line 2221  Internet-Draft        LinuxSampler Contr Line 2199  Internet-Draft        LinuxSampler Contr
2199    
2200           "."           "."
2201    
2202    6.3.13.  Changing settings of MIDI input ports
 6.3.13  Changing settings of MIDI input ports  
2203    
2204     Use the following command to alter a specific setting of a MIDI input     Use the following command to alter a specific setting of a MIDI input
2205     port:     port:
# Line 2233  Internet-Draft        LinuxSampler Contr Line 2210  Internet-Draft        LinuxSampler Contr
2210     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)
2211     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
2212     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  
   
   
2213     <value> by the new value for this parameter.     <value> by the new value for this parameter.
2214    
2215     Possible Answers:     Possible Answers:
# Line 2265  Internet-Draft        LinuxSampler Contr Line 2234  Internet-Draft        LinuxSampler Contr
2234    
2235    
2236    
2237  6.4  Configuring sampler channels  
2238    
2239    Schoenebeck               Expires May 29, 2007                 [Page 40]
2240    
2241    Internet-Draft        LinuxSampler Control Protocol        November 2006
2242    
2243    
2244    
2245    
2246    6.4.  Configuring sampler channels
2247    
2248     The following commands describe how to add and remove sampler     The following commands describe how to add and remove sampler
2249     channels, associate a sampler channel with a sampler engine, load     channels, associate a sampler channel with a sampler engine, load
2250     instruments and connect sampler channels to MIDI and audio devices.     instruments and connect sampler channels to MIDI and audio devices.
2251    
2252  6.4.1  Loading an instrument  6.4.1.  Loading an instrument
2253    
2254     An instrument file can be loaded and assigned to a sampler channel by     An instrument file can be loaded and assigned to a sampler channel by
2255     one of the following commands:     one of the following commands:
# Line 2289  Internet-Draft        LinuxSampler Contr Line 2267  Internet-Draft        LinuxSampler Contr
2267     is that the regular command returns OK only after the instrument has     is that the regular command returns OK only after the instrument has
2268     been fully loaded and the channel is ready to be used while NON_MODAL     been fully loaded and the channel is ready to be used while NON_MODAL
2269     version returns immediately and a background process is launched to     version returns immediately and a background process is launched to
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 41]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2270     load the instrument on the channel.  The GET CHANNEL INFO     load the instrument on the channel.  The GET CHANNEL INFO
2271     (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
2272     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 2288  Internet-Draft        LinuxSampler Contr
2288           file), providing an appropriate warning code and warning           file), providing an appropriate warning code and warning
2289           message           message
2290    
2291    
2292    
2293    
2294    
2295    Schoenebeck               Expires May 29, 2007                 [Page 41]
2296    
2297    Internet-Draft        LinuxSampler Control Protocol        November 2006
2298    
2299    
2300        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2301    
2302           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 2327  Internet-Draft        LinuxSampler Contr Line 2306  Internet-Draft        LinuxSampler Contr
2306    
2307    
2308    
2309    6.4.2.  Loading a sampler engine
 6.4.2  Loading a sampler engine  
2310    
2311     A sampler engine type can be associated to a specific sampler channel     A sampler engine type can be associated to a specific sampler channel
2312     by the following command:     by the following command:
# Line 2345  Internet-Draft        LinuxSampler Contr Line 2323  Internet-Draft        LinuxSampler Contr
2323     sampler channel.  This command has (currently) no way to define or     sampler channel.  This command has (currently) no way to define or
2324     force if a new engine instance should be created and assigned to the     force if a new engine instance should be created and assigned to the
2325     given sampler channel or if an already existing instance of that     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  
   
   
2326     engine type, shared with other sampler channels, should be used.     engine type, shared with other sampler channels, should be used.
2327    
2328     Possible Answers:     Possible Answers:
# Line 2377  Internet-Draft        LinuxSampler Contr Line 2347  Internet-Draft        LinuxSampler Contr
2347    
2348    
2349    
2350  6.4.3  Getting all created sampler channel count  
2351    Schoenebeck               Expires May 29, 2007                 [Page 42]
2352    
2353    Internet-Draft        LinuxSampler Control Protocol        November 2006
2354    
2355    
2356    
2357    
2358    6.4.3.  Getting all created sampler channel count
2359    
2360     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2361     current amount of sampler channels, the front-end can send the     current amount of sampler channels, the front-end can send the
# Line 2396  Internet-Draft        LinuxSampler Contr Line 2374  Internet-Draft        LinuxSampler Contr
2374    
2375        S: "12"        S: "12"
2376    
2377    6.4.4.  Getting all created sampler channel list
 6.4.4  Getting all created sampler channel list  
2378    
2379     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
2380     current list of sampler channels, the front-end can send the     current list of sampler channels, the front-end can send the
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 43]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2381     following command:     following command:
2382    
2383        LIST CHANNELS        LIST CHANNELS
# Line 2424  Internet-Draft        LinuxSampler Contr Line 2393  Internet-Draft        LinuxSampler Contr
2393    
2394        S: "0,1,2,3,4,5,6,9,10,11,15,20"        S: "0,1,2,3,4,5,6,9,10,11,15,20"
2395    
2396    6.4.5.  Adding a new sampler channel
 6.4.5  Adding a new sampler channel  
2397    
2398     A new sampler channel can be added to the end of the sampler channel     A new sampler channel can be added to the end of the sampler channel
2399     list by sending the following command:     list by sending the following command:
# Line 2433  Internet-Draft        LinuxSampler Contr Line 2401  Internet-Draft        LinuxSampler Contr
2401        ADD CHANNEL        ADD CHANNEL
2402    
2403     This will increment the sampler channel count by one and the new     This will increment the sampler channel count by one and the new
2404    
2405    
2406    
2407    Schoenebeck               Expires May 29, 2007                 [Page 43]
2408    
2409    Internet-Draft        LinuxSampler Control Protocol        November 2006
2410    
2411    
2412     sampler channel will be appended to the end of the sampler channel     sampler channel will be appended to the end of the sampler channel
2413     list.  The front-end should send the respective, related commands     list.  The front-end should send the respective, related commands
2414     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 2433  Internet-Draft        LinuxSampler Contr
2433           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2434           code and warning message           code and warning message
2435    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 44]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2436        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2437    
2438           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 2474  Internet-Draft        LinuxSampler Contr Line 2442  Internet-Draft        LinuxSampler Contr
2442    
2443    
2444    
2445    6.4.6.  Removing a sampler channel
 6.4.6  Removing a sampler channel  
2446    
2447     A sampler channel can be removed by sending the following command:     A sampler channel can be removed by sending the following command:
2448    
# Line 2488  Internet-Draft        LinuxSampler Contr Line 2455  Internet-Draft        LinuxSampler Contr
2455    
2456     Possible Answers:     Possible Answers:
2457    
2458    
2459    
2460    
2461    
2462    
2463    Schoenebeck               Expires May 29, 2007                 [Page 44]
2464    
2465    Internet-Draft        LinuxSampler Control Protocol        November 2006
2466    
2467    
2468        "OK" -        "OK" -
2469    
2470           in case the given sampler channel could be removed           in case the given sampler channel could be removed
# Line 2507  Internet-Draft        LinuxSampler Contr Line 2484  Internet-Draft        LinuxSampler Contr
2484    
2485    
2486    
2487    6.4.7.  Getting amount of available engines
 6.4.7  Getting amount of available engines  
2488    
2489     The front-end can ask for the number of available engines by sending     The front-end can ask for the number of available engines by sending
2490     the following command:     the following command:
2491    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 45]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2492        GET AVAILABLE_ENGINES        GET AVAILABLE_ENGINES
2493    
2494     Possible Answers:     Possible Answers:
# Line 2534  Internet-Draft        LinuxSampler Contr Line 2502  Internet-Draft        LinuxSampler Contr
2502    
2503        S: "4"        S: "4"
2504    
2505    6.4.8.  Getting all available engines
 6.4.8  Getting all available engines  
2506    
2507     The front-end can ask for a list of all available engines by sending     The front-end can ask for a list of all available engines by sending
2508     the following command:     the following command:
# Line 2544  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 29, 2007                 [Page 45]
2520    
2521    Internet-Draft        LinuxSampler Control Protocol        November 2006
2522    
2523    
2524        LinuxSampler will answer by sending a comma separated list of the        LinuxSampler will answer by sending a comma separated list of the
2525        engines' names encapsulated into apostrophes (').  Engine names        engines' names encapsulated into apostrophes (').  Engine names
2526        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 2532  Internet-Draft        LinuxSampler Contr
2532    
2533        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"        S: "'GigEngine','AkaiEngine','DLSEngine','JoesCustomEngine'"
2534    
2535    6.4.9.  Getting information about an engine
 6.4.9  Getting information about an engine  
2536    
2537     The front-end can ask for information about a specific engine by     The front-end can ask for information about a specific engine by
2538     sending the following command:     sending the following command:
# Line 2568  Internet-Draft        LinuxSampler Contr Line 2544  Internet-Draft        LinuxSampler Contr
2544    
2545     Possible Answers:     Possible Answers:
2546    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 46]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2547        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2548        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2549        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
# Line 2601  Internet-Draft        LinuxSampler Contr Line 2568  Internet-Draft        LinuxSampler Contr
2568    
2569        S: "DESCRIPTION: this is Joe's custom sampler engine"        S: "DESCRIPTION: this is Joe's custom sampler engine"
2570    
2571    
2572    
2573    
2574    
2575    Schoenebeck               Expires May 29, 2007                 [Page 46]
2576    
2577    Internet-Draft        LinuxSampler Control Protocol        November 2006
2578    
2579    
2580           "VERSION: testing-1.0"           "VERSION: testing-1.0"
2581    
2582           "."           "."
2583    
2584    6.4.10.  Getting sampler channel information
 6.4.10  Getting sampler channel information  
2585    
2586     The front-end can ask for the current settings of a sampler channel     The front-end can ask for the current settings of a sampler channel
2587     by sending the following command:     by sending the following command:
# Line 2627  Internet-Draft        LinuxSampler Contr Line 2602  Internet-Draft        LinuxSampler Contr
2602    
2603    
2604    
   
 Schoenebeck             Expires January 22, 2006               [Page 47]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
   
   
2605           ENGINE_NAME -           ENGINE_NAME -
2606    
2607              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 2625  Internet-Draft        LinuxSampler Contr
2625              comma separated list which reflects to which audio channel              comma separated list which reflects to which audio channel
2626              of the selected audio output device each sampler output              of the selected audio output device each sampler output
2627              channel is routed to, e.g. "0,3" would mean the engine's              channel is routed to, e.g. "0,3" would mean the engine's
2628    
2629    
2630    
2631    Schoenebeck               Expires May 29, 2007                 [Page 47]
2632    
2633    Internet-Draft        LinuxSampler Control Protocol        November 2006
2634    
2635    
2636              output channel 0 is routed to channel 0 of the audio output              output channel 0 is routed to channel 0 of the audio output
2637              device and the engine's output channel 1 is routed to the              device and the engine's output channel 1 is routed to the
2638              channel 3 of the audio output device              channel 3 of the audio output device
# Line 2682  Internet-Draft        LinuxSampler Contr Line 2657  Internet-Draft        LinuxSampler Contr
2657              loading exception.  Value of 100 indicates that the              loading exception.  Value of 100 indicates that the
2658              instrument is fully loaded.              instrument is fully loaded.
2659    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 48]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2660           MIDI_INPUT_DEVICE -           MIDI_INPUT_DEVICE -
2661    
2662              numerical ID of the MIDI input device which is currently              numerical ID of the MIDI input device which is currently
# Line 2711  Internet-Draft        LinuxSampler Contr Line 2679  Internet-Draft        LinuxSampler Contr
2679              (where a value < 1.0 means attenuation and a value > 1.0              (where a value < 1.0 means attenuation and a value > 1.0
2680              means amplification)              means amplification)
2681    
2682    
2683    
2684    
2685    
2686    
2687    Schoenebeck               Expires May 29, 2007                 [Page 48]
2688    
2689    Internet-Draft        LinuxSampler Control Protocol        November 2006
2690    
2691    
2692           MUTE -           MUTE -
2693    
2694              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 2714  Internet-Draft        LinuxSampler Contr
2714    
2715           "AUDIO_OUTPUT_DEVICE: 0"           "AUDIO_OUTPUT_DEVICE: 0"
2716    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 49]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2717           "AUDIO_OUTPUT_CHANNELS: 2"           "AUDIO_OUTPUT_CHANNELS: 2"
2718    
2719           "AUDIO_OUTPUT_ROUTING: 0,1"           "AUDIO_OUTPUT_ROUTING: 0,1"
# Line 2766  Internet-Draft        LinuxSampler Contr Line 2735  Internet-Draft        LinuxSampler Contr
2735           "."           "."
2736    
2737    
2738  6.4.11  Current number of active voices  
2739    
2740    
2741    
2742    
2743    Schoenebeck               Expires May 29, 2007                 [Page 49]
2744    
2745    Internet-Draft        LinuxSampler Control Protocol        November 2006
2746    
2747    
2748    6.4.11.  Current number of active voices
2749    
2750     The front-end can ask for the current number of active voices on a     The front-end can ask for the current number of active voices on a
2751     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2786  Internet-Draft        LinuxSampler Contr Line 2765  Internet-Draft        LinuxSampler Contr
2765    
2766    
2767    
2768    6.4.12.  Current number of active disk streams
 6.4.12  Current number of active disk streams  
2769    
2770     The front-end can ask for the current number of active disk streams     The front-end can ask for the current number of active disk streams
2771     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
2772    
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 50]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2773        GET CHANNEL STREAM_COUNT <sampler-channel>        GET CHANNEL STREAM_COUNT <sampler-channel>
2774    
2775     Where <sampler-channel> is the sampler channel number the front-end     Where <sampler-channel> is the sampler channel number the front-end
# Line 2818  Internet-Draft        LinuxSampler Contr Line 2787  Internet-Draft        LinuxSampler Contr
2787    
2788    
2789    
2790    6.4.13.  Current fill state of disk stream buffers
 6.4.13  Current fill state of disk stream buffers  
2791    
2792     The front-end can ask for the current fill state of all disk streams     The front-end can ask for the current fill state of all disk streams
2793     on a sampler channel by sending the following command:     on a sampler channel by sending the following command:
2794    
2795    
2796    
2797    
2798    
2799    Schoenebeck               Expires May 29, 2007                 [Page 50]
2800    
2801    Internet-Draft        LinuxSampler Control Protocol        November 2006
2802    
2803    
2804        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>
2805    
2806     to get the fill state in bytes or     to get the fill state in bytes or
# Line 2850  Internet-Draft        LinuxSampler Contr Line 2827  Internet-Draft        LinuxSampler Contr
2827    
2828     Examples:     Examples:
2829    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 51]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2830        C: "GET CHANNEL BUFFER_FILL BYTES 4"        C: "GET CHANNEL BUFFER_FILL BYTES 4"
2831    
2832        S: "[115]420500,[116]510300,[75]110000,[120]230700"        S: "[115]420500,[116]510300,[75]110000,[120]230700"
# Line 2869  Internet-Draft        LinuxSampler Contr Line 2839  Internet-Draft        LinuxSampler Contr
2839    
2840        S: ""        S: ""
2841    
2842    6.4.14.  Setting audio output device
 6.4.14  Setting audio output device  
2843    
2844     The front-end can set the audio output device on a specific sampler     The front-end can set the audio output device on a specific sampler
2845     channel by sending the following command:     channel by sending the following command:
# Line 2880  Internet-Draft        LinuxSampler Contr Line 2849  Internet-Draft        LinuxSampler Contr
2849    
2850     Where <sampler-channel> is the respective sampler channel number as     Where <sampler-channel> is the respective sampler channel number as
2851     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
2852    
2853    
2854    
2855    Schoenebeck               Expires May 29, 2007                 [Page 51]
2856    
2857    Internet-Draft        LinuxSampler Control Protocol        November 2006
2858    
2859    
2860     (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
2861     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
2862     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)     (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
# Line 2906  Internet-Draft        LinuxSampler Contr Line 2883  Internet-Draft        LinuxSampler Contr
2883    
2884    
2885    
2886    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  
2887    
2888     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
2889    
# Line 2937  Internet-Draft        LinuxSampler Contr Line 2904  Internet-Draft        LinuxSampler Contr
2904    
2905        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2906    
2907    
2908    
2909    
2910    
2911    Schoenebeck               Expires May 29, 2007                 [Page 52]
2912    
2913    Internet-Draft        LinuxSampler Control Protocol        November 2006
2914    
2915    
2916           if audio output type was set, but there are noteworthy issue(s)           if audio output type was set, but there are noteworthy issue(s)
2917           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
2918           message           message
# Line 2950  Internet-Draft        LinuxSampler Contr Line 2926  Internet-Draft        LinuxSampler Contr
2926    
2927    
2928    
2929    6.4.16.  Setting audio output channel
 6.4.16  Setting audio output channel  
2930    
2931     The front-end can alter the audio output channel on a specific     The front-end can alter the audio output channel on a specific
2932     sampler channel by sending the following command:     sampler channel by sending the following command:
# Line 2961  Internet-Draft        LinuxSampler Contr Line 2936  Internet-Draft        LinuxSampler Contr
2936    
2937     Where <sampler-chan> is the sampler channel number as returned by the     Where <sampler-chan> is the sampler channel number as returned by the
2938     "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  
   
   
2939     command, <audio-out> is the numerical ID of the sampler channel's     command, <audio-out> is the numerical ID of the sampler channel's
2940     audio output channel which should be rerouted and <audio-in> is the     audio output channel which should be rerouted and <audio-in> is the
2941     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 2963  Internet-Draft        LinuxSampler Contr
2963    
2964    
2965    
2966  6.4.17  Setting MIDI input device  
2967    Schoenebeck               Expires May 29, 2007                 [Page 53]
2968    
2969    Internet-Draft        LinuxSampler Control Protocol        November 2006
2970    
2971    
2972    
2973    
2974    6.4.17.  Setting MIDI input device
2975    
2976     The front-end can set the MIDI input device on a specific sampler     The front-end can set the MIDI input device on a specific sampler
2977     channel by sending the following command:     channel by sending the following command:
# Line 3005  Internet-Draft        LinuxSampler Contr Line 2980  Internet-Draft        LinuxSampler Contr
2980    
2981     Where <sampler-channel> is the sampler channel number as returned by     Where <sampler-channel> is the sampler channel number as returned by
2982     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)
2983     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
2984     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)
2985     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command.     or "LIST MIDI_INPUT_DEVICES" (Section 6.3.8) command.
2986    
# Line 3015  Internet-Draft        LinuxSampler Contr Line 2990  Internet-Draft        LinuxSampler Contr
2990    
2991           on success           on success
2992    
   
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 54]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
2993        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2994    
2995           if MIDI input device was set, but there are noteworthy issue(s)           if MIDI input device was set, but there are noteworthy issue(s)
# Line 3040  Internet-Draft        LinuxSampler Contr Line 3005  Internet-Draft        LinuxSampler Contr
3005    
3006    
3007    
3008    6.4.18.  Setting MIDI input type
 6.4.18  Setting MIDI input type  
3009    
3010     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!     DEPRECATED: THIS COMMAND WILL DISAPPEAR SOON!
3011    
# Line 3053  Internet-Draft        LinuxSampler Contr Line 3017  Internet-Draft        LinuxSampler Contr
3017     Where <midi-input-type> is currently only "ALSA" and <sampler-     Where <midi-input-type> is currently only "ALSA" and <sampler-
3018     channel> is the respective sampler channel number.     channel> is the respective sampler channel number.
3019    
3020    
3021    
3022    
3023    Schoenebeck               Expires May 29, 2007                 [Page 54]
3024    
3025    Internet-Draft        LinuxSampler Control Protocol        November 2006
3026    
3027    
3028     Possible Answers:     Possible Answers:
3029    
3030        "OK" -        "OK" -
# Line 3074  Internet-Draft        LinuxSampler Contr Line 3046  Internet-Draft        LinuxSampler Contr
3046    
3047    
3048    
3049    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  
3050    
3051     The front-end can alter the MIDI input port on a specific sampler     The front-end can alter the MIDI input port on a specific sampler
3052     channel by sending the following command:     channel by sending the following command:
# Line 3111  Internet-Draft        LinuxSampler Contr Line 3073  Internet-Draft        LinuxSampler Contr
3073           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3074           error message           error message
3075    
    Examples:  
3076    
3077    
3078    
3079    Schoenebeck               Expires May 29, 2007                 [Page 55]
3080    
3081    Internet-Draft        LinuxSampler Control Protocol        November 2006
3082    
3083  6.4.20  Setting MIDI input channel  
3084       Examples:
3085    
3086    
3087    
3088    6.4.20.  Setting MIDI input channel
3089    
3090     The front-end can alter the MIDI channel a sampler channel should     The front-end can alter the MIDI channel a sampler channel should
3091     listen to by sending the following command:     listen to by sending the following command:
# Line 3129  Internet-Draft        LinuxSampler Contr Line 3098  Internet-Draft        LinuxSampler Contr
3098    
3099     Possible Answers:     Possible Answers:
3100    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 56]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3101        "OK" -        "OK" -
3102    
3103           on success           on success
# Line 3156  Internet-Draft        LinuxSampler Contr Line 3117  Internet-Draft        LinuxSampler Contr
3117    
3118    
3119    
3120    6.4.21.  Setting channel volume
 6.4.21  Setting channel volume  
3121    
3122     The front-end can alter the volume of a sampler channel by sending     The front-end can alter the volume of a sampler channel by sending
3123     the following command:     the following command:
# Line 3169  Internet-Draft        LinuxSampler Contr Line 3129  Internet-Draft        LinuxSampler Contr
3129     means amplification) and <sampler-channel> defines the sampler     means amplification) and <sampler-channel> defines the sampler
3130     channel where this volume factor should be set.     channel where this volume factor should be set.
3131    
3132    
3133    
3134    
3135    Schoenebeck               Expires May 29, 2007                 [Page 56]
3136    
3137    Internet-Draft        LinuxSampler Control Protocol        November 2006
3138    
3139    
3140     Possible Answers:     Possible Answers:
3141    
3142        "OK" -        "OK" -
# Line 3186  Internet-Draft        LinuxSampler Contr Line 3154  Internet-Draft        LinuxSampler Contr
3154           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3155           error message           error message
3156    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 57]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3157     Examples:     Examples:
3158    
3159    
3160    
3161    6.4.22.  Muting a sampler channel
 6.4.22  Muting a sampler channel  
3162    
3163     The front-end can mute/unmute a specific sampler channel by sending     The front-end can mute/unmute a specific sampler channel by sending
3164     the following command:     the following command:
# Line 3224  Internet-Draft        LinuxSampler Contr Line 3184  Internet-Draft        LinuxSampler Contr
3184    
3185        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3186    
3187    
3188    
3189    
3190    
3191    Schoenebeck               Expires May 29, 2007                 [Page 57]
3192    
3193    Internet-Draft        LinuxSampler Control Protocol        November 2006
3194    
3195    
3196           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3197           error message           error message
3198    
# Line 3231  Internet-Draft        LinuxSampler Contr Line 3200  Internet-Draft        LinuxSampler Contr
3200    
3201    
3202    
3203    6.4.23.  Soloing a sampler channel
 6.4.23  Soloing a sampler channel  
3204    
3205     The front-end can solo/unsolo a specific sampler channel by sending     The front-end can solo/unsolo a specific sampler channel by sending
3206     the following command:     the following command:
# Line 3241  Internet-Draft        LinuxSampler Contr Line 3209  Internet-Draft        LinuxSampler Contr
3209    
3210     Where <sampler-channel> is the respective sampler channel number as     Where <sampler-channel> is the respective sampler channel number as
3211     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  
   
   
3212     (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"
3213     to solo the channel or "0" to unsolo the channel.     to solo the channel or "0" to unsolo the channel.
3214    
# Line 3273  Internet-Draft        LinuxSampler Contr Line 3233  Internet-Draft        LinuxSampler Contr
3233    
3234    
3235    
3236    6.4.24.  Resetting a sampler channel
 6.4.24  Resetting a sampler channel  
3237    
3238     The front-end can reset a particular sampler channel by sending the     The front-end can reset a particular sampler channel by sending the
3239     following command:     following command:
# Line 3282  Internet-Draft        LinuxSampler Contr Line 3241  Internet-Draft        LinuxSampler Contr
3241        RESET CHANNEL <sampler-channel>        RESET CHANNEL <sampler-channel>
3242    
3243     Where <sampler-channel> defines the sampler channel to be reset.     Where <sampler-channel> defines the sampler channel to be reset.
3244    
3245    
3246    
3247    Schoenebeck               Expires May 29, 2007                 [Page 58]
3248    
3249    Internet-Draft        LinuxSampler Control Protocol        November 2006
3250    
3251    
3252     This will cause the engine on that sampler channel, its voices and     This will cause the engine on that sampler channel, its voices and
3253     eventually disk streams and all control and status variables to be     eventually disk streams and all control and status variables to be
3254     reset.     reset.
# Line 3298  Internet-Draft        LinuxSampler Contr Line 3265  Internet-Draft        LinuxSampler Contr
3265           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3266           message           message
3267    
   
   
 Schoenebeck             Expires January 22, 2006               [Page 59]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3268        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3269    
3270           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 3314  Internet-Draft        LinuxSampler Contr Line 3274  Internet-Draft        LinuxSampler Contr
3274    
3275    
3276    
3277    6.5.  Controlling connection
 6.5  Controlling connection  
3278    
3279     The following commands are used to control the connection to     The following commands are used to control the connection to
3280     LinuxSampler.     LinuxSampler.
3281    
3282  6.5.1  Register front-end for receiving event messages  6.5.1.  Register front-end for receiving event messages
3283    
3284     The front-end can register itself to the LinuxSampler application to     The front-end can register itself to the LinuxSampler application to
3285     be informed about noteworthy events by sending this command:     be informed about noteworthy events by sending this command:
# Line 3336  Internet-Draft        LinuxSampler Contr Line 3295  Internet-Draft        LinuxSampler Contr
3295    
3296           on success           on success
3297    
3298    
3299    
3300    
3301    
3302    
3303    Schoenebeck               Expires May 29, 2007                 [Page 59]
3304    
3305    Internet-Draft        LinuxSampler Control Protocol        November 2006
3306    
3307    
3308        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
3309    
3310           if registration succeeded, but there are noteworthy issue(s)           if registration succeeded, but there are noteworthy issue(s)
# Line 3351  Internet-Draft        LinuxSampler Contr Line 3320  Internet-Draft        LinuxSampler Contr
3320    
3321    
3322    
3323    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  
3324    
3325     The front-end can unregister itself if it doesn't want to receive     The front-end can unregister itself if it doesn't want to receive
3326     event messages anymore by sending the following command:     event messages anymore by sending the following command:
# Line 3393  Internet-Draft        LinuxSampler Contr Line 3352  Internet-Draft        LinuxSampler Contr
3352    
3353    
3354    
3355  6.5.3  Enable or disable echo of commands  
3356    
3357    
3358    
3359    Schoenebeck               Expires May 29, 2007                 [Page 60]
3360    
3361    Internet-Draft        LinuxSampler Control Protocol        November 2006
3362    
3363    
3364    6.5.3.  Enable or disable echo of commands
3365    
3366     To enable or disable back sending of commands to the client the     To enable or disable back sending of commands to the client the
3367     following command can be used:     following command can be used:
# Line 3409  Internet-Draft        LinuxSampler Contr Line 3377  Internet-Draft        LinuxSampler Contr
3377    
3378     Possible Answers:     Possible Answers:
3379    
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 61]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
   
   
3380        "OK" -        "OK" -
3381    
3382           usually           usually
# Line 3429  Internet-Draft        LinuxSampler Contr Line 3389  Internet-Draft        LinuxSampler Contr
3389    
3390    
3391    
3392    6.5.4.  Close client connection
 6.5.4  Close client connection  
3393    
3394     The client can close its network connection to LinuxSampler by     The client can close its network connection to LinuxSampler by
3395     sending the following command:     sending the following command:
# Line 3440  Internet-Draft        LinuxSampler Contr Line 3399  Internet-Draft        LinuxSampler Contr
3399     This is probably more interesting for manual telnet connections to     This is probably more interesting for manual telnet connections to
3400     LinuxSampler than really useful for a front-end implementation.     LinuxSampler than really useful for a front-end implementation.
3401    
3402  6.6  Global commands  6.6.  Global commands
3403    
3404     The following commands have global impact on the sampler.     The following commands have global impact on the sampler.
3405    
3406  6.6.1  Reset sampler  6.6.1.  Current number of active voices
3407    
3408     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
3409     command:     sampler by sending the following command:
3410    
3411    
3412    
3413    
3414    
3415    Schoenebeck               Expires May 29, 2007                 [Page 61]
3416    
3417    Internet-Draft        LinuxSampler Control Protocol        November 2006
3418    
3419        RESET  
3420          GET TOTAL_VOICE_COUNT
3421    
3422     Possible Answers:     Possible Answers:
3423    
3424        "OK" -        LinuxSampler will answer by returning the number of all active
3425          voices on the sampler.
3426    
3427           always  6.6.2.  Maximum amount of active voices
3428    
3429     Examples:     The front-end can ask for the maximum number of active voices by
3430       sending the following command:
3431    
3432          GET TOTAL_VOICE_COUNT_MAX
3433    
3434       Possible Answers:
3435    
3436          LinuxSampler will answer by returning the maximum number of active
3437          voices.
3438    
3439  6.6.2  General sampler informations  6.6.3.  Reset sampler
3440    
3441     The client can ask for general informations about the LinuxSampler     The front-end can reset the whole sampler by sending the following
3442       command:
3443    
3444          RESET
3445    
3446       Possible Answers:
3447    
3448          "OK" -
3449    
3450             always
3451    
3452       Examples:
3453    
 Schoenebeck             Expires January 22, 2006               [Page 62]  
3454    
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
3455    
3456    6.6.4.  General sampler informations
3457    
3458       The client can ask for general informations about the LinuxSampler
3459     instance by sending the following command:     instance by sending the following command:
3460    
3461        GET SERVER INFO        GET SERVER INFO
# Line 3482  Internet-Draft        LinuxSampler Contr Line 3465  Internet-Draft        LinuxSampler Contr
3465        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
3466        answer line begins with the information category name followed by        answer line begins with the information category name followed by
3467        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
3468    
3469    
3470    
3471    Schoenebeck               Expires May 29, 2007                 [Page 62]
3472    
3473    Internet-Draft        LinuxSampler Control Protocol        November 2006
3474    
3475    
3476        character string to that information category.  At the moment the        character string to that information category.  At the moment the
3477        following categories are defined:        following categories are defined:
3478    
# Line 3524  Internet-Draft        LinuxSampler Contr Line 3515  Internet-Draft        LinuxSampler Contr
3515    
3516    
3517    
 Schoenebeck             Expires January 22, 2006               [Page 63]  
3518    
3519  Internet-Draft        LinuxSampler Control Protocol            July 2005  
3520    
3521    
3522    
3523    
3524    
3525    
3526    
3527    Schoenebeck               Expires May 29, 2007                 [Page 63]
3528    
3529    Internet-Draft        LinuxSampler Control Protocol        November 2006
3530    
3531    
3532  7.  Command Syntax  7.  Command Syntax
# Line 3580  Internet-Draft        LinuxSampler Contr Line 3580  Internet-Draft        LinuxSampler Contr
3580    
3581    
3582    
3583  Schoenebeck             Expires January 22, 2006               [Page 64]  Schoenebeck               Expires May 29, 2007                 [Page 64]
3584    
3585  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3586    
3587    
3588        / REMOVE SP CHANNEL SP sampler_channel        / REMOVE SP CHANNEL SP sampler_channel
# Line 3615  Internet-Draft        LinuxSampler Contr Line 3615  Internet-Draft        LinuxSampler Contr
3615    
3616        / MISCELLANEOUS        / MISCELLANEOUS
3617    
3618          / TOTAL_VOICE_COUNT
3619    
3620     unsubscribe_event =     unsubscribe_event =
3621    
3622        CHANNEL_COUNT        CHANNEL_COUNT
# Line 3629  Internet-Draft        LinuxSampler Contr Line 3631  Internet-Draft        LinuxSampler Contr
3631    
3632        / MISCELLANEOUS        / MISCELLANEOUS
3633    
3634     get_instruction =        / TOTAL_VOICE_COUNT
3635    
       AVAILABLE_ENGINES  
3636    
3637    
3638    
3639    Schoenebeck               Expires May 29, 2007                 [Page 65]
3640    
3641    Internet-Draft        LinuxSampler Control Protocol        November 2006
3642    
 Schoenebeck             Expires January 22, 2006               [Page 65]  
3643    
3644  Internet-Draft        LinuxSampler Control Protocol            July 2005     get_instruction =
3645    
3646          AVAILABLE_ENGINES
3647    
3648        / AVAILABLE_MIDI_INPUT_DRIVERS        / AVAILABLE_MIDI_INPUT_DRIVERS
3649    
# Line 3684  Internet-Draft        LinuxSampler Contr Line 3688  Internet-Draft        LinuxSampler Contr
3688    
3689        / CHANNEL SP STREAM_COUNT SP sampler_channel        / CHANNEL SP STREAM_COUNT SP sampler_channel
3690    
       / CHANNEL SP VOICE_COUNT SP sampler_channel  
3691    
       / ENGINE SP INFO SP engine_name  
3692    
3693    
3694    
3695    Schoenebeck               Expires May 29, 2007                 [Page 66]
3696    
3697    Internet-Draft        LinuxSampler Control Protocol        November 2006
3698    
3699    
3700  Schoenebeck             Expires January 22, 2006               [Page 66]        / CHANNEL SP VOICE_COUNT SP sampler_channel
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
3701    
3702          / ENGINE SP INFO SP engine_name
3703    
3704        / SERVER SP INFO        / SERVER SP INFO
3705    
3706          / TOTAL_VOICE_COUNT
3707    
3708          / TOTAL_VOICE_COUNT_MAX
3709    
3710     set_instruction =     set_instruction =
3711    
3712        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='        AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '='
# Line 3737  Internet-Draft        LinuxSampler Contr Line 3745  Internet-Draft        LinuxSampler Contr
3745    
3746        INSTRUMENT SP load_instr_args        INSTRUMENT SP load_instr_args
3747    
       / ENGINE SP load_engine_args  
3748    
    set_chan_instruction =  
3749    
       AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index  
3750    
3751        / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index  Schoenebeck               Expires May 29, 2007                 [Page 67]
3752        SP audio_channel_index  
3753    Internet-Draft        LinuxSampler Control Protocol        November 2006
3754    
3755    
3756          / ENGINE SP load_engine_args
3757    
3758  Schoenebeck             Expires January 22, 2006               [Page 67]     set_chan_instruction =
3759    
3760  Internet-Draft        LinuxSampler Control Protocol            July 2005        AUDIO_OUTPUT_DEVICE SP sampler_channel SP device_index
3761    
3762          / AUDIO_OUTPUT_CHANNEL SP sampler_channel SP audio_channel_index
3763          SP audio_channel_index
3764    
3765        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name        / AUDIO_OUTPUT_TYPE SP sampler_channel SP audio_output_type_name
3766    
# Line 3791  Internet-Draft        LinuxSampler Contr Line 3800  Internet-Draft        LinuxSampler Contr
3800    
3801        / MIDI_INPUT_DEVICES        / MIDI_INPUT_DEVICES
3802    
       / CHANNELS  
3803    
       / AVAILABLE_ENGINES  
3804    
       / AVAILABLE_MIDI_INPUT_DRIVERS  
3805    
       / AVAILABLE_AUDIO_OUTPUT_DRIVERS  
3806    
3807     load_instr_args =  Schoenebeck               Expires May 29, 2007                 [Page 68]
3808    
3809    Internet-Draft        LinuxSampler Control Protocol        November 2006
3810    
3811    
3812          / CHANNELS
3813    
3814          / AVAILABLE_ENGINES
3815    
3816  Schoenebeck             Expires January 22, 2006               [Page 68]        / AVAILABLE_MIDI_INPUT_DRIVERS
3817    
3818  Internet-Draft        LinuxSampler Control Protocol            July 2005        / AVAILABLE_AUDIO_OUTPUT_DRIVERS
3819    
3820       load_instr_args =
3821    
3822        filename SP instrument_index SP sampler_channel        filename SP instrument_index SP sampler_channel
3823    
# Line 3847  Internet-Draft        LinuxSampler Contr Line 3857  Internet-Draft        LinuxSampler Contr
3857    
3858        dotnum        dotnum
3859    
       / number  
   
    sampler_channel =  
3860    
       number  
3861    
    instrument_index =  
3862    
3863        number  Schoenebeck               Expires May 29, 2007                 [Page 69]
3864    
3865    Internet-Draft        LinuxSampler Control Protocol        November 2006
3866    
3867    
3868          / number
3869    
3870       sampler_channel =
3871    
3872  Schoenebeck             Expires January 22, 2006               [Page 69]        number
3873    
3874  Internet-Draft        LinuxSampler Control Protocol            July 2005     instrument_index =
3875    
3876          number
3877    
3878     engine_name =     engine_name =
3879    
# Line 3883  Internet-Draft        LinuxSampler Contr Line 3893  Internet-Draft        LinuxSampler Contr
3893    
3894        string        string
3895    
3896        / '\'' string '\''        / stringval
   
       / '\"' string '\"'  
3897    
3898        / number        / number
3899    
# Line 3908  Internet-Draft        LinuxSampler Contr Line 3916  Internet-Draft        LinuxSampler Contr
3916    
3917    
3918    
3919    Schoenebeck               Expires May 29, 2007                 [Page 70]
3920    
3921    Internet-Draft        LinuxSampler Control Protocol        November 2006
   
   
   
   
   
 Schoenebeck             Expires January 22, 2006               [Page 70]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2005  
3922    
3923    
3924  8.  Events  8.  Events
# Line 3926  Internet-Draft        LinuxSampler Contr Line 3926  Internet-Draft        LinuxSampler Contr
3926     This chapter will describe all currently defined events supported by     This chapter will describe all currently defined events supported by
3927     LinuxSampler.     LinuxSampler.
3928    
3929  8.1  Number of sampler channels changed  8.1.  Number of sampler channels changed
3930    
3931     Client may want to be notified when the total number of channels on     Client may want to be notified when the total number of channels on
3932     the back-end changes by issuing the following command:     the back-end changes by issuing the following command:
# Line 3940  Internet-Draft        LinuxSampler Contr Line 3940  Internet-Draft        LinuxSampler Contr
3940     where <channels> will be replaced by the new number of sampler     where <channels> will be replaced by the new number of sampler
3941     channels.     channels.
3942    
3943  8.2  Number of active voices changed  8.2.  Number of active voices changed
3944    
3945     Client may want to be notified when the number of voices on the back-     Client may want to be notified when the number of voices on the back-
3946     end changes by issuing the following command:     end changes by issuing the following command:
# Line 3955  Internet-Draft        LinuxSampler Contr Line 3955  Internet-Draft        LinuxSampler Contr
3955     voice count change occurred and <voices> by the new number of active     voice count change occurred and <voices> by the new number of active
3956     voices on that channel.     voices on that channel.
3957    
3958  8.3  Number of active disk streams changed  8.3.  Number of active disk streams changed
3959    
3960     Client may want to be notified when the number of streams on the     Client may want to be notified when the number of streams on the
3961     back-end changes by issuing the following command: SUBSCRIBE     back-end changes by issuing the following command: SUBSCRIBE
# Line 3972  Internet-Draft        LinuxSampler Contr Line 3972  Internet-Draft        LinuxSampler Contr
3972    
3973    
3974    
3975  Schoenebeck             Expires January 22, 2006               [Page 71]  Schoenebeck               Expires May 29, 2007                 [Page 71]
3976    
3977  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
3978    
3979    
3980     active disk streams on that channel.     active disk streams on that channel.
3981    
3982  8.4  Disk stream buffer fill state changed  8.4.  Disk stream buffer fill state changed
3983    
3984     Client may want to be notified when the buffer fill state of a disk     Client may want to be notified when the buffer fill state of a disk
3985     stream on the back-end changes by issuing the following command:     stream on the back-end changes by issuing the following command:
# Line 3996  Internet-Draft        LinuxSampler Contr Line 3996  Internet-Draft        LinuxSampler Contr
3996     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"     Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE"
3997     (Section 6.4.13) command was issued on this channel.     (Section 6.4.13) command was issued on this channel.
3998    
3999  8.5  Channel information changed  8.5.  Channel information changed
4000    
4001     Client may want to be notified when changes were made to sampler     Client may want to be notified when changes were made to sampler
4002     channels on the back-end by issuing the following command:     channels on the back-end by issuing the following command:
# Line 4014  Internet-Draft        LinuxSampler Contr Line 4014  Internet-Draft        LinuxSampler Contr
4014     rather than real time events happening on the server, it is believed     rather than real time events happening on the server, it is believed
4015     that an empty notification message is sufficient here.     that an empty notification message is sufficient here.
4016    
4017  8.6  Miscellaneous and debugging events  8.6.  Total number of active voices changed
4018    
4019     Client may want to be notified of miscellaneous and debugging events     Client may want to be notified when the total number of voices on the
4020     occurring at the server by issuing the following command:     back-end changes by issuing the following command:
4021    
4022        SUBSCRIBE MISCELLANEOUS        SUBSCRIBE TOTAL_VOICE_COUNT
4023    
4024     Server will start sending the following notification messages:     Server will start sending the following notification messages:
4025    
# Line 4028  Internet-Draft        LinuxSampler Contr Line 4028  Internet-Draft        LinuxSampler Contr
4028    
4029    
4030    
4031  Schoenebeck             Expires January 22, 2006               [Page 72]  Schoenebeck               Expires May 29, 2007                 [Page 72]
4032    
4033  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.  
   
   
   
   
   
   
4034    
4035    
4036          "NOTIFY:TOTAL_VOICE_COUNT:<voices>
4037    
4038       where <voices> will be replaced by the new number of all currently
4039       active voices.
4040    
4041    8.7.  Miscellaneous and debugging events
4042    
4043       Client may want to be notified of miscellaneous and debugging events
4044       occurring at the server by issuing the following command:
4045    
4046          SUBSCRIBE MISCELLANEOUS
4047    
4048       Server will start sending the following notification messages:
4049    
4050          "NOTIFY:MISCELLANEOUS:<string>"
4051    
4052       where <string> will be replaced by whatever data server wants to send
4053       to the client.  Client MAY display this data to the user AS IS to
4054       facilitate debugging.
4055    
4056    
4057    
# Line 4084  Internet-Draft        LinuxSampler Contr Line 4083  Internet-Draft        LinuxSampler Contr
4083    
4084    
4085    
 Schoenebeck             Expires January 22, 2006               [Page 73]  
4086    
4087  Internet-Draft        LinuxSampler Control Protocol            July 2005  Schoenebeck               Expires May 29, 2007                 [Page 73]
4088    
4089    Internet-Draft        LinuxSampler Control Protocol        November 2006
4090    
4091    
4092  9.  Security Considerations  9.  Security Considerations
# Line 4140  Internet-Draft        LinuxSampler Contr Line 4140  Internet-Draft        LinuxSampler Contr
4140    
4141    
4142    
4143  Schoenebeck             Expires January 22, 2006               [Page 74]  Schoenebeck               Expires May 29, 2007                 [Page 74]
4144    
4145  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4146    
4147    
4148  10.  Acknowledgments  10.  Acknowledgments
# Line 4172  Internet-Draft        LinuxSampler Contr Line 4172  Internet-Draft        LinuxSampler Contr
4172                CONTROL PROTOCOL", RFC 793, 1981.                CONTROL PROTOCOL", RFC 793, 1981.
4173    
4174    
4175    
4176    
4177    
4178    
4179    
4180    
4181    
4182    
4183    
4184    
4185    
4186    
4187    
4188    
4189    
4190    
4191    
4192    
4193    
4194    
4195    
4196    
4197    
4198    
4199    Schoenebeck               Expires May 29, 2007                 [Page 75]
4200    
4201    Internet-Draft        LinuxSampler Control Protocol        November 2006
4202    
4203    
4204  Author's Address  Author's Address
4205    
4206     C. Schoenebeck     C. Schoenebeck
# Line 4196  Author's Address Line 4225  Author's Address
4225    
4226    
4227    
 Schoenebeck             Expires January 22, 2006               [Page 75]  
4228    
4229  Internet-Draft        LinuxSampler Control Protocol            July 2005  
4230    
4231    
4232    
4233    
4234    
4235    
4236    
4237    
4238    
4239    
4240    
4241    
4242    
4243    
4244    
4245    
4246    
4247    
4248    
4249    
4250    
4251    
4252    
4253    
4254    
4255    Schoenebeck               Expires May 29, 2007                 [Page 76]
4256    
4257    Internet-Draft        LinuxSampler Control Protocol        November 2006
4258    
4259    
4260  Intellectual Property Statement  Intellectual Property Statement
# Line 4226  Intellectual Property Statement Line 4282  Intellectual Property Statement
4282    
4283  Full Copyright Statement  Full Copyright Statement
4284    
4285     Copyright (C) The Internet Society (2005).  All Rights Reserved.     Copyright (C) The Internet Society (2006).  All Rights Reserved.
4286    
4287     This document and translations of it may be copied and furnished to     This document and translations of it may be copied and furnished to
4288     others, and derivative works that comment on or otherwise explain it     others, and derivative works that comment on or otherwise explain it
# Line 4252  Full Copyright Statement Line 4308  Full Copyright Statement
4308    
4309    
4310    
4311  Schoenebeck             Expires January 22, 2006               [Page 76]  Schoenebeck               Expires May 29, 2007                 [Page 77]
4312    
4313  Internet-Draft        LinuxSampler Control Protocol            July 2005  Internet-Draft        LinuxSampler Control Protocol        November 2006
4314    
4315    
4316     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
# Line 4308  Acknowledgment Line 4364  Acknowledgment
4364    
4365    
4366    
4367  Schoenebeck             Expires January 22, 2006               [Page 77]  Schoenebeck               Expires May 29, 2007                 [Page 78]
4368    

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

  ViewVC Help
Powered by ViewVC