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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 897 by schoenebeck, Sun Jul 2 17:39:28 2006 UTC revision 1586 by schoenebeck, Tue Dec 11 14:24:40 2007 UTC
# Line 122  Line 122 
122                          <div id="contents">                          <div id="contents">
123    
124                          <h2>FAQ</h2>                          <h2>FAQ</h2>
125                          <p class="default">                          <div class="groupbox">
126                                  Here is a collection of frequently asked questions. Please read them before asking on                                  Here is a collection of frequently asked questions. Please read them before asking on
127                                  the mailing list.<br>                                  the mailing list.<br>
128                                  <br>                                  <br>
129                                  <a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>                                  1.&nbsp;License<br>
130                                  <a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.1&nbsp;<a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>
131                                  <a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.2&nbsp;<a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>
132                                  <a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.3&nbsp;<a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>
133                                  <a href="#install">What do I need to compile and install?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.4&nbsp;<a href="#closed_source">Will LinuxSampler turn closed-source?</a><br>
134                                  <a href="#compilarion_error">Compilation of LinuxSampler aborts with ...</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.5&nbsp;<a href="#ls_license_change">I've heard the commercial exception of LinuxSampler was added at a certain version?</a><br>
135                                  <a href="#cvs_checkout">How do I checkout from CVS?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.6&nbsp;<a href="#ls_breaking_libgig_license">Doesn't LinuxSampler illegally link against libgig?</a><br>
136                                  <a href="#compile_cvs">How do I compile from CVS?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;1.7&nbsp;<a href="#ls_breaking_license">Doesn't LinuxSampler illegally link against other libraries?</a><br>
137                                  <a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>                                  2.&nbsp;General Questions<br>
138                                  <a href="#examples_lscp">Are there example LSCP script files somewhere?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;2.1&nbsp;<a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
139                                  <a href="#dropouts">I get dropouts (click sounds, noise), what can I do about it?</a><br>                                  &nbsp;&nbsp;&nbsp;&nbsp;2.2&nbsp;<a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>
140                          </p>                                  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                                    &nbsp;&nbsp;&nbsp;&nbsp;4.3&nbsp;<a href="#runtime_error">LinuxSampler aborts at runtime with ...</a><br>
149                                    <br>
150                            </div>
151    
152                          <a name="commercial_products"></a>                          <a name="commercial_products"></a>
153                          <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>                          <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
# Line 176  Line 186 
186                          by funding and thus increase development speed.                          by funding and thus increase development speed.
187                          </p>                          </p>
188    
189                            <a name="closed_source"></a>
190                            <h3>Will LinuxSampler turn closed-source?</h3>
191                            <p class="default">
192                            No, LinuxSampler will remain open source. Again, the commercial exception is just to
193                            prevent commercial exploitation by third parties that haven't contributed anything to
194                            open source projects.
195                            </p>
196    
197                            <a name="ls_license_change"></a>
198                            <h3>I've heard the commercial exception of LinuxSampler was added at a certain version?</h3>
199                            <p class="default">
200                            No, the commercial exception in LinuxSampler's license terms were there since day one.
201                            Even further it's not only there since the very first publicly available CVS
202                            (developer) version of LinuxSampler, that commercial exception was even already in
203                            Benno Senoner's proof of concept code called "EVO", which LinuxSampler was based on.
204                            There was even a rumour that we would have manipulated CVS history to "pretend" this
205                            exception wasn't added at a later point. Needless to say that this rumour is completely
206                            false as well. Think about it! We're a group of developers spread around the world who
207                            work on this project for fun and ideology in our spare time. Most of us contributed to
208                            various other open source / free software projects. Do you seriously think we would
209                            cheat on such an issue? Beside that you certainly find various people completely
210                            unrelated to this project who still have early versions of LinuxSampler and / or EVO
211                            and thus can confirm that this commercial exception was always there.
212                            </p>
213    
214                            <a name="ls_breaking_libgig_license"></a>
215                            <h3>Doesn't LinuxSampler illegally link against libgig?</h3>
216                            <p class="default">
217                            No! LinuxSampler does not "illegally" link against libgig, since the copyright holder
218                            (in this case of libgig) has all rights of his work and thus is not bound to his own
219                            license terms. The sole purpose of license terms is to grant other people certain
220                            rights to use the work.
221                            </p>
222    
223                            <a name="ls_breaking_license"></a>
224                            <h3>Doesn't LinuxSampler illegally link against other libraries?</h3>
225                            <p class="default">
226                            No, the only library LinuxSampler links to that has license restrictions regarding
227                            linking is libgig (<a href="#ls_breaking_libgig_license">see above</a>). Especially
228                            LinuxSampler does not break Qt's license terms, since it does not link against Qt at
229                            all.
230                            </p>
231    
232                          <a name="aga"></a>                          <a name="aga"></a>
233                          <h3>linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</h3>                          <h3>linuxsampler? qsampler? jsampler? gigedit? libgig? liblscp? jlscp? ... hu?</h3>
234                          <p class="default">                          <p class="default">
235                                  There are currently six subprojects in the LinuxSampler project; jlscp, jsampler,                                  There are currently seven subprojects in the LinuxSampler project; jlscp, jsampler,
236                                  libgig, liblscp, linuxsampler and qsampler. linuxsampler is the core of the sampler, it includes the                                  libgig, liblscp, linuxsampler, gigedit and qsampler. linuxsampler is the core of the sampler, it includes the
237                                  sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any                                  sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any
238                                  user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by                                  user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by
239                                  an arbitrary user frontend from an arbitrary place over a network connection or                                  an arbitrary user frontend from an arbitrary place over a network connection or
240                                  locally from the same machine as well.                                  (of course) locally from the same machine as well. This decoupled /
241                                  qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt                                  <a href="http://en.wikipedia.org/wiki/Backend">"backend"</a> design
242                                    of the sampler allows to run it even on a machine without any graphical interface,
243                                    without a Desktop, the machine doesn't even have to have a graphics card!
244                                    qsampler is the first <a href="http://en.wikipedia.org/wiki/Graphical_user_interface">GUI</a>
245                                    <a href="http://en.wikipedia.org/wiki/Frontend">frontend</a>
246                                    written for linuxsampler, it is written in C++ using the Qt
247                                  GUI library and thus can be compiled for various architectures and operating systems                                  GUI library and thus can be compiled for various architectures and operating systems
248                                  without modifications of the source code.                                  without modifications of the source code.
249                                    gigedit is an instruments editor application for Gigasampler format files. You can
250                                    run it as stand-alone application or in conjunction with LinuxSampler. In the latter
251                                    case you can play and immediately hear all your modifications made with gigedit in
252                                    realtime.
253                                  libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2                                  libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
254                                  files, that is for reading and (since version 3.0.0) also writing of those files.                                  files, that is for reading and (since version 3.0.0) also writing of those files.
255                                  libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be                                  libgig is used by linuxsampler to load Gigasampler files, it is used by gigedit to
256                                    load, modify and create new Gigasampler files and it <b>can</b> be
257                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp
258                                  is a C library written as a wrapper around the LSCP network protocol, thus to control                                  is a C library written as a wrapper around the LSCP network protocol, thus to control
259                                  linuxsampler. It was originally designed to be used on both sides, that is on server /                                  linuxsampler. It was originally designed to be used on both sides, that is on server /
# Line 208  Line 271 
271                                  You should compile and install at least libgig and linuxsampler. As a beginner you should                                  You should compile and install at least libgig and linuxsampler. As a beginner you should
272                                  definitely as well compile and install a convenient GUI frontend like either qsampler or                                  definitely as well compile and install a convenient GUI frontend like either qsampler or
273                                  jsampler, whatever you prefer. qsampler depends on liblscp, so you have to                                  jsampler, whatever you prefer. qsampler depends on liblscp, so you have to
274                                  compile and install liblscp before starting to build qsampler. The recommended order to                                  compile and install liblscp before starting to build qsampler. Also if you like to be
275                                  compile and install is:                                  able to edit instruments, you should compile and install gigedit as well. The recommended
276                                    order to compile and install is:
277                                  <ol class="default">                                  <ol class="default">
278                                    <li>libgig</li>                                    <li>libgig</li>
279                                    <li>linuxsampler</li>                                    <li>linuxsampler</li>
280                                      <li>gigedit</li>
281                                    <li>liblscp</li>                                    <li>liblscp</li>
282                                    <li>qsampler</li>                                    <li>qsampler</li>
283                                  </ol>                                  </ol>
284                          </p>                          </p>
285                            <p class="default">
286                                    Of course you can also install QSampler and JSampler side by side. So you can test and use
287                                    both at the same time.
288                            </p>
289    
290                          <a name="compilarion_error"></a>                          <a name="compilarion_error"></a>
291                          <h3>Compilation of LinuxSampler aborts with ... </h3>                          <h3>Compilation of LinuxSampler aborts with ... </h3>
292    
293                            <p class="default">
294                                    &bull;&nbsp;&nbsp;&nbsp;"<code>Required libgig version not found...</code>"<br>
295                                    <br>
296                                    This error might occur when running LinuxSampler's configure script. Make sure
297                                    you have the required libgig version installed. If you're compiling a CVS
298                                    version of LinuxSampler you usually have to compile and install the current
299                                    CVS version of libgig as well. Also note there are couple common mistakes which
300                                    let this error occur even after having compiled and installed the required
301                                    libgig version. Read
302                                    <a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=29">this bug report</a>
303                                    about common mistakes and how you can fix them.
304                </p>
305    
306                          <p class="default">                          <p class="default">
307                                          &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>                                          &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>
308                                  <br>                                  <br>
# Line 228  Line 311 
311                                  linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with                                  linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
312                                  -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:                                  -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
313                  <br>                  <br>
314                                  <table class="default" border="0" cellpadding="1" cellspacing="5">              </p>
315                                          <tr>                          <pre class="code">CXXFLAGS="-O3" ./configure
                                         <td><pre class="code">1  
 2</pre>  
                                         </td>  
                                         <td width="100%">  
                                         <pre class="code">CXXFLAGS="-O3" ./configure  
316  make</pre>  make</pre>
317                                          </td>                          <p class="default">
                                         </tr>  
                                 </table>  
                                 <br>  
318                                  Alternatively you could also disable all hand-crafted assembly optimization code by:                                  Alternatively you could also disable all hand-crafted assembly optimization code by:
319                                  <table class="default" border="0" cellpadding="1" cellspacing="5">              </p>
320                                  <tr>                          <pre class="code">./configure --disable-asm
                                   <td><pre class="code">1  
 2</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">./configure --disable-asm  
321  make</pre>  make</pre>
322                                    </td>                          <p class="default">
323                                  </tr>                              but the latter is definitely not recommended, as it will increase CPU usage a lot!
                                 </table>  
                                 <br>  
                                 but the latter is definitely not recommended, as it will increase CPU usage a lot!  
324                          </p>                          </p>
325    
326                          <p class="default">                          <p class="default">
# Line 265  make</pre> Line 332  make</pre>
332                                  <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of                                  <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
333                                  linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.                                  linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
334                                  You can check this with:                                  You can check this with:
335                                  <table class="default" border="0" cellpadding="1" cellspacing="5">              </p>
336                                  <tr>                          <pre class="code">gcc --version
                                   <td><pre class="code">1  
 2</pre>  
                                   </&d>  
                                   <td width="100%">  
                                     <pre class="code">gcc --version  
337  g++ --version</pre>  g++ --version</pre>
338                                    </td>              <p class="default">
                                 </tr>  
                                 </table>  
339                                  In case you already got gcc and g++ of version 3.3 or higher                                  In case you already got gcc and g++ of version 3.3 or higher
340                                  installed and it still causes the compilation error mentioned                                  installed and it still causes the compilation error mentioned
341                                  above, try the following:                                  above, try the following:
342                                  <table class="default" border="0" cellpadding="1" cellspacing="5">              </p>
343                                  <tr>                          <pre class="code">export CC=`which gcc`
                                   <td><pre class="code">1  
 2</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">export CC=`which gcc`  
344  export CXX=`which g++`</pre>  export CXX=`which g++`</pre>
345                                    </td>              <p class="default">
                                 </tr>  
                                 </table>  
346                                  On certain systems however you still get this error in conjunction with older                                  On certain systems however you still get this error in conjunction with older
347                                  versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of                                  versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
348                                  linuxsampler are not affected anymore                                  linuxsampler are not affected anymore
# Line 311  export CXX=`which g++`</pre> Line 364  export CXX=`which g++`</pre>
364                                  The procedure for compiling from CVS is the same for all subprojects, that is no matter                                  The procedure for compiling from CVS is the same for all subprojects, that is no matter
365                                  if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to                                  if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to
366                                  have the autotools (automake, autoconf and libtool) installed and compile it that way:                                  have the autotools (automake, autoconf and libtool) installed and compile it that way:
367                                  <table class="default" border="0" cellpadding="1" cellspacing="5">                                  <pre class="code">make -f Makefile.cvs
                                 <tr>  
                                   <td><pre class="code">1  
 2  
 3</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">make -f Makefile.cvs  
368  ./configure  ./configure
369  make</pre>  make</pre>
                                   </td>  
                                 </tr>  
                                 </table>  
370                          </p>                          </p>
371    
372                          <a name="no_gui"></a>                          <a name="no_gui"></a>
# Line 335  make</pre> Line 378  make</pre>
378                                  a sampler session with QSampler, because the session files qsampler writes are actually                                  a sampler session with QSampler, because the session files qsampler writes are actually
379                                  real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the                                  real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the
380                                  following command:                                  following command:
381                                  <table class="default" border="0" cellpadding="1" cellspacing="5">              </p>
382                                  <tr>                          <pre class="code">netcat localhost 8888 &lt; yourscript.lscp</pre>
383                                    <td><pre class="code">1</pre>                          <p class="default">
384                                    </td>                  or on certain systems (like Debian) you have to provide the -t switch:
385                                    <td width="100%">              </p>
386                                      <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>                          <pre class="code">netcat -t localhost 8888 &lt; yourscript.lscp</pre>
387                                    </td>              <p class="default">
                                 </tr>  
                                 </table>  
                                 or on certain systems (like Debian) you have to provide the -t switch:  
                                 <table class="default" border="0" cellpadding="1" cellspacing="5">  
                                 <tr>  
                                   <td><pre class="code">1</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>  
                                   </td>  
                                 </tr>  
                                 </table>  
388                                  Of course you can also replace localhost by the IP address of the machine where                                  Of course you can also replace localhost by the IP address of the machine where
389                                  linuxsampler is running. Alternatively you can also make a telnet connection (port 8888)                                  linuxsampler is running. Alternatively you can also make a telnet connection (port 8888)
390                                  to linuxsampler's LSCP server and type commands manually.                                  to linuxsampler's LSCP server and type commands manually.
# Line 375  make</pre> Line 406  make</pre>
406                                  In order to achieve good results under Linux you need to have a                                  In order to achieve good results under Linux you need to have a
407                                  <a href="http://www.linuxdj.com/audio/lad/resourceslatency.php3">patched kernel</a>.                                  <a href="http://www.linuxdj.com/audio/lad/resourceslatency.php3">patched kernel</a>.
408                                  There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use.                                  There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use.
409                                  The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource                                  The <a href="http://jackaudio.org/faq">JACK FAQ site</a>
410                                    (or the <a href="http://jackit.sourceforge.net/docs/faq.php">old JACK FAQ site</a>)
411                                    is also a good resource for
412                                  how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for                                  how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for
413                                  libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run                                  libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run
414                                  LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot                                  LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
415                                  mlockall() memory" on the console, you are safe to run it as ordinary user as well.                                  mlockall() memory" on the console, you are safe to run it as ordinary user as well.
416                          </p>                          </p>
417    
418                            <a name="runtime_error"></a>
419                            <h3>LinuxSampler aborts at runtime with ... </h3>
420    
421                            <p class="default">
422                                    &bull;&nbsp;&nbsp;&nbsp;"<code>gig::Engine error: Failed to
423                                    load instrument, cause: Unknown exception while trying to
424                                    parse gig file.</code>"<br>
425                                    <br>
426                                    Usually LS gives you a meaningful error message in case it
427                                    failed to load an instrument. However there might be rare
428                                    cases where LS cannot resolve the reason and you get an
429                                    error message like above. In this case make sure security /
430                                    user limits aren't set too low. You can list your current
431                                    limits with:
432                            </p>
433                            <pre class="code">ulimit -a</pre>
434                            <p class="default">
435                                    Usually most of those settings are set to "unlimited" on
436                                    most boxes. If this is not the case on yours, make sure that
437                                    at least the limits for "max locked memory", "virtual
438                                    memory" and "data seg size" are sufficiently high enough.
439                                    The exact value depends on the instruments you want to load.
440                                    If your security policy allows it, you could simply set
441                                    those limits to "unlimited" (see also config file
442                                    /etc/security/limits.conf and
443                                    <a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=41">bug report #41</a>).
444                </p>
445    
446                  </div>                  </div>
447                  </td></tr></table>                  </td></tr></table>
448    

Legend:
Removed from v.897  
changed lines
  Added in v.1586

  ViewVC Help
Powered by ViewVC