/[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 2034 - (show annotations) (download) (as text)
Tue Nov 24 18:33:54 2009 UTC (14 years, 4 months ago) by schoenebeck
File MIME type: text/html
File size: 23914 byte(s)
* added link to externally kept SFZ2 format specs on features
  and documentation site
* added roadmap for the next LinuxSampler release on the
  features site

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 CVS developers version. This reference document is currently maintained by
186 Anders Dahnielson.
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="msys.html">Windows Build HOWTO</a></td>
226 <td class="decorated">
227 Guide for how to build libgig, linuxsampler and gigedit
228 for Windows by using MSYS.
229 </td>
230 </tr>
231 </tbody>
232 </table>
233
234 <h2>gigedit</h2>
235 <p class="default">
236 This is our graphical instrument editor based on the Gtk toolkit.
237 It can be used stand-alone or in conjunction with LinuxSampler.
238 Read the <a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html">Gigedit Quickstart</a>
239 for a short tutorial. Please notice that this quickstart document
240 is automatically generated from CVS and thus might reflect
241 features and behaviors only available in the very latest, bleeding
242 edge development version of gigedit from CVS.
243 </p>
244
245 <h2><a name="jsampler">JSampler</a></h2>
246 <p class="default">
247 JSampler is an opensource, platform-independent,
248 GUI front-end for LinuxSampler, written entirely in Java.
249 Read the <a href="jsampler/manual/html/jsampler.html">JSampler manual</a>
250 for more information.<br>
251 For information about using Fantasia with Miditzer in Puppy Linux VTPO
252 read this <a href="http://organs.110mb.com/Fantasia.htm" target="_blank">HOWTO</a>.
253 </p>
254
255 <h2>libgig</h2>
256 <p class="default">
257 libgig is a C++ library used to load and modify Gigasampler format files.
258 If you're a developer and might want to use libgig, here is its
259 <a href="http://download.linuxsampler.org/doc/libgig/api/">API documentation</a>
260 (automatically daily updated from CVS).
261 </p>
262
263 <a name="lscp_spec"></a>
264 <a name="lscp_specs"></a>
265 <h2>liblscp</h2>
266 <p class="default">
267 liblscp is C library as convenient wrapper around the <i>LinuxSampler Control Protocol</i>.
268 If you're a developer and might want to use liblscp, here is its
269 <a href="http://download.linuxsampler.org/doc/liblscp/">API documentation</a>
270 (automatically daily updated from CVS).
271 </p>
272
273 <h2>LSCP Reference</h2>
274 <p class="default">
275 The following documents define the <i>LinuxSampler Control Protocol</i>,
276 a network protocol with which LinuxSampler can be controlled locally as well as remotely.
277 As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in
278 any programming language and GUI library. There's still a big demand especially for a Gtk and
279 ncurses based frontend, so be encouraged and let
280 <a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for
281 LinuxSampler!
282 </p>
283
284 <table class="decorated">
285 <thead>
286 <tr>
287 <td class="decorated_header">Protocol Name</td>
288 <td class="decorated_header">Document Types</td>
289 <td class="decorated_header">Release Date</td>
290 <td class="decorated_header">Description</td>
291 </tr>
292 </thead>
293 <tbody>
294 <tr>
295 <td class="decorated">LSCP&nbsp;draft</td>
296 <td class="decorated">
297 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">TXT</a>,
298 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>,
299 <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/*checkout*/linuxsampler/Documentation/lscp.xml?rev=HEAD&content-type=text/xml">XML</a>
300 </td>
301 <td class="decorated">unreleased</td>
302 <td class="decorated">
303 Very latest draft of the protocol (which usually reflects the
304 latest development state from CVS or may even not be implemented
305 yet).
306 </td>
307 </tr>
308 <tr>
309 <td class="decorated">LSCP&nbsp;1.4</td>
310 <td class="decorated">
311 <a href="http://www.linuxsampler.org/api/lscp-1.4.txt">TXT</a>,
312 <a href="http://www.linuxsampler.org/api/lscp-1.4.html">HTML</a>,
313 <a href="http://www.linuxsampler.org/api/lscp-1.4.xml">XML</a>
314 </td>
315 <td class="decorated">2009-07-31</td>
316 <td class="decorated">
317 Protocol specification of the latest official release of LinuxSampler (1.0.0).
318 </td>
319 </tr>
320 <tr>
321 <td class="decorated">LSCP&nbsp;1.3</td>
322 <td class="decorated">
323 <a href="http://www.linuxsampler.org/api/lscp-1.3.txt">TXT</a>,
324 <a href="http://www.linuxsampler.org/api/lscp-1.3.html">HTML</a>,
325 <a href="http://www.linuxsampler.org/api/lscp-1.3.xml">XML</a>
326 </td>
327 <td class="decorated">2007-12-06</td>
328 <td class="decorated">
329 Protocol specification of the previous official release of LinuxSampler (0.5.1).
330 </td>
331 </tr>
332 <tr>
333 <td class="decorated">LSCP&nbsp;1.2</td>
334 <td class="decorated">
335 <a href="http://www.linuxsampler.org/api/lscp-1.2.txt">TXT</a>,
336 <a href="http://www.linuxsampler.org/api/lscp-1.2.html">HTML</a>,
337 <a href="http://www.linuxsampler.org/api/lscp-1.2.xml">XML</a>
338 </td>
339 <td class="decorated">2007-10-15</td>
340 <td class="decorated">
341 Protocol specification old LinuxSampler release (0.5.0).
342 </td>
343 </tr>
344 <tr>
345 <td class="decorated">LSCP&nbsp;1.1</td>
346 <td class="decorated">
347 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
348 <a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>,
349 <a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>
350 </td>
351 <td class="decorated">2006-11-25</td>
352 <td class="decorated">
353 Protocol specification of ancient LinuxSampler release 0.4.0.
354 </td>
355 </tr>
356 <tr>
357 <td class="decorated">LSCP&nbsp;1.0</td>
358 <td class="decorated">
359 <a href="http://www.linuxsampler.org/api/lscp-1.0.txt">TXT</a>,
360 <a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>,
361 <a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>
362 </td>
363 <td class="decorated">2005-07-17</td>
364 <td class="decorated">
365 Protocol specification of ancient LinuxSampler release 0.3.3.
366 </td>
367 </tr>
368 </tbody>
369 </table>
370
371 <p class="default">
372 The protocol will be extended from time to time. You may look at the
373 <a href="features.html#LSCP">features</a> site to see which control
374 commands are already implemented and which are not.
375 </p>
376
377
378 <a name="example_lscp_scripts">
379 <h3>Example LSCP scripts</h3>
380 <p class="default">
381 If you don't want / can't use a GUI frontend you will probably write some LSCP scripts for
382 using with linuxsampler to setup your needed sampler session. It follows some common LSCP
383 examples to give you a good starting point for writing your own ones. Adjust it to your needs
384 and send it to the running linuxsampler application with:
385 </p>
386 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
387 <p class="default">
388 Optionally you can also use a graphical frontend like QSampler one time to setup a working
389 sampler session for your needs and save it. Because you have to know that the files saved
390 by our frontends are actually pure LSCP scripts, thus you can i.e. use those files simply with
391 the mentioned netcat command from above to setup the sampler session without a frontend.
392 </p>
393 <p class="default">
394 Here is a simple LSCP example which uses ALSA as MIDI input and as audio output driver as well,
395 it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument
396 on that sampler channel:
397 </p>
398 <pre class="code">#enable echo mode
399 SET ECHO 1
400
401 # load the ALSA audio driver
402 # (parameter CARD is optional, I use it here to select my 2nd sound card
403 # you can use 'GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD' to get
404 # all available sound cards)
405 CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='1,0'
406
407 # load the ALSA MIDI driver
408 CREATE MIDI_INPUT_DEVICE ALSA
409
410 # connect my MIDI keyboard which has ALSA seq ID '72:0'
411 # (see 'aconnect -i' for the IDs of your MIDI devices
412 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
413 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
414
415 # setup a sampler channel
416 ADD CHANNEL
417 LOAD ENGINE gig 0
418 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
419 SET CHANNEL MIDI_INPUT_DEVICE 0 0
420 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
421
422 # finally show our channel setup (optional of course)
423 GET CHANNEL INFO 0
424
425 # quit connection
426 QUIT</pre>
427 <p class="default">
428 The next example uses JACK as audio output driver instead and automatically connects the two
429 output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear
430 something without having to manually connect it e.g. with qjackctl:
431 </p>
432 <pre class="code">#enable echo mode
433 SET ECHO 1
434
435 # load the JACK audio driver
436 CREATE AUDIO_OUTPUT_DEVICE JACK
437
438 # connect to ALSA playback JACK client so we can hear something
439 # (you can use 'GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 0 0 JACK_BINDINGS'
440 # to get all available JACK clients / ports)
441 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
442 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
443
444 # load the ALSA MIDI driver
445 CREATE MIDI_INPUT_DEVICE ALSA
446
447 # connect my MIDI keyboard which has ALSA seq ID '72:0'
448 # (see 'aconnect -i' for the IDs of your MIDI devices
449 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
450 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
451
452 # setup one sampler channel
453 ADD CHANNEL
454 LOAD ENGINE gig 0
455 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
456 SET CHANNEL MIDI_INPUT_DEVICE 0 0
457 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
458
459 # finally show our channel setup (optional of course)
460 GET CHANNEL INFO 0
461
462 # quit connection
463 QUIT</pre>
464 <p class="default">
465 The next example is a bit more complex.
466 It shows how to setup a more realistic sampler session, handle routing of MIDI input channels,
467 handle routing of audio channels, it uses JACK again as audio
468 output driver, but creates the JACK client with four output channels instead, it creates two
469 sampler channels, loads two different instrument on those two sampler channels and alters
470 the audio channel routing so that the two output channels of sampler channel 1 are routed to
471 the first two JACK output channels and the two output channels of sampler channel 2 are routed
472 the second pair of the JACK client's output channels. That way you could e.g. record the output
473 of those two sampler channels independently or apply independent LADSPA effects on it.
474 </p>
475 <pre class="code"># enable echo mode
476 SET ECHO 1
477
478 # load audio and MIDI driver
479 CREATE AUDIO_OUTPUT_DEVICE JACK
480 CREATE MIDI_INPUT_DEVICE ALSA
481
482 # increase the amount of output channels of the LS"s Jack client e.g. to 4
483 SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4
484
485 # connect to MIDI keyboard
486 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS="64:0"
487
488 # set up 1st sampler channel (using default output channels, that is 0 and 1)
489 ADD CHANNEL
490 LOAD ENGINE gig 0
491 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
492 SET CHANNEL MIDI_INPUT_DEVICE 0 0
493 LOAD INSTRUMENT "/somedir/The Bosendorfer Imperial Grand Version 2.2.gig" 0 0
494 SET CHANNEL VOLUME 0 0.40
495 # by default every sampler channel / engine listens to ALL MIDI channels
496 # but for multi channel setup it makes sense to distinguish the inputs, so
497 # let sampler channel 0 listen to MIDI channel 0 (instead of ALL)
498 SET CHANNEL MIDI_INPUT_CHANNEL 0 0
499
500 # set up 2nd sampler channel (using output channels 2 and 3)
501 ADD CHANNEL
502 LOAD ENGINE gig 1
503 SET CHANNEL AUDIO_OUTPUT_DEVICE 1 0
504 SET CHANNEL MIDI_INPUT_DEVICE 1 0
505 LOAD INSTRUMENT "/home/me/Gigs/NemeSys_1GB_Grand.gig" 0 1
506 SET CHANNEL VOLUME 1 0.40
507 # let sampler channel 1 listen to MIDI channel 1 (instead of ALL)
508 SET CHANNEL MIDI_INPUT_CHANNEL 1 1
509 # this will alter the audio channel routing
510 # connect the engines output channel 0 to JACK clients output 2
511 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 0 2
512 # connect the engines output channel 1 to JACK clients output 3
513 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 1 3
514
515 # automatic connection between the four 4 ports of LS's Jack client and the
516 # ALSA PCM JACK client (assuming your sound card has at least 4 outputs ;-)
517 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
518 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
519 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 2 JACK_BINDINGS='alsa_pcm:playback_3'
520 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 3 JACK_BINDINGS='alsa_pcm:playback_4'
521
522 # not necessary, just to see our setup
523 GET CHANNEL INFO 0
524 GET CHANNEL INFO 1</pre>
525 <p class="default">
526 For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>.
527 Be welcome to ask details on the mailing list.
528 </p>
529
530
531 </div>
532 </td></tr></table>
533
534 </div>
535
536 </body>
537 </html>

  ViewVC Help
Powered by ViewVC