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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 897 - (show annotations) (download) (as text)
Sun Jul 2 17:39:28 2006 UTC (17 years, 9 months ago) by schoenebeck
File MIME type: text/html
File size: 18808 byte(s)
minor fixes

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 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 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 <a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
133 <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 </p>
141
142 <a name="commercial_products"></a>
143 <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
144 <p class="default">
145 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 </p>
149
150 <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 definitely not an "evil" intention. For the normal user / musician the commercial
174 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 <h3>linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</h3>
181 <p class="default">
182 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 sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any
185 user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by
186 an arbitrary user frontend from an arbitrary place over a network connection or
187 locally from the same machine as well.
188 qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt
189 GUI library and thus can be compiled for various architectures and operating systems
190 without modifications of the source code.
191 libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
192 files, that is for reading and (since version 3.0.0) also writing of those files.
193 libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be
194 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 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
203 </p>
204
205 <a name="install"></a>
206 <h3>What do I need to compile and install?</h3>
207 <p class="default">
208 You should compile and install at least libgig and linuxsampler. As a beginner you should
209 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 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 </p>
220
221 <a name="compilarion_error"></a>
222 <h3>Compilation of LinuxSampler aborts with ... </h3>
223 <p class="default">
224 &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 2</pre>
235 </td>
236 <td width="100%">
237 <pre class="code">CXXFLAGS="-O3" ./configure
238 make</pre>
239 </td>
240 </tr>
241 </table>
242 <br>
243 Alternatively you could also disable all hand-crafted assembly optimization code by:
244 <table class="default" border="0" cellpadding="1" cellspacing="5">
245 <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 </table>
255 <br>
256 but the latter is definitely not recommended, as it will increase CPU usage a lot!
257 </p>
258
259 <p class="default">
260 &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
261 <br>
262 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 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 <tr>
270 <td><pre class="code">1
271 2</pre>
272 </d>
273 <td width="100%">
274 <pre class="code">gcc --version
275 g++ --version</pre>
276 </td>
277 </tr>
278 </table>
279 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 <table class="default" border="0" cellpadding="1" cellspacing="5">
283 <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 </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
299 <a name="cvs_checkout"></a>
300 <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 <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 </p>
307
308 <a name="compile_cvs"></a>
309 <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 if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
313 have the autotools (automake, autoconf and libtool) installed and compile it that way:
314 <table class="default" border="0" cellpadding="1" cellspacing="5">
315 <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 </table>
327 </p>
328
329 <a name="no_gui"></a>
330 <h3>Can I use linuxsampler without a GUI as well?</h3>
331 <p class="default">
332 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 <tr>
340 <td><pre class="code">1</pre>
341 </td>
342 <td width="100%">
343 <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 <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>
354 </td>
355 </tr>
356 </table>
357 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 <a name="examples_lscp"></a>
363 <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 questions for details about LSCP on the
369 <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
370 </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 The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource
379 how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for
380 libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run
381 LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
382 mlockall() memory" on the console, you are safe to run it as ordinary user as well.
383 </p>
384
385 </div>
386 </td></tr></table>
387
388 </div>
389
390 </body>
391 </html>

  ViewVC Help
Powered by ViewVC