/[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 2656 - (show annotations) (download) (as text)
Thu Jun 19 13:36:49 2014 UTC (9 years, 8 months ago) by schoenebeck
File MIME type: text/html
File size: 26285 byte(s)
* updated documentation page.

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 <table><tr>
149 <td><a href="http://en.wikipedia.org/wiki/Bitcoin"><img src="gfx/logos/bitcoin32.png" alt="Bitcoins"></a></td>
150 <td>Or donate Bitcoins at:</td>
151 </tr></table>
152 <pre class="btcaddr">1Q9CK7xUhMNWryqYTZLbUTXbrjpYYtwvng</pre>
153 <hr>
154 <a href="donations.html">Why donate?</a>
155 </div>
156 <p>
157 <div class="">
158 <center>
159 <script type="text/javascript"><!--
160 google_ad_client = "pub-3408196773880325";
161 /* 120x600, created 8/3/09 */
162 google_ad_slot = "2910827959";
163 google_ad_width = 120;
164 google_ad_height = 600;
165 //-->
166 </script>
167 <script type="text/javascript"
168 src="//pagead2.googlesyndication.com/pagead/show_ads.js">
169 </script>
170 </center>
171 </div>
172
173
174 </td><td valign=top width="100%">
175 <div id="contents">
176
177 <h2>Documentation</h2>
178 <p class="default">
179 This is still quite under construction. Be welcome to help us with writing some documentation!
180 </p>
181
182 <a name="sfz"></a>
183 <a name="sfz2"></a>
184 <h2>SFZ(2) format specification and implementation status</h2>
185 <p class="default">
186 We are currently in the works of a SFZ(2) format based sampler engine,
187 as additional powerful sampler engine for LinuxSampler. As there is
188 currently no official document defining the so called <i>SFZ version 2</i>
189 format, we created our own <a href="https://docs.google.com/Doc?docid=0AVrDa5LNWylnZGZ6ejk4eHRfNDVjbmsyd3Zmag">SFZ2 reference document</a>,
190 reflecting the format and the progress of implementation in LinuxSampler's
191 Subversion developers version. This reference document is currently maintained by
192 <a href="developers.html#Dahnielson">Anders Dahnielson</a>.
193 </p>
194
195 <a name="windows"></a>
196 <a name="osx"></a>
197 <a name="debian"></a>
198 <h2>Howtos</h2>
199 <p class="default">
200 To ease new users the first contact with the Linuxsampler applications,
201 we have written the following short Howtos:
202 </p>
203 <table class="decorated">
204 <thead>
205 <tr>
206 <td class="decorated_header">Name</td>
207 <td class="decorated_header">Descripton</td>
208 </tr>
209 </thead>
210 <tbody>
211 <tr>
212 <td class="decorated"><a href="windows.html">Windows HOWTO</a></td>
213 <td class="decorated">
214 LinuxSampler quickstart guide for the MS Windows operating system.
215 </td>
216 </tr>
217 <tr>
218 <td class="decorated"><a href="osx.html">OS X HOWTO</a></td>
219 <td class="decorated">
220 LinuxSampler quickstart guide for the Apple OS X operating system (<b>Note:</b> Completely out-dated!).
221 </td>
222 </tr>
223 <tr>
224 <td class="decorated"><a href="debian.html">Debian HOWTO</a></td>
225 <td class="decorated">
226 Guide for how to build optimized Debian packages of LS &amp;
227 friends for your specific machine.
228 </td>
229 </tr>
230 <tr>
231 <td class="decorated"><a href="http://de.musix-wiki.org/index.php?title=LinuxSampler">Debian HOWTO (German)</a></td>
232 <td class="decorated">
233 Another guide for Debian on an external site, this one in German language.
234 </td>
235 </tr>
236 <tr>
237 <td class="decorated"><a href="msys.html">Windows Build HOWTO</a></td>
238 <td class="decorated">
239 Guide for how to build libgig, linuxsampler and gigedit
240 for Windows by using MSYS.
241 </td>
242 </tr>
243 </tbody>
244 </table>
245
246 <h2>gigedit</h2>
247 <p class="default">
248 This is our graphical instrument editor based on the Gtk toolkit.
249 It can be used stand-alone or in conjunction with LinuxSampler.
250 Read the <a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html">Gigedit Quickstart</a>
251 for a short tutorial. Please notice that this quickstart document
252 is automatically generated from CVS and thus might reflect
253 features and behaviors only available in the very latest, bleeding
254 edge development version of gigedit from CVS.<br>
255 <br>
256 <b>Note:</b> The gigedit documentation is currently completely out-dated!
257 </p>
258
259 <h2><a name="jsampler">JSampler</a></h2>
260 <p class="default">
261 JSampler is an opensource, platform-independent,
262 GUI front-end for LinuxSampler, written entirely in Java.
263 Read the <a href="jsampler/manual/html/jsampler.html">JSampler manual</a>
264 for more information.<br>
265 For information about using Fantasia with Miditzer in Puppy Linux VTPO
266 read this <a href="http://organs.110mb.com/Fantasia.htm" target="_blank">HOWTO</a>.
267 </p>
268
269 <h2>libgig</h2>
270 <p class="default">
271 libgig is a C++ library used to load and modify instrument files,
272 supporting the Gigasampler / GigaStudio file format, SoundFont file
273 format, KORG file format, AKAI disk image format and the DLS
274 (Downloadable Sounds) file format.<br>
275 <br>
276 If you're a developer and might want to use libgig, here is its
277 <a href="http://download.linuxsampler.org/doc/libgig/api/">API documentation</a>
278 (automatically updated from SVN).
279 </p>
280
281 <a name="lscp_spec"></a>
282 <a name="lscp_specs"></a>
283 <h2>liblscp</h2>
284 <p class="default">
285 liblscp is C library as convenient wrapper around the <i>LinuxSampler Control Protocol</i>.
286 If you're a developer and might want to use liblscp, here is its
287 <a href="http://download.linuxsampler.org/doc/liblscp/">API documentation</a>
288 (automatically updated from SVN).
289 </p>
290
291 <h2>LSCP Reference</h2>
292 <p class="default">
293 The following documents define the <i>LinuxSampler Control Protocol</i>,
294 a network protocol with which LinuxSampler can be controlled locally as well as remotely.
295 As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in
296 any programming language and GUI library. There's still a big demand especially for a Gtk and
297 ncurses based frontend, so be encouraged and let
298 <a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for
299 LinuxSampler!
300 </p>
301
302 <table class="decorated">
303 <thead>
304 <tr>
305 <td class="decorated_header">Protocol Name</td>
306 <td class="decorated_header">Document Types</td>
307 <td class="decorated_header">Release Date</td>
308 <td class="decorated_header">Description</td>
309 </tr>
310 </thead>
311 <tbody>
312 <tr>
313 <td class="decorated">LSCP&nbsp;draft</td>
314 <td class="decorated">
315 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">TXT</a>,
316 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>,
317 <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/linuxsampler/trunk/Documentation/lscp.xml">XML</a>
318 </td>
319 <td class="decorated">unreleased</td>
320 <td class="decorated">
321 Very latest draft of the protocol (which usually reflects the
322 latest development state from SVN or may even not be implemented
323 yet).
324 </td>
325 </tr>
326 <tr>
327 <td class="decorated">LSCP&nbsp;1.6</td>
328 <td class="decorated">
329 <a href="http://www.linuxsampler.org/api/lscp-1.6.txt">TXT</a>,
330 <a href="http://www.linuxsampler.org/api/lscp-1.6.html">HTML</a>,
331 <a href="http://www.linuxsampler.org/api/lscp-1.6.xml">XML</a>
332 </td>
333 <td class="decorated">2014-01-10</td>
334 <td class="decorated">
335 Protocol specification of a SVN LinuxSampler version (1.0.0.svn25 - svn r2500).
336 </td>
337 </tr>
338 <tr>
339 <td class="decorated">LSCP&nbsp;1.5</td>
340 <td class="decorated">
341 <a href="http://www.linuxsampler.org/api/lscp-1.5.txt">TXT</a>,
342 <a href="http://www.linuxsampler.org/api/lscp-1.5.html">HTML</a>,
343 <a href="http://www.linuxsampler.org/api/lscp-1.5.xml">XML</a>
344 </td>
345 <td class="decorated">2011-06-24</td>
346 <td class="decorated">
347 Protocol specification of a SVN LinuxSampler version (svn r2188).
348 </td>
349 </tr>
350 <tr>
351 <td class="decorated">LSCP&nbsp;1.4</td>
352 <td class="decorated">
353 <a href="http://www.linuxsampler.org/api/lscp-1.4.txt">TXT</a>,
354 <a href="http://www.linuxsampler.org/api/lscp-1.4.html">HTML</a>,
355 <a href="http://www.linuxsampler.org/api/lscp-1.4.xml">XML</a>
356 </td>
357 <td class="decorated">2009-07-31</td>
358 <td class="decorated">
359 Protocol specification of old official LinuxSampler release v1.0.0.
360 </td>
361 </tr>
362 <tr>
363 <td class="decorated">LSCP&nbsp;1.3</td>
364 <td class="decorated">
365 <a href="http://www.linuxsampler.org/api/lscp-1.3.txt">TXT</a>,
366 <a href="http://www.linuxsampler.org/api/lscp-1.3.html">HTML</a>,
367 <a href="http://www.linuxsampler.org/api/lscp-1.3.xml">XML</a>
368 </td>
369 <td class="decorated">2007-12-06</td>
370 <td class="decorated">
371 Protocol specification of ancient LinuxSampler release (0.5.1).
372 </td>
373 </tr>
374 <tr>
375 <td class="decorated">LSCP&nbsp;1.2</td>
376 <td class="decorated">
377 <a href="http://www.linuxsampler.org/api/lscp-1.2.txt">TXT</a>,
378 <a href="http://www.linuxsampler.org/api/lscp-1.2.html">HTML</a>,
379 <a href="http://www.linuxsampler.org/api/lscp-1.2.xml">XML</a>
380 </td>
381 <td class="decorated">2007-10-15</td>
382 <td class="decorated">
383 Protocol specification of ancient LinuxSampler release (0.5.0).
384 </td>
385 </tr>
386 <tr>
387 <td class="decorated">LSCP&nbsp;1.1</td>
388 <td class="decorated">
389 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
390 <a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>,
391 <a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>
392 </td>
393 <td class="decorated">2006-11-25</td>
394 <td class="decorated">
395 Protocol specification of ancient LinuxSampler release 0.4.0.
396 </td>
397 </tr>
398 <tr>
399 <td class="decorated">LSCP&nbsp;1.0</td>
400 <td class="decorated">
401 <a href="http://www.linuxsampler.org/api/lscp-1.0.txt">TXT</a>,
402 <a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>,
403 <a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>
404 </td>
405 <td class="decorated">2005-07-17</td>
406 <td class="decorated">
407 Protocol specification of ancient LinuxSampler release 0.3.3.
408 </td>
409 </tr>
410 </tbody>
411 </table>
412
413 <p class="default">
414 The protocol will be extended from time to time. You may look at the
415 <a href="features.html#LSCP">features</a> site to see which control
416 commands are already implemented and which are not.
417 </p>
418
419
420 <a name="example_lscp_scripts">
421 <h3>Example LSCP scripts</h3>
422 <p class="default">
423 If you don't want / can't use a GUI frontend you will probably write some LSCP scripts for
424 using with linuxsampler to setup your needed sampler session. It follows some common LSCP
425 examples to give you a good starting point for writing your own ones. Adjust it to your needs
426 and send it to the running linuxsampler application with:
427 </p>
428 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
429 <p class="default">
430 Optionally you can also use a graphical frontend like QSampler one time to setup a working
431 sampler session for your needs and save it. Because you have to know that the files saved
432 by our frontends are actually pure LSCP scripts, thus you can i.e. use those files simply with
433 the mentioned netcat command from above to setup the sampler session without a frontend.
434 </p>
435 <p class="default">
436 Here is a simple LSCP example which uses ALSA as MIDI input and as audio output driver as well,
437 it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument
438 on that sampler channel:
439 </p>
440 <pre class="code">#enable echo mode
441 SET ECHO 1
442
443 # load the ALSA audio driver
444 # (parameter CARD is optional, I use it here to select my 2nd sound card
445 # you can use 'GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD' to get
446 # all available sound cards)
447 CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='1,0'
448
449 # load the ALSA MIDI driver
450 CREATE MIDI_INPUT_DEVICE ALSA
451
452 # connect my MIDI keyboard which has ALSA seq ID '72:0'
453 # (see 'aconnect -i' for the IDs of your MIDI devices
454 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
455 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
456
457 # setup a sampler channel
458 ADD CHANNEL
459 LOAD ENGINE gig 0
460 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
461 SET CHANNEL MIDI_INPUT_DEVICE 0 0
462 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
463
464 # finally show our channel setup (optional of course)
465 GET CHANNEL INFO 0
466
467 # quit connection
468 QUIT</pre>
469 <p class="default">
470 The next example uses JACK as audio output driver instead and automatically connects the two
471 output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear
472 something without having to manually connect it e.g. with qjackctl:
473 </p>
474 <pre class="code">#enable echo mode
475 SET ECHO 1
476
477 # load the JACK audio driver
478 CREATE AUDIO_OUTPUT_DEVICE JACK
479
480 # connect to ALSA playback JACK client so we can hear something
481 # (you can use 'GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 0 0 JACK_BINDINGS'
482 # to get all available JACK clients / ports)
483 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
484 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
485 # Note: above is for JACK2 (a.k.a. jackmp). If you are still using JACK1,
486 # you would need to use this instead:
487 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
488 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
489
490 # load the ALSA MIDI driver
491 CREATE MIDI_INPUT_DEVICE ALSA
492
493 # connect my MIDI keyboard which has ALSA seq ID '72:0'
494 # (see 'aconnect -i' for the IDs of your MIDI devices
495 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
496 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
497
498 # setup one sampler channel
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 '/home/me/Gigs/PMI Steinway D.gig' 0 0
504
505 # finally show our channel setup (optional of course)
506 GET CHANNEL INFO 0
507
508 # quit connection
509 QUIT</pre>
510 <p class="default">
511 The next example is a bit more complex.
512 It shows how to setup a more realistic sampler session, handle routing of MIDI input channels,
513 handle routing of audio channels, it uses JACK again as audio
514 output driver, but creates the JACK client with four output channels instead, it creates two
515 sampler channels, loads two different instruments on those two sampler channels and alters
516 the audio channel routing so that the two output channels of sampler channel 1 are routed to
517 the first two JACK output channels and the two output channels of sampler channel 2 are routed
518 the second pair of the JACK client's output channels. That way you could e.g. record the output
519 of those two sampler channels independently or apply independent LADSPA effects on it.
520 </p>
521 <pre class="code"># enable echo mode
522 SET ECHO 1
523
524 # load audio and MIDI driver
525 CREATE AUDIO_OUTPUT_DEVICE JACK
526 CREATE MIDI_INPUT_DEVICE ALSA
527
528 # increase the amount of output channels of the LS"s Jack client e.g. to 4
529 SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4
530
531 # connect to MIDI keyboard
532 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS="64:0"
533
534 # set up 1st sampler channel (using default output channels, that is 0 and 1)
535 ADD CHANNEL
536 LOAD ENGINE gig 0
537 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
538 SET CHANNEL MIDI_INPUT_DEVICE 0 0
539 LOAD INSTRUMENT "/somedir/The Bosendorfer Imperial Grand Version 2.2.gig" 0 0
540 SET CHANNEL VOLUME 0 0.40
541 # by default every sampler channel / engine listens to ALL MIDI channels
542 # but for multi channel setup it makes sense to distinguish the inputs, so
543 # let sampler channel 0 listen to MIDI channel 0 (instead of ALL)
544 SET CHANNEL MIDI_INPUT_CHANNEL 0 0
545
546 # set up 2nd sampler channel (using output channels 2 and 3)
547 ADD CHANNEL
548 LOAD ENGINE gig 1
549 SET CHANNEL AUDIO_OUTPUT_DEVICE 1 0
550 SET CHANNEL MIDI_INPUT_DEVICE 1 0
551 LOAD INSTRUMENT "/home/me/Gigs/NemeSys_1GB_Grand.gig" 0 1
552 SET CHANNEL VOLUME 1 0.40
553 # let sampler channel 1 listen to MIDI channel 1 (instead of ALL)
554 SET CHANNEL MIDI_INPUT_CHANNEL 1 1
555 # this will alter the audio channel routing
556 # connect the engines output channel 0 to JACK clients output 2
557 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 0 2
558 # connect the engines output channel 1 to JACK clients output 3
559 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 1 3
560
561 # automatic connection between the four 4 ports of LS's Jack client and the
562 # ALSA PCM JACK client (assuming your sound card has at least 4 outputs ;-)
563 # (assumimg JACK2 a.k.a. jackmp here, if you are still using JACK1 then
564 # you have to replace "system" by "alsa_pcm" here)
565 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
566 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
567 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 2 JACK_BINDINGS='system:playback_3'
568 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 3 JACK_BINDINGS='system:playback_4'
569
570 # not necessary, just to see our setup
571 GET CHANNEL INFO 0
572 GET CHANNEL INFO 1</pre>
573 <p class="default">
574 For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>.
575 Be welcome to ask details on the mailing list.
576 </p>
577
578
579 </div>
580 </td></tr></table>
581
582 </div>
583
584 </body>
585 </html>

  ViewVC Help
Powered by ViewVC