/[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 703 by schoenebeck, Wed Jul 20 10:33:22 2005 UTC revision 897 by schoenebeck, Sun Jul 2 17:39:28 2006 UTC
# Line 124  Line 124 
124                          <h2>FAQ</h2>                          <h2>FAQ</h2>
125                          <p class="default">                          <p class="default">
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.                                  the mailing list.<br>
128                                    <br>
129                                    <a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>
130                                    <a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>
131                                    <a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>
132                                    <a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
133                                    <a href="#install">What do I need to compile and install?</a><br>
134                                    <a href="#compilarion_error">Compilation of LinuxSampler aborts with ...</a><br>
135                                    <a href="#cvs_checkout">How do I checkout from CVS?</a><br>
136                                    <a href="#compile_cvs">How do I compile from CVS?</a><br>
137                                    <a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>
138                                    <a href="#examples_lscp">Are there example LSCP script files somewhere?</a><br>
139                                    <a href="#dropouts">I get dropouts (click sounds, noise), what can I do about it?</a><br>
140                          </p>                          </p>
141                          <h3>Can I use LinuxSampler in commercial hardware or software products? </h3>  
142                            <a name="commercial_products"></a>
143                            <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
144                          <p class="default">                          <p class="default">
145                          You are NOT ALLOWED to use LinuxSampler source code, libraries or applications in                          You are NOT ALLOWED to use LinuxSampler source code, libraries or applications in
146                          COMMERCIAL hardware or software products without prior written authorization by the                          COMMERCIAL hardware or software products without prior written authorization by the
147                          <a href="developers.html">authors</a>. <A HREF="downloads.html">See here</A>                          <a href="developers.html">authors</a>. <A HREF="downloads.html">See here</A>
148                            </p>
149    
150                            <a name="commercial_music"></a>
151                            <h3>Can I use LinuxSampler for commercial music production?</h3>
152                            <p class="default">
153                            Hell, yes! Every indirect commercial usage of LinuxSampler, which essentially means
154                            using its audio output, can of course be used in commercial applications like music
155                            productions, live shows, etc. Don't get us wrong, with the mentioned commercial
156                            exception we don't want to restrict the normal user / musician, we just want to avoid
157                            somebody to directly make money with our work, that is by selling our software in a
158                            sampler product like a sampler + sample library bundle, a hardware sampler or
159                            something equivalent, at least not without giving something back to the open source
160                            Community.
161                            </p>
162    
163                          <h3>linuxsampler? qsampler? libgig? liblscp? hu?</h3>                          <a name="open_source"></a>
164                            <h3>LinuxSampler is not open source, you are evil!</h3>
165                          <p class="default">                          <p class="default">
166                                  There are currently four subprojects in the LinuxSampler project; linuxsampler,                          There are of course many definitions of the term "open source", but according to the
167                                  qsampler, libgig and liblscp. linuxsampler is the core of the sampler, it includes the                          <a href="http://en.wikipedia.org/wiki/Open_source">definition on Wikipedia</a>
168                            LinuxSampler is in fact open source, since you've got complete access to its source
169                            code. So due to this fact, a normal user / musician is free to do with LinuxSampler
170                            what he likes to do, he can even adjust and tweak every single part of the software
171                            by modifying and compiling its source code. And just the fact that we want to avoid
172                            our work to be directly exploited in commercial software or hardware products is
173                            definitely not an "evil" intention. For the normal user / musician the commercial
174                            restriction is even an advantage, since that way commercial actors are forced to
175                            support this or another open source project either directly by coding or indirectly
176                            by funding and thus increase development speed.
177                            </p>
178    
179                            <a name="aga"></a>
180                            <h3>linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</h3>
181                            <p class="default">
182                                    There are currently six subprojects in the LinuxSampler project; jlscp, jsampler,
183                                    libgig, liblscp, linuxsampler and qsampler. linuxsampler is the core of the sampler, it includes the
184                                  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
185                                  user interface. It offers 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
186                                  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
187                                  locally from the same machine as well.                                  locally from the same machine as well.
188                                  qsampler is the first GUI frontend written for linuxsampler, it is written with the Qt                                  qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt
189                                  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
190                                  without modifications on the source code.                                  without modifications of the source code.
191                                  libgig is a C++ library written for loading Gigasampler files and DLS Level 1 and 2                                  libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
192                                  files. libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be                                  files, that is for reading and (since version 3.0.0) also writing of those files.
193                                    libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be
194                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp
195                                  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
196                                  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 /
197                                  backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now                                  backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now
198                                  only used on client side by qsampler at the moment.                                  only used on client side by qsampler at the moment. jsampler is another GUI frontend for
199                                    linuxsampler, it's written in Java and thus platform independent. jlscp is a library which
200                                    can be compared with liblscp, with the only difference that jlscp is written in Java and
201                                    liblscp in C. jsampler requires jlscp.
202    
203                          </p>                          </p>
204    
205                            <a name="install"></a>
206                          <h3>What do I need to compile and install?</h3>                          <h3>What do I need to compile and install?</h3>
207                          <p class="default">                          <p class="default">
208                                  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
209                                  definitely as well compile and install liblscp and qsampler. qsampler is a                                  definitely as well compile and install a convenient GUI frontend like either qsampler or
210                                  convenient GUI frontend for linuxsampler. qsampler depends on liblscp, so you have to                                  jsampler, whatever you prefer. qsampler depends on liblscp, so you have to
211                                  compile and install liblscp before starting to build qsampler. The recommended order to                                  compile and install liblscp before starting to build qsampler. The recommended order to
212                                  compile and install is:                                  compile and install is:
213                                  <ol class="default">                                  <ol class="default">
# Line 167  Line 218 
218                                  </ol>                                  </ol>
219                          </p>                          </p>
220    
221                            <a name="compilarion_error"></a>
222                          <h3>Compilation of LinuxSampler aborts with ... </h3>                          <h3>Compilation of LinuxSampler aborts with ... </h3>
223                          <p class="default">                          <p class="default">
224                                  "<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>
225                                  This is caused by the inline assembly code for SIMD optimization. You currently have to compile LinuxSampler with -O2 or -O3 to avoid this problem. Usually this done by default, if not try:                                  <br>
226                          </p>                                  This is caused by the inline assembly code for
227                          <table class="default" border="0" cellpadding="1" cellspacing="5">                                  <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
228                                    linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
229                                    -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
230                    <br>
231                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
232                                            <tr>
233                                            <td><pre class="code">1
234    2</pre>
235                                            </td>
236                                            <td width="100%">
237                                            <pre class="code">CXXFLAGS="-O3" ./configure
238    make</pre>
239                                            </td>
240                                            </tr>
241                                    </table>
242                                    <br>
243                                    Alternatively you could also disable all hand-crafted assembly optimization code by:
244                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
245                                  <tr>                                  <tr>
246                                    <td><pre class="code">1                                    <td><pre class="code">1
247  2</pre>  2</pre>
248                                    </td>                                    </td>
249                                    <td width="100%">                                    <td width="100%">
250                                      <pre class="code">CXXFLAGS="-O3" ./configure                                      <pre class="code">./configure --disable-asm
251  make</pre>  make</pre>
252                                    </td>                                    </td>
253                                  </tr>                                  </tr>
254                          </table>                                  </table>
255                          <p class="default">                                  <br>
256                                  Alternatively you could also disable all hand-crafted assembly optimization code by:                                  but the latter is definitely not recommended, as it will increase CPU usage a lot!
257                          </p>                          </p>
258                          <table class="default" border="0" cellpadding="1" cellspacing="5">  
259                            <p class="default">
260                                    &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
261                                    <br>
262                                    This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>,
263                                    <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>)
264                                    to be a gcc/g++ version problem, in conjunction with the inline assembly code for
265                                    <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
266                                    linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
267                                    You can check this with:
268                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
269                                    <tr>
270                                      <td><pre class="code">1
271    2</pre>
272                                      </&d>
273                                      <td width="100%">
274                                        <pre class="code">gcc --version
275    g++ --version</pre>
276                                      </td>
277                                    </tr>
278                                    </table>
279                                    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                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
283                                  <tr>                                  <tr>
284                                    <td><pre class="code">1                                    <td><pre class="code">1
285  2</pre>  2</pre>
286                                    </td>                                    </td>
287                                    <td width="100%">                                    <td width="100%">
288                                      <pre class="code">./configure --disable-asm                                      <pre class="code">export CC=`which gcc`
289  make</pre>  export CXX=`which g++`</pre>
290                                    </td>                                    </td>
291                                  </tr>                                  </tr>
292                          </table>                                  </table>
293                          <p class="default">                                  On certain systems however you still get this error in conjunction with older
294                                  but the latter is definitely not recommended!                                  versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
295                                    linuxsampler are not affected anymore
296                                    (<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>).
297                          </p>                          </p>
298    
299                            <a name="cvs_checkout"></a>
300                          <h3>How do I checkout from CVS?</h3>                          <h3>How do I checkout from CVS?</h3>
301                          <p class="default">                          <p class="default">
302                                  The procedure of checking out the newest version from CVS is described on the                                  The procedure of checking out the newest version from CVS is described on the
303                                  <a href="downloads.html">Downloads</a> site.                                  <a href="downloads.html#cvs">Downloads</a> site and on the
304                                    <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site
305                                    of our CVS server</a>.
306                          </p>                          </p>
307    
308                            <a name="compile_cvs"></a>
309                          <h3>How do I compile from CVS?</h3>                          <h3>How do I compile from CVS?</h3>
310                          <p class="default">                          <p class="default">
311                                  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
312                                  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
313                                  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:
314                          </p>                                  <table class="default" border="0" cellpadding="1" cellspacing="5">
                         <table class="default" border="0" cellpadding="1" cellspacing="5">  
315                                  <tr>                                  <tr>
316                                    <td><pre class="code">1                                    <td><pre class="code">1
317  2  2
# Line 225  make</pre> Line 323  make</pre>
323  make</pre>  make</pre>
324                                    </td>                                    </td>
325                                  </tr>                                  </tr>
326                          </table>                                  </table>
327                            </p>
328    
329                            <a name="no_gui"></a>
330                          <h3>Can I use linuxsampler without a GUI as well?</h3>                          <h3>Can I use linuxsampler without a GUI as well?</h3>
331                          <p class="default">                          <p class="default">
332                                  Yes, but unfortunately there is no console based frontend frontend for linuxsampler (yet).                                  Yes, but unfortunately there is no console based frontend for linuxsampler (yet).
333                                  You have to write LSCP scripts and send it to the running linuxsampler application.                                  You have to write LSCP scripts and send it to the running linuxsampler application. But
334                                  You can send a LSCP script to linuxsampler on the console with the following command:                                  don't worry, if you don't know how to write LSCP scripts, you can also start by saving
335                          </p>                                  a sampler session with QSampler, because the session files qsampler writes are actually
336                          <table class="default" border="0" cellpadding="1" cellspacing="5">                                  real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the
337                                    following command:
338                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
339                                    <tr>
340                                      <td><pre class="code">1</pre>
341                                      </td>
342                                      <td width="100%">
343                                        <pre class="code">cat yourscript.lscp | netcat localhost 8888</pre>
344                                      </td>
345                                    </tr>
346                                    </table>
347                                    or on certain systems (like Debian) you have to provide the -t switch:
348                                    <table class="default" border="0" cellpadding="1" cellspacing="5">
349                                  <tr>                                  <tr>
350                                    <td><pre class="code">1</pre>                                    <td><pre class="code">1</pre>
351                                    </td>                                    </td>
# Line 241  make</pre> Line 353  make</pre>
353                                      <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>                                      <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>
354                                    </td>                                    </td>
355                                  </tr>                                  </tr>
356                          </table>                                  </table>
                         <p class="default">  
357                                  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
358                                  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)
359                                  to linuxsampler's LSCP server and type commands manually.                                  to linuxsampler's LSCP server and type commands manually.
360                          </p>                          </p>
361    
362                            <a name="examples_lscp"></a>
363                          <h3>Are there example LSCP script files somewhere?</h3>                          <h3>Are there example LSCP script files somewhere?</h3>
364                          <p class="default">                          <p class="default">
365                                  Yes, have a look on the <a href="documentation.html">Documentation</a> site for some                                  Yes, have a look on the <a href="documentation.html">Documentation</a> site for some
366                                  common LSCP script examples. For details about LSCP read the                                  common LSCP script examples. For details about LSCP read the
367                                  <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask                                  <a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask
368                                  questions for details about LSCP on the mailing list.                                  questions for details about LSCP on the
369                                    <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
370                          </p>                          </p>
371    
372                          <a name="dropouts"></a>                          <a name="dropouts"></a>
# Line 266  make</pre> Line 378  make</pre>
378                                  The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource                                  The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource
379                                  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
380                                  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
381                                  LinuxSampler with root priviliges (support for libcap is planned though). As a rule of thumb: if                                  LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot
382                                  you don't get warnings like "cannot mlockall() memory" 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.
383                          </p>                          </p>
384    
385                  </div>                  </div>

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

  ViewVC Help
Powered by ViewVC