/[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 3923 - (show annotations) (download) (as text)
Mon Jun 14 11:26:48 2021 UTC (2 years, 9 months ago) by schoenebeck
File MIME type: text/html
File size: 27040 byte(s)
* Dump all Google Ads from the website (i.e. reverts SVN r1973).

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
157
158 </td><td valign=top width="100%">
159 <div id="contents">
160
161 <h2>Documentation</h2>
162 <p class="default">
163 We are currently in a transition phase.
164 Most of the documentation on this page is actually old and out-dated.
165 We are currently moving (more recent) documentation to the separate site
166 <a href="http://doc.linuxsampler.org">doc.linuxsampler.org</a>:<br>
167 <br>
168 <a href="http://doc.linuxsampler.org">
169 <img src="gfx/doc_site_shot.png" style="width:520px;" />
170 </a>
171 <br>
172 Be invited to help us with <a href="http://doc.linuxsampler.org/Writing_Docs/">writing documentation</a>!
173 <p class="default">
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 (<b>Note:</b> Completely out-dated!).
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.<br>
249 <br>
250 <b>Note:</b> The gigedit documentation is currently completely out-dated!
251 </p>
252
253 <h2><a name="jsampler">JSampler</a></h2>
254 <p class="default">
255 JSampler is an opensource, platform-independent,
256 GUI front-end for LinuxSampler, written entirely in Java.
257 Read the <a href="jsampler/manual/html/jsampler.html">JSampler manual</a>
258 for more information.<br>
259 For information about using Fantasia with Miditzer in Puppy Linux VTPO
260 read this <a href="http://organs.110mb.com/Fantasia.htm" target="_blank">HOWTO</a>.
261 </p>
262
263 <h2>libgig</h2>
264 <p class="default">
265 libgig is a C++ library used to load and modify instrument files,
266 supporting the Gigasampler / GigaStudio file format, SoundFont file
267 format, KORG file format, AKAI disk image format and the DLS
268 (Downloadable Sounds) file format.<br>
269 <br>
270 If you're a developer and might want to use libgig, here is its
271 <a href="http://download.linuxsampler.org/doc/libgig/api/">API documentation</a>
272 (automatically updated from SVN).
273 </p>
274
275 <a name="lscp_spec"></a>
276 <a name="lscp_specs"></a>
277 <h2>liblscp</h2>
278 <p class="default">
279 liblscp is C library as convenient wrapper around the <i>LinuxSampler Control Protocol</i>.
280 If you're a developer and might want to use liblscp, here is its
281 <a href="http://download.linuxsampler.org/doc/liblscp/">API documentation</a>
282 (automatically updated from SVN).
283 </p>
284
285 <h2>LSCP Reference</h2>
286 <p class="default">
287 The following documents define the <i>LinuxSampler Control Protocol</i>,
288 a network protocol with which LinuxSampler can be controlled locally as well as remotely.
289 As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in
290 any programming language and GUI library. There's still a big demand especially for a Gtk and
291 ncurses based frontend, so be encouraged and let
292 <a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for
293 LinuxSampler!
294 </p>
295
296 <table class="decorated">
297 <thead>
298 <tr>
299 <td class="decorated_header">Protocol Name</td>
300 <td class="decorated_header">Document Types</td>
301 <td class="decorated_header">Release Date</td>
302 <td class="decorated_header">Description</td>
303 </tr>
304 </thead>
305 <tbody>
306 <tr>
307 <td class="decorated">LSCP&nbsp;draft</td>
308 <td class="decorated">
309 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">TXT</a>,
310 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>,
311 <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/linuxsampler/trunk/Documentation/lscp.xml?content-type=text%2Fplain">XML</a>
312 </td>
313 <td class="decorated">unreleased</td>
314 <td class="decorated">
315 Very latest draft of the protocol (which usually reflects the
316 latest development state from SVN or may even not be implemented
317 yet).
318 </td>
319 </tr>
320 <tr>
321 <td class="decorated">LSCP&nbsp;1.7</td>
322 <td class="decorated">
323 <a href="http://www.linuxsampler.org/api/lscp-1.7.txt">TXT</a>,
324 <a href="http://www.linuxsampler.org/api/lscp-1.7.html">HTML</a>,
325 <a href="http://www.linuxsampler.org/api/lscp-1.7.pdf">PDF</a>,
326 <a href="http://www.linuxsampler.org/api/lscp-1.7.xml">XML</a>
327 </td>
328 <td class="decorated">2015-07-15</td>
329 <td class="decorated">
330 Protocol specification of latest LinuxSampler release (v2.0.0).
331 </td>
332 </tr>
333 <tr>
334 <td class="decorated">LSCP&nbsp;1.6</td>
335 <td class="decorated">
336 <a href="http://www.linuxsampler.org/api/lscp-1.6.txt">TXT</a>,
337 <a href="http://www.linuxsampler.org/api/lscp-1.6.html">HTML</a>,
338 <a href="http://www.linuxsampler.org/api/lscp-1.6.xml">XML</a>
339 </td>
340 <td class="decorated">2014-01-10</td>
341 <td class="decorated">
342 Protocol specification of a SVN LinuxSampler version (1.0.0.svn25 - svn r2500).
343 </td>
344 </tr>
345 <tr>
346 <td class="decorated">LSCP&nbsp;1.5</td>
347 <td class="decorated">
348 <a href="http://www.linuxsampler.org/api/lscp-1.5.txt">TXT</a>,
349 <a href="http://www.linuxsampler.org/api/lscp-1.5.html">HTML</a>,
350 <a href="http://www.linuxsampler.org/api/lscp-1.5.xml">XML</a>
351 </td>
352 <td class="decorated">2011-06-24</td>
353 <td class="decorated">
354 Protocol specification of a SVN LinuxSampler version (svn r2188).
355 </td>
356 </tr>
357 <tr>
358 <td class="decorated">LSCP&nbsp;1.4</td>
359 <td class="decorated">
360 <a href="http://www.linuxsampler.org/api/lscp-1.4.txt">TXT</a>,
361 <a href="http://www.linuxsampler.org/api/lscp-1.4.html">HTML</a>,
362 <a href="http://www.linuxsampler.org/api/lscp-1.4.xml">XML</a>
363 </td>
364 <td class="decorated">2009-07-31</td>
365 <td class="decorated">
366 Protocol specification of old official LinuxSampler release v1.0.0.
367 </td>
368 </tr>
369 <tr>
370 <td class="decorated">LSCP&nbsp;1.3</td>
371 <td class="decorated">
372 <a href="http://www.linuxsampler.org/api/lscp-1.3.txt">TXT</a>,
373 <a href="http://www.linuxsampler.org/api/lscp-1.3.html">HTML</a>,
374 <a href="http://www.linuxsampler.org/api/lscp-1.3.xml">XML</a>
375 </td>
376 <td class="decorated">2007-12-06</td>
377 <td class="decorated">
378 Protocol specification of ancient LinuxSampler release (0.5.1).
379 </td>
380 </tr>
381 <tr>
382 <td class="decorated">LSCP&nbsp;1.2</td>
383 <td class="decorated">
384 <a href="http://www.linuxsampler.org/api/lscp-1.2.txt">TXT</a>,
385 <a href="http://www.linuxsampler.org/api/lscp-1.2.html">HTML</a>,
386 <a href="http://www.linuxsampler.org/api/lscp-1.2.xml">XML</a>
387 </td>
388 <td class="decorated">2007-10-15</td>
389 <td class="decorated">
390 Protocol specification of ancient LinuxSampler release (0.5.0).
391 </td>
392 </tr>
393 <tr>
394 <td class="decorated">LSCP&nbsp;1.1</td>
395 <td class="decorated">
396 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
397 <a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>,
398 <a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>
399 </td>
400 <td class="decorated">2006-11-25</td>
401 <td class="decorated">
402 Protocol specification of ancient LinuxSampler release 0.4.0.
403 </td>
404 </tr>
405 <tr>
406 <td class="decorated">LSCP&nbsp;1.0</td>
407 <td class="decorated">
408 <a href="http://www.linuxsampler.org/api/lscp-1.0.txt">TXT</a>,
409 <a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>,
410 <a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>
411 </td>
412 <td class="decorated">2005-07-17</td>
413 <td class="decorated">
414 Protocol specification of ancient LinuxSampler release 0.3.3.
415 </td>
416 </tr>
417 </tbody>
418 </table>
419
420 <p class="default">
421 The protocol will be extended from time to time. You may look at the
422 <a href="features.html#LSCP">features</a> site to see which control
423 commands are already implemented and which are not.
424 </p>
425
426
427 <a name="example_lscp_scripts">
428 <h3>Example LSCP scripts</h3>
429 <p class="default">
430 If you don't want / can't use a GUI frontend you will probably write some LSCP scripts for
431 using with linuxsampler to setup your needed sampler session. It follows some common LSCP
432 examples to give you a good starting point for writing your own ones. Adjust it to your needs
433 and send it to the running linuxsampler application with:
434 </p>
435 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
436 <p class="default">
437 Optionally you can also use a graphical frontend like QSampler one time to setup a working
438 sampler session for your needs and save it. Because you have to know that the files saved
439 by our frontends are actually pure LSCP scripts, thus you can i.e. use those files simply with
440 the mentioned netcat command from above to setup the sampler session without a frontend.
441 </p>
442 <p class="default">
443 Here is a simple LSCP example which uses ALSA as MIDI input and as audio output driver as well,
444 it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument
445 on that sampler channel:
446 </p>
447 <pre class="code">#enable echo mode
448 SET ECHO 1
449
450 # load the ALSA audio driver
451 # (parameter CARD is optional, I use it here to select my 2nd sound card
452 # you can use 'GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD' to get
453 # all available sound cards)
454 CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='1,0'
455
456 # load the ALSA MIDI driver
457 CREATE MIDI_INPUT_DEVICE ALSA
458
459 # connect my MIDI keyboard which has ALSA seq ID '72:0'
460 # (see 'aconnect -i' for the IDs of your MIDI devices
461 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
462 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
463
464 # setup a sampler channel
465 ADD CHANNEL
466 LOAD ENGINE gig 0
467 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
468 SET CHANNEL MIDI_INPUT_DEVICE 0 0
469 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
470
471 # finally show our channel setup (optional of course)
472 GET CHANNEL INFO 0
473
474 # quit connection
475 QUIT</pre>
476 <p class="default">
477 The next example uses JACK as audio output driver instead and automatically connects the two
478 output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear
479 something without having to manually connect it e.g. with qjackctl:
480 </p>
481 <pre class="code">#enable echo mode
482 SET ECHO 1
483
484 # load the JACK audio driver
485 CREATE AUDIO_OUTPUT_DEVICE JACK
486
487 # connect to ALSA playback JACK client so we can hear something
488 # (you can use 'GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 0 0 JACK_BINDINGS'
489 # to get all available JACK clients / ports)
490 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
491 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
492 # Note: above is for JACK2 (a.k.a. jackmp). If you are still using JACK1,
493 # you would need to use this instead:
494 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
495 # SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
496
497 # load the ALSA MIDI driver
498 CREATE MIDI_INPUT_DEVICE ALSA
499
500 # connect my MIDI keyboard which has ALSA seq ID '72:0'
501 # (see 'aconnect -i' for the IDs of your MIDI devices
502 # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
503 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
504
505 # setup one sampler channel
506 ADD CHANNEL
507 LOAD ENGINE gig 0
508 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
509 SET CHANNEL MIDI_INPUT_DEVICE 0 0
510 LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
511
512 # finally show our channel setup (optional of course)
513 GET CHANNEL INFO 0
514
515 # quit connection
516 QUIT</pre>
517 <p class="default">
518 The next example is a bit more complex.
519 It shows how to setup a more realistic sampler session, handle routing of MIDI input channels,
520 handle routing of audio channels, it uses JACK again as audio
521 output driver, but creates the JACK client with four output channels instead, it creates two
522 sampler channels, loads two different instruments on those two sampler channels and alters
523 the audio channel routing so that the two output channels of sampler channel 1 are routed to
524 the first two JACK output channels and the two output channels of sampler channel 2 are routed
525 the second pair of the JACK client's output channels. That way you could e.g. record the output
526 of those two sampler channels independently or apply independent LADSPA effects on it.
527 </p>
528 <pre class="code"># enable echo mode
529 SET ECHO 1
530
531 # load audio and MIDI driver
532 CREATE AUDIO_OUTPUT_DEVICE JACK
533 CREATE MIDI_INPUT_DEVICE ALSA
534
535 # increase the amount of output channels of the LS"s Jack client e.g. to 4
536 SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4
537
538 # connect to MIDI keyboard
539 SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS="64:0"
540
541 # set up 1st sampler channel (using default output channels, that is 0 and 1)
542 ADD CHANNEL
543 LOAD ENGINE gig 0
544 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
545 SET CHANNEL MIDI_INPUT_DEVICE 0 0
546 LOAD INSTRUMENT "/somedir/The Bosendorfer Imperial Grand Version 2.2.gig" 0 0
547 SET CHANNEL VOLUME 0 0.40
548 # by default every sampler channel / engine listens to ALL MIDI channels
549 # but for multi channel setup it makes sense to distinguish the inputs, so
550 # let sampler channel 0 listen to MIDI channel 0 (instead of ALL)
551 SET CHANNEL MIDI_INPUT_CHANNEL 0 0
552
553 # set up 2nd sampler channel (using output channels 2 and 3)
554 ADD CHANNEL
555 LOAD ENGINE gig 1
556 SET CHANNEL AUDIO_OUTPUT_DEVICE 1 0
557 SET CHANNEL MIDI_INPUT_DEVICE 1 0
558 LOAD INSTRUMENT "/home/me/Gigs/NemeSys_1GB_Grand.gig" 0 1
559 SET CHANNEL VOLUME 1 0.40
560 # let sampler channel 1 listen to MIDI channel 1 (instead of ALL)
561 SET CHANNEL MIDI_INPUT_CHANNEL 1 1
562 # this will alter the audio channel routing
563 # connect the engines output channel 0 to JACK clients output 2
564 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 0 2
565 # connect the engines output channel 1 to JACK clients output 3
566 SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 1 3
567
568 # automatic connection between the four 4 ports of LS's Jack client and the
569 # ALSA PCM JACK client (assuming your sound card has at least 4 outputs ;-)
570 # (assumimg JACK2 a.k.a. jackmp here, if you are still using JACK1 then
571 # you have to replace "system" by "alsa_pcm" here)
572 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='system:playback_1'
573 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='system:playback_2'
574 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 2 JACK_BINDINGS='system:playback_3'
575 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 3 JACK_BINDINGS='system:playback_4'
576
577 # not necessary, just to see our setup
578 GET CHANNEL INFO 0
579 GET CHANNEL INFO 1</pre>
580 <p class="default">
581 For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>.
582 Be welcome to ask details on the mailing list.
583 </p>
584
585
586 </div>
587 </td></tr></table>
588
589 </div>
590
591 </body>
592 </html>

  ViewVC Help
Powered by ViewVC