/[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 2034 - (hide annotations) (download) (as text)
Tue Nov 24 18:33:54 2009 UTC (14 years, 4 months ago) by schoenebeck
File MIME type: text/html
File size: 23914 byte(s)
* added link to externally kept SFZ2 format specs on features
  and documentation site
* added roadmap for the next LinuxSampler release on the
  features site

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

  ViewVC Help
Powered by ViewVC