/[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 1404 - (show annotations) (download) (as text)
Fri Oct 12 11:17:50 2007 UTC (16 years, 6 months ago) by schoenebeck
File MIME type: text/html
File size: 19796 byte(s)
* updated 'about' site
* updated 'hu?' section on the FAQ site by adding gigedit
* added error case 'required libgig version not found' to the FAQs

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

  ViewVC Help
Powered by ViewVC