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

Annotation of /web/trunk/www.linuxsampler.org/faq.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1045 - (hide annotations) (download) (as text)
Thu Feb 8 00:53:13 2007 UTC (17 years, 1 month ago) by schoenebeck
File MIME type: text/html
File size: 18886 byte(s)
* updated link to new JACK (FAQ) website

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     developersover = new Image();
53     developersover.src = dir + "mdevelopershover.png";
54    
55     developersout = new Image();
56     developersout.src = dir + "mdevelopers.png";
57    
58     instrumentsover = new Image();
59     instrumentsover.src = dir + "minstrumentshover.png";
60    
61     instrumentsout = new Image();
62     instrumentsout.src = dir + "minstruments.png";
63    
64     linksover = new Image();
65     linksover.src = dir + "mlinkshover.png";
66    
67     linksout = new Image();
68     linksout.src = dir + "mlinks.png";
69    
70     documentationover = new Image();
71     documentationover.src = dir + "mdocumentationhover.png";
72    
73     documentationout = new Image();
74     documentationout.src = dir + "mdocumentation.png";
75    
76     creditsover = new Image();
77     creditsover.src = dir + "mcreditshover.png";
78    
79     creditsout = new Image();
80     creditsout.src = dir + "mcredits.png";
81    
82     faqover = new Image();
83     faqover.src = dir + "mfaqhover.png";
84    
85     faqout = new Image();
86     faqout.src = dir + "mfaq.png";
87    
88     bugsover = new Image();
89     bugsover.src = dir + "mbugshover.png";
90    
91     bugsout = new Image();
92     bugsout.src = dir + "mbugs.png";
93     }
94     -->
95     </script>
96    
97     </head>
98    
99     <body>
100    
101     <div id="mainwindow"><img name="LinuxSampler" src="gfx/lsbackground.jpg" alt="LinuxSampler">
102    
103     <h1><span class="hidden">The LinuxSampler Project</span></h1>
104    
105     <table border=0 cellspacing=0 cellpadding=0><tr><th colspan=2 align=left>
106     <img name="h1blank" src="gfx/h1blank.png" alt="blank"><span class="hidden">about</span></th></tr>
107     <tr><td valign=top>
108     <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>
109     <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>
110     <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>
111     <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>
112     <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>
113     <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>
114     <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>
115     <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>
116     <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>
117     <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>
118     <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>
119     <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>
120     <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>
121     </td><td valign=top width="100%">
122     <div id="contents">
123    
124     <h2>FAQ</h2>
125     <p class="default">
126     Here is a collection of frequently asked questions. Please read them before asking on
127 schoenebeck 896 the mailing list.<br>
128     <br>
129     <a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>
130     <a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>
131     <a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>
132 schoenebeck 897 <a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
133 schoenebeck 896 <a href="#install">What do I need to compile and install?</a><br>
134     <a href="#compilarion_error">Compilation of LinuxSampler aborts with ...</a><br>
135     <a href="#cvs_checkout">How do I checkout from CVS?</a><br>
136     <a href="#compile_cvs">How do I compile from CVS?</a><br>
137     <a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>
138     <a href="#examples_lscp">Are there example LSCP script files somewhere?</a><br>
139     <a href="#dropouts">I get dropouts (click sounds, noise), what can I do about it?</a><br>
140 senoner 542 </p>
141 schoenebeck 896
142     <a name="commercial_products"></a>
143     <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
144 senoner 702 <p class="default">
145 schoenebeck 703 You are NOT ALLOWED to use LinuxSampler source code, libraries or applications in
146     COMMERCIAL hardware or software products without prior written authorization by the
147     <a href="developers.html">authors</a>. <A HREF="downloads.html">See here</A>
148 schoenebeck 896 </p>
149 senoner 542
150 schoenebeck 896 <a name="commercial_music"></a>
151     <h3>Can I use LinuxSampler for commercial music production?</h3>
152     <p class="default">
153     Hell, yes! Every indirect commercial usage of LinuxSampler, which essentially means
154     using its audio output, can of course be used in commercial applications like music
155     productions, live shows, etc. Don't get us wrong, with the mentioned commercial
156     exception we don't want to restrict the normal user / musician, we just want to avoid
157     somebody to directly make money with our work, that is by selling our software in a
158     sampler product like a sampler + sample library bundle, a hardware sampler or
159     something equivalent, at least not without giving something back to the open source
160     Community.
161     </p>
162    
163     <a name="open_source"></a>
164     <h3>LinuxSampler is not open source, you are evil!</h3>
165     <p class="default">
166     There are of course many definitions of the term "open source", but according to the
167     <a href="http://en.wikipedia.org/wiki/Open_source">definition on Wikipedia</a>
168     LinuxSampler is in fact open source, since you've got complete access to its source
169     code. So due to this fact, a normal user / musician is free to do with LinuxSampler
170     what he likes to do, he can even adjust and tweak every single part of the software
171     by modifying and compiling its source code. And just the fact that we want to avoid
172     our work to be directly exploited in commercial software or hardware products is
173 schoenebeck 897 definitely not an "evil" intention. For the normal user / musician the commercial
174 schoenebeck 896 restriction is even an advantage, since that way commercial actors are forced to
175     support this or another open source project either directly by coding or indirectly
176     by funding and thus increase development speed.
177     </p>
178    
179     <a name="aga"></a>
180 schoenebeck 897 <h3>linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</h3>
181 senoner 542 <p class="default">
182 schoenebeck 895 There are currently six subprojects in the LinuxSampler project; jlscp, jsampler,
183     libgig, liblscp, linuxsampler and qsampler. linuxsampler is the core of the sampler, it includes the
184 senoner 542 sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any
185 schoenebeck 895 user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by
186 schoenebeck 585 an arbitrary user frontend from an arbitrary place over a network connection or
187 senoner 542 locally from the same machine as well.
188 schoenebeck 895 qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt
189 senoner 542 GUI library and thus can be compiled for various architectures and operating systems
190 schoenebeck 895 without modifications of the source code.
191     libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
192 schoenebeck 897 files, that is for reading and (since version 3.0.0) also writing of those files.
193 schoenebeck 895 libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be
194 senoner 542 used by qsampler to retrieve additional informations about Gigasampler files. liblscp
195     is a C library written as a wrapper around the LSCP network protocol, thus to control
196     linuxsampler. It was originally designed to be used on both sides, that is on server /
197     backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now
198 schoenebeck 895 only used on client side by qsampler at the moment. jsampler is another GUI frontend for
199     linuxsampler, it's written in Java and thus platform independent. jlscp is a library which
200     can be compared with liblscp, with the only difference that jlscp is written in Java and
201     liblscp in C. jsampler requires jlscp.
202 schoenebeck 897
203 senoner 542 </p>
204    
205 schoenebeck 896 <a name="install"></a>
206 senoner 542 <h3>What do I need to compile and install?</h3>
207     <p class="default">
208 schoenebeck 585 You should compile and install at least libgig and linuxsampler. As a beginner you should
209 schoenebeck 895 definitely as well compile and install a convenient GUI frontend like either qsampler or
210     jsampler, whatever you prefer. qsampler depends on liblscp, so you have to
211 schoenebeck 585 compile and install liblscp before starting to build qsampler. The recommended order to
212     compile and install is:
213     <ol class="default">
214     <li>libgig</li>
215     <li>linuxsampler</li>
216     <li>liblscp</li>
217     <li>qsampler</li>
218     </ol>
219 senoner 542 </p>
220    
221 schoenebeck 896 <a name="compilarion_error"></a>
222 schoenebeck 616 <h3>Compilation of LinuxSampler aborts with ... </h3>
223     <p class="default">
224 schoenebeck 895 &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>
225     <br>
226     This is caused by the inline assembly code for
227     <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
228     linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
229     -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
230     <br>
231     <table class="default" border="0" cellpadding="1" cellspacing="5">
232     <tr>
233     <td><pre class="code">1
234 schoenebeck 618 2</pre>
235 schoenebeck 895 </td>
236     <td width="100%">
237     <pre class="code">CXXFLAGS="-O3" ./configure
238 schoenebeck 618 make</pre>
239 schoenebeck 895 </td>
240     </tr>
241     </table>
242     <br>
243 schoenebeck 618 Alternatively you could also disable all hand-crafted assembly optimization code by:
244 schoenebeck 895 <table class="default" border="0" cellpadding="1" cellspacing="5">
245 schoenebeck 618 <tr>
246     <td><pre class="code">1
247     2</pre>
248     </td>
249     <td width="100%">
250     <pre class="code">./configure --disable-asm
251     make</pre>
252     </td>
253     </tr>
254 schoenebeck 895 </table>
255     <br>
256 schoenebeck 807 but the latter is definitely not recommended, as it will increase CPU usage a lot!
257 schoenebeck 618 </p>
258 schoenebeck 895
259 schoenebeck 807 <p class="default">
260 schoenebeck 895 &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
261     <br>
262 schoenebeck 807 This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>,
263     <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>)
264 schoenebeck 895 to be a gcc/g++ version problem, in conjunction with the inline assembly code for
265     <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
266     linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
267     You can check this with:
268     <table class="default" border="0" cellpadding="1" cellspacing="5">
269 schoenebeck 807 <tr>
270     <td><pre class="code">1
271     2</pre>
272 schoenebeck 896 </d>
273 schoenebeck 807 <td width="100%">
274     <pre class="code">gcc --version
275     g++ --version</pre>
276     </td>
277     </tr>
278 schoenebeck 895 </table>
279 schoenebeck 807 In case you already got gcc and g++ of version 3.3 or higher
280     installed and it still causes the compilation error mentioned
281     above, try the following:
282 schoenebeck 895 <table class="default" border="0" cellpadding="1" cellspacing="5">
283 schoenebeck 807 <tr>
284     <td><pre class="code">1
285     2</pre>
286     </td>
287     <td width="100%">
288     <pre class="code">export CC=`which gcc`
289     export CXX=`which g++`</pre>
290     </td>
291     </tr>
292 schoenebeck 895 </table>
293     On certain systems however you still get this error in conjunction with older
294     versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
295     linuxsampler are not affected anymore
296     (<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>).
297     </p>
298 schoenebeck 616
299 schoenebeck 896 <a name="cvs_checkout"></a>
300 senoner 542 <h3>How do I checkout from CVS?</h3>
301     <p class="default">
302     The procedure of checking out the newest version from CVS is described on the
303 schoenebeck 895 <a href="downloads.html#cvs">Downloads</a> site and on the
304     <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site
305     of our CVS server</a>.
306 senoner 542 </p>
307    
308 schoenebeck 896 <a name="compile_cvs"></a>
309 senoner 542 <h3>How do I compile from CVS?</h3>
310     <p class="default">
311     The procedure for compiling from CVS is the same for all subprojects, that is no matter
312 schoenebeck 585 if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
313 senoner 542 have the autotools (automake, autoconf and libtool) installed and compile it that way:
314 schoenebeck 895 <table class="default" border="0" cellpadding="1" cellspacing="5">
315 senoner 542 <tr>
316     <td><pre class="code">1
317     2
318     3</pre>
319     </td>
320     <td width="100%">
321     <pre class="code">make -f Makefile.cvs
322     ./configure
323     make</pre>
324     </td>
325     </tr>
326 schoenebeck 895 </table>
327     </p>
328 senoner 542
329 schoenebeck 896 <a name="no_gui"></a>
330 senoner 542 <h3>Can I use linuxsampler without a GUI as well?</h3>
331     <p class="default">
332 schoenebeck 895 Yes, but unfortunately there is no console based frontend for linuxsampler (yet).
333     You have to write LSCP scripts and send it to the running linuxsampler application. But
334     don't worry, if you don't know how to write LSCP scripts, you can also start by saving
335     a sampler session with QSampler, because the session files qsampler writes are actually
336     real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the
337     following command:
338     <table class="default" border="0" cellpadding="1" cellspacing="5">
339 senoner 542 <tr>
340     <td><pre class="code">1</pre>
341     </td>
342     <td width="100%">
343 schoenebeck 895 <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
344     </td>
345     </tr>
346     </table>
347     or on certain systems (like Debian) you have to provide the -t switch:
348     <table class="default" border="0" cellpadding="1" cellspacing="5">
349     <tr>
350     <td><pre class="code">1</pre>
351     </td>
352     <td width="100%">
353 senoner 542 <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>
354     </td>
355     </tr>
356 schoenebeck 895 </table>
357 senoner 542 Of course you can also replace localhost by the IP address of the machine where
358     linuxsampler is running. Alternatively you can also make a telnet connection (port 8888)
359     to linuxsampler's LSCP server and type commands manually.
360     </p>
361    
362 schoenebeck 896 <a name="examples_lscp"></a>
363 senoner 542 <h3>Are there example LSCP script files somewhere?</h3>
364     <p class="default">
365     Yes, have a look on the <a href="documentation.html">Documentation</a> site for some
366     common LSCP script examples. For details about LSCP read the
367     <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask
368 schoenebeck 895 questions for details about LSCP on the
369     <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
370 senoner 542 </p>
371    
372     <a name="dropouts"></a>
373     <h3>I get dropouts (click sounds, noise), what can I do about it?</h3>
374     <p class="default">
375     In order to achieve good results under Linux you need to have a
376     <a href="http://www.linuxdj.com/audio/lad/resourceslatency.php3">patched kernel</a>.
377     There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use.
378 schoenebeck 1045 The <a href="http://jackaudio.org/faq">JACK FAQ site</a>
379     (or the <a href="http://jackit.sourceforge.net/docs/faq.php">old JACK FAQ site</a>)
380     is also a good resource for
381 senoner 542 how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for
382     libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run
383 schoenebeck 895 LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
384     mlockall() memory" on the console, you are safe to run it as ordinary user as well.
385 senoner 542 </p>
386    
387     </div>
388     </td></tr></table>
389    
390     </div>
391    
392     </body>
393     </html>

  ViewVC Help
Powered by ViewVC