139 |
|
|
140 |
<h2>LSCP Reference</h2> |
<h2>LSCP Reference</h2> |
141 |
<p class="default"> |
<p class="default"> |
142 |
The following document defines the network protocol with which LinuxSampler can be controlled. |
The following documents define the <i>LinuxSampler Control Protocol</i>, |
143 |
|
a network protocol with which LinuxSampler can be controlled locally as well as remotely. |
144 |
As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in |
As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in |
145 |
any programming language and GUI library. There's still a big demand especially for a Gtk and |
any programming language and GUI library. There's still a big demand especially for a Gtk and |
146 |
ncurses based frontend, so be encouraged and let |
ncurses based frontend, so be encouraged and let |
147 |
<a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for |
<a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for |
148 |
LinuxSampler! This is the protocol specification of the old |
LinuxSampler! |
|
official release of LinuxSampler (0.3.3): |
|
|
<br> |
|
149 |
</p> |
</p> |
150 |
<center> |
|
151 |
LinuxSampler Control Protocol v1.0 |
<table class="decorated"> |
152 |
(<a href="http://www.linuxsampler.org/api/lscp-1.0.txt">ASCII</a>, |
<thead> |
153 |
<a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>, |
<tr> |
154 |
<a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>) |
<td class="decorated_header">Protocol Name</td> |
155 |
</center> |
<td class="decorated_header">Document Types</td> |
156 |
<p class="default"> |
<td class="decorated_header">Description</td> |
157 |
This is the protocol specification of the latest |
</tr> |
158 |
official release of LinuxSampler (0.4.0): |
</thead> |
159 |
<br> |
<tbody> |
160 |
</p> |
<tr> |
161 |
<center> |
<td class="decorated">LSCP 1.0</td> |
162 |
LinuxSampler Control Protocol v1.1 |
<td class="decorated"> |
163 |
(<a href="http://www.linuxsampler.org/api/lscp-1.1.txt">ASCII</a>, |
<a href="http://www.linuxsampler.org/api/lscp-1.0.txt">ASCII</a>, |
164 |
<a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>, |
<a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>, |
165 |
<a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>) |
<a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a> |
166 |
</center> |
</td> |
167 |
<p class="default"> |
<td class="decorated"> |
168 |
The following is the very latest draft of the protocol (which |
Protocol specification of the old official release of LinuxSampler (0.3.3). |
169 |
usually reflects the latest development state from CVS or may |
</td> |
170 |
even not be implemented yet): |
</tr> |
171 |
<br> |
<tr> |
172 |
</p> |
<td class="decorated">LSCP 1.1</td> |
173 |
<center> |
<td class="decorated"> |
174 |
LinuxSampler Control Protocol Draft |
<a href="http://www.linuxsampler.org/api/lscp-1.1.txt">ASCII</a>, |
175 |
(<a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">ASCII</a>, |
<a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>, |
176 |
<a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>, |
<a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a> |
177 |
<a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/*checkout*/linuxsampler/Documentation/lscp.xml?rev=HEAD&content-type=text/xml">XML</a>) |
</td> |
178 |
</center> |
<td class="decorated"> |
179 |
|
Protocol specification of the latest official release of LinuxSampler (0.4.0). |
180 |
|
</td> |
181 |
|
</tr> |
182 |
|
<tr> |
183 |
|
<td class="decorated">LSCP draft</td> |
184 |
|
<td class="decorated"> |
185 |
|
<a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">ASCII</a>, |
186 |
|
<a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>, |
187 |
|
<a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/*checkout*/linuxsampler/Documentation/lscp.xml?rev=HEAD&content-type=text/xml">XML</a> |
188 |
|
</td> |
189 |
|
<td class="decorated"> |
190 |
|
Very latest draft of the protocol (which usually reflects the |
191 |
|
latest development state from CVS or may even not be implemented |
192 |
|
yet). |
193 |
|
</td> |
194 |
|
</tr> |
195 |
|
</tbody> |
196 |
|
</table> |
197 |
|
|
198 |
<p class="default"> |
<p class="default"> |
199 |
The protocol will be extended from time to time. You may look at the |
The protocol will be extended from time to time. You may look at the |
200 |
<a href="features.html#LSCP">features</a> site to see which control |
<a href="features.html#LSCP">features</a> site to see which control |
210 |
examples to give you a good starting point for writing your own ones. Adjust it to your needs |
examples to give you a good starting point for writing your own ones. Adjust it to your needs |
211 |
and send it to the running linuxsampler application with: |
and send it to the running linuxsampler application with: |
212 |
</p> |
</p> |
213 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
<pre class="code">cat yourscript.lscp | netcat localhost 8888</pre> |
|
<tr> |
|
|
<td><pre class="code">1</pre> |
|
|
</td> |
|
|
<td width="100%"> |
|
|
<pre class="code">cat yourscript.lscp | netcat localhost 8888</pre> |
|
|
</td> |
|
|
</tr> |
|
|
</table> |
|
214 |
<p class="default"> |
<p class="default"> |
215 |
Optionally you can also use a graphical frontend like QSampler one time to setup a working |
Optionally you can also use a graphical frontend like QSampler one time to setup a working |
216 |
sampler session for your needs and save it. Because you have to know that the files saved |
sampler session for your needs and save it. Because you have to know that the files saved |
222 |
it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument |
it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument |
223 |
on that sampler channel: |
on that sampler channel: |
224 |
</p> |
</p> |
225 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
<pre class="code">#enable echo mode |
|
<tr> |
|
|
<td><pre class="code">1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29</pre> |
|
|
</td> |
|
|
<td width="100%"> |
|
|
<pre class="code">#enable echo mode |
|
226 |
SET ECHO 1 |
SET ECHO 1 |
227 |
|
|
228 |
# load the ALSA audio driver |
# load the ALSA audio driver |
251 |
|
|
252 |
# quit connection |
# quit connection |
253 |
QUIT</pre> |
QUIT</pre> |
|
</td> |
|
|
</tr> |
|
|
</table> |
|
254 |
<p class="default"> |
<p class="default"> |
255 |
The next example uses JACK as audio output driver instead and automatically connects the two |
The next example uses JACK as audio output driver instead and automatically connects the two |
256 |
output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear |
output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear |
257 |
something without having to manually connect it e.g. with qjackctl: |
something without having to manually connect it e.g. with qjackctl: |
258 |
</p> |
</p> |
259 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
<pre class="code">#enable echo mode |
|
<tr> |
|
|
<td><pre class="code">1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32</pre> |
|
|
</td> |
|
|
<td width="100%"> |
|
|
<pre class="code">#enable echo mode |
|
260 |
SET ECHO 1 |
SET ECHO 1 |
261 |
|
|
262 |
# load the JACK audio driver |
# load the JACK audio driver |
288 |
|
|
289 |
# quit connection |
# quit connection |
290 |
QUIT</pre> |
QUIT</pre> |
|
</td> |
|
|
</tr> |
|
|
</table> |
|
291 |
<p class="default"> |
<p class="default"> |
292 |
The next example is a bit more complex. |
The next example is a bit more complex. |
293 |
It shows how to setup a more realistic sampler session, handle routing of MIDI input channels, |
It shows how to setup a more realistic sampler session, handle routing of MIDI input channels, |
299 |
the second pair of the JACK client's output channels. That way you could e.g. record the output |
the second pair of the JACK client's output channels. That way you could e.g. record the output |
300 |
of those two sampler channels independently or apply independent LADSPA effects on it. |
of those two sampler channels independently or apply independent LADSPA effects on it. |
301 |
</p> |
</p> |
302 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
<pre class="code"># enable echo mode |
|
<tr> |
|
|
<td><pre class="code">1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
|
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
|
|
50</pre> |
|
|
</td> |
|
|
<td width="100%"> |
|
|
<pre class="code"># enable echo mode |
|
303 |
SET ECHO 1 |
SET ECHO 1 |
304 |
|
|
305 |
# load audio and MIDI driver |
# load audio and MIDI driver |
349 |
# not necessary, just to see our setup |
# not necessary, just to see our setup |
350 |
GET CHANNEL INFO 0 |
GET CHANNEL INFO 0 |
351 |
GET CHANNEL INFO 1</pre> |
GET CHANNEL INFO 1</pre> |
|
</td> |
|
|
</tr> |
|
|
</table> |
|
352 |
<p class="default"> |
<p class="default"> |
353 |
For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. |
For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. |
354 |
Be welcome to ask details on the mailing list. |
Be welcome to ask details on the mailing list. |