/[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 1469 by schoenebeck, Sun Nov 4 14:14:00 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.                                  the mailing list.<br>
128                          </p>                                  <br>
129                          <h3>Can I use LinuxSampler in commercial hardware or software products? </h3>                                  1.&nbsp;License<br>
130                                    &nbsp;&nbsp;&nbsp;&nbsp;1.1&nbsp;<a href="#commercial_products">Can I use LinuxSampler in commercial hardware or software products?</a><br>
131                                    &nbsp;&nbsp;&nbsp;&nbsp;1.2&nbsp;<a href="#commercial_music">Can I use LinuxSampler for commercial music production?</a><br>
132                                    &nbsp;&nbsp;&nbsp;&nbsp;1.3&nbsp;<a href="#open_source">LinuxSampler is not open source, you are evil!</a><br>
133                                    &nbsp;&nbsp;&nbsp;&nbsp;1.4&nbsp;<a href="#closed_source">Will LinuxSampler turn closed-source?</a><br>
134                                    &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                                    &nbsp;&nbsp;&nbsp;&nbsp;1.6&nbsp;<a href="#ls_breaking_libgig_license">Doesn't LinuxSampler illegally link against libgig?</a><br>
136                                    &nbsp;&nbsp;&nbsp;&nbsp;1.7&nbsp;<a href="#ls_breaking_license">Doesn't LinuxSampler illegally link against other libraries?</a><br>
137                                    2.&nbsp;General Questions<br>
138                                    &nbsp;&nbsp;&nbsp;&nbsp;2.1&nbsp;<a href="#aga">linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?</a><br>
139                                    &nbsp;&nbsp;&nbsp;&nbsp;2.2&nbsp;<a href="#no_gui">Can I use linuxsampler without a GUI as well?</a><br>
140                                    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                                    <br>
149                            </div>
150    
151                            <a name="commercial_products"></a>
152                            <h3>Can I use LinuxSampler in commercial hardware or software products?</h3>
153                          <p class="default">                          <p class="default">
154                          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
155                          COMMERCIAL hardware or software products without prior written authorization by the                          COMMERCIAL hardware or software products without prior written authorization by the
156                          <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>
157                            </p>
158    
159                            <a name="commercial_music"></a>
160                            <h3>Can I use LinuxSampler for commercial music production?</h3>
161                            <p class="default">
162                            Hell, yes! Every indirect commercial usage of LinuxSampler, which essentially means
163                            using its audio output, can of course be used in commercial applications like music
164                            productions, live shows, etc. Don't get us wrong, with the mentioned commercial
165                            exception we don't want to restrict the normal user / musician, we just want to avoid
166                            somebody to directly make money with our work, that is by selling our software in a
167                            sampler product like a sampler + sample library bundle, a hardware sampler or
168                            something equivalent, at least not without giving something back to the open source
169                            Community.
170                            </p>
171    
172                            <a name="open_source"></a>
173                            <h3>LinuxSampler is not open source, you are evil!</h3>
174                            <p class="default">
175                            There are of course many definitions of the term "open source", but according to the
176                            <a href="http://en.wikipedia.org/wiki/Open_source">definition on Wikipedia</a>
177                            LinuxSampler is in fact open source, since you've got complete access to its source
178                            code. So due to this fact, a normal user / musician is free to do with LinuxSampler
179                            what he likes to do, he can even adjust and tweak every single part of the software
180                            by modifying and compiling its source code. And just the fact that we want to avoid
181                            our work to be directly exploited in commercial software or hardware products is
182                            definitely not an "evil" intention. For the normal user / musician the commercial
183                            restriction is even an advantage, since that way commercial actors are forced to
184                            support this or another open source project either directly by coding or indirectly
185                            by funding and thus increase development speed.
186                            </p>
187    
188                            <a name="closed_source"></a>
189                            <h3>Will LinuxSampler turn closed-source?</h3>
190                            <p class="default">
191                            No, LinuxSampler will remain open source. Again, the commercial exception is just to
192                            prevent commercial exploitation by third parties that haven't contributed anything to
193                            open source projects.
194                            </p>
195    
196                            <a name="ls_license_change"></a>
197                            <h3>I've heard the commercial exception of LinuxSampler was added at a certain version?</h3>
198                            <p class="default">
199                            No, the commercial exception in LinuxSampler's license terms were there since day one.
200                            Even further it's not only there since the very first publicly available CVS
201                            (developer) version of LinuxSampler, that commercial exception was even already in
202                            Benno Senoner's proof of concept code called "EVO", which LinuxSampler was based on.
203                            There was even a rumour that we would have manipulated CVS history to "pretend" this
204                            exception wasn't added at a later point. Needless to say that this rumour is completely
205                            false as well. Think about it! We're a group of developers spread around the world who
206                            work on this project for fun and ideology in our spare time. Most of us contributed to
207                            various other open source / free software projects. Do you seriously think we would
208                            cheat on such an issue? Beside that you certainly find various people completely
209                            unrelated to this project who still have early versions of LinuxSampler and / or EVO
210                            and thus can confirm that this commercial exception was always there.
211                            </p>
212    
213                            <a name="ls_breaking_libgig_license"></a>
214                            <h3>Doesn't LinuxSampler illegally link against libgig?</h3>
215                            <p class="default">
216                            No! LinuxSampler does not "illegally" link against libgig, since the copyright holder
217                            (in this case of libgig) has all rights of his work and thus is not bound to his own
218                            license terms. The sole purpose of license terms is to grant other people certain
219                            rights to use the work.
220                            </p>
221    
222                            <a name="ls_breaking_license"></a>
223                            <h3>Doesn't LinuxSampler illegally link against other libraries?</h3>
224                            <p class="default">
225                            No, the only library LinuxSampler links to that has license restrictions regarding
226                            linking is libgig (<a href="#ls_breaking_libgig_license">see above</a>). Especially
227                            LinuxSampler does not break Qt's license terms, since it does not link against Qt at
228                            all.
229                            </p>
230    
231                          <h3>linuxsampler? qsampler? libgig? liblscp? hu?</h3>                          <a name="aga"></a>
232                            <h3>linuxsampler? qsampler? jsampler? gigedit? libgig? liblscp? jlscp? ... hu?</h3>
233                          <p class="default">                          <p class="default">
234                                  There are currently four subprojects in the LinuxSampler project; linuxsampler,                                  There are currently seven subprojects in the LinuxSampler project; jlscp, jsampler,
235                                  qsampler, libgig and liblscp. 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
236                                  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
237                                  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
238                                  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
239                                  locally from the same machine as well.                                  (of course) locally from the same machine as well. This decoupled /
240                                  qsampler is the first GUI frontend written for linuxsampler, it is written with the Qt                                  <a href="http://en.wikipedia.org/wiki/Backend">"backend"</a> design
241                                    of the sampler allows to run it even on a machine without any graphical interface,
242                                    without a Desktop, the machine doesn't even have to have a graphics card!
243                                    qsampler is the first <a href="http://en.wikipedia.org/wiki/Graphical_user_interface">GUI</a>
244                                    <a href="http://en.wikipedia.org/wiki/Frontend">frontend</a>
245                                    written for linuxsampler, it is written in C++ using the Qt
246                                  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
247                                  without modifications on the source code.                                  without modifications of the source code.
248                                  libgig is a C++ library written for loading Gigasampler files and DLS Level 1 and 2                                  gigedit is an instruments editor application for Gigasampler format files. You can
249                                  files. libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be                                  run it as stand-alone application or in conjunction with LinuxSampler. In the latter
250                                    case you can play and immediately hear all your modifications made with gigedit in
251                                    realtime.
252                                    libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2
253                                    files, that is for reading and (since version 3.0.0) also writing of those files.
254                                    libgig is used by linuxsampler to load Gigasampler files, it is used by gigedit to
255                                    load, modify and create new Gigasampler files and it <b>can</b> be
256                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp                                  used by qsampler to retrieve additional informations about Gigasampler files. liblscp
257                                  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
258                                  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 /
259                                  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
260                                  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
261                                    linuxsampler, it's written in Java and thus platform independent. jlscp is a library which
262                                    can be compared with liblscp, with the only difference that jlscp is written in Java and
263                                    liblscp in C. jsampler requires jlscp.
264    
265                          </p>                          </p>
266    
267                            <a name="install"></a>
268                          <h3>What do I need to compile and install?</h3>                          <h3>What do I need to compile and install?</h3>
269                          <p class="default">                          <p class="default">
270                                  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
271                                  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
272                                  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
273                                  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
274                                  compile and install is:                                  able to edit instruments, you should compile and install gigedit as well. The recommended
275                                    order to compile and install is:
276                                  <ol class="default">                                  <ol class="default">
277                                    <li>libgig</li>                                    <li>libgig</li>
278                                    <li>linuxsampler</li>                                    <li>linuxsampler</li>
279                                      <li>gigedit</li>
280                                    <li>liblscp</li>                                    <li>liblscp</li>
281                                    <li>qsampler</li>                                    <li>qsampler</li>
282                                  </ol>                                  </ol>
283                          </p>                          </p>
284                            <p class="default">
285                                    Of course you can also install QSampler and JSampler side by side. So you can test and use
286                                    both at the same time.
287                            </p>
288    
289                            <a name="compilarion_error"></a>
290                          <h3>Compilation of LinuxSampler aborts with ... </h3>                          <h3>Compilation of LinuxSampler aborts with ... </h3>
291    
292                          <p class="default">                          <p class="default">
293                                  "<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>                                  &bull;&nbsp;&nbsp;&nbsp;"<code>Required libgig version not found...</code>"<br>
294                                  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>
295                          </p>                                  This error might occur when running LinuxSampler's configure script. Make sure
296                          <table class="default" border="0" cellpadding="1" cellspacing="5">                                  you have the required libgig version installed. If you're compiling a CVS
297                                  <tr>                                  version of LinuxSampler you usually have to compile and install the current
298                                    <td><pre class="code">1                                  CVS version of libgig as well. Also note there are couple common mistakes which
299  2</pre>                                  let this error occur even after having compiled and installed the required
300                                    </td>                                  libgig version. Read
301                                    <td width="100%">                                  <a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=29">this bug report</a>
302                                      <pre class="code">CXXFLAGS="-O3" ./configure                                  about common mistakes and how you can fix them.
303                </p>
304    
305                            <p class="default">
306                                            &bull;&nbsp;&nbsp;&nbsp;"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br>
307                                    <br>
308                                    This is caused by the inline assembly code for
309                                    <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
310                                    linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
311                                    -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
312                    <br>
313                </p>
314                            <pre class="code">CXXFLAGS="-O3" ./configure
315  make</pre>  make</pre>
                                   </td>  
                                 </tr>  
                         </table>  
316                          <p class="default">                          <p class="default">
317                                  Alternatively you could also disable all hand-crafted assembly optimization code by:                                  Alternatively you could also disable all hand-crafted assembly optimization code by:
318                          </p>              </p>
319                          <table class="default" border="0" cellpadding="1" cellspacing="5">                          <pre class="code">./configure --disable-asm
                                 <tr>  
                                   <td><pre class="code">1  
 2</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">./configure --disable-asm  
320  make</pre>  make</pre>
                                   </td>  
                                 </tr>  
                         </table>  
321                          <p class="default">                          <p class="default">
322                                  but the latter is definitely not recommended!                              but the latter is definitely not recommended, as it will increase CPU usage a lot!
323                            </p>
324    
325                            <p class="default">
326                                    &bull;&nbsp;&nbsp;&nbsp;"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br>
327                                    <br>
328                                    This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>,
329                                    <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>)
330                                    to be a gcc/g++ version problem, in conjunction with the inline assembly code for
331                                    <a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of
332                                    linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
333                                    You can check this with:
334                </p>
335                            <pre class="code">gcc --version
336    g++ --version</pre>
337                <p class="default">
338                                    In case you already got gcc and g++ of version 3.3 or higher
339                                    installed and it still causes the compilation error mentioned
340                                    above, try the following:
341                </p>
342                            <pre class="code">export CC=`which gcc`
343    export CXX=`which g++`</pre>
344                <p class="default">
345                                    On certain systems however you still get this error in conjunction with older
346                                    versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of
347                                    linuxsampler are not affected anymore
348                                    (<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>).
349                          </p>                          </p>
350    
351                            <a name="cvs_checkout"></a>
352                          <h3>How do I checkout from CVS?</h3>                          <h3>How do I checkout from CVS?</h3>
353                          <p class="default">                          <p class="default">
354                                  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
355                                  <a href="downloads.html">Downloads</a> site.                                  <a href="downloads.html#cvs">Downloads</a> site and on the
356                                    <a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site
357                                    of our CVS server</a>.
358                          </p>                          </p>
359    
360                            <a name="compile_cvs"></a>
361                          <h3>How do I compile from CVS?</h3>                          <h3>How do I compile from CVS?</h3>
362                          <p class="default">                          <p class="default">
363                                  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
364                                  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
365                                  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:
366                          </p>                                  <pre class="code">make -f Makefile.cvs
                         <table class="default" border="0" cellpadding="1" cellspacing="5">  
                                 <tr>  
                                   <td><pre class="code">1  
 2  
 3</pre>  
                                   </td>  
                                   <td width="100%">  
                                     <pre class="code">make -f Makefile.cvs  
367  ./configure  ./configure
368  make</pre>  make</pre>
369                                    </td>                          </p>
                                 </tr>  
                         </table>  
370    
371                            <a name="no_gui"></a>
372                          <h3>Can I use linuxsampler without a GUI as well?</h3>                          <h3>Can I use linuxsampler without a GUI as well?</h3>
373                          <p class="default">                          <p class="default">
374                                  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).
375                                  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
376                                  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
377                          </p>                                  a sampler session with QSampler, because the session files qsampler writes are actually
378                          <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
379                                  <tr>                                  following command:
380                                    <td><pre class="code">1</pre>              </p>
381                                    </td>                          <pre class="code">netcat localhost 8888 &lt; yourscript.lscp</pre>
382                                    <td width="100%">                          <p class="default">
383                                      <pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre>                  or on certain systems (like Debian) you have to provide the -t switch:
384                                    </td>              </p>
385                                  </tr>                          <pre class="code">netcat -t localhost 8888 &lt; yourscript.lscp</pre>
386                          </table>              <p class="default">
                         <p class="default">  
387                                  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
388                                  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)
389                                  to linuxsampler's LSCP server and type commands manually.                                  to linuxsampler's LSCP server and type commands manually.
390                          </p>                          </p>
391    
392                            <a name="examples_lscp"></a>
393                          <h3>Are there example LSCP script files somewhere?</h3>                          <h3>Are there example LSCP script files somewhere?</h3>
394                          <p class="default">                          <p class="default">
395                                  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
396                                  common LSCP script examples. For details about LSCP read the                                  common LSCP script examples. For details about LSCP read the
397                                  <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
398                                  questions for details about LSCP on the mailing list.                                  questions for details about LSCP on the
399                                    <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>.
400                          </p>                          </p>
401    
402                          <a name="dropouts"></a>                          <a name="dropouts"></a>
# Line 263  make</pre> Line 405  make</pre>
405                                  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
406                                  <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>.
407                                  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.
408                                  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>
409                                    (or the <a href="http://jackit.sourceforge.net/docs/faq.php">old JACK FAQ site</a>)
410                                    is also a good resource for
411                                  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
412                                  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
413                                  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
414                                  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.
415                          </p>                          </p>
416    
417                  </div>                  </div>

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

  ViewVC Help
Powered by ViewVC