/[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 1675 - (hide annotations) (download) (as text)
Fri Feb 8 14:21:33 2008 UTC (16 years, 2 months ago) by schoenebeck
File MIME type: text/html
File size: 20342 byte(s)
* added "support" 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 schoenebeck 1675 supportover = new Image();
53     supportover.src = dir + "msupporthover.png";
54     supportout = new Image();
55     supportout.src = dir + "msupport.png";
56    
57 senoner 542 developersover = new Image();
58     developersover.src = dir + "mdevelopershover.png";
59    
60     developersout = new Image();
61     developersout.src = dir + "mdevelopers.png";
62    
63     instrumentsover = new Image();
64     instrumentsover.src = dir + "minstrumentshover.png";
65    
66     instrumentsout = new Image();
67     instrumentsout.src = dir + "minstruments.png";
68    
69     linksover = new Image();
70     linksover.src = dir + "mlinkshover.png";
71    
72     linksout = new Image();
73     linksout.src = dir + "mlinks.png";
74    
75     documentationover = new Image();
76     documentationover.src = dir + "mdocumentationhover.png";
77    
78     documentationout = new Image();
79     documentationout.src = dir + "mdocumentation.png";
80    
81     creditsover = new Image();
82     creditsover.src = dir + "mcreditshover.png";
83    
84     creditsout = new Image();
85     creditsout.src = dir + "mcredits.png";
86    
87     faqover = new Image();
88     faqover.src = dir + "mfaqhover.png";
89    
90     faqout = new Image();
91     faqout.src = dir + "mfaq.png";
92    
93     bugsover = new Image();
94     bugsover.src = dir + "mbugshover.png";
95    
96     bugsout = new Image();
97     bugsout.src = dir + "mbugs.png";
98     }
99     -->
100     </script>
101    
102     </head>
103    
104     <body>
105    
106     <div id="mainwindow"><img name="LinuxSampler" src="gfx/lsbackground.jpg" alt="LinuxSampler">
107    
108     <h1><span class="hidden">The LinuxSampler Project</span></h1>
109    
110     <table border=0 cellspacing=0 cellpadding=0><tr><th colspan=2 align=left>
111     <img name="h1blank" src="gfx/h1blank.png" alt="blank"><span class="hidden">about</span></th></tr>
112     <tr><td valign=top>
113     <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>
114     <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>
115     <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>
116     <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>
117     <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>
118     <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>
119 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>
120 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>
121     <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>
122     <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>
123     <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>
124     <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>
125     <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>
126     <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>
127     </td><td valign=top width="100%">
128     <div id="contents">
129    
130     <h2>Documentation</h2>
131     <p class="default">
132     This is still quite under construction. Be welcome to help us with writing some documentation!
133     </p>
134    
135 schoenebeck 1674 <a name="windows"></a>
136     <a name="osx"></a>
137     <a name="debian"></a>
138     <h2>Howtos</h2>
139     <p class="default">
140     To ease new users the first contact with the Linuxsampler applications,
141     we have written the following short Howtos:
142     </p>
143     <table class="decorated">
144     <thead>
145     <tr>
146     <td class="decorated_header">Name</td>
147     <td class="decorated_header">Descripton</td>
148     </tr>
149     </thead>
150     <tbody>
151     <tr>
152     <td class="decorated"><a href="windows.html">Windows HOWTO</a></td>
153     <td class="decorated">
154     LinuxSampler quickstart guide for the MS Windows operating system.
155     </td>
156     </tr>
157     <tr>
158     <td class="decorated"><a href="osx.html">OS X HOWTO</a></td>
159     <td class="decorated">
160     LinuxSampler quickstart guide for the Apple OS X operating system.
161     </td>
162     </tr>
163     <tr>
164     <td class="decorated"><a href="debian.html">Debian HOWTO</a></td>
165     <td class="decorated">
166     Guide for how to build optimized Debian packages of LS &amp;
167     friends for your specific machine.
168     </td>
169     </tr>
170     </tbody>
171     </table>
172    
173 schoenebeck 1241 <h2>gigedit</h2>
174     <p class="default">
175     This is our graphical instrument editor based on the Gtk toolkit.
176     It can be used stand-alone or in conjunction with LinuxSampler.
177     Read the <a href="http://download.linuxsampler.org/doc/gigedit/quickstart/gigedit_quickstart.html">Gigedit Quickstart</a>
178     for a short tutorial. Please notice that this quickstart document
179     is automatically generated from CVS and thus might reflect
180     features and behaviors only available in the very latest, bleeding
181     edge development version of gigedit from CVS.
182     </p>
183 senoner 542
184 iliev 1290 <h2>JSampler</h2>
185     <p class="default">
186     JSampler is an opensource, platform-independent,
187     GUI front-end for LinuxSampler, written entirely in Java.
188     Read the <a href="jsampler/manual/html/jsampler.html">JSampler manual</a>
189     for more information.
190     </p>
191    
192 schoenebeck 1377 <h2>libgig</h2>
193     <p class="default">
194     libgig is a C++ library used to load and modify Gigasampler format files.
195     If you're a developer and might want to use libgig, here is its
196     <a href="http://download.linuxsampler.org/doc/libgig/api/">API documentation</a>
197     (automatically daily updated from CVS).
198     </p>
199    
200 schoenebeck 1573 <a name="lscp_spec"></a>
201     <a name="lscp_specs"></a>
202 schoenebeck 1377 <h2>liblscp</h2>
203     <p class="default">
204     liblscp is C library as convenient wrapper around the <i>LinuxSampler Control Protocol</i>.
205     If you're a developer and might want to use liblscp, here is its
206     <a href="http://download.linuxsampler.org/doc/liblscp/">API documentation</a>
207     (automatically daily updated from CVS).
208     </p>
209    
210 senoner 542 <h2>LSCP Reference</h2>
211     <p class="default">
212 schoenebeck 1280 The following documents define the <i>LinuxSampler Control Protocol</i>,
213     a network protocol with which LinuxSampler can be controlled locally as well as remotely.
214 senoner 542 As this is a simple ASCII based protocol it's possible to write a frontend for LinuxSampler in
215     any programming language and GUI library. There's still a big demand especially for a Gtk and
216     ncurses based frontend, so be encouraged and let
217     <a href="http://www.linuxsampler.org/developers.html">us</a> know if you wrote a frontend for
218 schoenebeck 1280 LinuxSampler!
219 senoner 542 </p>
220 schoenebeck 1280
221     <table class="decorated">
222     <thead>
223     <tr>
224     <td class="decorated_header">Protocol Name</td>
225     <td class="decorated_header">Document Types</td>
226 schoenebeck 1434 <td class="decorated_header">Release Date</td>
227 schoenebeck 1280 <td class="decorated_header">Description</td>
228     </tr>
229     </thead>
230     <tbody>
231     <tr>
232 schoenebeck 1434 <td class="decorated">LSCP&nbsp;draft</td>
233 schoenebeck 1280 <td class="decorated">
234 schoenebeck 1434 <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.txt">TXT</a>,
235     <a href="http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html">HTML</a>,
236     <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/*checkout*/linuxsampler/Documentation/lscp.xml?rev=HEAD&content-type=text/xml">XML</a>
237 schoenebeck 1280 </td>
238 schoenebeck 1434 <td class="decorated">unreleased</td>
239 schoenebeck 1280 <td class="decorated">
240 schoenebeck 1434 Very latest draft of the protocol (which usually reflects the
241     latest development state from CVS or may even not be implemented
242     yet).
243 schoenebeck 1280 </td>
244     </tr>
245     <tr>
246 schoenebeck 1572 <td class="decorated">LSCP&nbsp;1.3</td>
247     <td class="decorated">
248     <a href="http://www.linuxsampler.org/api/lscp-1.3.txt">TXT</a>,
249     <a href="http://www.linuxsampler.org/api/lscp-1.3.html">HTML</a>,
250     <a href="http://www.linuxsampler.org/api/lscp-1.3.xml">XML</a>
251     </td>
252     <td class="decorated">2007-12-06</td>
253     <td class="decorated">
254     Protocol specification of the latest official release of LinuxSampler (0.5.1).
255     </td>
256     </tr>
257     <tr>
258 schoenebeck 1434 <td class="decorated">LSCP&nbsp;1.2</td>
259     <td class="decorated">
260     <a href="http://www.linuxsampler.org/api/lscp-1.2.txt">TXT</a>,
261     <a href="http://www.linuxsampler.org/api/lscp-1.2.html">HTML</a>,
262     <a href="http://www.linuxsampler.org/api/lscp-1.2.xml">XML</a>
263     </td>
264     <td class="decorated">2007-10-15</td>
265     <td class="decorated">
266 schoenebeck 1572 Protocol specification of the previous official release of LinuxSampler (0.5.0).
267 schoenebeck 1434 </td>
268     </tr>
269     <tr>
270 schoenebeck 1280 <td class="decorated">LSCP&nbsp;1.1</td>
271     <td class="decorated">
272 schoenebeck 1434 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
273 schoenebeck 1280 <a href="http://www.linuxsampler.org/api/lscp-1.1.html">HTML</a>,
274     <a href="http://www.linuxsampler.org/api/lscp-1.1.xml">XML</a>
275     </td>
276 schoenebeck 1434 <td class="decorated">2006-11-25</td>
277 schoenebeck 1280 <td class="decorated">
278 schoenebeck 1572 Protocol specification old LinuxSampler release 0.4.0.
279 schoenebeck 1280 </td>
280     </tr>
281     <tr>
282 schoenebeck 1434 <td class="decorated">LSCP&nbsp;1.0</td>
283 schoenebeck 1280 <td class="decorated">
284 schoenebeck 1434 <a href="http://www.linuxsampler.org/api/lscp-1.0.txt">TXT</a>,
285     <a href="http://www.linuxsampler.org/api/lscp-1.0.html">HTML</a>,
286     <a href="http://www.linuxsampler.org/api/lscp-1.0.xml">XML</a>
287 schoenebeck 1280 </td>
288 schoenebeck 1434 <td class="decorated">2005-07-17</td>
289 schoenebeck 1280 <td class="decorated">
290 schoenebeck 1434 Protocol specification of ancient LinuxSampler release 0.3.3.
291 schoenebeck 1280 </td>
292     </tr>
293     </tbody>
294     </table>
295    
296 senoner 542 <p class="default">
297 schoenebeck 594 The protocol will be extended from time to time. You may look at the
298     <a href="features.html#LSCP">features</a> site to see which control
299     commands are already implemented and which are not.
300     </p>
301 senoner 542
302    
303     <a name="example_lscp_scripts">
304     <h3>Example LSCP scripts</h3>
305     <p class="default">
306     If you don't want / can't use a GUI frontend you will probably write some LSCP scripts for
307     using with linuxsampler to setup your needed sampler session. It follows some common LSCP
308     examples to give you a good starting point for writing your own ones. Adjust it to your needs
309     and send it to the running linuxsampler application with:
310     </p>
311 schoenebeck 1280 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
312 senoner 542 <p class="default">
313 schoenebeck 1242 Optionally you can also use a graphical frontend like QSampler one time to setup a working
314     sampler session for your needs and save it. Because you have to know that the files saved
315     by our frontends are actually pure LSCP scripts, thus you can i.e. use those files simply with
316     the mentioned netcat command from above to setup the sampler session without a frontend.
317     </p>
318     <p class="default">
319 senoner 542 Here is a simple LSCP example which uses ALSA as MIDI input and as audio output driver as well,
320     it creates only one sampler channel using the Gigasampler engine and loads a Piano instrument
321     on that sampler channel:
322     </p>
323 schoenebeck 1280 <pre class="code">#enable echo mode
324 senoner 542 SET ECHO 1
325    
326     # load the ALSA audio driver
327     # (parameter CARD is optional, I use it here to select my 2nd sound card
328     # you can use 'GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO ALSA CARD' to get
329     # all available sound cards)
330     CREATE AUDIO_OUTPUT_DEVICE ALSA CARD='1,0'
331    
332     # load the ALSA MIDI driver
333     CREATE MIDI_INPUT_DEVICE ALSA
334    
335     # connect my MIDI keyboard which has ALSA seq ID '72:0'
336     # (see 'aconnect -i' for the IDs of your MIDI devices
337     # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
338     SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
339    
340     # setup a sampler channel
341     ADD CHANNEL
342     LOAD ENGINE gig 0
343     SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
344     SET CHANNEL MIDI_INPUT_DEVICE 0 0
345     LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
346    
347     # finally show our channel setup (optional of course)
348     GET CHANNEL INFO 0
349    
350     # quit connection
351     QUIT</pre>
352     <p class="default">
353     The next example uses JACK as audio output driver instead and automatically connects the two
354     output channels of LS's JACK client to the first two ALSA PCM channels, so you can hear
355     something without having to manually connect it e.g. with qjackctl:
356     </p>
357 schoenebeck 1280 <pre class="code">#enable echo mode
358 senoner 542 SET ECHO 1
359    
360     # load the JACK audio driver
361     CREATE AUDIO_OUTPUT_DEVICE JACK
362    
363     # connect to ALSA playback JACK client so we can hear something
364     # (you can use 'GET AUDIO_OUTPUT_CHANNEL_PARAMETER INFO 0 0 JACK_BINDINGS'
365     # to get all available JACK clients / ports)
366     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
367     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
368    
369     # load the ALSA MIDI driver
370     CREATE MIDI_INPUT_DEVICE ALSA
371    
372     # connect my MIDI keyboard which has ALSA seq ID '72:0'
373     # (see 'aconnect -i' for the IDs of your MIDI devices
374     # or use 'GET MIDI_INPUT_PORT_PARAMETER INFO 0 0 ALSA_SEQ_BINDINGS')
375     SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS='72:0'
376    
377     # setup one sampler channel
378     ADD CHANNEL
379     LOAD ENGINE gig 0
380     SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
381     SET CHANNEL MIDI_INPUT_DEVICE 0 0
382     LOAD INSTRUMENT '/home/me/Gigs/PMI Steinway D.gig' 0 0
383    
384     # finally show our channel setup (optional of course)
385     GET CHANNEL INFO 0
386    
387     # quit connection
388     QUIT</pre>
389     <p class="default">
390     The next example is a bit more complex.
391     It shows how to setup a more realistic sampler session, handle routing of MIDI input channels,
392     handle routing of audio channels, it uses JACK again as audio
393     output driver, but creates the JACK client with four output channels instead, it creates two
394     sampler channels, loads two different instrument on those two sampler channels and alters
395     the audio channel routing so that the two output channels of sampler channel 1 are routed to
396     the first two JACK output channels and the two output channels of sampler channel 2 are routed
397     the second pair of the JACK client's output channels. That way you could e.g. record the output
398     of those two sampler channels independently or apply independent LADSPA effects on it.
399     </p>
400 schoenebeck 1280 <pre class="code"># enable echo mode
401 senoner 542 SET ECHO 1
402    
403     # load audio and MIDI driver
404     CREATE AUDIO_OUTPUT_DEVICE JACK
405     CREATE MIDI_INPUT_DEVICE ALSA
406    
407     # increase the amount of output channels of the LS"s Jack client e.g. to 4
408     SET AUDIO_OUTPUT_DEVICE_PARAMETER 0 CHANNELS=4
409    
410     # connect to MIDI keyboard
411     SET MIDI_INPUT_PORT_PARAMETER 0 0 ALSA_SEQ_BINDINGS="64:0"
412    
413     # set up 1st sampler channel (using default output channels, that is 0 and 1)
414     ADD CHANNEL
415     LOAD ENGINE gig 0
416     SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0
417     SET CHANNEL MIDI_INPUT_DEVICE 0 0
418     LOAD INSTRUMENT "/somedir/The Bosendorfer Imperial Grand Version 2.2.gig" 0 0
419     SET CHANNEL VOLUME 0 0.40
420     # by default every sampler channel / engine listens to ALL MIDI channels
421     # but for multi channel setup it makes sense to distinguish the inputs, so
422     # let sampler channel 0 listen to MIDI channel 0 (instead of ALL)
423     SET CHANNEL MIDI_INPUT_CHANNEL 0 0
424    
425     # set up 2nd sampler channel (using output channels 2 and 3)
426     ADD CHANNEL
427     LOAD ENGINE gig 1
428     SET CHANNEL AUDIO_OUTPUT_DEVICE 1 0
429     SET CHANNEL MIDI_INPUT_DEVICE 1 0
430     LOAD INSTRUMENT "/home/me/Gigs/NemeSys_1GB_Grand.gig" 0 1
431     SET CHANNEL VOLUME 1 0.40
432     # let sampler channel 1 listen to MIDI channel 1 (instead of ALL)
433     SET CHANNEL MIDI_INPUT_CHANNEL 1 1
434     # this will alter the audio channel routing
435     # connect the engines output channel 0 to JACK clients output 2
436     SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 0 2
437     # connect the engines output channel 1 to JACK clients output 3
438     SET CHANNEL AUDIO_OUTPUT_CHANNEL 1 1 3
439    
440     # automatic connection between the four 4 ports of LS's Jack client and the
441     # ALSA PCM JACK client (assuming your sound card has at least 4 outputs ;-)
442     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 JACK_BINDINGS='alsa_pcm:playback_1'
443     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 JACK_BINDINGS='alsa_pcm:playback_2'
444     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 2 JACK_BINDINGS='alsa_pcm:playback_3'
445     SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 3 JACK_BINDINGS='alsa_pcm:playback_4'
446    
447     # not necessary, just to see our setup
448     GET CHANNEL INFO 0
449     GET CHANNEL INFO 1</pre>
450     <p class="default">
451     For a detailed description about LSCP read the <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>.
452     Be welcome to ask details on the mailing list.
453     </p>
454    
455    
456     </div>
457     </td></tr></table>
458    
459     </div>
460    
461     </body>
462     </html>

  ViewVC Help
Powered by ViewVC