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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

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

  ViewVC Help
Powered by ViewVC