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

  ViewVC Help
Powered by ViewVC