/[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 2379 - (hide annotations) (download) (as text)
Sun Nov 4 14:46:28 2012 UTC (11 years, 4 months ago) by schoenebeck
File MIME type: text/html
File size: 24842 byte(s)
* added Bitcoin address as possibility for donations

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

  ViewVC Help
Powered by ViewVC