/[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 2656 - (hide annotations) (download) (as text)
Thu Jun 19 13:36:49 2014 UTC (9 years, 10 months ago) by schoenebeck
File MIME type: text/html
File size: 26285 byte(s)
* updated documentation page.

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

  ViewVC Help
Powered by ViewVC