/[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 3502 by schoenebeck, Wed Jul 15 21:41:19 2015 UTC revision 3503 by schoenebeck, Mon Mar 11 15:46:15 2019 UTC
# Line 1  Line 1 
1    
2    
3    
4  LinuxSampler Developers                                   C. Schoenebeck  
5    LinuxSampler Developers                              C. Schoenebeck, Ed.
6  Internet-Draft                                          LinuxSampler.org  Internet-Draft                                          LinuxSampler.org
7  Intended status: Standards Track                           July 15, 2015  Intended status: Informational                            March 11, 2019
8  Expires: January 16, 2016  Expires: September 12, 2019
9    
10    
11                       LinuxSampler Control Protocol                       LinuxSampler Control Protocol
# Line 18  Abstract Line 19  Abstract
19     like console application essentially playing back audio samples and     like console application essentially playing back audio samples and
20     manipulating the samples in real time to certain extent.     manipulating the samples in real time to certain extent.
21    
22  Status of this Memo  Status of This Memo
23    
24     By submitting this Internet-Draft, each author represents that any     This Internet-Draft is submitted in full conformance with the
25     applicable patent or other IPR claims of which he or she is aware     provisions of BCP 78 and BCP 79.
    have been or will be disclosed, and any of which he or she becomes  
    aware will be disclosed, in accordance with Section 6 of BCP 79.  
26    
27     Internet-Drafts are working documents of the Internet Engineering     Internet-Drafts are working documents of the Internet Engineering
28     Task Force (IETF).  Note that other groups may also distribute     Task Force (IETF).  Note that other groups may also distribute
# Line 35  Status of this Memo Line 34  Status of this Memo
34     time.  It is inappropriate to use Internet-Drafts as reference     time.  It is inappropriate to use Internet-Drafts as reference
35     material or to cite them other than as "work in progress."     material or to cite them other than as "work in progress."
36    
37     This Internet-Draft will expire on January 16, 2016.     This Internet-Draft will expire on September 12, 2019.
   
   
   
   
   
   
   
38    
39    Copyright Notice
40    
41       Copyright (c) 2019 IETF Trust and the persons identified as the
42       document authors.  All rights reserved.
43    
44       This document is subject to BCP 78 and the IETF Trust's Legal
45       Provisions Relating to IETF Documents
46       (http://trustee.ietf.org/license-info) in effect on the date of
47       publication of this document.  Please review these documents
48       carefully, as they describe your rights and restrictions with respect
49       to this document.  Code Components extracted from this document must
50       include Simplified BSD License text as described in Section 4.e of
51       the Trust Legal Provisions and are provided without warranty as
52       described in the Simplified BSD License.
53    
54    
55    
56    Schoenebeck            Expires September 12, 2019               [Page 1]
   
   
 Schoenebeck             Expires January 16, 2016                [Page 1]  
57    
58  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
59    
60    
61       This document may not be modified, and derivative works of it may not
62       be created, and it may not be published except as an Internet-Draft.
63    
64  Table of Contents  Table of Contents
65    
66     1.  Requirements notation . . . . . . . . . . . . . . . . . . . .   7     1.  Requirements notation . . . . . . . . . . . . . . . . . . . .   6
67     2.  Versioning of this specification  . . . . . . . . . . . . . .   8     2.  Versioning of this specification  . . . . . . . . . . . . . .   7
68     3.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   9     3.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   8
69     4.  Focus of this protocol  . . . . . . . . . . . . . . . . . . .  10     4.  Focus of this protocol  . . . . . . . . . . . . . . . . . . .   8
70     5.  Communication Overview  . . . . . . . . . . . . . . . . . . .  11     5.  Communication Overview  . . . . . . . . . . . . . . . . . . .   8
71       5.1.  Request/response communication method . . . . . . . . . .  11       5.1.  Request/response communication method . . . . . . . . . .   9
72         5.1.1.   Result format  . . . . . . . . . . . . . . . . . . .  12         5.1.1.  Result format . . . . . . . . . . . . . . . . . . . .   9
73       5.2.  Subscribe/notify communication method . . . . . . . . . .  14       5.2.  Subscribe/notify communication method . . . . . . . . . .  12
74     6.  Description for control commands  . . . . . . . . . . . . . .  16     6.  Description for control commands  . . . . . . . . . . . . . .  13
75       6.1.  Ignored lines and comments  . . . . . . . . . . . . . . .  16       6.1.  Ignored lines and comments  . . . . . . . . . . . . . . .  14
76       6.2.  Configuring audio drivers . . . . . . . . . . . . . . . .  16       6.2.  Configuring audio drivers . . . . . . . . . . . . . . . .  14
77         6.2.1.   Getting amount of available audio output drivers . .  17         6.2.1.  Getting amount of available audio output drivers  . .  14
78         6.2.2.   Getting all available audio output drivers . . . . .  17         6.2.2.  Getting all available audio output drivers  . . . . .  15
79         6.2.3.   Getting information about a specific audio output         6.2.3.  Getting information about a specific audio
80                  driver . . . . . . . . . . . . . . . . . . . . . . .  17                 output driver . . . . . . . . . . . . . . . . . . . .  15
81         6.2.4.   Getting information about specific audio output         6.2.4.  Getting information about specific audio
82                  driver parameter . . . . . . . . . . . . . . . . . .  18                 output driver parameter . . . . . . . . . . . . . . .  16
83         6.2.5.   Creating an audio output device  . . . . . . . . . .  22         6.2.5.  Creating an audio output device . . . . . . . . . . .  20
84         6.2.6.   Destroying an audio output device  . . . . . . . . .  23         6.2.6.  Destroying an audio output device . . . . . . . . . .  21
85         6.2.7.   Getting all created audio output device count  . . .  24         6.2.7.  Getting all created audio output device count . . . .  21
86         6.2.8.   Getting all created audio output device list . . . .  24         6.2.8.  Getting all created audio output device list  . . . .  22
87         6.2.9.   Getting current settings of an audio output device .  24         6.2.9.  Getting current settings of an audio output device  .  22
88         6.2.10.  Changing settings of audio output devices  . . . . .  26         6.2.10. Changing settings of audio output devices . . . . . .  23
89         6.2.11.  Getting information about an audio channel . . . . .  27         6.2.11. Getting information about an audio channel  . . . . .  24
90         6.2.12.  Getting information about specific audio channel         6.2.12. Getting information about specific audio channel
91                  parameter  . . . . . . . . . . . . . . . . . . . . .  28                 parameter . . . . . . . . . . . . . . . . . . . . . .  26
92         6.2.13.  Changing settings of audio output channels . . . . .  30         6.2.13. Changing settings of audio output channels  . . . . .  28
93       6.3.  Configuring MIDI input drivers  . . . . . . . . . . . . .  31       6.3.  Configuring MIDI input drivers  . . . . . . . . . . . . .  29
94         6.3.1.   Getting amount of available MIDI input drivers . . .  32         6.3.1.  Getting amount of available MIDI input drivers  . . .  29
95         6.3.2.   Getting all available MIDI input drivers . . . . . .  32         6.3.2.  Getting all available MIDI input drivers  . . . . . .  30
96         6.3.3.   Getting information about a specific MIDI input         6.3.3.  Getting information about a specific MIDI input
97                  driver . . . . . . . . . . . . . . . . . . . . . . .  33                 driver  . . . . . . . . . . . . . . . . . . . . . . .  30
98         6.3.4.   Getting information about specific MIDI input         6.3.4.  Getting information about specific MIDI input driver
99                  driver parameter . . . . . . . . . . . . . . . . . .  34                 parameter . . . . . . . . . . . . . . . . . . . . . .  31
100         6.3.5.   Creating a MIDI input device . . . . . . . . . . . .  36         6.3.5.  Creating a MIDI input device  . . . . . . . . . . . .  34
101         6.3.6.   Destroying a MIDI input device . . . . . . . . . . .  37         6.3.6.  Destroying a MIDI input device  . . . . . . . . . . .  35
102         6.3.7.   Getting all created MIDI input device count  . . . .  38         6.3.7.  Getting all created MIDI input device count . . . . .  35
103         6.3.8.   Getting all created MIDI input device list . . . . .  38         6.3.8.  Getting all created MIDI input device list  . . . . .  36
104         6.3.9.   Getting current settings of a MIDI input device  . .  39         6.3.9.  Getting current settings of a MIDI input device . . .  36
105         6.3.10.  Changing settings of MIDI input devices  . . . . . .  40         6.3.10. Changing settings of MIDI input devices . . . . . . .  37
106         6.3.11.  Getting information about a MIDI port  . . . . . . .  40         6.3.11. Getting information about a MIDI port . . . . . . . .  38
107         6.3.12.  Getting information about specific MIDI port         6.3.12. Getting information about specific MIDI port
108                  parameter  . . . . . . . . . . . . . . . . . . . . .  41                 parameter . . . . . . . . . . . . . . . . . . . . . .  39
109         6.3.13.  Changing settings of MIDI input ports  . . . . . . .  43  
110       6.4.  Configuring sampler channels  . . . . . . . . . . . . . .  44  
111         6.4.1.   Loading an instrument  . . . . . . . . . . . . . . .  44  
112    Schoenebeck            Expires September 12, 2019               [Page 2]
113    
114    Internet-Draft        LinuxSampler Control Protocol           March 2019
115  Schoenebeck             Expires January 16, 2016                [Page 2]  
116    
117  Internet-Draft        LinuxSampler Control Protocol            July 2015         6.3.13. Changing settings of MIDI input ports . . . . . . . .  41
118         6.4.  Configuring sampler channels  . . . . . . . . . . . . . .  41
119           6.4.1.  Loading an instrument . . . . . . . . . . . . . . . .  42
120         6.4.2.   Loading a sampler engine . . . . . . . . . . . . . .  45         6.4.2.  Loading a sampler engine  . . . . . . . . . . . . . .  43
121         6.4.3.   Getting all created sampler channel count  . . . . .  46         6.4.3.  Getting all created sampler channel count . . . . . .  44
122         6.4.4.   Getting all created sampler channel list . . . . . .  47         6.4.4.  Getting all created sampler channel list  . . . . . .  44
123         6.4.5.   Adding a new sampler channel . . . . . . . . . . . .  47         6.4.5.  Adding a new sampler channel  . . . . . . . . . . . .  44
124         6.4.6.   Removing a sampler channel . . . . . . . . . . . . .  48         6.4.6.  Removing a sampler channel  . . . . . . . . . . . . .  45
125         6.4.7.   Getting amount of available engines  . . . . . . . .  49         6.4.7.  Getting amount of available engines . . . . . . . . .  46
126         6.4.8.   Getting all available engines  . . . . . . . . . . .  49         6.4.8.  Getting all available engines . . . . . . . . . . . .  46
127         6.4.9.   Getting information about an engine  . . . . . . . .  49         6.4.9.  Getting information about an engine . . . . . . . . .  47
128         6.4.10.  Getting sampler channel information  . . . . . . . .  51         6.4.10. Getting sampler channel information . . . . . . . . .  48
129         6.4.11.  Current number of active voices  . . . . . . . . . .  54         6.4.11. Current number of active voices . . . . . . . . . . .  52
130         6.4.12.  Current number of active disk streams  . . . . . . .  55         6.4.12. Current number of active disk streams . . . . . . . .  52
131         6.4.13.  Current fill state of disk stream buffers  . . . . .  55         6.4.13. Current fill state of disk stream buffers . . . . . .  52
132         6.4.14.  Setting audio output device  . . . . . . . . . . . .  56         6.4.14. Setting audio output device . . . . . . . . . . . . .  53
133         6.4.15.  Setting audio output type  . . . . . . . . . . . . .  57         6.4.15. Setting audio output type . . . . . . . . . . . . . .  54
134         6.4.16.  Setting audio output channel . . . . . . . . . . . .  58         6.4.16. Setting audio output channel  . . . . . . . . . . . .  55
135         6.4.17.  Add MIDI input to sampler channel  . . . . . . . . .  59         6.4.17. Add MIDI input to sampler channel . . . . . . . . . .  56
136         6.4.18.  Remove MIDI input(s) from sampler channel  . . . . .  60         6.4.18. Remove MIDI input(s) from sampler channel . . . . . .  57
137         6.4.19.  Getting all MIDI inputs of a sampler channel . . . .  61         6.4.19. Getting all MIDI inputs of a sampler channel  . . . .  58
138         6.4.20.  Setting MIDI input device  . . . . . . . . . . . . .  62         6.4.20. Setting MIDI input device . . . . . . . . . . . . . .  59
139         6.4.21.  Setting MIDI input type  . . . . . . . . . . . . . .  63         6.4.21. Setting MIDI input type . . . . . . . . . . . . . . .  60
140         6.4.22.  Setting MIDI input port  . . . . . . . . . . . . . .  64         6.4.22. Setting MIDI input port . . . . . . . . . . . . . . .  61
141         6.4.23.  Setting MIDI input channel . . . . . . . . . . . . .  65         6.4.23. Setting MIDI input channel  . . . . . . . . . . . . .  62
142         6.4.24.  Setting channel volume . . . . . . . . . . . . . . .  66         6.4.24. Setting channel volume  . . . . . . . . . . . . . . .  63
143         6.4.25.  Muting a sampler channel . . . . . . . . . . . . . .  66         6.4.25. Muting a sampler channel  . . . . . . . . . . . . . .  63
144         6.4.26.  Soloing a sampler channel  . . . . . . . . . . . . .  67         6.4.26. Soloing a sampler channel . . . . . . . . . . . . . .  64
145         6.4.27.  Assigning a MIDI instrument map to a sampler         6.4.27. Assigning a MIDI instrument map to a sampler channel   65
146                  channel  . . . . . . . . . . . . . . . . . . . . . .  68         6.4.28. Adding an effect send to a sampler channel  . . . . .  66
147         6.4.28.  Adding an effect send to a sampler channel . . . . .  69         6.4.29. Removing an effect send from a sampler channel  . . .  67
148         6.4.29.  Removing an effect send from a sampler channel . . .  70         6.4.30. Getting amount of effect sends on a sampler channel .  68
149         6.4.30.  Getting amount of effect sends on a sampler         6.4.31. Listing all effect sends on a sampler channel . . . .  68
150                  channel  . . . . . . . . . . . . . . . . . . . . . .  71         6.4.32. Getting effect send information . . . . . . . . . . .  69
151         6.4.31.  Listing all effect sends on a sampler channel  . . .  71         6.4.33. Changing effect send's name . . . . . . . . . . . . .  71
152         6.4.32.  Getting effect send information  . . . . . . . . . .  72         6.4.34. Altering effect send's audio routing  . . . . . . . .  71
153         6.4.33.  Changing effect send's name  . . . . . . . . . . . .  74         6.4.35. Assigning destination effect to an effect send  . . .  73
154         6.4.34.  Altering effect send's audio routing . . . . . . . .  75         6.4.36. Removing destination effect from an effect send . . .  74
155         6.4.35.  Assigning destination effect to an effect send . . .  76         6.4.37. Altering effect send's MIDI controller  . . . . . . .  74
156         6.4.36.  Removing destination effect from an effect send  . .  77         6.4.38. Altering effect send's send level . . . . . . . . . .  75
157         6.4.37.  Altering effect send's MIDI controller . . . . . . .  77         6.4.39. Sending MIDI messages to sampler channel  . . . . . .  76
158         6.4.38.  Altering effect send's send level  . . . . . . . . .  78         6.4.40. Resetting a sampler channel . . . . . . . . . . . . .  77
159         6.4.39.  Sending MIDI messages to sampler channel . . . . . .  79       6.5.  Controlling connection  . . . . . . . . . . . . . . . . .  78
160         6.4.40.  Resetting a sampler channel  . . . . . . . . . . . .  80         6.5.1.  Register front-end for receiving event messages . . .  78
161       6.5.  Controlling connection  . . . . . . . . . . . . . . . . .  81         6.5.2.  Unregister front-end for not receiving event messages  78
162         6.5.1.   Register front-end for receiving event messages  . .  81         6.5.3.  Enable or disable echo of commands  . . . . . . . . .  79
163         6.5.2.   Unregister front-end for not receiving event         6.5.4.  Close client connection . . . . . . . . . . . . . . .  80
164                  messages . . . . . . . . . . . . . . . . . . . . . .  81       6.6.  Global commands . . . . . . . . . . . . . . . . . . . . .  80
165         6.5.3.   Enable or disable echo of commands . . . . . . . . .  82  
166         6.5.4.   Close client connection  . . . . . . . . . . . . . .  83  
167       6.6.  Global commands . . . . . . . . . . . . . . . . . . . . .  83  
168    Schoenebeck            Expires September 12, 2019               [Page 3]
169    
170    Internet-Draft        LinuxSampler Control Protocol           March 2019
171  Schoenebeck             Expires January 16, 2016                [Page 3]  
172    
173  Internet-Draft        LinuxSampler Control Protocol            July 2015         6.6.1.  Current number of active voices . . . . . . . . . . .  80
174           6.6.2.  Maximum amount of active voices . . . . . . . . . . .  80
175           6.6.3.  Current number of active disk streams . . . . . . . .  80
176         6.6.1.   Current number of active voices  . . . . . . . . . .  83         6.6.4.  Reset sampler . . . . . . . . . . . . . . . . . . . .  81
177         6.6.2.   Maximum amount of active voices  . . . . . . . . . .  83         6.6.5.  General sampler information . . . . . . . . . . . . .  81
178         6.6.3.   Current number of active disk streams  . . . . . . .  83         6.6.6.  Getting global volume attenuation . . . . . . . . . .  82
179         6.6.4.   Reset sampler  . . . . . . . . . . . . . . . . . . .  84         6.6.7.  Setting global volume attenuation . . . . . . . . . .  83
180         6.6.5.   General sampler informations . . . . . . . . . . . .  84         6.6.8.  Getting global voice limit  . . . . . . . . . . . . .  83
181         6.6.6.   Getting global volume attenuation  . . . . . . . . .  85         6.6.9.  Setting global voice limit  . . . . . . . . . . . . .  84
182         6.6.7.   Setting global volume attenuation  . . . . . . . . .  86         6.6.10. Getting global disk stream limit  . . . . . . . . . .  84
183         6.6.8.   Getting global voice limit . . . . . . . . . . . . .  86         6.6.11. Setting global disk stream limit  . . . . . . . . . .  85
184         6.6.9.   Setting global voice limit . . . . . . . . . . . . .  87       6.7.  MIDI Instrument Mapping . . . . . . . . . . . . . . . . .  85
185         6.6.10.  Getting global disk stream limit . . . . . . . . . .  87         6.7.1.  Create a new MIDI instrument map  . . . . . . . . . .  86
186         6.6.11.  Setting global disk stream limit . . . . . . . . . .  88         6.7.2.  Delete one particular or all MIDI instrument maps . .  87
187       6.7.  MIDI Instrument Mapping . . . . . . . . . . . . . . . . .  88         6.7.3.  Get amount of existing MIDI instrument maps . . . . .  88
188         6.7.1.   Create a new MIDI instrument map . . . . . . . . . .  89         6.7.4.  Getting all created MIDI instrument maps  . . . . . .  88
189         6.7.2.   Delete one particular or all MIDI instrument maps  .  90         6.7.5.  Getting MIDI instrument map information . . . . . . .  88
190         6.7.3.   Get amount of existing MIDI instrument maps  . . . .  91         6.7.6.  Renaming a MIDI instrument map  . . . . . . . . . . .  89
191         6.7.4.   Getting all created MIDI instrument maps . . . . . .  91         6.7.7.  Create or replace a MIDI instrument map entry . . . .  90
192         6.7.5.   Getting MIDI instrument map information  . . . . . .  91         6.7.8.  Getting amount of MIDI instrument map entries . . . .  93
193         6.7.6.   Renaming a MIDI instrument map . . . . . . . . . . .  92         6.7.9.  Getting indeces of all entries of a MIDI instrument
194         6.7.7.   Create or replace a MIDI instrument map entry  . . .  93                 map . . . . . . . . . . . . . . . . . . . . . . . . .  93
195         6.7.8.   Getting amount of MIDI instrument map entries  . . .  96         6.7.10. Remove an entry from the MIDI instrument map  . . . .  94
196         6.7.9.   Getting indeces of all entries of a MIDI         6.7.11. Get current settings of MIDI instrument map entry . .  95
197                  instrument map . . . . . . . . . . . . . . . . . . .  96         6.7.12. Clear MIDI instrument map . . . . . . . . . . . . . .  96
198         6.7.10.  Remove an entry from the MIDI instrument map . . . .  97       6.8.  Managing Instruments Database . . . . . . . . . . . . . .  97
199         6.7.11.  Get current settings of MIDI instrument map entry  .  98         6.8.1.  Creating a new instrument directory . . . . . . . . .  97
200         6.7.12.  Clear MIDI instrument map  . . . . . . . . . . . . .  99         6.8.2.  Deleting an instrument directory  . . . . . . . . . .  98
201       6.8.  Managing Instruments Database . . . . . . . . . . . . . . 100         6.8.3.  Getting amount of instrument directories  . . . . . .  99
202         6.8.1.   Creating a new instrument directory  . . . . . . . . 100         6.8.4.  Listing all directories in specific directory . . . .  99
203         6.8.2.   Deleting an instrument directory . . . . . . . . . . 101         6.8.5.  Getting instrument directory information  . . . . . . 100
204         6.8.3.   Getting amount of instrument directories . . . . . . 102         6.8.6.  Renaming an instrument directory  . . . . . . . . . . 101
205         6.8.4.   Listing all directories in specific directory  . . . 102         6.8.7.  Moving an instrument directory  . . . . . . . . . . . 101
206         6.8.5.   Getting instrument directory information . . . . . . 103         6.8.8.  Copying instrument directories  . . . . . . . . . . . 102
207         6.8.6.   Renaming an instrument directory . . . . . . . . . . 104         6.8.9.  Changing the description of directory . . . . . . . . 103
208         6.8.7.   Moving an instrument directory . . . . . . . . . . . 104         6.8.10. Finding directories . . . . . . . . . . . . . . . . . 103
209         6.8.8.   Copying instrument directories . . . . . . . . . . . 105         6.8.11. Adding instruments to the instruments database  . . . 104
210         6.8.9.   Changing the description of directory  . . . . . . . 106         6.8.12. Removing an instrument  . . . . . . . . . . . . . . . 106
211         6.8.10.  Finding directories  . . . . . . . . . . . . . . . . 106         6.8.13. Getting amount of instruments . . . . . . . . . . . . 106
212         6.8.11.  Adding instruments to the instruments database . . . 108         6.8.14. Listing all instruments in specific directory . . . . 107
213         6.8.12.  Removing an instrument . . . . . . . . . . . . . . . 109         6.8.15. Getting instrument information  . . . . . . . . . . . 107
214         6.8.13.  Getting amount of instruments  . . . . . . . . . . . 110         6.8.16. Renaming an instrument  . . . . . . . . . . . . . . . 110
215         6.8.14.  Listing all instruments in specific directory  . . . 111         6.8.17. Moving an instrument  . . . . . . . . . . . . . . . . 110
216         6.8.15.  Getting instrument information . . . . . . . . . . . 111         6.8.18. Copying instruments . . . . . . . . . . . . . . . . . 111
217         6.8.16.  Renaming an instrument . . . . . . . . . . . . . . . 114         6.8.19. Changing the description of instrument  . . . . . . . 112
218         6.8.17.  Moving an instrument . . . . . . . . . . . . . . . . 114         6.8.20. Finding instruments . . . . . . . . . . . . . . . . . 112
219         6.8.18.  Copying instruments  . . . . . . . . . . . . . . . . 115         6.8.21. Getting job status information  . . . . . . . . . . . 113
220         6.8.19.  Changing the description of instrument . . . . . . . 115         6.8.22. Formatting the instruments database . . . . . . . . . 114
221         6.8.20.  Finding instruments  . . . . . . . . . . . . . . . . 116  
222         6.8.21.  Getting job status information . . . . . . . . . . . 118  
223         6.8.22.  Formatting the instruments database  . . . . . . . . 120  
224    Schoenebeck            Expires September 12, 2019               [Page 4]
225    
226    Internet-Draft        LinuxSampler Control Protocol           March 2019
227  Schoenebeck             Expires January 16, 2016                [Page 4]  
228    
229  Internet-Draft        LinuxSampler Control Protocol            July 2015         6.8.23. Checking for lost instrument files  . . . . . . . . . 115
230           6.8.24. Replacing an instrument file  . . . . . . . . . . . . 115
231         6.9.  Editing Instruments . . . . . . . . . . . . . . . . . . . 116
232         6.8.23.  Checking for lost instrument files . . . . . . . . . 120         6.9.1.  Opening an appropriate instrument editor application  116
233         6.8.24.  Replacing an instrument file . . . . . . . . . . . . 121       6.10. Managing Files  . . . . . . . . . . . . . . . . . . . . . 117
234       6.9.  Editing Instruments . . . . . . . . . . . . . . . . . . . 121         6.10.1.  Retrieving amount of instruments of a file . . . . . 117
235         6.9.1.   Opening an appropriate instrument editor         6.10.2.  Retrieving all instruments of a file . . . . . . . . 118
236                  application  . . . . . . . . . . . . . . . . . . . . 121         6.10.3.  Retrieving information about one instrument in a
237       6.10. Managing Files  . . . . . . . . . . . . . . . . . . . . . 122                  file . . . . . . . . . . . . . . . . . . . . . . . . 118
238         6.10.1.  Retrieving amount of instruments of a file . . . . . 123       6.11. Managing Effects  . . . . . . . . . . . . . . . . . . . . 120
239         6.10.2.  Retrieving all instruments of a file . . . . . . . . 123         6.11.1.  Retrieve amount of available effects . . . . . . . . 121
240         6.10.3.  Retrieving informations about one instrument in a         6.11.2.  Get list of available effects  . . . . . . . . . . . 121
241                  file . . . . . . . . . . . . . . . . . . . . . . . . 124         6.11.3.  Retrieving general information about an effect . . . 122
242       6.11. Managing Effects  . . . . . . . . . . . . . . . . . . . . 126         6.11.4.  Creating an instance of an effect by its portable ID 123
243         6.11.1.  Retrieve amount of available effects . . . . . . . . 126         6.11.5.  Creating an instance of an effect by its numerical
244         6.11.2.  Get list of available effects  . . . . . . . . . . . 127                  ID . . . . . . . . . . . . . . . . . . . . . . . . . 124
245         6.11.3.  Retrieving general information about an effect . . . 127         6.11.6.  Destroy an effect instance . . . . . . . . . . . . . 125
246         6.11.4.  Creating an instance of an effect by its portable         6.11.7.  Retrieve amount of effect instances  . . . . . . . . 126
247                  ID . . . . . . . . . . . . . . . . . . . . . . . . . 128         6.11.8.  Get list of effect instances . . . . . . . . . . . . 126
        6.11.5.  Creating an instance of an effect by its  
                 numerical ID . . . . . . . . . . . . . . . . . . . . 129  
        6.11.6.  Destroy an effect instance . . . . . . . . . . . . . 130  
        6.11.7.  Retrieve amount of effect instances  . . . . . . . . 131  
        6.11.8.  Get list of effect instances . . . . . . . . . . . . 131  
248         6.11.9.  Retrieving current information about an effect         6.11.9.  Retrieving current information about an effect
249                  instance . . . . . . . . . . . . . . . . . . . . . . 132                  instance . . . . . . . . . . . . . . . . . . . . . . 126
250         6.11.10. Retrieving information about an effect parameter . . 133         6.11.10. Retrieving information about an effect parameter . . 128
251         6.11.11. Altering an effect parameter . . . . . . . . . . . . 135         6.11.11. Altering an effect parameter . . . . . . . . . . . . 130
252         6.11.12. Retrieve amount of send effect chains  . . . . . . . 135         6.11.12. Retrieve amount of send effect chains  . . . . . . . 130
253         6.11.13. Retrieve list of send effect chains  . . . . . . . . 136         6.11.13. Retrieve list of send effect chains  . . . . . . . . 131
254         6.11.14. Add send effect chain  . . . . . . . . . . . . . . . 136         6.11.14. Add send effect chain  . . . . . . . . . . . . . . . 131
255         6.11.15. Remove send effect chain . . . . . . . . . . . . . . 137         6.11.15. Remove send effect chain . . . . . . . . . . . . . . 132
256         6.11.16. Retrieving information about a send effect chain . . 138         6.11.16. Retrieving information about a send effect chain . . 132
257         6.11.17. Append effect instance to a send effect chain  . . . 139         6.11.17. Append effect instance to a send effect chain  . . . 133
258         6.11.18. Insert effect instance to a send effect chain  . . . 139         6.11.18. Insert effect instance to a send effect chain  . . . 134
259         6.11.19. Remove effect instance from send effect chain  . . . 140         6.11.19. Remove effect instance from send effect chain  . . . 135
260     7.  Command Syntax  . . . . . . . . . . . . . . . . . . . . . . . 142     7.  Command Syntax  . . . . . . . . . . . . . . . . . . . . . . . 136
261       7.1.  Character Set and Escape Sequences  . . . . . . . . . . . 159       7.1.  Character Set and Escape Sequences  . . . . . . . . . . . 153
262     8.  Events  . . . . . . . . . . . . . . . . . . . . . . . . . . . 164     8.  Events  . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
263       8.1.  Number of audio output devices changed  . . . . . . . . . 164       8.1.  Number of audio output devices changed  . . . . . . . . . 157
264       8.2.  Audio output device's settings changed  . . . . . . . . . 164       8.2.  Audio output device's settings changed  . . . . . . . . . 157
265       8.3.  Number of MIDI input devices changed  . . . . . . . . . . 164       8.3.  Number of MIDI input devices changed  . . . . . . . . . . 157
266       8.4.  MIDI input device's settings changed  . . . . . . . . . . 165       8.4.  MIDI input device's settings changed  . . . . . . . . . . 158
267       8.5.  Number of sampler channels changed  . . . . . . . . . . . 165       8.5.  Number of sampler channels changed  . . . . . . . . . . . 158
268       8.6.  MIDI data on a sampler channel arrived  . . . . . . . . . 165       8.6.  MIDI data on a sampler channel arrived  . . . . . . . . . 158
269       8.7.  MIDI data on a MIDI input device arrived  . . . . . . . . 166       8.7.  MIDI data on a MIDI input device arrived  . . . . . . . . 159
270       8.8.  Number of active voices changed . . . . . . . . . . . . . 166       8.8.  Number of active voices changed . . . . . . . . . . . . . 159
271       8.9.  Number of active disk streams changed . . . . . . . . . . 167       8.9.  Number of active disk streams changed . . . . . . . . . . 160
272       8.10. Disk stream buffer fill state changed . . . . . . . . . . 167       8.10. Disk stream buffer fill state changed . . . . . . . . . . 160
273       8.11. Channel information changed . . . . . . . . . . . . . . . 167       8.11. Channel information changed . . . . . . . . . . . . . . . 160
274       8.12. Number of effect sends changed  . . . . . . . . . . . . . 168       8.12. Number of effect sends changed  . . . . . . . . . . . . . 161
275         8.13. Effect send information changed . . . . . . . . . . . . . 161
276         8.14. Total number of active voices changed . . . . . . . . . . 162
   
 Schoenebeck             Expires January 16, 2016                [Page 5]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
      8.13. Effect send information changed . . . . . . . . . . . . . 168  
      8.14. Total number of active voices changed . . . . . . . . . . 169  
      8.15. Total number of active disk streams changed . . . . . . . 169  
      8.16. Number of MIDI instrument maps changed  . . . . . . . . . 169  
      8.17. MIDI instrument map information changed . . . . . . . . . 169  
      8.18. Number of MIDI instruments changed  . . . . . . . . . . . 170  
      8.19. MIDI instrument information changed . . . . . . . . . . . 170  
      8.20. Global settings changed . . . . . . . . . . . . . . . . . 171  
      8.21. Number of database instrument directories changed . . . . 171  
      8.22. Database instrument directory information changed . . . . 171  
      8.23. Number of database instruments changed  . . . . . . . . . 172  
      8.24. Database instrument information changed . . . . . . . . . 172  
      8.25. Database job status information changed . . . . . . . . . 173  
      8.26. Number of effect instances changed  . . . . . . . . . . . 173  
      8.27. Effect instance information changed . . . . . . . . . . . 174  
      8.28. Number of send effect chains changed  . . . . . . . . . . 174  
      8.29. Send effect chain information changed . . . . . . . . . . 174  
      8.30. Miscellaneous and debugging events  . . . . . . . . . . . 175  
    9.  Security Considerations . . . . . . . . . . . . . . . . . . . 176  
    10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 177  
    11. References  . . . . . . . . . . . . . . . . . . . . . . . . . 178  
    Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . 179  
    Intellectual Property and Copyright Statements  . . . . . . . . . 180  
   
   
   
   
   
   
   
   
   
   
   
277    
278    
279    
280    Schoenebeck            Expires September 12, 2019               [Page 5]
281    
282    Internet-Draft        LinuxSampler Control Protocol           March 2019
283    
284    
285         8.15. Total number of active disk streams changed . . . . . . . 162
286         8.16. Number of MIDI instrument maps changed  . . . . . . . . . 162
287         8.17. MIDI instrument map information changed . . . . . . . . . 162
288         8.18. Number of MIDI instruments changed  . . . . . . . . . . . 163
289         8.19. MIDI instrument information changed . . . . . . . . . . . 163
290         8.20. Global settings changed . . . . . . . . . . . . . . . . . 164
291         8.21. Number of database instrument directories changed . . . . 164
292         8.22. Database instrument directory information changed . . . . 165
293         8.23. Number of database instruments changed  . . . . . . . . . 165
294  Schoenebeck             Expires January 16, 2016                [Page 6]       8.24. Database instrument information changed . . . . . . . . . 166
295         8.25. Database job status information changed . . . . . . . . . 166
296  Internet-Draft        LinuxSampler Control Protocol            July 2015       8.26. Number of effect instances changed  . . . . . . . . . . . 167
297         8.27. Effect instance information changed . . . . . . . . . . . 167
298         8.28. Number of send effect chains changed  . . . . . . . . . . 167
299         8.29. Send effect chain information changed . . . . . . . . . . 168
300         8.30. Miscellaneous and debugging events  . . . . . . . . . . . 168
301       9.  Security Considerations . . . . . . . . . . . . . . . . . . . 168
302       10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 168
303       11. References  . . . . . . . . . . . . . . . . . . . . . . . . . 169
304       Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . 169
305    
306  1.  Requirements notation  1.  Requirements notation
307    
# Line 354  Internet-Draft        LinuxSampler Contr Line 320  Internet-Draft        LinuxSampler Contr
320    
321        C: "some line"        C: "some line"
322    
323           "another line"        "another line"
324    
325     must actually be interpreted as client sending the following message:     must actually be interpreted as client sending the following message:
326    
# Line 363  Internet-Draft        LinuxSampler Contr Line 329  Internet-Draft        LinuxSampler Contr
329     where <CR> symbolizes the carriage return character and <LF> the line     where <CR> symbolizes the carriage return character and <LF> the line
330     feed character as defined in the ASCII standard.     feed character as defined in the ASCII standard.
331    
332    
333    
334    
335    
336    Schoenebeck            Expires September 12, 2019               [Page 6]
337    
338    Internet-Draft        LinuxSampler Control Protocol           March 2019
339    
340    
341     Due to technical reasons, messages can arbitrary be fragmented, means     Due to technical reasons, messages can arbitrary be fragmented, means
342     the following example:     the following example:
343    
# Line 384  Internet-Draft        LinuxSampler Contr Line 359  Internet-Draft        LinuxSampler Contr
359     where again <CR> and <LF> symbolize the carriage return and line feed     where again <CR> and <LF> symbolize the carriage return and line feed
360     characters respectively.     characters respectively.
361    
   
   
   
   
 Schoenebeck             Expires January 16, 2016                [Page 7]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
362  2.  Versioning of this specification  2.  Versioning of this specification
363    
364     LSCP will certainly be extended and enhanced by-and-by.  Each     LSCP will certainly be extended and enhanced by-and-by.  Each
# Line 418  Internet-Draft        LinuxSampler Contr Line 384  Internet-Draft        LinuxSampler Contr
384     2.  The frontend's LSCP minor version is less or equal than the     2.  The frontend's LSCP minor version is less or equal than the
385         sampler's LSCP minor version.         sampler's LSCP minor version.
386    
    Compatibility can only be claimed if both rules are true.  The  
    frontend can use the "GET SERVER INFO" (Section 6.6.5) command to get  
    the version of the LSCP specification the sampler complies with.  
   
   
   
   
   
   
   
   
   
   
   
387    
388    
389    
390    
391    
392    Schoenebeck            Expires September 12, 2019               [Page 7]
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016                [Page 8]  
393    
394  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
395    
396    
397       Compatibility can only be claimed if both rules are true.  The
398       frontend can use the "GET SERVER INFO" (Section 6.6.5) command to get
399       the version of the LSCP specification the sampler complies with.
400    
401  3.  Introduction  3.  Introduction
402    
403     LinuxSampler is a so called software sampler application capable to     LinuxSampler is a so called software sampler application capable to
# Line 459  Internet-Draft        LinuxSampler Contr Line 408  Internet-Draft        LinuxSampler Contr
408     virtual channels which will be referred in this document as "sampler     virtual channels which will be referred in this document as "sampler
409     channels".  The channels are in such way virtual as they can be     channels".  The channels are in such way virtual as they can be
410     connected to an arbitrary MIDI input method and arbitrary MIDI     connected to an arbitrary MIDI input method and arbitrary MIDI
411     channel (e.g. sampler channel 17 could be connected to an ALSA     channel (e.g.  sampler channel 17 could be connected to an ALSA
412     sequencer device 64:0 and listening to MIDI channel 1 there).  Each     sequencer device 64:0 and listening to MIDI channel 1 there).  Each
413     sampler channel will be associated with an instance of one of the     sampler channel will be associated with an instance of one of the
414     available sampler engines (e.g.  GigEngine, DLSEngine).  The audio     available sampler engines (e.g.  GigEngine, DLSEngine).  The audio
# Line 467  Internet-Draft        LinuxSampler Contr Line 416  Internet-Draft        LinuxSampler Contr
416     output method (ALSA / JACK) and an arbitrary audio output channel     output method (ALSA / JACK) and an arbitrary audio output channel
417     there.     there.
418    
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016                [Page 9]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
419  4.  Focus of this protocol  4.  Focus of this protocol
420    
421     Main focus of this protocol is to provide a way to configure a     Main focus of this protocol is to provide a way to configure a
# Line 515  Internet-Draft        LinuxSampler Contr Line 426  Internet-Draft        LinuxSampler Contr
426     covered by MIDI or which may at most be handled via MIDI System     covered by MIDI or which may at most be handled via MIDI System
427     Exclusive Messages.     Exclusive Messages.
428    
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 10]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
429  5.  Communication Overview  5.  Communication Overview
430    
431     There are two distinct methods of communication between a running     There are two distinct methods of communication between a running
# Line 573  Internet-Draft        LinuxSampler Contr Line 438  Internet-Draft        LinuxSampler Contr
438     more effort to be implemented in the front-end application.  The two     more effort to be implemented in the front-end application.  The two
439     communication methods will be described next.     communication methods will be described next.
440    
441    
442    
443    
444    
445    
446    
447    
448    Schoenebeck            Expires September 12, 2019               [Page 8]
449    
450    Internet-Draft        LinuxSampler Control Protocol           March 2019
451    
452    
453  5.1.  Request/response communication method  5.1.  Request/response communication method
454    
455     This simple communication method is based on TCP [RFC793].  The     This simple communication method is based on TCP [RFC793].  The
# Line 610  Internet-Draft        LinuxSampler Contr Line 487  Internet-Draft        LinuxSampler Contr
487     server they MUST be processed in the order they were received and     server they MUST be processed in the order they were received and
488     result sets MUST be sent back in the same order.     result sets MUST be sent back in the same order.
489    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 11]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
490  5.1.1.  Result format  5.1.1.  Result format
491    
492     Result set could be one of the following types:     Result set could be one of the following types:
# Line 627  Internet-Draft        LinuxSampler Contr Line 497  Internet-Draft        LinuxSampler Contr
497    
498     3.  Error     3.  Error
499    
500    
501    
502    
503    
504    Schoenebeck            Expires September 12, 2019               [Page 9]
505    
506    Internet-Draft        LinuxSampler Control Protocol           March 2019
507    
508    
509     Warning and Error result sets MUST be single line and have the     Warning and Error result sets MUST be single line and have the
510     following format:     following format:
511    
# Line 665  Internet-Draft        LinuxSampler Contr Line 544  Internet-Draft        LinuxSampler Contr
544     Empty result set is issued when the server only needed to acknowledge     Empty result set is issued when the server only needed to acknowledge
545     the fact that the request was received and it was processed     the fact that the request was received and it was processed
546     successfully and no additional information is available.  This result     successfully and no additional information is available.  This result
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 12]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
547     set has the following format:     set has the following format:
548    
549        "OK"        "OK"
# Line 683  Internet-Draft        LinuxSampler Contr Line 554  Internet-Draft        LinuxSampler Contr
554    
555        S: "OK"        S: "OK"
556    
557    
558    
559    
560    Schoenebeck            Expires September 12, 2019              [Page 10]
561    
562    Internet-Draft        LinuxSampler Control Protocol           March 2019
563    
564    
565     Single line result sets are command specific.  One example of a     Single line result sets are command specific.  One example of a
566     single line result set is an empty line.  Multi-line result sets are     single line result set is an empty line.  Multi-line result sets are
567     command specific and may include one or more lines of information.     command specific and may include one or more lines of information.
# Line 696  Internet-Draft        LinuxSampler Contr Line 575  Internet-Draft        LinuxSampler Contr
575    
576        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
577    
578           "CHANNELS: 2"        "CHANNELS: 2"
579    
580           "SAMPLERATE: 44100"        "SAMPLERATE: 44100"
581    
582           "ACTIVE: true"        "ACTIVE: true"
583    
584           "FRAGMENTS: 2"        "FRAGMENTS: 2"
585    
586           "FRAGMENTSIZE: 128"        "FRAGMENTSIZE: 128"
587    
588           "CARD: '0,0'"        "CARD: '0,0'"
589    
590           "."        "."
591    
592     In addition to above mentioned formats, warnings and empty result     In addition to above mentioned formats, warnings and empty result
593     sets MAY be indexed.  In this case, they have the following formats     sets MAY be indexed.  In this case, they have the following formats
# Line 721  Internet-Draft        LinuxSampler Contr Line 600  Internet-Draft        LinuxSampler Contr
600     where <index> is command specific and is used to indicate channel     where <index> is command specific and is used to indicate channel
601     number that the result set was related to or other integer value.     number that the result set was related to or other integer value.
602    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 13]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
603     Each line of the result set MUST end with <CRLF>.     Each line of the result set MUST end with <CRLF>.
604    
605     Examples:     Examples:
# Line 739  Internet-Draft        LinuxSampler Contr Line 610  Internet-Draft        LinuxSampler Contr
610    
611        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"        C: "CREATE AUDIO_OUTPUT_DEVICE ALSA SAMPLERATE=96000"
612    
613    
614    
615    
616    Schoenebeck            Expires September 12, 2019              [Page 11]
617    
618    Internet-Draft        LinuxSampler Control Protocol           March 2019
619    
620    
621        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."        S: "WRN[0]:32:Sample rate not supported, using 44100 instead."
622    
623  5.2.  Subscribe/notify communication method  5.2.  Subscribe/notify communication method
# Line 777  Internet-Draft        LinuxSampler Contr Line 656  Internet-Draft        LinuxSampler Contr
656     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
657         in the stream before or after the response, but NOT in the         in the stream before or after the response, but NOT in the
658         middle.  Same is true about the response.  It should never be         middle.  Same is true about the response.  It should never be
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 14]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
659         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
660         response.         response.
661    
# Line 793  Internet-Draft        LinuxSampler Contr Line 664  Internet-Draft        LinuxSampler Contr
664    
665        UNSUBSCRIBE <event-id>        UNSUBSCRIBE <event-id>
666    
667    
668    
669    
670    
671    
672    Schoenebeck            Expires September 12, 2019              [Page 12]
673    
674    Internet-Draft        LinuxSampler Control Protocol           March 2019
675    
676    
677     where <event-id> will be replace by the respective event that client     where <event-id> will be replace by the respective event that client
678     is no longer interested in receiving.  For a list of supported events     is no longer interested in receiving.  For a list of supported events
679     see Section 8.     see Section 8.
# Line 830  Internet-Draft        LinuxSampler Contr Line 711  Internet-Draft        LinuxSampler Contr
711     reconnects it MUST resubscribe to all events that it wants to     reconnects it MUST resubscribe to all events that it wants to
712     receive.     receive.
713    
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 15]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
714  6.  Description for control commands  6.  Description for control commands
715    
716     This chapter will describe the available control commands that can be     This chapter will describe the available control commands that can be
# Line 850  Internet-Draft        LinuxSampler Contr Line 720  Internet-Draft        LinuxSampler Contr
720     LinuxSampler signals the end of the response by a "." (single dot)     LinuxSampler signals the end of the response by a "." (single dot)
721     line.     line.
722    
723    
724    
725    
726    
727    
728    Schoenebeck            Expires September 12, 2019              [Page 13]
729    
730    Internet-Draft        LinuxSampler Control Protocol           March 2019
731    
732    
733  6.1.  Ignored lines and comments  6.1.  Ignored lines and comments
734    
735     White lines, that is lines which only contain space and tabulator     White lines, that is lines which only contain space and tabulator
# Line 886  Internet-Draft        LinuxSampler Contr Line 766  Internet-Draft        LinuxSampler Contr
766     retrieve what parameters drivers are offering, how to retrieve their     retrieve what parameters drivers are offering, how to retrieve their
767     possible values, etc.     possible values, etc.
768    
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 16]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
769  6.2.1.  Getting amount of available audio output drivers  6.2.1.  Getting amount of available audio output drivers
770    
771     Use the following command to get the number of audio output drivers     Use the following command to get the number of audio output drivers
# Line 909  Internet-Draft        LinuxSampler Contr Line 778  Internet-Draft        LinuxSampler Contr
778        LinuxSampler will answer by sending the number of audio output        LinuxSampler will answer by sending the number of audio output
779        drivers.        drivers.
780    
781    
782    
783    
784    Schoenebeck            Expires September 12, 2019              [Page 14]
785    
786    Internet-Draft        LinuxSampler Control Protocol           March 2019
787    
788    
789     Example:     Example:
790    
791        C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"        C: "GET AVAILABLE_AUDIO_OUTPUT_DRIVERS"
# Line 946  Internet-Draft        LinuxSampler Contr Line 823  Internet-Draft        LinuxSampler Contr
823    
824     Possible Answers:     Possible Answers:
825    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 17]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
826        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
827        answer line begins with the information category name followed by        answer line begins with the information category name followed by
828        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 965  Internet-Draft        LinuxSampler Contr Line 835  Internet-Draft        LinuxSampler Contr
835    
836              character string describing the audio output driver              character string describing the audio output driver
837    
838    
839    
840    Schoenebeck            Expires September 12, 2019              [Page 15]
841    
842    Internet-Draft        LinuxSampler Control Protocol           March 2019
843    
844    
845           VERSION -           VERSION -
846    
847              character string reflecting the driver's version              character string reflecting the driver's version
# Line 984  Internet-Draft        LinuxSampler Contr Line 861  Internet-Draft        LinuxSampler Contr
861    
862        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
863    
864           "VERSION: 1.0"        "VERSION: 1.0"
865    
866           "PARAMETERS: DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,        "PARAMETERS: DRIVER,CHANNELS,SAMPLERATE,ACTIVE,FRAGMENTS,
867        FRAGMENTSIZE,CARD"        FRAGMENTSIZE,CARD"
868    
869           "."        "."
870    
871  6.2.4.  Getting information about specific audio output driver parameter  6.2.4.  Getting information about specific audio output driver parameter
872    
# Line 1001  Internet-Draft        LinuxSampler Contr Line 878  Internet-Draft        LinuxSampler Contr
878     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
879     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,     the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2) command,
880     <prm> a specific parameter name for which information should be     <prm> a specific parameter name for which information should be
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 18]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
881     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"     obtained (as returned by the "GET AUDIO_OUTPUT_DRIVER INFO"
882     (Section 6.2.3) command) and <deplist> is an optional list of     (Section 6.2.3) command) and <deplist> is an optional list of
883     parameters on which the sought parameter <prm> depends on, <deplist>     parameters on which the sought parameter <prm> depends on, <deplist>
# Line 1021  Internet-Draft        LinuxSampler Contr Line 890  Internet-Draft        LinuxSampler Contr
890    
891     Possible Answers:     Possible Answers:
892    
893    
894    
895    
896    Schoenebeck            Expires September 12, 2019              [Page 16]
897    
898    Internet-Draft        LinuxSampler Control Protocol           March 2019
899    
900    
901        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
902        answer line begins with the information category name followed by        answer line begins with the information category name followed by
903        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 1056  Internet-Draft        LinuxSampler Contr Line 933  Internet-Draft        LinuxSampler Contr
933           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,           AUDIO_OUTPUT_DEVICE' (Section 6.2.5) command (always returned,
934           no matter which driver parameter)           no matter which driver parameter)
935    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 19]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
936        MULTIPLICITY -        MULTIPLICITY -
937    
938           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
# Line 1078  Internet-Draft        LinuxSampler Contr Line 946  Internet-Draft        LinuxSampler Contr
946           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'           means the values for fields 'DEFAULT', 'RANGE_MIN', 'RANGE_MAX'
947           and 'POSSIBILITIES' might depend on these listed parameters,           and 'POSSIBILITIES' might depend on these listed parameters,
948           for example assuming that an audio driver (like the ALSA           for example assuming that an audio driver (like the ALSA
949    
950    
951    
952    Schoenebeck            Expires September 12, 2019              [Page 17]
953    
954    Internet-Draft        LinuxSampler Control Protocol           March 2019
955    
956    
957           driver) offers parameters 'card' and 'samplerate' then           driver) offers parameters 'card' and 'samplerate' then
958           parameter 'samplerate' would depend on 'card' because the           parameter 'samplerate' would depend on 'card' because the
959           possible values for 'samplerate' depends on the sound card           possible values for 'samplerate' depends on the sound card
# Line 1113  Internet-Draft        LinuxSampler Contr Line 989  Internet-Draft        LinuxSampler Contr
989    
990           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
991           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 20]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
992           returned, dependent to driver parameter)           returned, dependent to driver parameter)
993    
994     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
# Line 1131  Internet-Draft        LinuxSampler Contr Line 999  Internet-Draft        LinuxSampler Contr
999    
1000        S: "DESCRIPTION: sound card to be used"        S: "DESCRIPTION: sound card to be used"
1001    
1002           "TYPE: STRING"        "TYPE: STRING"
1003    
1004          "MANDATORY: false"
1005    
          "MANDATORY: false"  
1006    
          "FIX: true"  
1007    
1008           "MULTIPLICITY: false"  Schoenebeck            Expires September 12, 2019              [Page 18]
1009    
1010    Internet-Draft        LinuxSampler Control Protocol           March 2019
1011    
1012    
1013           "DEFAULT: '0,0'"        "FIX: true"
1014    
1015           "POSSIBILITIES: '0,0','1,0','2,0'"        "MULTIPLICITY: false"
1016    
1017           "."        "DEFAULT: '0,0'"
1018    
1019          "POSSIBILITIES: '0,0','1,0','2,0'"
1020    
1021          "."
1022    
1023        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE"
1024    
1025        S: "DESCRIPTION: output sample rate in Hz"        S: "DESCRIPTION: output sample rate in Hz"
1026    
1027           "TYPE: INT"        "TYPE: INT"
1028    
1029           "MANDATORY: false"        "MANDATORY: false"
1030    
1031           "FIX: false"        "FIX: false"
1032    
1033           "MULTIPLICITY: false"        "MULTIPLICITY: false"
1034    
1035           "DEPENDS: card"        "DEPENDS: card"
1036    
1037           "DEFAULT: 44100"        "DEFAULT: 44100"
1038    
1039           "."        "."
1040    
1041        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE        C: "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA SAMPLERATE
1042        CARD='0,0'"        CARD='0,0'"
1043    
1044        S: "DESCRIPTION: output sample rate in Hz"        S: "DESCRIPTION: output sample rate in Hz"
1045    
1046          "TYPE: INT"
1047    
1048          "MANDATORY: false"
1049    
1050          "FIX: false"
1051    
1052          "MULTIPLICITY: false"
1053    
1054  Schoenebeck             Expires January 16, 2016               [Page 21]        "DEPENDS: card"
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
          "TYPE: INT"  
1055    
1056           "MANDATORY: false"        "DEFAULT: 44100"
1057    
1058           "FIX: false"        "RANGE_MIN: 22050"
1059    
1060           "MULTIPLICITY: false"        "RANGE_MAX: 96000"
1061    
          "DEPENDS: card"  
1062    
          "DEFAULT: 44100"  
1063    
1064           "RANGE_MIN: 22050"  Schoenebeck            Expires September 12, 2019              [Page 19]
1065    
1066    Internet-Draft        LinuxSampler Control Protocol           March 2019
1067    
          "RANGE_MAX: 96000"  
1068    
1069           "."        "."
1070    
1071  6.2.5.  Creating an audio output device  6.2.5.  Creating an audio output device
1072    
# Line 1225  Internet-Draft        LinuxSampler Contr Line 1098  Internet-Draft        LinuxSampler Contr
1098           is the numerical ID of the new device, but there are noteworthy           is the numerical ID of the new device, but there are noteworthy
1099           issue(s) related (e.g. sound card doesn't support given           issue(s) related (e.g. sound card doesn't support given
1100           hardware parameters and the driver is using fall-back values),           hardware parameters and the driver is using fall-back values),
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 22]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1101           providing an appropriate warning code and warning message           providing an appropriate warning code and warning message
1102    
1103        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
# Line 1250  Internet-Draft        LinuxSampler Contr Line 1115  Internet-Draft        LinuxSampler Contr
1115    
1116        S: "OK[1]"        S: "OK[1]"
1117    
1118    
1119    
1120    Schoenebeck            Expires September 12, 2019              [Page 20]
1121    
1122    Internet-Draft        LinuxSampler Control Protocol           March 2019
1123    
1124    
1125  6.2.6.  Destroying an audio output device  6.2.6.  Destroying an audio output device
1126    
1127     Use the following command to destroy a created output device:     Use the following command to destroy a created output device:
# Line 1282  Internet-Draft        LinuxSampler Contr Line 1154  Internet-Draft        LinuxSampler Contr
1154    
1155     Example:     Example:
1156    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 23]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1157        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"        C: "DESTROY AUDIO_OUTPUT_DEVICE 0"
1158    
1159        S: "OK"        S: "OK"
# Line 1306  Internet-Draft        LinuxSampler Contr Line 1171  Internet-Draft        LinuxSampler Contr
1171    
1172     Example:     Example:
1173    
1174    
1175    
1176    Schoenebeck            Expires September 12, 2019              [Page 21]
1177    
1178    Internet-Draft        LinuxSampler Control Protocol           March 2019
1179    
1180    
1181        C: "GET AUDIO_OUTPUT_DEVICES"        C: "GET AUDIO_OUTPUT_DEVICES"
1182    
1183        S: "4"        S: "4"
# Line 1338  Internet-Draft        LinuxSampler Contr Line 1210  Internet-Draft        LinuxSampler Contr
1210     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"     output device as e.g. returned by the "LIST AUDIO_OUTPUT_DEVICES"
1211     (Section 6.2.8) command.     (Section 6.2.8) command.
1212    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 24]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1213     Possible Answers:     Possible Answers:
1214    
1215     LinuxSampler will answer by sending a <CRLF> separated list.  Each     LinuxSampler will answer by sending a <CRLF> separated list.  Each
# Line 1361  Internet-Draft        LinuxSampler Contr Line 1226  Internet-Draft        LinuxSampler Contr
1226           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)           the "LIST AVAILABLE_AUDIO_OUTPUT_DRIVERS" (Section 6.2.2)
1227           command           command
1228    
1229    
1230    
1231    
1232    Schoenebeck            Expires September 12, 2019              [Page 22]
1233    
1234    Internet-Draft        LinuxSampler Control Protocol           March 2019
1235    
1236    
1237        CHANNELS -        CHANNELS -
1238    
1239           amount of audio output channels this device currently offers           amount of audio output channels this device currently offers
# Line 1387  Internet-Draft        LinuxSampler Contr Line 1260  Internet-Draft        LinuxSampler Contr
1260    
1261        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
1262    
1263           "CHANNELS: 2"        "CHANNELS: 2"
1264    
1265           "SAMPLERATE: 44100"        "SAMPLERATE: 44100"
1266    
1267           "ACTIVE: true"        "ACTIVE: true"
1268    
1269          "FRAGMENTS: 2"
1270    
1271          "FRAGMENTSIZE: 128"
1272    
1273          "CARD: '0,0'"
1274    
1275  Schoenebeck             Expires January 16, 2016               [Page 25]        "."
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
1276    
1277    6.2.10.  Changing settings of audio output devices
1278    
1279       Use the following command to alter a specific setting of a created
1280       audio output device:
1281    
1282           "FRAGMENTS: 2"        SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>
1283    
          "FRAGMENTSIZE: 128"  
1284    
          "CARD: '0,0'"  
1285    
          "."  
1286    
 6.2.10.  Changing settings of audio output devices  
1287    
1288     Use the following command to alter a specific setting of a created  Schoenebeck            Expires September 12, 2019              [Page 23]
1289     audio output device:  
1290    Internet-Draft        LinuxSampler Control Protocol           March 2019
1291    
       SET AUDIO_OUTPUT_DEVICE_PARAMETER <device-id> <key>=<value>  
1292    
1293     Where <device-id> should be replaced by the numerical ID of the audio     Where <device-id> should be replaced by the numerical ID of the audio
1294     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"     output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
# Line 1445  Internet-Draft        LinuxSampler Contr Line 1319  Internet-Draft        LinuxSampler Contr
1319    
1320        S: "OK"        S: "OK"
1321    
   
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 26]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1322  6.2.11.  Getting information about an audio channel  6.2.11.  Getting information about an audio channel
1323    
1324     Use the following command to get information about an audio channel:     Use the following command to get information about an audio channel:
# Line 1478  Internet-Draft        LinuxSampler Contr Line 1340  Internet-Draft        LinuxSampler Contr
1340    
1341    
1342    
1343    
1344    Schoenebeck            Expires September 12, 2019              [Page 24]
1345    
1346    Internet-Draft        LinuxSampler Control Protocol           March 2019
1347    
1348    
1349           NAME -           NAME -
1350    
1351              arbitrary character string naming the channel, which doesn't              arbitrary character string naming the channel, which doesn't
# Line 1506  Internet-Draft        LinuxSampler Contr Line 1374  Internet-Draft        LinuxSampler Contr
1374     driver.  Every audio channel might have its own, additional driver     driver.  Every audio channel might have its own, additional driver
1375     and channel specific parameters.     and channel specific parameters.
1376    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 27]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1377     Examples:     Examples:
1378    
1379        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 0"
1380    
1381        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
1382    
1383           "IS_MIX_CHANNEL: false"        "IS_MIX_CHANNEL: false"
1384    
1385           "."        "."
1386    
1387        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 1"
1388    
1389        S: "NAME: studio monitor right"        S: "NAME: studio monitor right"
1390    
1391           "IS_MIX_CHANNEL: false"        "IS_MIX_CHANNEL: false"
1392    
1393           "."        "."
1394    
1395        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 0 2"
1396    
1397    
1398    
1399    
1400    Schoenebeck            Expires September 12, 2019              [Page 25]
1401    
1402    Internet-Draft        LinuxSampler Control Protocol           March 2019
1403    
1404    
1405        S: "NAME: studio monitor left"        S: "NAME: studio monitor left"
1406    
1407           "IS_MIX_CHANNEL: true"        "IS_MIX_CHANNEL: true"
1408    
1409           "MIX_CHANNEL_DESTINATION: 1"        "MIX_CHANNEL_DESTINATION: 1"
1410    
1411           "."        "."
1412    
1413        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"        C: "GET AUDIO_OUTPUT_CHANNEL INFO 1 0"
1414    
1415        S: "NAME: 'ardour (left)'"        S: "NAME: 'ardour (left)'"
1416    
1417           "IS_MIX_CHANNEL: false"        "IS_MIX_CHANNEL: false"
1418    
1419           "JACK_BINDINGS: 'ardour:0'"        "JACK_BINDINGS: 'ardour:0'"
1420    
1421           "."        "."
1422    
1423  6.2.12.  Getting information about specific audio channel parameter  6.2.12.  Getting information about specific audio channel parameter
1424    
# Line 1561  Internet-Draft        LinuxSampler Contr Line 1430  Internet-Draft        LinuxSampler Contr
1430     Where <dev-id> is the numerical ID of the audio output device as     Where <dev-id> is the numerical ID of the audio output device as
1431     returned by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST     returned by the "CREATE AUDIO_OUTPUT_DEVICE" (Section 6.2.5) or "LIST
1432     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio     AUDIO_OUTPUT_DEVICES" (Section 6.2.8) command, <chan> the audio
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 28]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1433     channel number and <param> a specific channel parameter name for     channel number and <param> a specific channel parameter name for
1434     which information should be obtained (as returned by the "GET     which information should be obtained (as returned by the "GET
1435     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).     AUDIO_OUTPUT_CHANNEL INFO" (Section 6.2.11) command).
# Line 1588  Internet-Draft        LinuxSampler Contr Line 1449  Internet-Draft        LinuxSampler Contr
1449    
1450           TYPE -           TYPE -
1451    
1452    
1453    
1454    
1455    
1456    Schoenebeck            Expires September 12, 2019              [Page 26]
1457    
1458    Internet-Draft        LinuxSampler Control Protocol           March 2019
1459    
1460    
1461              either "BOOL" for boolean value(s) or "INT" for integer              either "BOOL" for boolean value(s) or "INT" for integer
1462              value(s) or "FLOAT" for dotted number(s) or "STRING" for              value(s) or "FLOAT" for dotted number(s) or "STRING" for
1463              character string(s) (always returned)              character string(s) (always returned)
# Line 1617  Internet-Draft        LinuxSampler Contr Line 1487  Internet-Draft        LinuxSampler Contr
1487              may also appear without (optionally returned, dependent to              may also appear without (optionally returned, dependent to
1488              driver and channel parameter)              driver and channel parameter)
1489    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 29]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1490           RANGE_MAX -           RANGE_MAX -
1491    
1492              defines upper limit of the allowed value range for this              defines upper limit of the allowed value range for this
# Line 1644  Internet-Draft        LinuxSampler Contr Line 1506  Internet-Draft        LinuxSampler Contr
1506    
1507     Example:     Example:
1508    
1509    
1510    
1511    
1512    Schoenebeck            Expires September 12, 2019              [Page 27]
1513    
1514    Internet-Draft        LinuxSampler Control Protocol           March 2019
1515    
1516    
1517        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"        C: "GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 1 0 JACK_BINDINGS"
1518    
1519        S: "DESCRIPTION: bindings to other JACK clients"        S: "DESCRIPTION: bindings to other JACK clients"
1520    
1521           "TYPE: STRING"        "TYPE: STRING"
1522    
1523           "FIX: false"        "FIX: false"
1524    
1525           "MULTIPLICITY: true"        "MULTIPLICITY: true"
1526    
1527           "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"        "POSSIBILITIES: 'PCM:0','PCM:1','ardour:0','ardour:1'"
1528    
1529           "."        "."
1530    
1531  6.2.13.  Changing settings of audio output channels  6.2.13.  Changing settings of audio output channels
1532    
# Line 1673  Internet-Draft        LinuxSampler Contr Line 1543  Internet-Draft        LinuxSampler Contr
1543    
1544     Possible Answers:     Possible Answers:
1545    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 30]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1546        "OK" -        "OK" -
1547    
1548           in case setting was successfully changed           in case setting was successfully changed
# Line 1700  Internet-Draft        LinuxSampler Contr Line 1562  Internet-Draft        LinuxSampler Contr
1562    
1563        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 JACK_BINDINGS='PCM:0'"
1564    
1565    
1566    
1567    
1568    Schoenebeck            Expires September 12, 2019              [Page 28]
1569    
1570    Internet-Draft        LinuxSampler Control Protocol           March 2019
1571    
1572    
1573        S: "OK"        S: "OK"
1574    
1575        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"        C: "SET AUDIO_OUTPUT_CHANNEL PARAMETER 0 0 NAME='monitor left'"
# Line 1729  Internet-Draft        LinuxSampler Contr Line 1599  Internet-Draft        LinuxSampler Contr
1599     as the commands for configuring audio output drivers, already     as the commands for configuring audio output drivers, already
1600     described in the last chapter.     described in the last chapter.
1601    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 31]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1602     Note: examples in this chapter showing particular parameters of     Note: examples in this chapter showing particular parameters of
1603     drivers are not meant as specification of the drivers' parameters.     drivers are not meant as specification of the drivers' parameters.
1604     Driver implementations in LinuxSampler might have complete different     Driver implementations in LinuxSampler might have complete different
# Line 1757  Internet-Draft        LinuxSampler Contr Line 1619  Internet-Draft        LinuxSampler Contr
1619        LinuxSampler will answer by sending the number of available MIDI        LinuxSampler will answer by sending the number of available MIDI
1620        input drivers.        input drivers.
1621    
1622    
1623    
1624    Schoenebeck            Expires September 12, 2019              [Page 29]
1625    
1626    Internet-Draft        LinuxSampler Control Protocol           March 2019
1627    
1628    
1629     Example:     Example:
1630    
1631        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"        C: "GET AVAILABLE_MIDI_INPUT_DRIVERS"
# Line 1781  Internet-Draft        LinuxSampler Contr Line 1650  Internet-Draft        LinuxSampler Contr
1650    
1651        S: "ALSA,JACK"        S: "ALSA,JACK"
1652    
   
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 32]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1653  6.3.3.  Getting information about a specific MIDI input driver  6.3.3.  Getting information about a specific MIDI input driver
1654    
1655     Use the following command to get detailed information about a     Use the following command to get detailed information about a
# Line 1818  Internet-Draft        LinuxSampler Contr Line 1675  Internet-Draft        LinuxSampler Contr
1675    
1676              arbitrary description text about the MIDI input driver              arbitrary description text about the MIDI input driver
1677    
1678    
1679    
1680    Schoenebeck            Expires September 12, 2019              [Page 30]
1681    
1682    Internet-Draft        LinuxSampler Control Protocol           March 2019
1683    
1684    
1685           VERSION -           VERSION -
1686    
1687              arbitrary character string regarding the driver's version              arbitrary character string regarding the driver's version
# Line 1835  Internet-Draft        LinuxSampler Contr Line 1699  Internet-Draft        LinuxSampler Contr
1699    
1700        S: "DESCRIPTION: Advanced Linux Sound Architecture"        S: "DESCRIPTION: Advanced Linux Sound Architecture"
1701    
1702           "VERSION: 1.0"        "VERSION: 1.0"
   
          "PARAMETERS: DRIVER,ACTIVE"  
   
          "."  
1703    
1704          "PARAMETERS: DRIVER,ACTIVE"
1705    
1706          "."
   
 Schoenebeck             Expires January 16, 2016               [Page 33]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
1707    
1708  6.3.4.  Getting information about specific MIDI input driver parameter  6.3.4.  Getting information about specific MIDI input driver parameter
1709    
# Line 1874  Internet-Draft        LinuxSampler Contr Line 1730  Internet-Draft        LinuxSampler Contr
1730     answer line begins with the information category name followed by a     answer line begins with the information category name followed by a
1731     colon and then a space character <SP> and finally the info character     colon and then a space character <SP> and finally the info character
1732     string to that info category.  There is information which is always     string to that info category.  There is information which is always
1733    
1734    
1735    
1736    Schoenebeck            Expires September 12, 2019              [Page 31]
1737    
1738    Internet-Draft        LinuxSampler Control Protocol           March 2019
1739    
1740    
1741     returned, independent of the given driver parameter and there is     returned, independent of the given driver parameter and there is
1742     optional information which is only shown dependent to given driver     optional information which is only shown dependent to given driver
1743     parameter.  At the moment the following information categories are     parameter.  At the moment the following information categories are
# Line 1898  Internet-Draft        LinuxSampler Contr Line 1762  Internet-Draft        LinuxSampler Contr
1762           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no           MIDI_INPUT_DEVICE' (Section 6.3.5) command (always returned, no
1763           matter which driver parameter)           matter which driver parameter)
1764    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 34]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1765        FIX -        FIX -
1766    
1767           either true or false, if false then this parameter can be           either true or false, if false then this parameter can be
# Line 1928  Internet-Draft        LinuxSampler Contr Line 1785  Internet-Draft        LinuxSampler Contr
1785           driver) offers parameters 'card' and 'samplerate' then           driver) offers parameters 'card' and 'samplerate' then
1786           parameter 'samplerate' would depend on 'card' because the           parameter 'samplerate' would depend on 'card' because the
1787           possible values for 'samplerate' depends on the sound card           possible values for 'samplerate' depends on the sound card
1788    
1789    
1790    
1791    
1792    Schoenebeck            Expires September 12, 2019              [Page 32]
1793    
1794    Internet-Draft        LinuxSampler Control Protocol           March 2019
1795    
1796    
1797           which can be chosen by the 'card' parameter (optionally           which can be chosen by the 'card' parameter (optionally
1798           returned, dependent to driver parameter)           returned, dependent to driver parameter)
1799    
# Line 1953  Internet-Draft        LinuxSampler Contr Line 1819  Internet-Draft        LinuxSampler Contr
1819           defines upper limit of the allowed value range for this           defines upper limit of the allowed value range for this
1820           parameter, can be an integer value as well as a dotted number,           parameter, can be an integer value as well as a dotted number,
1821           this parameter is often used in conjunction with RANGE_MIN, but           this parameter is often used in conjunction with RANGE_MIN, but
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 35]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1822           may also appear without (optionally returned, dependent to           may also appear without (optionally returned, dependent to
1823           driver parameter)           driver parameter)
1824    
# Line 1978  Internet-Draft        LinuxSampler Contr Line 1836  Internet-Draft        LinuxSampler Contr
1836    
1837        S: "DESCRIPTION: Whether device is enabled"        S: "DESCRIPTION: Whether device is enabled"
1838    
1839           "TYPE: BOOL"        "TYPE: BOOL"
1840    
1841           "MANDATORY: false"        "MANDATORY: false"
1842    
1843           "FIX: false"        "FIX: false"
1844    
          "MULTIPLICITY: false"  
1845    
          "DEFAULT: true"  
1846    
1847           "."  
1848    Schoenebeck            Expires September 12, 2019              [Page 33]
1849    
1850    Internet-Draft        LinuxSampler Control Protocol           March 2019
1851    
1852    
1853          "MULTIPLICITY: false"
1854    
1855          "DEFAULT: true"
1856    
1857          "."
1858    
1859  6.3.5.  Creating a MIDI input device  6.3.5.  Creating a MIDI input device
1860    
# Line 2008  Internet-Draft        LinuxSampler Contr Line 1874  Internet-Draft        LinuxSampler Contr
1874    
1875     Possible Answers:     Possible Answers:
1876    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 36]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1877        "OK[<device-id>]" -        "OK[<device-id>]" -
1878    
1879           in case the device was successfully created, where <device-id>           in case the device was successfully created, where <device-id>
# Line 2040  Internet-Draft        LinuxSampler Contr Line 1897  Internet-Draft        LinuxSampler Contr
1897    
1898        S: "OK[0]"        S: "OK[0]"
1899    
1900    
1901    
1902    
1903    
1904    Schoenebeck            Expires September 12, 2019              [Page 34]
1905    
1906    Internet-Draft        LinuxSampler Control Protocol           March 2019
1907    
1908    
1909  6.3.6.  Destroying a MIDI input device  6.3.6.  Destroying a MIDI input device
1910    
1911     Use the following command to destroy a created MIDI input device:     Use the following command to destroy a created MIDI input device:
# Line 2064  Internet-Draft        LinuxSampler Contr Line 1930  Internet-Draft        LinuxSampler Contr
1930    
1931        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
1932    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 37]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1933           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
1934           error message           error message
1935    
# Line 2097  Internet-Draft        LinuxSampler Contr Line 1954  Internet-Draft        LinuxSampler Contr
1954    
1955        C: "GET MIDI_INPUT_DEVICES"        C: "GET MIDI_INPUT_DEVICES"
1956    
1957    
1958    
1959    
1960    Schoenebeck            Expires September 12, 2019              [Page 35]
1961    
1962    Internet-Draft        LinuxSampler Control Protocol           March 2019
1963    
1964    
1965        S: "3"        S: "3"
1966    
1967  6.3.8.  Getting all created MIDI input device list  6.3.8.  Getting all created MIDI input device list
# Line 2120  Internet-Draft        LinuxSampler Contr Line 1985  Internet-Draft        LinuxSampler Contr
1985    
1986        S: "1,3"        S: "1,3"
1987    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 38]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
1988  6.3.9.  Getting current settings of a MIDI input device  6.3.9.  Getting current settings of a MIDI input device
1989    
1990     Use the following command to get current settings of a specific,     Use the following command to get current settings of a specific,
# Line 2154  Internet-Draft        LinuxSampler Contr Line 2010  Internet-Draft        LinuxSampler Contr
2010    
2011           DRIVER -           DRIVER -
2012    
2013              identifier of the used MIDI input driver, as e.g. returned  
2014    
2015    
2016    Schoenebeck            Expires September 12, 2019              [Page 36]
2017    
2018    Internet-Draft        LinuxSampler Control Protocol           March 2019
2019    
2020    
2021                identifier of the used MIDI input driver, as e.g.  returned
2022              by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)              by the "LIST AVAILABLE_MIDI_INPUT_DRIVERS" (Section 6.3.2)
2023              command              command
2024    
# Line 2177  Internet-Draft        LinuxSampler Contr Line 2041  Internet-Draft        LinuxSampler Contr
2041    
2042        S: "DRIVER: ALSA"        S: "DRIVER: ALSA"
2043    
2044          "ACTIVE: true"
2045    
2046          "."
   
 Schoenebeck             Expires January 16, 2016               [Page 39]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
          "ACTIVE: true"  
   
          "."  
2047    
2048  6.3.10.  Changing settings of MIDI input devices  6.3.10.  Changing settings of MIDI input devices
2049    
# Line 2210  Internet-Draft        LinuxSampler Contr Line 2066  Internet-Draft        LinuxSampler Contr
2066    
2067        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2068    
2069    
2070    
2071    
2072    Schoenebeck            Expires September 12, 2019              [Page 37]
2073    
2074    Internet-Draft        LinuxSampler Control Protocol           March 2019
2075    
2076    
2077           in case setting was changed successfully, but there are           in case setting was changed successfully, but there are
2078           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2079           code and warning message           code and warning message
# Line 2233  Internet-Draft        LinuxSampler Contr Line 2097  Internet-Draft        LinuxSampler Contr
2097    
2098     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
2099     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST     returned by the "CREATE MIDI_INPUT_DEVICE" (Section 6.3.5) or "LIST
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 40]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2100     MIDI_INPUT_DEVICES" (Section 6.3.8) command and <midi-port> the MIDI     MIDI_INPUT_DEVICES" (Section 6.3.8) command and <midi-port> the MIDI
2101     input port number.     input port number.
2102    
# Line 2266  Internet-Draft        LinuxSampler Contr Line 2122  Internet-Draft        LinuxSampler Contr
2122    
2123        S: "NAME: 'Masterkeyboard'"        S: "NAME: 'Masterkeyboard'"
2124    
          "ALSA_SEQ_BINDINGS: '64:0'"  
2125    
2126           "."  
2127    
2128    Schoenebeck            Expires September 12, 2019              [Page 38]
2129    
2130    Internet-Draft        LinuxSampler Control Protocol           March 2019
2131    
2132    
2133          "ALSA_SEQ_BINDINGS: '64:0'"
2134    
2135          "."
2136    
2137  6.3.12.  Getting information about specific MIDI port parameter  6.3.12.  Getting information about specific MIDI port parameter
2138    
# Line 2289  Internet-Draft        LinuxSampler Contr Line 2153  Internet-Draft        LinuxSampler Contr
2153        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
2154        answer line begins with the information category name followed by        answer line begins with the information category name followed by
2155        a colon and then a space character <SP> and finally the info        a colon and then a space character <SP> and finally the info
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 41]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2156        character string to that info category.  There is information        character string to that info category.  There is information
2157        which is always returned, independently of the given channel        which is always returned, independently of the given channel
2158        parameter and there is optional information which are only shown        parameter and there is optional information which are only shown
# Line 2321  Internet-Draft        LinuxSampler Contr Line 2177  Internet-Draft        LinuxSampler Contr
2177    
2178        MULTIPLICITY -        MULTIPLICITY -
2179    
2180    
2181    
2182    
2183    
2184    Schoenebeck            Expires September 12, 2019              [Page 39]
2185    
2186    Internet-Draft        LinuxSampler Control Protocol           March 2019
2187    
2188    
2189           either true or false, defines if this parameter allows only one           either true or false, defines if this parameter allows only one
2190           value or a list of values, where true means multiple values and           value or a list of values, where true means multiple values and
2191           false only a single value allowed (always returned)           false only a single value allowed (always returned)
# Line 2345  Internet-Draft        LinuxSampler Contr Line 2210  Internet-Draft        LinuxSampler Contr
2210    
2211           comma separated list of possible values for this parameter,           comma separated list of possible values for this parameter,
2212           character strings are encapsulated into apostrophes (optionally           character strings are encapsulated into apostrophes (optionally
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 42]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2213           returned, dependent to device and port parameter)           returned, dependent to device and port parameter)
2214    
2215     The mentioned fields above don't have to be in particular order.     The mentioned fields above don't have to be in particular order.
# Line 2363  Internet-Draft        LinuxSampler Contr Line 2220  Internet-Draft        LinuxSampler Contr
2220    
2221        S: "DESCRIPTION: bindings to other ALSA sequencer clients"        S: "DESCRIPTION: bindings to other ALSA sequencer clients"
2222    
2223           "TYPE: STRING"        "TYPE: STRING"
2224    
2225          "FIX: false"
2226    
2227          "MULTIPLICITY: true"
2228    
2229          "POSSIBILITIES: '64:0','68:0','68:1'"
2230    
2231          "."
2232    
2233    
2234    
2235    
2236    
          "FIX: false"  
2237    
          "MULTIPLICITY: true"  
2238    
          "POSSIBILITIES: '64:0','68:0','68:1'"  
2239    
2240           "."  Schoenebeck            Expires September 12, 2019              [Page 40]
2241    
2242    Internet-Draft        LinuxSampler Control Protocol           March 2019
2243    
2244    
2245  6.3.13.  Changing settings of MIDI input ports  6.3.13.  Changing settings of MIDI input ports
2246    
# Line 2400  Internet-Draft        LinuxSampler Contr Line 2269  Internet-Draft        LinuxSampler Contr
2269           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2270           code and warning message           code and warning message
2271    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 43]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2272        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
2273    
2274           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 2430  Internet-Draft        LinuxSampler Contr Line 2290  Internet-Draft        LinuxSampler Contr
2290     channels, associate a sampler channel with a sampler engine, load     channels, associate a sampler channel with a sampler engine, load
2291     instruments and connect sampler channels to MIDI and audio devices.     instruments and connect sampler channels to MIDI and audio devices.
2292    
2293    
2294    
2295    
2296    Schoenebeck            Expires September 12, 2019              [Page 41]
2297    
2298    Internet-Draft        LinuxSampler Control Protocol           March 2019
2299    
2300    
2301  6.4.1.  Loading an instrument  6.4.1.  Loading an instrument
2302    
2303     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
# Line 2457  Internet-Draft        LinuxSampler Contr Line 2325  Internet-Draft        LinuxSampler Contr
2325     (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
2326     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks     INSTRUMENT_STATUS field.  LOAD command will perform sanity checks
2327     such as making sure that the file could be read and it is of a proper     such as making sure that the file could be read and it is of a proper
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 44]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2328     format and SHOULD return ERR and SHOULD not launch the background     format and SHOULD return ERR and SHOULD not launch the background
2329     process should any errors be detected at that point.     process should any errors be detected at that point.
2330    
# Line 2487  Internet-Draft        LinuxSampler Contr Line 2347  Internet-Draft        LinuxSampler Contr
2347           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2348           error message           error message
2349    
2350    
2351    
2352    Schoenebeck            Expires September 12, 2019              [Page 42]
2353    
2354    Internet-Draft        LinuxSampler Control Protocol           March 2019
2355    
2356    
2357     Example (Unix):     Example (Unix):
2358    
2359        C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0        C: LOAD INSTRUMENT '/home/joe/gigs/cello.gig' 0 0
# Line 2513  Internet-Draft        LinuxSampler Contr Line 2380  Internet-Draft        LinuxSampler Contr
2380     be assigned to.  This command should be issued after adding a new     be assigned to.  This command should be issued after adding a new
2381     sampler channel and before any other control commands on the new     sampler channel and before any other control commands on the new
2382     sampler channel.  It can also be used to change the engine type of a     sampler channel.  It can also be used to change the engine type of a
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 45]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2383     sampler channel.  This command has (currently) no way to define or     sampler channel.  This command has (currently) no way to define or
2384     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
2385     given sampler channel or if an already existing instance of that     given sampler channel or if an already existing instance of that
# Line 2543  Internet-Draft        LinuxSampler Contr Line 2402  Internet-Draft        LinuxSampler Contr
2402           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
2403           error message           error message
2404    
2405    
2406    
2407    
2408    Schoenebeck            Expires September 12, 2019              [Page 43]
2409    
2410    Internet-Draft        LinuxSampler Control Protocol           March 2019
2411    
2412    
2413     Example:     Example:
2414    
2415    
# Line 2566  Internet-Draft        LinuxSampler Contr Line 2433  Internet-Draft        LinuxSampler Contr
2433    
2434        S: "12"        S: "12"
2435    
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 46]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2436  6.4.4.  Getting all created sampler channel list  6.4.4.  Getting all created sampler channel list
2437    
2438     The number of sampler channels can change on runtime.  To get the     The number of sampler channels can change on runtime.  To get the
# Line 2603  Internet-Draft        LinuxSampler Contr Line 2459  Internet-Draft        LinuxSampler Contr
2459    
2460        ADD CHANNEL        ADD CHANNEL
2461    
2462    
2463    
2464    Schoenebeck            Expires September 12, 2019              [Page 44]
2465    
2466    Internet-Draft        LinuxSampler Control Protocol           March 2019
2467    
2468    
2469     This will increment the sampler channel count by one and the new     This will increment the sampler channel count by one and the new
2470     sampler channel will be appended to the end of the sampler channel     sampler channel will be appended to the end of the sampler channel
2471     list.  The front-end should send the respective, related commands     list.  The front-end should send the respective, related commands
# Line 2624  Internet-Draft        LinuxSampler Contr Line 2487  Internet-Draft        LinuxSampler Contr
2487    
2488        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2489    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 47]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2490           in case a new channel was added successfully, but there are           in case a new channel was added successfully, but there are
2491           noteworthy issue(s) related, providing an appropriate warning           noteworthy issue(s) related, providing an appropriate warning
2492           code and warning message           code and warning message
# Line 2661  Internet-Draft        LinuxSampler Contr Line 2515  Internet-Draft        LinuxSampler Contr
2515    
2516        "OK" -        "OK" -
2517    
2518    
2519    
2520    Schoenebeck            Expires September 12, 2019              [Page 45]
2521    
2522    Internet-Draft        LinuxSampler Control Protocol           March 2019
2523    
2524    
2525           in case the given sampler channel could be removed           in case the given sampler channel could be removed
2526    
2527        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
# Line 2678  Internet-Draft        LinuxSampler Contr Line 2539  Internet-Draft        LinuxSampler Contr
2539    
2540    
2541    
   
   
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 48]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2542  6.4.7.  Getting amount of available engines  6.4.7.  Getting amount of available engines
2543    
2544     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
# Line 2721  Internet-Draft        LinuxSampler Contr Line 2571  Internet-Draft        LinuxSampler Contr
2571        can consist of lower and upper cases, digits and underlines ("_"        can consist of lower and upper cases, digits and underlines ("_"
2572        character).        character).
2573    
2574    
2575    
2576    Schoenebeck            Expires September 12, 2019              [Page 46]
2577    
2578    Internet-Draft        LinuxSampler Control Protocol           March 2019
2579    
2580    
2581     Example:     Example:
2582    
2583        C: "LIST AVAILABLE_ENGINES"        C: "LIST AVAILABLE_ENGINES"
# Line 2737  Internet-Draft        LinuxSampler Contr Line 2594  Internet-Draft        LinuxSampler Contr
2594     Where <engine-name> is an engine name as obtained by the "LIST     Where <engine-name> is an engine name as obtained by the "LIST
2595     AVAILABLE_ENGINES" (Section 6.4.8) command.     AVAILABLE_ENGINES" (Section 6.4.8) command.
2596    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 49]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2597     Possible Answers:     Possible Answers:
2598    
2599        LinuxSampler will answer by sending a <CRLF> separated list.  Each        LinuxSampler will answer by sending a <CRLF> separated list.  Each
# Line 2772  Internet-Draft        LinuxSampler Contr Line 2621  Internet-Draft        LinuxSampler Contr
2621    
2622        S: "DESCRIPTION: GigaSampler Format Engine"        S: "DESCRIPTION: GigaSampler Format Engine"
2623    
2624           "VERSION: 1.110"        "VERSION: 1.110"
2625    
2626           "."        "."
2627    
2628        C: "GET ENGINE INFO sf2"        C: "GET ENGINE INFO sf2"
2629    
       S: "DESCRIPTION: SoundFont Format Engine"  
   
          "VERSION: 1.4"  
2630    
          "."  
2631    
2632        C: "GET ENGINE INFO sfz"  Schoenebeck            Expires September 12, 2019              [Page 47]
2633    
2634    Internet-Draft        LinuxSampler Control Protocol           March 2019
2635    
       S: "DESCRIPTION: SFZ Format Engine"  
2636    
2637           "VERSION: 1.11"        S: "DESCRIPTION: SoundFont Format Engine"
2638    
2639           "."        "VERSION: 1.4"
2640    
2641          "."
2642    
2643          C: "GET ENGINE INFO sfz"
2644    
2645          S: "DESCRIPTION: SFZ Format Engine"
2646    
2647          "VERSION: 1.11"
2648    
2649  Schoenebeck             Expires January 16, 2016               [Page 50]        "."
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
2650    
2651  6.4.10.  Getting sampler channel information  6.4.10.  Getting sampler channel information
2652    
# Line 2835  Internet-Draft        LinuxSampler Contr Line 2682  Internet-Draft        LinuxSampler Contr
2682              signal, "-1" if there's no device connected to this sampler              signal, "-1" if there's no device connected to this sampler
2683              channel              channel
2684    
2685    
2686    
2687    
2688    Schoenebeck            Expires September 12, 2019              [Page 48]
2689    
2690    Internet-Draft        LinuxSampler Control Protocol           March 2019
2691    
2692    
2693           AUDIO_OUTPUT_CHANNELS -           AUDIO_OUTPUT_CHANNELS -
2694    
2695              number of output channels the sampler channel offers              number of output channels the sampler channel offers
# Line 2849  Internet-Draft        LinuxSampler Contr Line 2704  Internet-Draft        LinuxSampler Contr
2704              device and the engine's output channel 1 is routed to the              device and the engine's output channel 1 is routed to the
2705              channel 3 of the audio output device              channel 3 of the audio output device
2706    
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 51]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2707           INSTRUMENT_FILE -           INSTRUMENT_FILE -
2708    
2709              the file name of the loaded instrument, "NONE" if there's no              the file name of the loaded instrument, "NONE" if there's no
# Line 2892  Internet-Draft        LinuxSampler Contr Line 2739  Internet-Draft        LinuxSampler Contr
2739              commands, "-1" if there's no device connected to this              commands, "-1" if there's no device connected to this
2740              sampler channel              sampler channel
2741    
2742    
2743    
2744    Schoenebeck            Expires September 12, 2019              [Page 49]
2745    
2746    Internet-Draft        LinuxSampler Control Protocol           March 2019
2747    
2748    
2749              Should not be used anymore as of LSCP v1.6 and younger.              Should not be used anymore as of LSCP v1.6 and younger.
2750              This field is currently only preserved for backward              This field is currently only preserved for backward
2751              compatibility.              compatibility.
# Line 2904  Internet-Draft        LinuxSampler Contr Line 2758  Internet-Draft        LinuxSampler Contr
2758    
2759              DEPRECATED: THIS FIELD WILL DISAPPEAR!              DEPRECATED: THIS FIELD WILL DISAPPEAR!
2760    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 52]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2761              port number of the MIDI input device (in case a MIDI device              port number of the MIDI input device (in case a MIDI device
2762              was already assigned to the sampler channel)              was already assigned to the sampler channel)
2763    
# Line 2950  Internet-Draft        LinuxSampler Contr Line 2795  Internet-Draft        LinuxSampler Contr
2795    
2796           MIDI_INSTRUMENT_MAP -           MIDI_INSTRUMENT_MAP -
2797    
2798    
2799    
2800    Schoenebeck            Expires September 12, 2019              [Page 50]
2801    
2802    Internet-Draft        LinuxSampler Control Protocol           March 2019
2803    
2804    
2805              Determines to which MIDI instrument map this sampler channel              Determines to which MIDI instrument map this sampler channel
2806              is assigned to.  Read chapter "SET CHANNEL              is assigned to.  Read chapter "SET CHANNEL
2807              MIDI_INSTRUMENT_MAP" (Section 6.4.27) for a list of possible              MIDI_INSTRUMENT_MAP" (Section 6.4.27) for a list of possible
# Line 2959  Internet-Draft        LinuxSampler Contr Line 2811  Internet-Draft        LinuxSampler Contr
2811    
2812     Example:     Example:
2813    
2814          C: "GET CHANNEL INFO 34"
2815    
2816          S: "ENGINE_NAME: gig"
2817    
2818          "VOLUME: 1.0"
2819    
2820          "AUDIO_OUTPUT_DEVICE: 0"
2821    
2822          "AUDIO_OUTPUT_CHANNELS: 2"
2823    
2824  Schoenebeck             Expires January 16, 2016               [Page 53]        "AUDIO_OUTPUT_ROUTING: 0,1"
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
2825    
2826          "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"
2827    
2828        C: "GET CHANNEL INFO 34"        "INSTRUMENT_NR: 0"
2829    
2830        S: "ENGINE_NAME: gig"        "INSTRUMENT_NAME: Fazioli Piano"
2831    
2832           "VOLUME: 1.0"        "INSTRUMENT_STATUS: 100"
2833    
2834           "AUDIO_OUTPUT_DEVICE: 0"        "MIDI_INPUT_DEVICE: 0"
2835    
2836           "AUDIO_OUTPUT_CHANNELS: 2"        "MIDI_INPUT_PORT: 0"
2837    
2838           "AUDIO_OUTPUT_ROUTING: 0,1"        "MIDI_INPUT_CHANNEL: 5"
2839    
2840           "INSTRUMENT_FILE: /home/joe/FazioliPiano.gig"        "VOLUME: 1.0"
2841    
2842           "INSTRUMENT_NR: 0"        "MUTE: false"
2843    
2844           "INSTRUMENT_NAME: Fazioli Piano"        "SOLO: false"
2845    
2846           "INSTRUMENT_STATUS: 100"        "MIDI_INSTRUMENT_MAP: NONE"
2847    
2848          "."
2849    
          "MIDI_INPUT_DEVICE: 0"  
2850    
          "MIDI_INPUT_PORT: 0"  
2851    
          "MIDI_INPUT_CHANNEL: 5"  
2852    
          "VOLUME: 1.0"  
2853    
          "MUTE: false"  
2854    
          "SOLO: false"  
2855    
2856           "MIDI_INSTRUMENT_MAP: NONE"  Schoenebeck            Expires September 12, 2019              [Page 51]
2857    
2858    Internet-Draft        LinuxSampler Control Protocol           March 2019
2859    
          "."  
2860    
2861  6.4.11.  Current number of active voices  6.4.11.  Current number of active voices
2862    
# Line 3018  Internet-Draft        LinuxSampler Contr Line 2871  Internet-Draft        LinuxSampler Contr
2871    
2872     Possible Answers:     Possible Answers:
2873    
   
   
 Schoenebeck             Expires January 16, 2016               [Page 54]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2874        LinuxSampler will answer by returning the number of active voices        LinuxSampler will answer by returning the number of active voices
2875        on that channel.        on that channel.
2876    
# Line 3061  Internet-Draft        LinuxSampler Contr Line 2907  Internet-Draft        LinuxSampler Contr
2907    
2908        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>        GET CHANNEL BUFFER_FILL BYTES <sampler-channel>
2909    
2910    
2911    
2912    Schoenebeck            Expires September 12, 2019              [Page 52]
2913    
2914    Internet-Draft        LinuxSampler Control Protocol           March 2019
2915    
2916    
2917     to get the fill state in bytes or     to get the fill state in bytes or
2918    
2919        GET CHANNEL BUFFER_FILL PERCENTAGE <sampler-channel>        GET CHANNEL BUFFER_FILL PERCENTAGE <sampler-channel>
# Line 3072  Internet-Draft        LinuxSampler Contr Line 2925  Internet-Draft        LinuxSampler Contr
2925    
2926     Possible Answers:     Possible Answers:
2927    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 55]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
2928        LinuxSampler will either answer by returning a comma separated        LinuxSampler will either answer by returning a comma separated
2929        string with the fill state of all disk stream buffers on that        string with the fill state of all disk stream buffers on that
2930        channel or an empty line if there are no active disk streams or        channel or an empty line if there are no active disk streams or
# Line 3111  Internet-Draft        LinuxSampler Contr Line 2955  Internet-Draft        LinuxSampler Contr
2955     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
2956     channel by sending the following command:     channel by sending the following command:
2957    
2958        SET CHANNEL AUDIO_OUTPUT_DEVICE <sampler-channel>        SET CHANNEL AUDIO_OUTPUT_DEVICE <sampler-channel> <audio-device-
2959        <audio-device-id>        id>
2960    
2961     Where <sampler-channel> is the respective sampler channel number as     Where <sampler-channel> is the respective sampler channel number as
2962     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"     returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
2963     (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
2964     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"     the audio output device as given by the "CREATE AUDIO_OUTPUT_DEVICE"
    (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)  
    command.  
2965    
    Possible Answers:  
   
       "OK" -  
   
          on success  
2966    
2967    
2968    Schoenebeck            Expires September 12, 2019              [Page 53]
2969    
2970    Internet-Draft        LinuxSampler Control Protocol           March 2019
2971    
2972    
2973       (Section 6.2.5) or "LIST AUDIO_OUTPUT_DEVICES" (Section 6.2.8)
2974       command.
2975    
2976       Possible Answers:
2977    
2978  Schoenebeck             Expires January 16, 2016               [Page 56]        "OK" -
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
2979    
2980             on success
2981    
2982        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
2983    
# Line 3177  Internet-Draft        LinuxSampler Contr Line 3019  Internet-Draft        LinuxSampler Contr
3019           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3020           message           message
3021    
       "ERR:<error-code>:<error-message>" -  
   
          in case it failed, providing an appropriate error code and  
          error message  
   
    Examples:  
3022    
3023    
3024    Schoenebeck            Expires September 12, 2019              [Page 54]
3025    
3026    Internet-Draft        LinuxSampler Control Protocol           March 2019
3027    
3028    
3029          "ERR:<error-code>:<error-message>" -
3030    
3031  Schoenebeck             Expires January 16, 2016               [Page 57]           in case it failed, providing an appropriate error code and
3032             error message
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3033    
3034       Examples:
3035    
3036    
3037    
# Line 3234  Internet-Draft        LinuxSampler Contr Line 3074  Internet-Draft        LinuxSampler Contr
3074    
3075        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3076    
          in case it failed, providing an appropriate error code and  
          error message  
   
    Examples:  
   
3077    
3078    
3079    
3080    Schoenebeck            Expires September 12, 2019              [Page 55]
3081    
3082    Internet-Draft        LinuxSampler Control Protocol           March 2019
3083    
3084    
3085  Schoenebeck             Expires January 16, 2016               [Page 58]           in case it failed, providing an appropriate error code and
3086             error message
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3087    
3088       Examples:
3089    
3090    
3091    
# Line 3293  Internet-Draft        LinuxSampler Contr Line 3131  Internet-Draft        LinuxSampler Contr
3131    
3132        C: "ADD CHANNEL MIDI_INPUT 1 0"        C: "ADD CHANNEL MIDI_INPUT 1 0"
3133    
       S: "OK"  
   
       C: "ADD CHANNEL MIDI_INPUT 1 1 1"  
3134    
3135    
3136    Schoenebeck            Expires September 12, 2019              [Page 56]
3137    
3138    Internet-Draft        LinuxSampler Control Protocol           March 2019
3139    
3140    
3141  Schoenebeck             Expires January 16, 2016               [Page 59]        S: "OK"
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3142    
3143          C: "ADD CHANNEL MIDI_INPUT 1 1 1"
3144    
3145        S: "OK"        S: "OK"
3146    
# Line 3349  Internet-Draft        LinuxSampler Contr Line 3186  Internet-Draft        LinuxSampler Contr
3186           issue(s) related, providing an appropriate warning code and           issue(s) related, providing an appropriate warning code and
3187           warning message           warning message
3188    
       "ERR:<error-code>:<error-message>" -  
   
          in case it failed, providing an appropriate error code and  
          error message  
3189    
3190    
3191    
3192  Schoenebeck             Expires January 16, 2016               [Page 60]  Schoenebeck            Expires September 12, 2019              [Page 57]
3193    
3194  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3195    
3196    
3197          "ERR:<error-code>:<error-message>" -
3198    
3199             in case it failed, providing an appropriate error code and
3200             error message
3201    
3202     Examples:     Examples:
3203    
3204        C: "REMOVE CHANNEL MIDI_INPUT 0"        C: "REMOVE CHANNEL MIDI_INPUT 0"
# Line 3404  Internet-Draft        LinuxSampler Contr Line 3242  Internet-Draft        LinuxSampler Contr
3242    
3243        C: "LIST CHANNEL MIDI_INPUTS 0"        C: "LIST CHANNEL MIDI_INPUTS 0"
3244    
       S: "{0,0},{1,3},{2,0}"  
   
    Since:  
3245    
3246    
3247    
3248    Schoenebeck            Expires September 12, 2019              [Page 58]
3249    
3250    Internet-Draft        LinuxSampler Control Protocol           March 2019
3251    
3252    
3253  Schoenebeck             Expires January 16, 2016               [Page 61]        S: "{0,0},{1,3},{2,0}"
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3254    
3255       Since:
3256    
3257        Introduced with LSCP v1.6        Introduced with LSCP v1.6
3258    
# Line 3462  Internet-Draft        LinuxSampler Contr Line 3299  Internet-Draft        LinuxSampler Contr
3299    
3300    
3301    
    Deprecated:  
3302    
3303    
3304    Schoenebeck            Expires September 12, 2019              [Page 59]
   
   
 Schoenebeck             Expires January 16, 2016               [Page 62]  
3305    
3306  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3307    
3308    
3309       Deprecated:
3310    
3311        Should not be used anymore as of LSCP v1.6 and younger.  This        Should not be used anymore as of LSCP v1.6 and younger.  This
3312        command is currently only preserved for backward compatibility.        command is currently only preserved for backward compatibility.
3313    
# Line 3522  Internet-Draft        LinuxSampler Contr Line 3357  Internet-Draft        LinuxSampler Contr
3357    
3358    
3359    
3360    Schoenebeck            Expires September 12, 2019              [Page 60]
   
 Schoenebeck             Expires January 16, 2016               [Page 63]  
3361    
3362  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
   
   
3363    
3364    
3365     Deprecated:     Deprecated:
# Line 3576  Internet-Draft        LinuxSampler Contr Line 3407  Internet-Draft        LinuxSampler Contr
3407           related, providing an appropriate warning code and warning           related, providing an appropriate warning code and warning
3408           message           message
3409    
3410          "ERR:<error-code>:<error-message>" -
3411    
3412    
3413    
3414    
 Schoenebeck             Expires January 16, 2016               [Page 64]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3415    
3416    Schoenebeck            Expires September 12, 2019              [Page 61]
3417    
3418    Internet-Draft        LinuxSampler Control Protocol           March 2019
3419    
       "ERR:<error-code>:<error-message>" -  
3420    
3421           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
3422           error message           error message
# Line 3634  Internet-Draft        LinuxSampler Contr Line 3465  Internet-Draft        LinuxSampler Contr
3465    
3466     Examples:     Examples:
3467    
3468          C: "SET CHANNEL MIDI_INPUT_CHANNEL 0 0"
3469    
3470    
3471    
3472  Schoenebeck             Expires January 16, 2016               [Page 65]  Schoenebeck            Expires September 12, 2019              [Page 62]
3473    
3474  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
   
3475    
       C: "SET CHANNEL MIDI_INPUT_CHANNEL 0 0"  
3476    
3477        S: "OK"        S: "OK"
3478    
# Line 3687  Internet-Draft        LinuxSampler Contr Line 3518  Internet-Draft        LinuxSampler Contr
3518     The front-end can mute/unmute a specific sampler channel by sending     The front-end can mute/unmute a specific sampler channel by sending
3519     the following command:     the following command:
3520    
3521          SET CHANNEL MUTE <sampler-channel> <mute>
3522    
3523       Where <sampler-channel> is the respective sampler channel number as
3524       returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"
3525    
3526    
3527    
3528    Schoenebeck            Expires September 12, 2019              [Page 63]
 Schoenebeck             Expires January 16, 2016               [Page 66]  
3529    
3530  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3531    
3532    
       SET CHANNEL MUTE <sampler-channel> <mute>  
   
    Where <sampler-channel> is the respective sampler channel number as  
    returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS"  
3533     (Section 6.4.4) command and <mute> should be replaced either by "1"     (Section 6.4.4) command and <mute> should be replaced either by "1"
3534     to mute the channel or "0" to unmute the channel.     to mute the channel or "0" to unmute the channel.
3535    
# Line 3743  Internet-Draft        LinuxSampler Contr Line 3572  Internet-Draft        LinuxSampler Contr
3572    
3573           on success           on success
3574    
3575          "WRN:<warning-code>:<warning-message>" -
3576    
3577             if the channel was soloed/unsoloed, but there are noteworthy
3578             issue(s) related, providing an appropriate warning code and
3579             warning message
3580    
3581    
3582    
3583    
3584  Schoenebeck             Expires January 16, 2016               [Page 67]  Schoenebeck            Expires September 12, 2019              [Page 64]
3585    
3586  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3587    
3588    
       "WRN:<warning-code>:<warning-message>" -  
   
          if the channel was soloed/unsoloed, but there are noteworthy  
          issue(s) related, providing an appropriate warning code and  
          warning message  
   
3589        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3590    
3591           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 3802  Internet-Draft        LinuxSampler Contr Line 3629  Internet-Draft        LinuxSampler Contr
3629     Read chapter "MIDI Instrument Mapping" (Section 6.7) for details     Read chapter "MIDI Instrument Mapping" (Section 6.7) for details
3630     regarding MIDI instrument mapping.     regarding MIDI instrument mapping.
3631    
3632       Possible Answers:
3633    
3634          "OK" -
3635    
3636  Schoenebeck             Expires January 16, 2016               [Page 68]           on success
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3637    
3638    
    Possible Answers:  
3639    
3640        "OK" -  Schoenebeck            Expires September 12, 2019              [Page 65]
3641    
3642    Internet-Draft        LinuxSampler Control Protocol           March 2019
3643    
          on success  
3644    
3645        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3646    
# Line 3842  Internet-Draft        LinuxSampler Contr Line 3669  Internet-Draft        LinuxSampler Contr
3669     described in chapter "Character Set and Escape Sequences     described in chapter "Character Set and Escape Sequences
3670     (Section 7.1)".     (Section 7.1)".
3671    
3672     By default, that is as initial routing, the effect send's audio     Note: there are two possible approaches to apply audio effects with
3673     channels are automatically routed to the last audio channels of the     FX sends: you can either use a) internal effects or b) external
3674     sampler channel's audio output device, that way you can i.e. first     effects.  By default, that is as initial routing, effect sends are
3675     increase the amount of audio channels on the audio output device for     automatically routed directly to the sampler channel's audio output
3676     having dedicated effect send output channels and when "CREATE     device and the effect send's audio channels are by default
3677     FX_SEND" is called, those channels will automatically be picked.  You     automatically routed to the last audio channels of that audio output
3678     can alter the destination channels however with "SET FX_SEND     device (for the purpose of applying effects externally that is, e.g.
3679     AUDIO_OUTPUT_CHANNEL" (Section 6.4.34).     by using another application), that way you can i.e. first increase
3680       the amount of audio channels on the audio output device for having
3681       dedicated effect send output channels and when "CREATE FX_SEND" is
3682       called, those channels will automatically be picked.  You can alter
3683       the destination channels however with "SET FX_SEND
3684       AUDIO_OUTPUT_CHANNEL" (Section 6.4.34).  If your intention is rather
3685       to use internal effects instead of external effects, then you first
3686       need to load those internal effects (Section 6.11) and then assign
3687       the FX sends to the desired internal effect by sending "SET FX_SEND
3688       EFFECT" (Section 6.4.35).
3689    
3690     Note: Create effect sends on a sampler channel only when needed,     Note: Create effect sends on a sampler channel only when needed,
3691     because having effect sends on a sampler channel will decrease     because having effect sends on a sampler channel will decrease
3692     runtime performance, because for implementing channel effect sends,     runtime performance, because for implementing channel effect sends,
    separate (sampler channel local) audio buffers are needed to render  
    and mix the voices and route the audio signal afterwards to the  
    master outputs and effect send outputs (along with their respective  
3693    
3694    
3695    
3696  Schoenebeck             Expires January 16, 2016               [Page 69]  Schoenebeck            Expires September 12, 2019              [Page 66]
3697    
3698  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3699    
3700    
3701       separate (sampler channel local) audio buffers are needed to render
3702       and mix the voices and route the audio signal afterwards to the
3703       master outputs and effect send outputs (along with their respective
3704     effect send levels).  A sampler channel without effect sends however     effect send levels).  A sampler channel without effect sends however
3705     can mix its voices directly into the audio output devices's audio     can mix its voices directly into the audio output devices's audio
3706     buffers and is thus faster.     buffers and is thus faster.
# Line 3879  Internet-Draft        LinuxSampler Contr Line 3715  Internet-Draft        LinuxSampler Contr
3715    
3716        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3717    
3718           when a new effect send could not be added, i.e. due to invalid           when a new effect send could not be added, i.e.  due to invalid
3719           parameters           parameters
3720    
3721     Examples:     Examples:
# Line 3910  Internet-Draft        LinuxSampler Contr Line 3746  Internet-Draft        LinuxSampler Contr
3746    
3747        "OK" -        "OK" -
3748    
          on success  
   
   
3749    
3750    
3751    
3752  Schoenebeck             Expires January 16, 2016               [Page 70]  Schoenebeck            Expires September 12, 2019              [Page 67]
3753    
3754  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3755    
3756    
3757             on success
3758    
3759        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
3760    
3761           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
# Line 3970  Internet-Draft        LinuxSampler Contr Line 3805  Internet-Draft        LinuxSampler Contr
3805    
3806    
3807    
3808    Schoenebeck            Expires September 12, 2019              [Page 68]
   
 Schoenebeck             Expires January 16, 2016               [Page 71]  
3809    
3810  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3811    
3812    
3813        The sampler will answer by returning a comma separated list with        The sampler will answer by returning a comma separated list with
# Line 4023  Internet-Draft        LinuxSampler Contr Line 3856  Internet-Draft        LinuxSampler Contr
3856              a value between 0 and 127 reflecting the MIDI controller              a value between 0 and 127 reflecting the MIDI controller
3857              which is able to modify the effect send's send level              which is able to modify the effect send's send level
3858    
3859             LEVEL -
3860    
3861    
3862    
3863    
3864    Schoenebeck            Expires September 12, 2019              [Page 69]
 Schoenebeck             Expires January 16, 2016               [Page 72]  
3865    
3866  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
3867    
3868    
          LEVEL -  
   
3869              optionally dotted number reflecting the effect send's              optionally dotted number reflecting the effect send's
3870              current send level (where a value < 1.0 means attenuation              current send level (where a value < 1.0 means attenuation
3871              and a value > 1.0 means amplification)              and a value > 1.0 means amplification)
# Line 4067  Internet-Draft        LinuxSampler Contr Line 3898  Internet-Draft        LinuxSampler Contr
3898    
3899        S: "NAME: Reverb Send"        S: "NAME: Reverb Send"
3900    
3901           "MIDI_CONTROLLER: 91"        "MIDI_CONTROLLER: 91"
3902    
3903           "LEVEL: 0.3"        "LEVEL: 0.3"
3904    
3905           "AUDIO_OUTPUT_ROUTING: 2,3"        "AUDIO_OUTPUT_ROUTING: 2,3"
3906    
3907           "EFFECT: NONE"        "EFFECT: NONE"
3908    
3909           "."        "."
3910    
3911        C: "GET FX_SEND INFO 0 1"        C: "GET FX_SEND INFO 0 1"
3912    
3913        S: "NAME: Delay Send (Internal)"        S: "NAME: Delay Send (Internal)"
3914    
3915          "MIDI_CONTROLLER: 93"
3916    
3917    
3918    
 Schoenebeck             Expires January 16, 2016               [Page 73]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
3919    
3920    Schoenebeck            Expires September 12, 2019              [Page 70]
3921    
3922    Internet-Draft        LinuxSampler Control Protocol           March 2019
3923    
          "MIDI_CONTROLLER: 93"  
3924    
3925           "LEVEL: 0.51"        "LEVEL: 0.51"
3926    
3927           "AUDIO_OUTPUT_ROUTING: 1,2"        "AUDIO_OUTPUT_ROUTING: 1,2"
3928    
3929           "EFFECT: 2,0"        "EFFECT: 2,0"
3930    
3931           "."        "."
3932    
3933  6.4.33.  Changing effect send's name  6.4.33.  Changing effect send's name
3934    
# Line 4133  Internet-Draft        LinuxSampler Contr Line 3964  Internet-Draft        LinuxSampler Contr
3964    
3965        S: "OK"        S: "OK"
3966    
3967    6.4.34.  Altering effect send's audio routing
3968    
3969       The front-end can alter the destination of an effect send's audio
3970       channel on a specific sampler channel by sending the following
3971       command:
3972    
3973    
3974    
3975    
3976    Schoenebeck            Expires September 12, 2019              [Page 71]
   
 Schoenebeck             Expires January 16, 2016               [Page 74]  
3977    
3978  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
   
   
 6.4.34.  Altering effect send's audio routing  
3979    
    The front-end can alter the destination of an effect send's audio  
    channel on a specific sampler channel by sending the following  
    command:  
3980    
3981        SET FX_SEND AUDIO_OUTPUT_CHANNEL <sampler-chan> <fx-send-id>        SET FX_SEND AUDIO_OUTPUT_CHANNEL <sampler-chan> <fx-send-id>
3982        <audio-src> <audio-dst>        <audio-src> <audio-dst>
# Line 4160  Internet-Draft        LinuxSampler Contr Line 3987  Internet-Draft        LinuxSampler Contr
3987     entity as returned by the "CREATE FX_SEND" (Section 6.4.28) or "LIST     entity as returned by the "CREATE FX_SEND" (Section 6.4.28) or "LIST
3988     FX_SENDS" (Section 6.4.31) command, <audio-src> is the numerical ID     FX_SENDS" (Section 6.4.31) command, <audio-src> is the numerical ID
3989     of the effect send's audio channel which should be rerouted and     of the effect send's audio channel which should be rerouted and
3990     <audio-dst> is the numerical ID of the audio channel of the selected     <audio-dst> is the numerical ID of either a) the audio output channel
3991     audio output device where <audio-src> should be routed to.  If an     of the sampler channel's audio output device (i.e. if external effect
3992     internal send effect is assigned to the effect send, then this     shall be applied) or b) of the audio input channel of an internal
3993     setting defines the audio channel routing to that effect instance     effect assigned to the FX send where <audio-src> should be routed to.
    respectively.  
3994    
3995     Note that effect sends can only route audio to the same audio output     Note that effect sends can only route audio to the same audio output
3996     device as assigned to the effect send's sampler channel.  Also note     device as assigned to the effect send's sampler channel.  Also note
# Line 4192  Internet-Draft        LinuxSampler Contr Line 4018  Internet-Draft        LinuxSampler Contr
4018    
4019        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
4020    
   
   
   
   
 Schoenebeck             Expires January 16, 2016               [Page 75]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
4021           in case it failed, providing an appropriate error code and           in case it failed, providing an appropriate error code and
4022           error message           error message
4023    
# Line 4210  Internet-Draft        LinuxSampler Contr Line 4027  Internet-Draft        LinuxSampler Contr
4027    
4028        S: "OK"        S: "OK"
4029    
4030    
4031    
4032    Schoenebeck            Expires September 12, 2019              [Page 72]
4033    
4034    Internet-Draft        LinuxSampler Control Protocol           March 2019
4035    
4036    
4037  6.4.35.  Assigning destination effect to an effect send  6.4.35.  Assigning destination effect to an effect send
4038    
4039     The front-end can (re-)assign a destination effect to an effect send     The front-end can (re-)assign an internal destination effect to an
4040     by sending the following command:     effect send by sending the following command:
4041    
4042        SET FX_SEND EFFECT <sampler-chan> <fx-send-id> <effect-chain>        SET FX_SEND EFFECT <sampler-chan> <fx-send-id> <effect-chain>
4043        <chain-pos>        <chain-pos>
# Line 4229  Internet-Draft        LinuxSampler Contr Line 4053  Internet-Draft        LinuxSampler Contr
4053     chain position in the effect chain which hosts the actual destination     chain position in the effect chain which hosts the actual destination
4054     effect.     effect.
4055    
4056       Note: This command MUST NOT be used if you want to apply audio
4057       effects externally!  By default FX sends are routed directly to the
4058       audio output device for that purpose.  You can also revert this
4059       command later on by sending "REMOVE FX_SEND EFFECT" (Section 6.4.36),
4060       which will cause the FX send to be routed directly to the sampler
4061       channel's audio output device instead (i.e. for using external
4062       effects instead of internal effects).
4063    
4064     Possible Answers:     Possible Answers:
4065    
4066        "OK" -        "OK" -
# Line 4252  Internet-Draft        LinuxSampler Contr Line 4084  Internet-Draft        LinuxSampler Contr
4084    
4085    
4086    
4087  Schoenebeck             Expires January 16, 2016               [Page 76]  
4088    Schoenebeck            Expires September 12, 2019              [Page 73]
4089    
4090  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4091    
4092    
4093  6.4.36.  Removing destination effect from an effect send  6.4.36.  Removing destination effect from an effect send
# Line 4308  Internet-Draft        LinuxSampler Contr Line 4141  Internet-Draft        LinuxSampler Contr
4141    
4142    
4143    
4144  Schoenebeck             Expires January 16, 2016               [Page 77]  Schoenebeck            Expires September 12, 2019              [Page 74]
4145    
4146  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4147    
4148    
4149     controller which shall be able to modify the effect send's send     controller which shall be able to modify the effect send's send
# Line 4364  Internet-Draft        LinuxSampler Contr Line 4197  Internet-Draft        LinuxSampler Contr
4197    
4198    
4199    
4200  Schoenebeck             Expires January 16, 2016               [Page 78]  Schoenebeck            Expires September 12, 2019              [Page 75]
4201    
4202  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4203    
4204    
4205        "WRN:<warning-code>:<warning-message>" -        "WRN:<warning-code>:<warning-message>" -
# Line 4420  Internet-Draft        LinuxSampler Contr Line 4253  Internet-Draft        LinuxSampler Contr
4253    
4254    
4255    
4256  Schoenebeck             Expires January 16, 2016               [Page 79]  Schoenebeck            Expires September 12, 2019              [Page 76]
4257    
4258  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4259    
4260    
4261     CAUTION: This command is provided for implementations of virtual MIDI     CAUTION: This command is provided for implementations of virtual MIDI
# Line 4476  Internet-Draft        LinuxSampler Contr Line 4309  Internet-Draft        LinuxSampler Contr
4309    
4310    
4311    
4312  Schoenebeck             Expires January 16, 2016               [Page 80]  Schoenebeck            Expires September 12, 2019              [Page 77]
4313    
4314  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4315    
4316    
4317     Examples:     Examples:
# Line 4528  Internet-Draft        LinuxSampler Contr Line 4361  Internet-Draft        LinuxSampler Contr
4361    
4362        UNSUBSCRIBE <event-id>        UNSUBSCRIBE <event-id>
4363    
    Where <event-id> will be replaced by the respective event that client  
4364    
4365    
4366    
4367  Schoenebeck             Expires January 16, 2016               [Page 81]  
4368    Schoenebeck            Expires September 12, 2019              [Page 78]
4369    
4370  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4371    
4372    
4373       Where <event-id> will be replaced by the respective event that client
4374     doesn't want to receive anymore.     doesn't want to receive anymore.
4375    
4376     Possible Answers:     Possible Answers:
# Line 4584  Internet-Draft        LinuxSampler Contr Line 4418  Internet-Draft        LinuxSampler Contr
4418    
4419           on syntax error, e.g. non boolean value           on syntax error, e.g. non boolean value
4420    
    Examples:  
4421    
4422    
4423    
4424  Schoenebeck             Expires January 16, 2016               [Page 82]  Schoenebeck            Expires September 12, 2019              [Page 79]
4425    
4426  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4427    
4428    
4429       Examples:
4430    
4431    
4432    
4433  6.5.4.  Close client connection  6.5.4.  Close client connection
# Line 4640  Internet-Draft        LinuxSampler Contr Line 4475  Internet-Draft        LinuxSampler Contr
4475    
4476        GET TOTAL_STREAM_COUNT        GET TOTAL_STREAM_COUNT
4477    
    Possible Answers:  
   
4478    
4479    
4480  Schoenebeck             Expires January 16, 2016               [Page 83]  Schoenebeck            Expires September 12, 2019              [Page 80]
4481    
4482  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4483    
4484    
4485       Possible Answers:
4486    
4487        LinuxSampler will answer by returning the number of all active        LinuxSampler will answer by returning the number of all active
4488        disk streams on the sampler.        disk streams on the sampler.
# Line 4669  Internet-Draft        LinuxSampler Contr Line 4504  Internet-Draft        LinuxSampler Contr
4504    
4505    
4506    
4507  6.6.5.  General sampler informations  6.6.5.  General sampler information
4508    
4509     The client can ask for general informations about the LinuxSampler     The client can ask for general information about the LinuxSampler
4510     instance by sending the following command:     instance by sending the following command:
4511    
4512        GET SERVER INFO        GET SERVER INFO
# Line 4698  Internet-Draft        LinuxSampler Contr Line 4533  Internet-Draft        LinuxSampler Contr
4533    
4534    
4535    
4536    Schoenebeck            Expires September 12, 2019              [Page 81]
   
 Schoenebeck             Expires January 16, 2016               [Page 84]  
4537    
4538  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4539    
4540    
4541           PROTOCOL_VERSION -           PROTOCOL_VERSION -
# Line 4725  Internet-Draft        LinuxSampler Contr Line 4558  Internet-Draft        LinuxSampler Contr
4558        S: "DESCRIPTION: LinuxSampler - modular, streaming capable        S: "DESCRIPTION: LinuxSampler - modular, streaming capable
4559        sampler"        sampler"
4560    
4561           "VERSION: 1.0.0.svn23"        "VERSION: 1.0.0.svn23"
4562    
4563           "PROTOCOL_VERSION: 1.5"        "PROTOCOL_VERSION: 1.5"
4564    
4565           "INSTRUMENTS_DB_SUPPORT: no"        "INSTRUMENTS_DB_SUPPORT: no"
4566    
4567           "."        "."
4568    
4569  6.6.6.  Getting global volume attenuation  6.6.6.  Getting global volume attenuation
4570    
# Line 4756  Internet-Draft        LinuxSampler Contr Line 4589  Internet-Draft        LinuxSampler Contr
4589    
4590    
4591    
4592  Schoenebeck             Expires January 16, 2016               [Page 85]  Schoenebeck            Expires September 12, 2019              [Page 82]
4593    
4594  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4595    
4596    
4597  6.6.7.  Setting global volume attenuation  6.6.7.  Setting global volume attenuation
# Line 4812  Internet-Draft        LinuxSampler Contr Line 4645  Internet-Draft        LinuxSampler Contr
4645    
4646    
4647    
4648  Schoenebeck             Expires January 16, 2016               [Page 86]  Schoenebeck            Expires September 12, 2019              [Page 83]
4649    
4650  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4651    
4652    
4653  6.6.9.  Setting global voice limit  6.6.9.  Setting global voice limit
# Line 4868  Internet-Draft        LinuxSampler Contr Line 4701  Internet-Draft        LinuxSampler Contr
4701    
4702    
4703    
4704  Schoenebeck             Expires January 16, 2016               [Page 87]  Schoenebeck            Expires September 12, 2019              [Page 84]
4705    
4706  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4707    
4708    
4709     The disk stream limit setting defines how many disk streams should     The disk stream limit setting defines how many disk streams should
# Line 4920  Internet-Draft        LinuxSampler Contr Line 4753  Internet-Draft        LinuxSampler Contr
4753     The MIDI protocol provides a way to switch between instruments by     The MIDI protocol provides a way to switch between instruments by
4754     sending so called MIDI bank select and MIDI program change messages     sending so called MIDI bank select and MIDI program change messages
4755     which are essentially just numbers.  The following commands allow to     which are essentially just numbers.  The following commands allow to
    actually map arbitrary MIDI bank select / program change numbers with  
4756    
4757    
4758    
4759  Schoenebeck             Expires January 16, 2016               [Page 88]  
4760    Schoenebeck            Expires September 12, 2019              [Page 85]
4761    
4762  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4763    
4764    
4765       actually map arbitrary MIDI bank select / program change numbers with
4766     real instruments.     real instruments.
4767    
4768     The sampler allows to manage an arbitrary amount of MIDI instrument     The sampler allows to manage an arbitrary amount of MIDI instrument
# Line 4975  Internet-Draft        LinuxSampler Contr Line 4809  Internet-Draft        LinuxSampler Contr
4809    
4810        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
4811    
          when a new map could not be created, which might never occur in  
          practice  
4812    
4813    
4814    
4815  Schoenebeck             Expires January 16, 2016               [Page 89]  
4816    Schoenebeck            Expires September 12, 2019              [Page 86]
4817    
4818  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4819    
4820    
4821             when a new map could not be created, which might never occur in
4822             practice
4823    
4824     Examples:     Examples:
4825    
# Line 5030  Internet-Draft        LinuxSampler Contr Line 4866  Internet-Draft        LinuxSampler Contr
4866    
4867        S: "OK"        S: "OK"
4868    
       C: "REMOVE MIDI_INSTRUMENT_MAP ALL"  
   
4869    
4870    
4871    
4872    Schoenebeck            Expires September 12, 2019              [Page 87]
 Schoenebeck             Expires January 16, 2016               [Page 90]  
4873    
4874  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4875    
4876    
4877          C: "REMOVE MIDI_INSTRUMENT_MAP ALL"
4878    
4879        S: "OK"        S: "OK"
4880    
# Line 5087  Internet-Draft        LinuxSampler Contr Line 4922  Internet-Draft        LinuxSampler Contr
4922    
4923        GET MIDI_INSTRUMENT_MAP INFO <map>        GET MIDI_INSTRUMENT_MAP INFO <map>
4924    
    Where <map> is the numerical ID of the map the front-end is  
    interested in as returned by the "LIST MIDI_INSTRUMENT_MAPS"  
4925    
4926    
4927    
4928  Schoenebeck             Expires January 16, 2016               [Page 91]  Schoenebeck            Expires September 12, 2019              [Page 88]
4929    
4930  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4931    
4932    
4933       Where <map> is the numerical ID of the map the front-end is
4934       interested in as returned by the "LIST MIDI_INSTRUMENT_MAPS"
4935     (Section 6.7.4) command.     (Section 6.7.4) command.
4936    
4937     Possible Answers:     Possible Answers:
# Line 5128  Internet-Draft        LinuxSampler Contr Line 4963  Internet-Draft        LinuxSampler Contr
4963    
4964        S: "NAME: Standard Map"        S: "NAME: Standard Map"
4965    
4966           "DEFAULT: true"        "DEFAULT: true"
4967    
4968           "."        "."
4969    
4970  6.7.6.  Renaming a MIDI instrument map  6.7.6.  Renaming a MIDI instrument map
4971    
# Line 5142  Internet-Draft        LinuxSampler Contr Line 4977  Internet-Draft        LinuxSampler Contr
4977     Where <map> is the numerical ID of the map and <name> the new custom     Where <map> is the numerical ID of the map and <name> the new custom
4978     name of the map, which does not have to be unique (name MUST be     name of the map, which does not have to be unique (name MUST be
4979     encapsulated into apostrophes and supports escape sequences as     encapsulated into apostrophes and supports escape sequences as
    described in chapter "Character Set and Escape Sequences  
    (Section 7.1)").  
4980    
4981    
4982    
4983    
4984  Schoenebeck             Expires January 16, 2016               [Page 92]  Schoenebeck            Expires September 12, 2019              [Page 89]
4985    
4986  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
4987    
4988    
4989       described in chapter "Character Set and Escape Sequences
4990       (Section 7.1)").
4991    
4992     Possible Answers:     Possible Answers:
4993    
4994        "OK" -        "OK" -
# Line 5199  Internet-Draft        LinuxSampler Contr Line 5035  Internet-Draft        LinuxSampler Contr
5035    
5036        "ON_DEMAND" -        "ON_DEMAND" -
5037    
          The instrument will be loaded when needed, that is when  
          demanded by at least one sampler channel.  It will immediately  
   
5038    
5039    
5040  Schoenebeck             Expires January 16, 2016               [Page 93]  Schoenebeck            Expires September 12, 2019              [Page 90]
5041    
5042  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5043    
5044    
5045             The instrument will be loaded when needed, that is when
5046             demanded by at least one sampler channel.  It will immediately
5047           be freed from memory when not needed by any sampler channel           be freed from memory when not needed by any sampler channel
5048           anymore.           anymore.
5049    
# Line 5255  Internet-Draft        LinuxSampler Contr Line 5090  Internet-Draft        LinuxSampler Contr
5090     this, in case the frontend shows the load modes of entries, the     this, in case the frontend shows the load modes of entries, the
5091     frontend should retrieve the actual mode by i.e. sending "GET     frontend should retrieve the actual mode by i.e. sending "GET
5092     MIDI_INSTRUMENT INFO" (Section 6.7.11) command(s).  Finally the     MIDI_INSTRUMENT INFO" (Section 6.7.11) command(s).  Finally the
    OPTIONAL <name> argument allows to set a custom name (encapsulated  
    into apostrophes, supporting escape sequences as described in chapter  
5093    
5094    
5095    
5096  Schoenebeck             Expires January 16, 2016               [Page 94]  Schoenebeck            Expires September 12, 2019              [Page 91]
5097    
5098  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5099    
5100    
5101       OPTIONAL <name> argument allows to set a custom name (encapsulated
5102       into apostrophes, supporting escape sequences as described in chapter
5103     "Character Set and Escape Sequences (Section 7.1)") for the mapping     "Character Set and Escape Sequences (Section 7.1)") for the mapping
5104     entry, useful for frontends for displaying an appropriate name for     entry, useful for frontends for displaying an appropriate name for
5105     mapped instruments (using "GET MIDI_INSTRUMENT INFO"     mapped instruments (using "GET MIDI_INSTRUMENT INFO"
# Line 5311  Internet-Draft        LinuxSampler Contr Line 5146  Internet-Draft        LinuxSampler Contr
5146        C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0        C: "MAP MIDI_INSTRUMENT 0 0 0 gig '/usr/share/piano.gig' 0 1.0
5147        'Normal Piano'"        'Normal Piano'"
5148    
       S: "OK"  
   
5149    
5150    
5151    
5152  Schoenebeck             Expires January 16, 2016               [Page 95]  Schoenebeck            Expires September 12, 2019              [Page 92]
5153    
5154  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5155    
5156    
5157          S: "OK"
5158    
5159        C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25        C: "MAP MIDI_INSTRUMENT 0 1 0 gig '/usr/share/piano.gig' 0 0.25
5160        'Silent Piano'"        'Silent Piano'"
# Line 5367  Internet-Draft        LinuxSampler Contr Line 5202  Internet-Draft        LinuxSampler Contr
5202    
5203     Where <map> is the numeric ID of the MIDI instrument map.     Where <map> is the numeric ID of the MIDI instrument map.
5204    
    The front-end can query a list of all currently existing entries of  
    all MIDI instrument maps by sending the following command:  
5205    
5206    
5207    
5208  Schoenebeck             Expires January 16, 2016               [Page 96]  Schoenebeck            Expires September 12, 2019              [Page 93]
5209    
5210  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5211    
5212    
5213       The front-end can query a list of all currently existing entries of
5214       all MIDI instrument maps by sending the following command:
5215    
5216        LIST MIDI_INSTRUMENTS ALL        LIST MIDI_INSTRUMENTS ALL
5217    
5218     Possible Answers:     Possible Answers:
# Line 5387  Internet-Draft        LinuxSampler Contr Line 5223  Internet-Draft        LinuxSampler Contr
5223        single line.  Each triple just reflects the key of the respective        single line.  Each triple just reflects the key of the respective
5224        map entry, thus subsequent "GET MIDI_INSTRUMENT INFO"        map entry, thus subsequent "GET MIDI_INSTRUMENT INFO"
5225        (Section 6.7.11) command(s) are necessary to retrieve detailed        (Section 6.7.11) command(s) are necessary to retrieve detailed
5226        informations about each entry.        information about each entry.
5227    
5228     Example:     Example:
5229    
# Line 5425  Internet-Draft        LinuxSampler Contr Line 5261  Internet-Draft        LinuxSampler Contr
5261    
5262    
5263    
5264    Schoenebeck            Expires September 12, 2019              [Page 94]
   
   
 Schoenebeck             Expires January 16, 2016               [Page 97]  
5265    
5266  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5267    
5268    
5269  6.7.11.  Get current settings of MIDI instrument map entry  6.7.11.  Get current settings of MIDI instrument map entry
# Line 5460  Internet-Draft        LinuxSampler Contr Line 5293  Internet-Draft        LinuxSampler Contr
5293           name shall be used by frontends for displaying a name for this           name shall be used by frontends for displaying a name for this
5294           mapped instrument.  It can be set and changed with the "MAP           mapped instrument.  It can be set and changed with the "MAP
5295           MIDI_INSTRUMENT" (Section 6.7.7) command and does not have to           MIDI_INSTRUMENT" (Section 6.7.7) command and does not have to
5296           be unique. (note that this character string may contain escape           be unique.  (note that this character string may contain escape
5297           sequences (Section 7.1))           sequences (Section 7.1))
5298    
5299        "ENGINE_NAME" -        "ENGINE_NAME" -
# Line 5480  Internet-Draft        LinuxSampler Contr Line 5313  Internet-Draft        LinuxSampler Contr
5313    
5314           Name of the loaded instrument as reflected by its file.  In           Name of the loaded instrument as reflected by its file.  In
5315           contrast to the "NAME" field, the "INSTRUMENT_NAME" field           contrast to the "NAME" field, the "INSTRUMENT_NAME" field
          cannot be changed (note that this character string may contain  
5316    
5317    
5318    
5319  Schoenebeck             Expires January 16, 2016               [Page 98]  
5320    Schoenebeck            Expires September 12, 2019              [Page 95]
5321    
5322  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5323    
5324    
5325             cannot be changed (note that this character string may contain
5326           escape sequences (Section 7.1)).           escape sequences (Section 7.1)).
5327    
5328        "LOAD_MODE" -        "LOAD_MODE" -
# Line 5510  Internet-Draft        LinuxSampler Contr Line 5344  Internet-Draft        LinuxSampler Contr
5344    
5345        S: "NAME: Drums for Foo Song"        S: "NAME: Drums for Foo Song"
5346    
5347           "ENGINE_NAME: GigEngine"        "ENGINE_NAME: GigEngine"
5348    
5349           "INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"        "INSTRUMENT_FILE: /usr/share/joesdrumkit.gig"
5350    
5351           "INSTRUMENT_NR: 0"        "INSTRUMENT_NR: 0"
5352    
5353           "INSTRUMENT_NAME: Joe's Drumkit"        "INSTRUMENT_NAME: Joe's Drumkit"
5354    
5355           "LOAD_MODE: PERSISTENT"        "LOAD_MODE: PERSISTENT"
5356    
5357           "VOLUME: 1.0"        "VOLUME: 1.0"
5358    
5359           "."        "."
5360    
5361  6.7.12.  Clear MIDI instrument map  6.7.12.  Clear MIDI instrument map
5362    
# Line 5539  Internet-Draft        LinuxSampler Contr Line 5373  Internet-Draft        LinuxSampler Contr
5373    
5374    
5375    
5376    Schoenebeck            Expires September 12, 2019              [Page 96]
 Schoenebeck             Expires January 16, 2016               [Page 99]  
5377    
5378  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5379    
5380    
5381        CLEAR MIDI_INSTRUMENTS ALL        CLEAR MIDI_INSTRUMENTS ALL
# Line 5596  Internet-Draft        LinuxSampler Contr Line 5429  Internet-Draft        LinuxSampler Contr
5429    
5430    
5431    
5432  Schoenebeck             Expires January 16, 2016              [Page 100]  Schoenebeck            Expires September 12, 2019              [Page 97]
5433    
5434  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5435    
5436    
5437        "OK" -        "OK" -
# Line 5652  Internet-Draft        LinuxSampler Contr Line 5485  Internet-Draft        LinuxSampler Contr
5485    
5486    
5487    
5488  Schoenebeck             Expires January 16, 2016              [Page 101]  Schoenebeck            Expires September 12, 2019              [Page 98]
5489    
5490  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5491    
5492    
5493  6.8.3.  Getting amount of instrument directories  6.8.3.  Getting amount of instrument directories
# Line 5708  Internet-Draft        LinuxSampler Contr Line 5541  Internet-Draft        LinuxSampler Contr
5541    
5542    
5543    
5544  Schoenebeck             Expires January 16, 2016              [Page 102]  Schoenebeck            Expires September 12, 2019              [Page 99]
5545    
5546  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5547    
5548    
5549     Example:     Example:
# Line 5764  Internet-Draft        LinuxSampler Contr Line 5597  Internet-Draft        LinuxSampler Contr
5597    
5598    
5599    
5600  Schoenebeck             Expires January 16, 2016              [Page 103]  Schoenebeck            Expires September 12, 2019             [Page 100]
5601    
5602  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5603    
5604    
5605     Example:     Example:
# Line 5776  Internet-Draft        LinuxSampler Contr Line 5609  Internet-Draft        LinuxSampler Contr
5609        S: "DESCRIPTION: Piano collection of instruments in GigaSampler        S: "DESCRIPTION: Piano collection of instruments in GigaSampler
5610        format."        format."
5611    
5612           "CREATED: 2007-02-05 10:23:12"        "CREATED: 2007-02-05 10:23:12"
5613    
5614           "MODIFIED: 2007-04-07 12:50:21"        "MODIFIED: 2007-04-07 12:50:21"
5615    
5616           "."        "."
5617    
5618  6.8.6.  Renaming an instrument directory  6.8.6.  Renaming an instrument directory
5619    
# Line 5815  Internet-Draft        LinuxSampler Contr Line 5648  Internet-Draft        LinuxSampler Contr
5648     The front-end can move a specific instrument directory by sending the     The front-end can move a specific instrument directory by sending the
5649     following command:     following command:
5650    
5651          MOVE DB_INSTRUMENT_DIRECTORY <dir> <dst>
5652    
5653    
5654    
5655    
5656    Schoenebeck            Expires September 12, 2019             [Page 101]
 Schoenebeck             Expires January 16, 2016              [Page 104]  
5657    
5658  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
   
5659    
       MOVE DB_INSTRUMENT_DIRECTORY <dir> <dst>  
5660    
5661     Where <dir> is the absolute path name of the directory to move and     Where <dir> is the absolute path name of the directory to move and
5662     <dst> is the location where the directory will be moved to.     <dst> is the location where the directory will be moved to.
# Line 5873  Internet-Draft        LinuxSampler Contr Line 5704  Internet-Draft        LinuxSampler Contr
5704           exists in the destination directory.  Error is also thrown when           exists in the destination directory.  Error is also thrown when
5705           trying to copy a directory to a subdirectory of itself.           trying to copy a directory to a subdirectory of itself.
5706    
5707       Example:
5708    
5709    
5710    
5711    
5712  Schoenebeck             Expires January 16, 2016              [Page 105]  Schoenebeck            Expires September 12, 2019             [Page 102]
5713    
5714  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5715    
5716    
    Example:  
   
5717        C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic'        C: "COPY DB_INSTRUMENT_DIRECTORY '/Piano Collection/Acoustic'
5718        '/Acoustic/Pianos'"        '/Acoustic/Pianos'"
5719    
# Line 5929  Internet-Draft        LinuxSampler Contr Line 5760  Internet-Draft        LinuxSampler Contr
5760     directory to search in.  If NON_RECURSIVE is specified, the     directory to search in.  If NON_RECURSIVE is specified, the
5761     directories located in subdirectories of the specified directory will     directories located in subdirectories of the specified directory will
5762     not be searched. <criteria-list> is a list of search criterias in     not be searched. <criteria-list> is a list of search criterias in
5763       form of "key1=val1 key2=val2 ...".  The following criterias are
5764       allowed:
5765    
5766    
5767    
5768  Schoenebeck             Expires January 16, 2016              [Page 106]  Schoenebeck            Expires September 12, 2019             [Page 103]
5769    
5770  Internet-Draft        LinuxSampler Control Protocol            July 2015  Internet-Draft        LinuxSampler Control Protocol           March 2019
5771    
5772    
    form of "key1=val1 key2=val2 ...".  The following criterias are  
    allowed:  
   
    NAME='<search-string>'  
   
       Restricts the search to directories, which names satisfy the  
       supplied search string (encapsulated into apostrophes, supporting  
       escape sequences as described in chapter "Character Set and Escape  
       Sequences (Section 7.1)").  
   
    CREATED='[<date-after>]..[<date-before>]'  
   
       Restricts the search to directories, which creation date satisfies  
       the specified period, where <date-after> and <date-before> are in  
       "YYYY-MM-DD HH:MM:SS" format.  If <date-after> is omitted the  
       search is restricted to directories created before <date-before>.  
       If <date-before> is omitted, the search is restricted to  
       directories created after <date-after>.  
   
    MODIFIED='[<date-after>]..[<date-before>]'  
   
       Restricts the search to directories, which date of last  
       modification satisfies the specified period, where <date-after>  
       and <date-before> are in "YYYY-MM-DD HH:MM:SS" format.  If <date-  
       after> is omitted the search is restricted to directories, which  
       are last modified before <date-before>.  If <date-before> is  
       omitted, the search is restricted to directories, which are last  
       modified after <date-after>.  
   
    DESCRIPTION='<search-string>'  
   
       Restricts the search to directories with description that  
       satisfies the supplied search string (encapsulated into  
       apostrophes, supporting escape sequences as described in chapter  
       "Character Set and Escape Sequences (Section 7.1)").  
   
5773     Where <search-string> is either a regular expression, or a word list     Where <search-string> is either a regular expression, or a word list
5774     separated with spaces for OR search and with '+' for AND search.     separated with spaces for OR search and with '+' for AND search.
5775    
# Line 5984  Internet-Draft        LinuxSampler Contr Line 5781  Internet-Draft        LinuxSampler Contr
5781    
5782        "ERR:<error-code>:<error-message>" -        "ERR:<error-code>:<error-message>" -
5783    
   
   
   
   
 Schoenebeck             Expires January 16, 2016              [Page 107]  
   
 Internet-Draft        LinuxSampler Control Protocol            July 2015  
   
   
5784           if the given directory does not exist.           if the given directory does not exist.
5785    
5786     Example:     Example:
# Line 6001  Internet-Draft        LinuxSampler Contr Line 5789  Internet-Draft        LinuxSampler Contr
5789    
5790        S: "'/Piano Collection'"        S: "'/Piano Collection'"
5791    
5792        C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01 09:        C: "FIND DB_INSTRUMENT_DIRECTORIES '/' CREATED='..2007-04-01
5793        30:13'"        09:30:13'"
5794    
5795        S: "'/Piano Collection','/Percussions'"        S: "'/Piano Collection','/Percussions'"
5796    
# Line 6030  Internet-Draft        LinuxSampler Contr Line 5818  Internet-Draft        LinuxSampler Contr
5818    
5819        "RECURSIVE" -        "RECURSIVE" -
5820    
5821    
5822    
5823    
5824    Schoenebeck            Expires September 12, 2019             [Page 104]
5825    
5826    Internet-Draft        LinuxSampler Control Protocol           March 2019
5827    
5828    
5829           All instruments will be processed, including those in the           All instruments will be processed, including those in the
5830           subdirectories, and the respective subdirectory tree structure           subdirectories, and the respective subdirectory tree structure
5831           will be recreated in the instruments database           will be recreated in th