/[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 1279 - (hide annotations) (download) (as text)
Fri Aug 10 13:32:44 2007 UTC (16 years, 8 months ago) by schoenebeck
File MIME type: text/html
File size: 18047 byte(s)
- overall style cleanup

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 897 <h3>linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</h3>
204 senoner 542 <p class="default">
205 schoenebeck 895 There are currently six subprojects in the LinuxSampler project; jlscp, jsampler,
206     libgig, liblscp, linuxsampler 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 senoner 542 locally from the same machine as well.
211 schoenebeck 895 qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt
212 senoner 542 GUI library and thus can be compiled for various architectures and operating systems
213 schoenebeck 895 without modifications of the source code.
214     libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
215 schoenebeck 897 files, that is for reading and (since version 3.0.0) also writing of those files.
216 schoenebeck 895 libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be
217 senoner 542 used by qsampler to retrieve additional informations about Gigasampler files. liblscp
218     is a C library written as a wrapper around the LSCP network protocol, thus to control
219     linuxsampler. It was originally designed to be used on both sides, that is on server /
220     backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now
221 schoenebeck 895 only used on client side by qsampler at the moment. jsampler is another GUI frontend for
222     linuxsampler, it's written in Java and thus platform independent. jlscp is a library which
223     can be compared with liblscp, with the only difference that jlscp is written in Java and
224     liblscp in C. jsampler requires jlscp.
225 schoenebeck 897
226 senoner 542 </p>
227    
228 schoenebeck 896 <a name="install"></a>
229 senoner 542 <h3>What do I need to compile and install?</h3>
230     <p class="default">
231 schoenebeck 585 You should compile and install at least libgig and linuxsampler. As a beginner you should
232 schoenebeck 895 definitely as well compile and install a convenient GUI frontend like either qsampler or
233     jsampler, whatever you prefer. qsampler depends on liblscp, so you have to
234 schoenebeck 585 compile and install liblscp before starting to build qsampler. The recommended order to
235     compile and install is:
236     <ol class="default">
237     <li>libgig</li>
238     <li>linuxsampler</li>
239     <li>liblscp</li>
240     <li>qsampler</li>
241     </ol>
242 senoner 542 </p>
243    
244 schoenebeck 896 <a name="compilarion_error"></a>
245 schoenebeck 616 <h3>Compilation of LinuxSampler aborts with ... </h3>
246     <p class="default">
247 schoenebeck 895 &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>
248     <br>
249     This is caused by the inline assembly code for
250     <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
251     linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
252     -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
253     <br>
254 schoenebeck 1279 </p>
255     <pre class="code">CXXFLAGS="-O3" ./configure
256 schoenebeck 618 make</pre>
257 schoenebeck 1279 <p class="default">
258 schoenebeck 618 Alternatively you could also disable all hand-crafted assembly optimization code by:
259 schoenebeck 1279 </p>
260     <pre class="code">./configure --disable-asm
261 schoenebeck 618 make</pre>
262 schoenebeck 1279 <p class="default">
263     but the latter is definitely not recommended, as it will increase CPU usage a lot!
264 schoenebeck 618 </p>
265 schoenebeck 895
266 schoenebeck 807 <p class="default">
267 schoenebeck 895 &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
268     <br>
269 schoenebeck 807 This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>,
270     <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>)
271 schoenebeck 895 to be a gcc/g++ version problem, in conjunction with the inline assembly code for
272     <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
273     linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
274     You can check this with:
275 schoenebeck 1279 </p>
276     <pre class="code">gcc --version
277 schoenebeck 807 g++ --version</pre>
278 schoenebeck 1279 <p class="default">
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 1279 </p>
283     <pre class="code">export CC=`which gcc`
284 schoenebeck 807 export CXX=`which g++`</pre>
285 schoenebeck 1279 <p class="default">
286 schoenebeck 895 On certain systems however you still get this error in conjunction with older
287     versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
288     linuxsampler are not affected anymore
289     (<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>).
290     </p>
291 schoenebeck 616
292 schoenebeck 896 <a name="cvs_checkout"></a>
293 senoner 542 <h3>How do I checkout from CVS?</h3>
294     <p class="default">
295     The procedure of checking out the newest version from CVS is described on the
296 schoenebeck 895 <a href="downloads.html#cvs">Downloads</a> site and on the
297     <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site
298     of our CVS server</a>.
299 senoner 542 </p>
300    
301 schoenebeck 896 <a name="compile_cvs"></a>
302 senoner 542 <h3>How do I compile from CVS?</h3>
303     <p class="default">
304     The procedure for compiling from CVS is the same for all subprojects, that is no matter
305 schoenebeck 585 if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
306 senoner 542 have the autotools (automake, autoconf and libtool) installed and compile it that way:
307 schoenebeck 1279 <pre class="code">make -f Makefile.cvs
308 senoner 542 ./configure
309     make</pre>
310 schoenebeck 895 </p>
311 senoner 542
312 schoenebeck 896 <a name="no_gui"></a>
313 senoner 542 <h3>Can I use linuxsampler without a GUI as well?</h3>
314     <p class="default">
315 schoenebeck 895 Yes, but unfortunately there is no console based frontend for linuxsampler (yet).
316     You have to write LSCP scripts and send it to the running linuxsampler application. But
317     don't worry, if you don't know how to write LSCP scripts, you can also start by saving
318     a sampler session with QSampler, because the session files qsampler writes are actually
319     real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the
320     following command:
321 schoenebeck 1279 </p>
322     <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
323     <p class="default">
324     or on certain systems (like Debian) you have to provide the -t switch:
325     </p>
326     <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>
327     <p class="default">
328 senoner 542 Of course you can also replace localhost by the IP address of the machine where
329     linuxsampler is running. Alternatively you can also make a telnet connection (port 8888)
330     to linuxsampler's LSCP server and type commands manually.
331     </p>
332    
333 schoenebeck 896 <a name="examples_lscp"></a>
334 senoner 542 <h3>Are there example LSCP script files somewhere?</h3>
335     <p class="default">
336     Yes, have a look on the <a href="documentation.html">Documentation</a> site for some
337     common LSCP script examples. For details about LSCP read the
338     <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask
339 schoenebeck 895 questions for details about LSCP on the
340     <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
341 senoner 542 </p>
342    
343     <a name="dropouts"></a>
344     <h3>I get dropouts (click sounds, noise), what can I do about it?</h3>
345     <p class="default">
346     In order to achieve good results under Linux you need to have a
347     <a href="http://www.linuxdj.com/audio/lad/resourceslatency.php3">patched kernel</a>.
348     There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use.
349 schoenebeck 1045 The <a href="http://jackaudio.org/faq">JACK FAQ site</a>
350     (or the <a href="http://jackit.sourceforge.net/docs/faq.php">old JACK FAQ site</a>)
351     is also a good resource for
352 senoner 542 how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for
353     libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run
354 schoenebeck 895 LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
355     mlockall() memory" on the console, you are safe to run it as ordinary user as well.
356 senoner 542 </p>
357    
358     </div>
359     </td></tr></table>
360    
361     </div>
362    
363     </body>
364     </html>

  ViewVC Help
Powered by ViewVC