/[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 1404 - (hide 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 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 schoenebeck 1279 <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 senoner 542 </p>
164 schoenebeck 896
165     <a name="commercial_products"></a>
166     <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
167 senoner 702 <p class="default">
168 schoenebeck 703 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 schoenebeck 896 </p>
172 senoner 542
173 schoenebeck 896 <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 schoenebeck 897 definitely not an "evil" intention. For the normal user / musician the commercial
197 schoenebeck 896 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 schoenebeck 1404 <h3>linuxsampler? qsampler? jsampler? gigedit? libgig? liblscp? jlscp? ... hu?</h3>
204 senoner 542 <p class="default">
205 schoenebeck 1404 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 senoner 542 sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any
208 schoenebeck 895 user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by
209 schoenebeck 585 an arbitrary user frontend from an arbitrary place over a network connection or
210 schoenebeck 1404 (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 senoner 542 GUI library and thus can be compiled for various architectures and operating systems
218 schoenebeck 895 without modifications of the source code.
219 schoenebeck 1404 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 schoenebeck 895 libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
224 schoenebeck 897 files, that is for reading and (since version 3.0.0) also writing of those files.
225 schoenebeck 1404 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 senoner 542 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 schoenebeck 895 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 schoenebeck 897
236 senoner 542 </p>
237    
238 schoenebeck 896 <a name="install"></a>
239 senoner 542 <h3>What do I need to compile and install?</h3>
240     <p class="default">
241 schoenebeck 585 You should compile and install at least libgig and linuxsampler. As a beginner you should
242 schoenebeck 895 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 schoenebeck 1404 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 schoenebeck 585 <ol class="default">
248     <li>libgig</li>
249     <li>linuxsampler</li>
250 schoenebeck 1404 <li>gigedit</li>
251 schoenebeck 585 <li>liblscp</li>
252     <li>qsampler</li>
253     </ol>
254 senoner 542 </p>
255 schoenebeck 1404 <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 senoner 542
260 schoenebeck 896 <a name="compilarion_error"></a>
261 schoenebeck 616 <h3>Compilation of LinuxSampler aborts with ... </h3>
262 schoenebeck 1404
263 schoenebeck 616 <p class="default">
264 schoenebeck 1404 &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 schoenebeck 895 &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 schoenebeck 1279 </p>
285     <pre class="code">CXXFLAGS="-O3" ./configure
286 schoenebeck 618 make</pre>
287 schoenebeck 1279 <p class="default">
288 schoenebeck 618 Alternatively you could also disable all hand-crafted assembly optimization code by:
289 schoenebeck 1279 </p>
290     <pre class="code">./configure --disable-asm
291 schoenebeck 618 make</pre>
292 schoenebeck 1279 <p class="default">
293     but the latter is definitely not recommended, as it will increase CPU usage a lot!
294 schoenebeck 618 </p>
295 schoenebeck 895
296 schoenebeck 807 <p class="default">
297 schoenebeck 895 &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
298     <br>
299 schoenebeck 807 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 schoenebeck 895 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 schoenebeck 1279 </p>
306     <pre class="code">gcc --version
307 schoenebeck 807 g++ --version</pre>
308 schoenebeck 1279 <p class="default">
309 schoenebeck 807 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 schoenebeck 1279 </p>
313     <pre class="code">export CC=`which gcc`
314 schoenebeck 807 export CXX=`which g++`</pre>
315 schoenebeck 1279 <p class="default">
316 schoenebeck 895 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 schoenebeck 616
322 schoenebeck 896 <a name="cvs_checkout"></a>
323 senoner 542 <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 schoenebeck 895 <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 senoner 542 </p>
330    
331 schoenebeck 896 <a name="compile_cvs"></a>
332 senoner 542 <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 schoenebeck 585 if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
336 senoner 542 have the autotools (automake, autoconf and libtool) installed and compile it that way:
337 schoenebeck 1279 <pre class="code">make -f Makefile.cvs
338 senoner 542 ./configure
339     make</pre>
340 schoenebeck 895 </p>
341 senoner 542
342 schoenebeck 896 <a name="no_gui"></a>
343 senoner 542 <h3>Can I use linuxsampler without a GUI as well?</h3>
344     <p class="default">
345 schoenebeck 895 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 schoenebeck 1279 </p>
352 schoenebeck 1404 <pre class="code">netcat localhost 8888 &lt; yourscript.lscp</pre>
353 schoenebeck 1279 <p class="default">
354     or on certain systems (like Debian) you have to provide the -t switch:
355     </p>
356 schoenebeck 1404 <pre class="code">netcat -t localhost 8888 &lt; yourscript.lscp</pre>
357 schoenebeck 1279 <p class="default">
358 senoner 542 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 schoenebeck 896 <a name="examples_lscp"></a>
364 senoner 542 <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 schoenebeck 895 questions for details about LSCP on the
370     <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
371 senoner 542 </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 schoenebeck 1045 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 senoner 542 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 schoenebeck 895 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 senoner 542 </p>
387    
388     </div>
389     </td></tr></table>
390    
391     </div>
392    
393     </body>
394     </html>

  ViewVC Help
Powered by ViewVC