/[svn]/web/trunk/www.linuxsampler.org/documentation.html
ViewVC logotype

Contents of /web/trunk/www.linuxsampler.org/documentation.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2333 - (show annotations) (download) (as text)
Wed Mar 14 22:07:33 2012 UTC (12 years ago) by schoenebeck
File MIME type: text/html
File size: 24606 byte(s)
* updated LSCP example script snippets
  (JACK2 vs. JACK1 device names)

1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <link rel="stylesheet" type="text/css" href="index.css">
5 <title>The Linux Sampler Project</title>
6
7 <meta http-equiv="content-type"
8 content="text/html; charset=ISO-8859-1">
9
10 <script language="javascript" type="text/javascript">
11 <!--
12 var dir = "gfx/";
13
14 if(document.images) {
15
16 newsover = new Image();
17 newsover.src = dir + "mnewshover.png";
18
19 newsout = new Image();
20 newsout.src = dir + "mnews.png";
21
22 aboutover = new Image();
23 aboutover.src = dir + "mabouthover.png";
24
25 aboutout = new Image();
26 aboutout.src = dir + "mabout.png";
27
28 featuresover = new Image();
29 featuresover.src = dir + "mfeatureshover.png";
30
31 featuresout = new Image();
32 featuresout.src = dir + "mfeatures.png";
33
34 screenshotsover = new Image();
35 screenshotsover.src = dir + "mscreenshotshover.png";
36
37 screenshotsout = new Image();
38 screenshotsout.src = dir + "mscreenshots.png";
39
40 demosover = new Image();
41 demosover.src = dir + "mdemoshover.png";
42
43 demosout = new Image();
44 demosout.src = dir + "mdemos.png";
45
46 downloadsover = new Image();
47 downloadsover.src = dir + "mdownloadshover.png";
48
49 downloadsout = new Image();
50 downloadsout.src = dir + "mdownloads.png";
51
52 donationsover = new Image();
53 donationsover.src = dir + "mdonationshover.png";
54
55 donationsout = new Image();
56 donationsout.src = dir + "mdonations.png";
57
58 supportover = new Image();
59 supportover.src = dir + "msupporthover.png";
60 supportout = new Image();
61 supportout.src = dir + "msupport.png";
62
63 developersover = new Image();
64 developersover.src = dir + "mdevelopershover.png";
65
66 developersout = new Image();
67 developersout.src = dir + "mdevelopers.png";
68
69 instrumentsover = new Image();
70 instrumentsover.src = dir + "minstrumentshover.png";
71
72 instrumentsout = new Image();
73 instrumentsout.src = dir + "minstruments.png";
74
75 linksover = new Image();
76 linksover.src = dir + "mlinkshover.png";
77
78 linksout = new Image();
79 linksout.src = dir + "mlinks.png";
80
81 documentationover = new Image();
82 documentationover.src = dir + "mdocumentationhover.png";
83
84 documentationout = new Image();
85 documentationout.src = dir + "mdocumentation.png";
86
87 creditsover = new Image();
88 creditsover.src = dir + "mcreditshover.png";
89
90 creditsout = new Image();
91 creditsout.src = dir + "mcredits.png";
92
93 faqover = new Image();
94 faqover.src = dir + "mfaqhover.png";
95
96 faqout = new Image();
97 faqout.src = dir + "mfaq.png";
98
99 bugsover = new Image();
100 bugsover.src = dir + "mbugshover.png";
101
102 bugsout = new Image();
103 bugsout.src = dir + "mbugs.png";
104 }
105 -->
106 </script>
107
108 </head>
109
110 <body>
111
112 <div id="mainwindow"><div class="lsbackground"><img name="LinuxSampler" src="gfx/lsbackground.jpg" alt="LinuxSampler"></div>
113
114 <h1><span class="hidden">The LinuxSampler Project</span></h1>
115
116 <table border=0 cellspacing=0 cellpadding=0><tr><th colspan=2 align=left>
117 <img name="h1blank" src="gfx/h1blank.png" alt="blank"><span class="hidden">about</span></th></tr>
118 <tr><td valign=top>
119 <a id="news" href="index.php" onmouseover="javascript:if(document.images)document.news.src = newsover.src" onmouseout="javascript:if(document.images)document.news.src = newsout.src"><img name="news" src="gfx/mnews.png" alt="news"></a>
120 <a id="about" href="about.html" onmouseover="javascript:if(document.images)document.about.src = aboutover.src" onmouseout="javascript:if(document.images)document.about.src = aboutout.src"><img name="about" src="gfx/mabout.png" alt="about"></a>
121 <a id="features" href="features.html" onmouseover="javascript:if(document.images)document.features.src = featuresover.src" onmouseout="javascript:if(document.images)document.features.src = featuresout.src"><img name="features" src="gfx/mfeatures.png" alt="features"></a>
122 <a id="screenshots" href="screenshots.html" onmouseover="javascript:if(document.images)document.screenshots.src = screenshotsover.src" onmouseout="javascript:if(document.images)document.screenshots.src = screenshotsout.src"><img name="screenshots" src="gfx/mscreenshots.png" alt="screenshots"></a>
123 <a id="demos" href="demos.html" onmouseover="javascript:if(document.images)document.demos.src = demosover.src" onmouseout="javascript:if(document.images)document.demos.src = demosout.src"><img name="demos" src="gfx/mdemos.png" alt="demos"></a>
124 <a id="downloads" href="downloads.html" onmouseover="javascript:if(document.images)document.downloads.src = downloadsover.src" onmouseout="javascript:if(document.images)document.downloads.src = downloadsout.src"><img name="downloads" src="gfx/mdownloads.png" alt="download"></a>
125 <a id="donations" href="donations.html" onmouseover="javascript:if(document.images)document.donations.src = donationsover.src" onmouseout="javascript:if(document.images)document.donations.src = donationsout.src"><img name="donations" src="gfx/mdonations.png" alt="donations"></a>
126 <a id="support" href="support.html" onmouseover="javascript:if(document.images)document.support.src = supportover.src" onmouseout="javascript:if(document.images)document.support.src = supportout.src"><img name="support" src="gfx/msupport.png" alt="support"></a>
127 <a id="developers" href="developers.html" onmouseover="javascript:if(document.images)document.developers.src = developersover.src" onmouseout="javascript:if(document.images)document.developers.src = developersout.src"><img name="developers" src="gfx/mdevelopers.png" alt="developers"></a>
128 <a id="faq" href="faq.html" onmouseover="javascript:if(document.images)document.faq.src = faqover.src" onmouseout="javascript:if(document.images)document.faq.src = faqout.src"><img name="faq" src="gfx/mfaq.png" alt="faq"></a>
129 <a id="documentation" href="documentation.html" onmouseover="javascript:if(document.images)document.documentation.src = documentationover.src" onmouseout="javascript:if(document.images)document.documentation.src = documentationout.src"><img name="documentation" src="gfx/mdocumentation.png" alt="documentation"></a>
130 <a id="bugs" href="http://bugs.linuxsampler.org" onmouseover="javascript:if(document.images)document.bugs.src = bugsover.src" onmouseout="javascript:if(document.images)document.bugs.src = bugsout.src"><img name="bugs" src="gfx/mbugs.png" alt="bugs"></a>
131 <a id="instruments" href="instruments.html" onmouseover="javascript:if(document.images)document.instruments.src = instrumentsover.src" onmouseout="javascript:if(document.images)document.instruments.src = instrumentsout.src"><img name="instruments" src="gfx/minstruments.png" alt="instruments"></a>
132 <a id="links" href="links.html" onmouseover="javascript:if(document.images)document.links.src = linksover.src" onmouseout="javascript:if(document.images)document.links.src = linksout.src"><img name="links" src="gfx/mlinks.png" alt="links"></a>
133 <a id="credits" href="credits.html" onmouseover="javascript:if(document.images)document.credits.src = creditsover.src" onmouseout="javascript:if(document.images)document.credits.src = creditsout.src"><img name="credits" src="gfx/mcredits.png" alt="credits"></a>
134
135 <div class="boxed">
136 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
137 <input type="hidden" name="cmd" value="_s-xclick">
138 <input type="hidden" name="hosted_button_id" value="6746056">
139 <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
140 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
141 </form>
142 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
143 <input type="hidden" name="cmd" value="_s-xclick">
144 <input type="hidden" name="hosted_button_id" value="6746149">
145 <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
146 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
147 </form>
148 <a href="donations.html">Why donate?</a>
149 </div>
150 <p>
151 <div class="">
152 <center>
153 <script type="text/javascript"><!--
154 google_ad_client = "pub-3408196773880325";
155 /* 120x600, created 8/3/09 */
156 google_ad_slot = "2910827959";
157 google_ad_width = 120;
158 google_ad_height = 600;
159 //-->
160 </script>
161 <script type="text/javascript"
162 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
163 </script>
164 </center>
165 </div>
166
167
168 </td><td valign=top width="100%">
169 <div id="contents">
170
171 <h2>Documentation</h2>
172 <p class="default">
173 This is still quite under construction. Be welcome to help us with writing some documentation!
174 </p>
175
176 <a name="sfz"></a>
177 <a name="sfz2"></a>
178 <h2>SFZ(2) format specification and implementation status</h2>
179 <p class="default">
180 We are currently in the works of a SFZ(2) format based sampler engine,
181 as additional powerful sampler engine for LinuxSampler. As there is
182 currently no official document defining the so called <i>SFZ version 2</i>
183 format, we created our own <a href="https://docs.google.com/Doc?docid=0AVrDa5LNWylnZGZ6ejk4eHRfNDVjbmsyd3Zmag">SFZ2 reference document</a>,
184 reflecting the format and the progress of implementation in LinuxSampler's
185 Subversion developers version. This reference document is currently maintained by
186 <a href="developers.html#Dahnielson">Anders Dahnielson</a>.
187 </p>
188
189 <a name="windows"></a>
190 <a name="osx"></a>
191 <a name="debian"></a>
192 <h2>Howtos</h2>
193 <p class="default">
194 To ease new users the first contact with the Linuxsampler applications,
195 we have written the following short Howtos:
196 </p>
197 <table class="decorated">
198 <thead>
199 <tr>
200 <td class="decorated_header">Name</td>
201 <td class="decorated_header">Descripton</td>
202 </tr>
203 </thead>
204 <tbody>
205 <tr>
206 <td class="decorated"><a href="windows.html">Windows HOWTO</a></td>
207 <td class="decorated">
208 LinuxSampler quickstart guide for the MS Windows operating system.
209 </td>
210 </tr>
211 <tr>
212 <td class="decorated"><a href="osx.html">OS X HOWTO</a></td>
213 <td class="decorated">
214 LinuxSampler quickstart guide for the Apple OS X operating system.
215 </td>
216 </tr>
217 <tr>
218 <td class="decorated"><a href="debian.html">Debian HOWTO</a></td>
219 <td class="decorated">
220 Guide for how to build optimized Debian packages of LS &amp;
221 friends for your specific machine.
222 </td>
223 </tr>
224 <tr>
225 <td class="decorated"><a href="http://de.musix-wiki.org/index.php?title=LinuxSampler">Debian HOWTO (German)</a></td>
226 <td class="decorated">
227 Another guide for Debian on an external site, this one in German language.
228 </td>
229 </tr>
230 <tr>
231 <td class="decorated"><a href="msys.html">Windows Build HOWTO</a></td>
232 <td class="decorated">
233 Guide for how to build libgig, linuxsampler and gigedit
234 for Windows by using MSYS.
235 </td>
236 </tr>
237 </tbody>
238 </table>
239
240 <h2>gigedit</h2>
241 <p class="default">
242 This is our graphical instrument editor based on the Gtk toolkit.
243 It can be used stand-alone or in conjunction with LinuxSampler.
244 Read the <a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html">Gigedit Quickstart</a>
245 for a short tutorial. Please notice that this quickstart document
246 is automatically generated from CVS and thus might reflect
247 features and behaviors only available in the very latest, bleeding
248 edge development version of gigedit from CVS.
249 </p>
250
251 <h2><a name="jsampler">JSampler</a></h2>
252 <p class="default">
253 JSampler is an opensource, platform-independent,
254 GUI front-end for LinuxSampler, written entirely in Java.
255 Read the <a href="jsampler/manual/html/jsampler.html">JSampler manual</a>
256 for more information.<br>
257 For information about using Fantasia with Miditzer in Puppy Linux VTPO
258 read this <a href="http://organs.110mb.com/Fantasia.htm" target="_blank">HOWTO</a>.
259 </p>
260
261 <h2>libgig</h2>
262 <p class="default">
263 libgig is a C++ library used to load and modify Gigasampler format files.
264 If you're a developer and might want to use libgig, here is its
265 <a href="http://download.linuxsampler.org/doc/libgig/api/">API documentation</a>
266 (automatically daily updated from CVS).
267 </p>
268
269 <a name="lscp_spec"></a>
270 <a name="lscp_specs"></a>
271 <h2>liblscp</h2>
272 <p class="default">
273 liblscp is C library as convenient wrapper around the <i>LinuxSampler Control Protocol</i>.
274 If you're a developer and might want to use liblscp, here is its
275 <a href="http://download.linuxsampler.org/doc/liblscp/">API documentation</a>
276 (automatically daily updated from CVS).
277 </p>
278
279 <h2>LSCP Reference</h2>
280 <p class="default">
281 The following documents define the <i>LinuxSampler Control Protocol</i>,
282 a network protocol with which LinuxSampler can be controlled locally as well as remotely.
283 As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in
284 any programming language and GUI library. There's still a big demand especially for a Gtk and
285 ncurses based frontend, so be encouraged and let
286 <a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for
287 LinuxSampler!
288 </p>
289
290 <table class="decorated">
291 <thead>
292 <tr>
293 <td class="decorated_header">Protocol Name</td>
294 <td class="decorated_header">Document Types</td>
295 <td class="decorated_header">Release Date</td>
296 <td class="decorated_header">Description</td>
297 </tr>
298 </thead>
299 <tbody>
300 <tr>
301 <td class="decorated">LSCP&nbsp;draft</td>
302 <td class="decorated">
303 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">TXT</a>,
304 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>,
305 <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/linuxsampler/trunk/Documentation/lscp.xml">XML</a>
306 </td>
307 <td class="decorated">unreleased</td>
308 <td class="decorated">
309 Very latest draft of the protocol (which usually reflects the
310 latest development state from CVS or may even not be implemented
311 yet).
312 </td>
313 </tr>
314 <tr>
315 <td class="decorated">LSCP&nbsp;1.4</td>
316 <td class="decorated">
317 <a href="http://www.linuxsampler.org/api/lscp-1.4.txt">TXT</a>,
318 <a href="http://www.linuxsampler.org/api/lscp-1.4.html">HTML</a>,
319 <a href="http://www.linuxsampler.org/api/lscp-1.4.xml">XML</a>
320 </td>
321 <td class="decorated">2009-07-31</td>
322 <td class="decorated">
323 Protocol specification of the latest official release of LinuxSampler (1.0.0).
324 </td>
325 </tr>
326 <tr>
327 <td class="decorated">LSCP&nbsp;1.3</td>
328 <td class="decorated">
329 <a href="http://www.linuxsampler.org/api/lscp-1.3.txt">TXT</a>,
330 <a href="http://www.linuxsampler.org/api/lscp-1.3.html">HTML</a>,
331 <a href="http://www.linuxsampler.org/api/lscp-1.3.xml">XML</a>
332 </td>
333 <td class="decorated">2007-12-06</td>
334 <td class="decorated">
335 Protocol specification of the previous official release of LinuxSampler (0.5.1).
336 </td>
337 </tr>
338 <tr>
339 <td class="decorated">LSCP&nbsp;1.2</td>
340 <td class="decorated">
341 <a href="http://www.linuxsampler.org/api/lscp-1.2.txt">TXT</a>,
342 <a href="http://www.linuxsampler.org/api/lscp-1.2.html">HTML</a>,
343 <a href="http://www.linuxsampler.org/api/lscp-1.2.xml">XML</a>
344 </td>
345 <td class="decorated">2007-10-15</td>
346 <td class="decorated">
347 Protocol specification old LinuxSampler release (0.5.0).
348 </td>
349 </tr>
350 <tr>
351 <td class="decorated">LSCP&nbsp;1.1</td>
352 <td class="decorated">
353 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
354 <a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>,
355 <a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>
356 </td>
357 <td class="decorated">2006-11-25</td>
358 <td class="decorated">
359 Protocol specification of ancient LinuxSampler release 0.4.0.
360 </td>
361 </tr>
362 <tr>
363 <td class="decorated">LSCP&nbsp;1.0</td>
364 <td class="decorated">
365 <a href="http://www.linuxsampler.org/api/lscp-1.0.txt">TXT</a>,
366 <a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>,
367 <a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>
368 </td>
369 <td class="decorated">2005-07-17</td>
370 <td class="decorated">
371 Protocol specification of ancient LinuxSampler release 0.3.3.
372 </td>
373 </tr>
374 </tbody>
375 </table>
376
377 <p class="default">
378 The protocol will be extended from time to time. You may look at the
379 <a href="features.html#LSCP">features</a> site to see which control
380 commands are already implemented and which are not.
381 </p>
382
383
384 <a name="example_lscp_scripts">
385 <h3>Example LSCP scripts</h3>
386 <p class="default">
387 If you don't want / can't use a GUI frontend you will probably write some LSCP scripts for
388 using with linuxsampler to setup your needed sampler session. It follows some common LSCP
389 examples to give you a good starting point for writing your own ones. Adjust it to your needs
390 and send it to the running linuxsampler application with:
391 </p>
392 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
393 <p class="default">
394 Optionally you can also use a graphical frontend like QSampler one time to setup a working
395 sampler session for your needs and save it. Because you have to know that the files saved
396 by our frontends are actually pure LSCP scripts, thus you can i.e. use those files simply with
397 the mentioned netcat command from above to setup the sampler session without a frontend.
398 </p>
399 <p class="default">
400 Here is a simple LSCP example which uses ALSA as MIDI input and as audio output driver as well,
401 it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument
402 on that sampler channel:
403 </p>
404 <pre class="code">#enable echo mode
405 SET ECHO 1
406
407 # load the ALSA audio driver
408 # (parameter CARD is optional, I use it here to select my 2nd sound card
409 # you can use 'GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD' to get
410 # all available sound cards)
411 CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='1,0'
412
413 # load the ALSA MIDI driver
414 CREATE MIDI_INPUT_DEVICE ALSA
415
416 # connect my MIDI keyboard which has ALSA seq ID '72:0'
417 # (see 'aconnect -i' for the IDs of your MIDI devices
418 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
419 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
420
421 # setup a sampler channel
422 ADD CHANNEL
423 LOAD ENGINE gig 0
424 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
425 SET CHANNEL MIDI_INPUT_DEVICE 0 0
426 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
427
428 # finally show our channel setup (optional of course)
429 GET CHANNEL INFO 0
430
431 # quit connection
432 QUIT</pre>
433 <p class="default">
434 The next example uses JACK as audio output driver instead and automatically connects the two
435 output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear
436 something without having to manually connect it e.g. with qjackctl:
437 </p>
438 <pre class="code">#enable echo mode
439 SET ECHO 1
440
441 # load the JACK audio driver
442 CREATE AUDIO_OUTPUT_DEVICE JACK
443
444 # connect to ALSA playback JACK client so we can hear something
445 # (you can use 'GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 0 0 JACK_BINDINGS'
446 # to get all available JACK clients / ports)
447 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
448 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
449 # Note: above is for JACK2 (a.k.a. jackmp). If you are still using JACK1,
450 # you would need to use this instead:
451 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
452 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
453
454 # load the ALSA MIDI driver
455 CREATE MIDI_INPUT_DEVICE ALSA
456
457 # connect my MIDI keyboard which has ALSA seq ID '72:0'
458 # (see 'aconnect -i' for the IDs of your MIDI devices
459 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
460 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
461
462 # setup one sampler channel
463 ADD CHANNEL
464 LOAD ENGINE gig 0
465 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
466 SET CHANNEL MIDI_INPUT_DEVICE 0 0
467 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
468
469 # finally show our channel setup (optional of course)
470 GET CHANNEL INFO 0
471
472 # quit connection
473 QUIT</pre>
474 <p class="default">
475 The next example is a bit more complex.
476 It shows how to setup a more realistic sampler session, handle routing of MIDI input channels,
477 handle routing of audio channels, it uses JACK again as audio
478 output driver, but creates the JACK client with four output channels instead, it creates two
479 sampler channels, loads two different instruments on those two sampler channels and alters
480 the audio channel routing so that the two output channels of sampler channel 1 are routed to
481 the first two JACK output channels and the two output channels of sampler channel 2 are routed
482 the second pair of the JACK client's output channels. That way you could e.g. record the output
483 of those two sampler channels independently or apply independent LADSPA effects on it.
484 </p>
485 <pre class="code"># enable echo mode
486 SET ECHO 1
487
488 # load audio and MIDI driver
489 CREATE AUDIO_OUTPUT_DEVICE JACK
490 CREATE MIDI_INPUT_DEVICE ALSA
491
492 # increase the amount of output channels of the LS"s Jack client e.g. to 4
493 SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4
494
495 # connect to MIDI keyboard
496 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS="64:0"
497
498 # set up 1st sampler channel (using default output channels, that is 0 and 1)
499 ADD CHANNEL
500 LOAD ENGINE gig 0
501 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
502 SET CHANNEL MIDI_INPUT_DEVICE 0 0
503 LOAD INSTRUMENT "/somedir/The Bosendorfer Imperial Grand Version 2.2.gig" 0 0
504 SET CHANNEL VOLUME 0 0.40
505 # by default every sampler channel / engine listens to ALL MIDI channels
506 # but for multi channel setup it makes sense to distinguish the inputs, so
507 # let sampler channel 0 listen to MIDI channel 0 (instead of ALL)
508 SET CHANNEL MIDI_INPUT_CHANNEL 0 0
509
510 # set up 2nd sampler channel (using output channels 2 and 3)
511 ADD CHANNEL
512 LOAD ENGINE gig 1
513 SET CHANNEL AUDIO_OUTPUT_DEVICE 1 0
514 SET CHANNEL MIDI_INPUT_DEVICE 1 0
515 LOAD INSTRUMENT "/home/me/Gigs/NemeSys_1GB_Grand.gig" 0 1
516 SET CHANNEL VOLUME 1 0.40
517 # let sampler channel 1 listen to MIDI channel 1 (instead of ALL)
518 SET CHANNEL MIDI_INPUT_CHANNEL 1 1
519 # this will alter the audio channel routing
520 # connect the engines output channel 0 to JACK clients output 2
521 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 0 2
522 # connect the engines output channel 1 to JACK clients output 3
523 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 1 3
524
525 # automatic connection between the four 4 ports of LS's Jack client and the
526 # ALSA PCM JACK client (assuming your sound card has at least 4 outputs ;-)
527 # (assumimg JACK2 a.k.a. jackmp here, if you are still using JACK1 then
528 # you have to replace "system" by "alsa_pcm" here)
529 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
530 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
531 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 2 JACK_BINDINGS='system:playback_3'
532 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 3 JACK_BINDINGS='system:playback_4'
533
534 # not necessary, just to see our setup
535 GET CHANNEL INFO 0
536 GET CHANNEL INFO 1</pre>
537 <p class="default">
538 For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>.
539 Be welcome to ask details on the mailing list.
540 </p>
541
542
543 </div>
544 </td></tr></table>
545
546 </div>
547
548 </body>
549 </html>

  ViewVC Help
Powered by ViewVC