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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1675 - (show 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 <!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 supportover = new Image();
53 supportover.src = dir + "msupporthover.png";
54 supportout = new Image();
55 supportout.src = dir + "msupport.png";
56
57 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 <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 <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 <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 <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
184 <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 <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 <a name="lscp_spec"></a>
201 <a name="lscp_specs"></a>
202 <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 <h2>LSCP Reference</h2>
211 <p class="default">
212 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 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 LinuxSampler!
219 </p>
220
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 <td class="decorated_header">Release Date</td>
227 <td class="decorated_header">Description</td>
228 </tr>
229 </thead>
230 <tbody>
231 <tr>
232 <td class="decorated">LSCP&nbsp;draft</td>
233 <td class="decorated">
234 <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 </td>
238 <td class="decorated">unreleased</td>
239 <td class="decorated">
240 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 </td>
244 </tr>
245 <tr>
246 <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 <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 Protocol specification of the previous official release of LinuxSampler (0.5.0).
267 </td>
268 </tr>
269 <tr>
270 <td class="decorated">LSCP&nbsp;1.1</td>
271 <td class="decorated">
272 <a href="http://www.linuxsampler.org/api/lscp-1.1.txt">TXT</a>,
273 <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 <td class="decorated">2006-11-25</td>
277 <td class="decorated">
278 Protocol specification old LinuxSampler release 0.4.0.
279 </td>
280 </tr>
281 <tr>
282 <td class="decorated">LSCP&nbsp;1.0</td>
283 <td class="decorated">
284 <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 </td>
288 <td class="decorated">2005-07-17</td>
289 <td class="decorated">
290 Protocol specification of ancient LinuxSampler release 0.3.3.
291 </td>
292 </tr>
293 </tbody>
294 </table>
295
296 <p class="default">
297 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
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 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
312 <p class="default">
313 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 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 <pre class="code">#enable echo mode
324 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 <pre class="code">#enable echo mode
358 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 <pre class="code"># enable echo mode
401 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