/[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 1468 - (show annotations) (download) (as text)
Sun Nov 4 02:13:57 2007 UTC (16 years, 4 months ago) by schoenebeck
File MIME type: text/html
File size: 22944 byte(s)
* added couple license questions to the FAQ site

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 <div class="groupbox">
126 Here is a collection of frequently asked questions. Please read them before asking on
127 the mailing list.<br>
128 <br>
129 1.&nbsp;License<br>
130 &nbsp;&nbsp;&nbsp;&nbsp;1.1&nbsp;<a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>
131 &nbsp;&nbsp;&nbsp;&nbsp;1.2&nbsp;<a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>
132 &nbsp;&nbsp;&nbsp;&nbsp;1.3&nbsp;<a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>
133 &nbsp;&nbsp;&nbsp;&nbsp;1.3&nbsp;<a href="#closed_source">Will LinuxSampler turn closed-source?</a><br>
134 &nbsp;&nbsp;&nbsp;&nbsp;1.4&nbsp;<a href="#ls_license_change">I've heard the commercial exception of LinuxSampler was added at a certain version?</a><br>
135 &nbsp;&nbsp;&nbsp;&nbsp;1.5&nbsp;<a href="#ls_breaking_libgig_license">Doesn't LinuxSampler illegally link against libgig?</a><br>
136 &nbsp;&nbsp;&nbsp;&nbsp;1.6&nbsp;<a href="#ls_breaking_license">Doesn't LinuxSampler illegally link against other libraries?</a><br>
137 2.&nbsp;General Questions<br>
138 &nbsp;&nbsp;&nbsp;&nbsp;2.1&nbsp;<a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
139 &nbsp;&nbsp;&nbsp;&nbsp;2.2&nbsp;<a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>
140 3.&nbsp;Compilation / Installation<br>
141 &nbsp;&nbsp;&nbsp;&nbsp;3.1&nbsp;<a href="#install">What do I need to compile and install?</a><br>
142 &nbsp;&nbsp;&nbsp;&nbsp;3.2&nbsp;<a href="#compilarion_error">Compilation of LinuxSampler aborts with ...</a><br>
143 &nbsp;&nbsp;&nbsp;&nbsp;3.3&nbsp;<a href="#cvs_checkout">How do I checkout from CVS?</a><br>
144 &nbsp;&nbsp;&nbsp;&nbsp;3.4&nbsp;<a href="#compile_cvs">How do I compile from CVS?</a><br>
145 4.&nbsp;Setup<br>
146 &nbsp;&nbsp;&nbsp;&nbsp;4.1&nbsp;<a href="#examples_lscp">Are there example LSCP script files somewhere?</a><br>
147 &nbsp;&nbsp;&nbsp;&nbsp;4.2&nbsp;<a href="#dropouts">I get dropouts (click sounds, noise), what can I do about it?</a><br>
148 <br>
149 </div>
150
151 <a name="commercial_products"></a>
152 <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
153 <p class="default">
154 You are NOT ALLOWED to use LinuxSampler source code, libraries or applications in
155 COMMERCIAL hardware or software products without prior written authorization by the
156 <a href="developers.html">authors</a>. <A HREF="downloads.html">See here</A>
157 </p>
158
159 <a name="commercial_music"></a>
160 <h3>Can I use LinuxSampler for commercial music production?</h3>
161 <p class="default">
162 Hell, yes! Every indirect commercial usage of LinuxSampler, which essentially means
163 using its audio output, can of course be used in commercial applications like music
164 productions, live shows, etc. Don't get us wrong, with the mentioned commercial
165 exception we don't want to restrict the normal user / musician, we just want to avoid
166 somebody to directly make money with our work, that is by selling our software in a
167 sampler product like a sampler + sample library bundle, a hardware sampler or
168 something equivalent, at least not without giving something back to the open source
169 Community.
170 </p>
171
172 <a name="open_source"></a>
173 <h3>LinuxSampler is not open source, you are evil!</h3>
174 <p class="default">
175 There are of course many definitions of the term "open source", but according to the
176 <a href="http://en.wikipedia.org/wiki/Open_source">definition on Wikipedia</a>
177 LinuxSampler is in fact open source, since you've got complete access to its source
178 code. So due to this fact, a normal user / musician is free to do with LinuxSampler
179 what he likes to do, he can even adjust and tweak every single part of the software
180 by modifying and compiling its source code. And just the fact that we want to avoid
181 our work to be directly exploited in commercial software or hardware products is
182 definitely not an "evil" intention. For the normal user / musician the commercial
183 restriction is even an advantage, since that way commercial actors are forced to
184 support this or another open source project either directly by coding or indirectly
185 by funding and thus increase development speed.
186 </p>
187
188 <a name="closed_source"></a>
189 <h3>Will LinuxSampler turn closed-source?</h3>
190 <p class="default">
191 No, LinuxSampler will remain open source. Again, the commercial exception is just to
192 prevent commercial exploitation by third parties that haven't contributed anything to
193 open source projects.
194 </p>
195
196 <a name="ls_license_change"></a>
197 <h3>I've heard the commercial exception of LinuxSampler was added at a certain version?</h3>
198 <p class="default">
199 No, the commercial exception in LinuxSampler's license terms were there since day one.
200 Even further it's not only there since the very first publicly available CVS
201 (developer) version of LinuxSampler, that commercial exception was even already in
202 Benno Senoner's proof of concept code called "EVO", which LinuxSampler was based on.
203 There was even a rumour that we would have manipulated CVS history to "pretend" this
204 exception wasn't added at a later point. Needless to say that this rumour is completely
205 false as well. Think about it! We're a group of developers spread around the world who
206 work on this project for fun and ideology in our spare time. Most of us contributed to
207 various other open source / free software projects. Do you seriously think we would
208 cheat on such an issue? Beside that you certainly find various people completely
209 unrelated to this project who still have early versions of LinuxSampler and / or EVO
210 and thus can confirm that this commercial exception was always there.
211 </p>
212
213 <a name="ls_breaking_libgig_license"></a>
214 <h3>Doesn't LinuxSampler illegally link against libgig?</h3>
215 <p class="default">
216 No! LinuxSampler does not "illegally" link against libgig, since the copyright holder
217 (in this case of libgig) has all rights of his work and thus is not bound to his own
218 license terms. The sole purpose of license terms is to grant other people certain
219 rights to use the work.
220 </p>
221
222 <a name="ls_breaking_license"></a>
223 <h3>Doesn't LinuxSampler illegally link against other libraries?</h3>
224 <p class="default">
225 No, the only library LinuxSampler links to that has license restrictions regarding
226 linking is libgig (<a href="#ls_breaking_libgig_license">see above</a>). Especially
227 LinuxSampler does not break Qt's license terms, since it does not link against Qt at
228 all.
229 </p>
230
231 <a name="aga"></a>
232 <h3>linuxsampler? qsampler? jsampler? gigedit? libgig? liblscp? jlscp? ... hu?</h3>
233 <p class="default">
234 There are currently seven subprojects in the LinuxSampler project; jlscp, jsampler,
235 libgig, liblscp, linuxsampler, gigedit and qsampler. linuxsampler is the core of the sampler, it includes the
236 sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any
237 user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by
238 an arbitrary user frontend from an arbitrary place over a network connection or
239 (of course) locally from the same machine as well. This decoupled /
240 <a href="http://en.wikipedia.org/wiki/Backend">"backend"</a> design
241 of the sampler allows to run it even on a machine without any graphical interface,
242 without a Desktop, the machine doesn't even have to have a graphics card!
243 qsampler is the first <a href="http://en.wikipedia.org/wiki/Graphical_user_interface">GUI</a>
244 <a href="http://en.wikipedia.org/wiki/Frontend">frontend</a>
245 written for linuxsampler, it is written in C++ using the Qt
246 GUI library and thus can be compiled for various architectures and operating systems
247 without modifications of the source code.
248 gigedit is an instruments editor application for Gigasampler format files. You can
249 run it as stand-alone application or in conjunction with LinuxSampler. In the latter
250 case you can play and immediately hear all your modifications made with gigedit in
251 realtime.
252 libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
253 files, that is for reading and (since version 3.0.0) also writing of those files.
254 libgig is used by linuxsampler to load Gigasampler files, it is used by gigedit to
255 load, modify and create new Gigasampler files and it <b>can</b> be
256 used by qsampler to retrieve additional informations about Gigasampler files. liblscp
257 is a C library written as a wrapper around the LSCP network protocol, thus to control
258 linuxsampler. It was originally designed to be used on both sides, that is on server /
259 backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now
260 only used on client side by qsampler at the moment. jsampler is another GUI frontend for
261 linuxsampler, it's written in Java and thus platform independent. jlscp is a library which
262 can be compared with liblscp, with the only difference that jlscp is written in Java and
263 liblscp in C. jsampler requires jlscp.
264
265 </p>
266
267 <a name="install"></a>
268 <h3>What do I need to compile and install?</h3>
269 <p class="default">
270 You should compile and install at least libgig and linuxsampler. As a beginner you should
271 definitely as well compile and install a convenient GUI frontend like either qsampler or
272 jsampler, whatever you prefer. qsampler depends on liblscp, so you have to
273 compile and install liblscp before starting to build qsampler. Also if you like to be
274 able to edit instruments, you should compile and install gigedit as well. The recommended
275 order to compile and install is:
276 <ol class="default">
277 <li>libgig</li>
278 <li>linuxsampler</li>
279 <li>gigedit</li>
280 <li>liblscp</li>
281 <li>qsampler</li>
282 </ol>
283 </p>
284 <p class="default">
285 Of course you can also install QSampler and JSampler side by side. So you can test and use
286 both at the same time.
287 </p>
288
289 <a name="compilarion_error"></a>
290 <h3>Compilation of LinuxSampler aborts with ... </h3>
291
292 <p class="default">
293 &bull;&nbsp;&nbsp;&nbsp;"<code>Required libgig version not found...</code>"<br>
294 <br>
295 This error might occur when running LinuxSampler's configure script. Make sure
296 you have the required libgig version installed. If you're compiling a CVS
297 version of LinuxSampler you usually have to compile and install the current
298 CVS version of libgig as well. Also note there are couple common mistakes which
299 let this error occur even after having compiled and installed the required
300 libgig version. Read
301 <a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=29">this bug report</a>
302 about common mistakes and how you can fix them.
303 </p>
304
305 <p class="default">
306 &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>
307 <br>
308 This is caused by the inline assembly code for
309 <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
310 linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
311 -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
312 <br>
313 </p>
314 <pre class="code">CXXFLAGS="-O3" ./configure
315 make</pre>
316 <p class="default">
317 Alternatively you could also disable all hand-crafted assembly optimization code by:
318 </p>
319 <pre class="code">./configure --disable-asm
320 make</pre>
321 <p class="default">
322 but the latter is definitely not recommended, as it will increase CPU usage a lot!
323 </p>
324
325 <p class="default">
326 &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
327 <br>
328 This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>,
329 <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>)
330 to be a gcc/g++ version problem, in conjunction with the inline assembly code for
331 <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
332 linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
333 You can check this with:
334 </p>
335 <pre class="code">gcc --version
336 g++ --version</pre>
337 <p class="default">
338 In case you already got gcc and g++ of version 3.3 or higher
339 installed and it still causes the compilation error mentioned
340 above, try the following:
341 </p>
342 <pre class="code">export CC=`which gcc`
343 export CXX=`which g++`</pre>
344 <p class="default">
345 On certain systems however you still get this error in conjunction with older
346 versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
347 linuxsampler are not affected anymore
348 (<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>).
349 </p>
350
351 <a name="cvs_checkout"></a>
352 <h3>How do I checkout from CVS?</h3>
353 <p class="default">
354 The procedure of checking out the newest version from CVS is described on the
355 <a href="downloads.html#cvs">Downloads</a> site and on the
356 <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site
357 of our CVS server</a>.
358 </p>
359
360 <a name="compile_cvs"></a>
361 <h3>How do I compile from CVS?</h3>
362 <p class="default">
363 The procedure for compiling from CVS is the same for all subprojects, that is no matter
364 if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
365 have the autotools (automake, autoconf and libtool) installed and compile it that way:
366 <pre class="code">make -f Makefile.cvs
367 ./configure
368 make</pre>
369 </p>
370
371 <a name="no_gui"></a>
372 <h3>Can I use linuxsampler without a GUI as well?</h3>
373 <p class="default">
374 Yes, but unfortunately there is no console based frontend for linuxsampler (yet).
375 You have to write LSCP scripts and send it to the running linuxsampler application. But
376 don't worry, if you don't know how to write LSCP scripts, you can also start by saving
377 a sampler session with QSampler, because the session files qsampler writes are actually
378 real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the
379 following command:
380 </p>
381 <pre class="code">netcat localhost 8888 &lt; yourscript.lscp</pre>
382 <p class="default">
383 or on certain systems (like Debian) you have to provide the -t switch:
384 </p>
385 <pre class="code">netcat -t localhost 8888 &lt; yourscript.lscp</pre>
386 <p class="default">
387 Of course you can also replace localhost by the IP address of the machine where
388 linuxsampler is running. Alternatively you can also make a telnet connection (port 8888)
389 to linuxsampler's LSCP server and type commands manually.
390 </p>
391
392 <a name="examples_lscp"></a>
393 <h3>Are there example LSCP script files somewhere?</h3>
394 <p class="default">
395 Yes, have a look on the <a href="documentation.html">Documentation</a> site for some
396 common LSCP script examples. For details about LSCP read the
397 <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask
398 questions for details about LSCP on the
399 <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
400 </p>
401
402 <a name="dropouts"></a>
403 <h3>I get dropouts (click sounds, noise), what can I do about it?</h3>
404 <p class="default">
405 In order to achieve good results under Linux you need to have a
406 <a href="http://www.linuxdj.com/audio/lad/resourceslatency.php3">patched kernel</a>.
407 There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use.
408 The <a href="http://jackaudio.org/faq">JACK FAQ site</a>
409 (or the <a href="http://jackit.sourceforge.net/docs/faq.php">old JACK FAQ site</a>)
410 is also a good resource for
411 how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for
412 libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run
413 LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
414 mlockall() memory" on the console, you are safe to run it as ordinary user as well.
415 </p>
416
417 </div>
418 </td></tr></table>
419
420 </div>
421
422 </body>
423 </html>

  ViewVC Help
Powered by ViewVC