![LinuxSampler](gfx/lsbackground.jpg)
![LinuxSampler](gfx/lsbackground.jpg)
The LinuxSampler Project
@@ -111,6 +122,8 @@![screenshots](gfx/mscreenshots.png)
![demos](gfx/mdemos.png)
![download](gfx/mdownloads.png)
![donations](gfx/mdonations.png)
![support](gfx/msupport.png)
![developers](gfx/mdevelopers.png)
![faq](gfx/mfaq.png)
![documentation](gfx/mdocumentation.png)
![instruments](gfx/minstruments.png)
![links](gfx/mlinks.png)
![credits](gfx/mcredits.png)
FAQ
-+
+
+ 1. License
+ 1.1 Can I use LinuxSampler in commercial hardware or software products?
+ 1.2 Can I use LinuxSampler for commercial music production?
+ 1.3 LinuxSampler is not open source, you are evil!
+ 1.4 Will LinuxSampler turn closed-source?
+ 1.5 I've heard the commercial exception of LinuxSampler was added at a certain version?
+ 1.6 Doesn't LinuxSampler illegally link against libgig?
+ 1.7 Doesn't LinuxSampler illegally link against other libraries?
+ 2. General Questions
+ 2.1 linuxsampler? qsampler? jsampler? libgig? liblscp? jlscp? ... hu?
+ 2.2 Can I use linuxsampler without a GUI as well?
+ 3. Compilation / Installation
+ 3.1 What do I need to compile and install?
+ 3.2 Compilation of LinuxSampler aborts with ...
+ 3.3 How do I checkout from Subversion?
+ 3.4 How do I compile from Subversion?
+ 4. Setup
+ 4.1 Are there example LSCP script files somewhere?
+ 4.2 I get dropouts (click sounds, noise), what can I do about it?
+ 4.3 LinuxSampler aborts at runtime with ...
+
+
Can I use LinuxSampler in commercial hardware or software products?
++ You are NOT ALLOWED to use LinuxSampler source code, libraries or applications in + COMMERCIAL hardware or software products without prior written authorization by the + authors. See here +
+ + +Can I use LinuxSampler for commercial music production?
++ Hell, yes! Every indirect commercial usage of LinuxSampler, which essentially means + using its audio output, can of course be used in commercial applications like music + productions, live shows, etc. Don't get us wrong, with the mentioned commercial + exception we don't want to restrict the normal user / musician, we just want to avoid + somebody to directly make money with our work, that is by selling our software in a + sampler product like a sampler + sample library bundle, a hardware sampler or + something equivalent, at least not without giving something back to the open source + Community. +
+ + +LinuxSampler is not open source, you are evil!
++ There are of course many definitions of the term "open source", but according to the + definition on Wikipedia + LinuxSampler is in fact open source, since you've got complete access to its source + code. So due to this fact, a normal user / musician is free to do with LinuxSampler + what he likes to do, he can even adjust and tweak every single part of the software + by modifying and compiling its source code. And just the fact that we want to avoid + our work to be directly exploited in commercial software or hardware products is + definitely not an "evil" intention. For the normal user / musician the commercial + restriction is even an advantage, since that way commercial actors are forced to + support this or another open source project either directly by coding or indirectly + by funding and thus increase development speed. +
+ + +Will LinuxSampler turn closed-source?
++ No, LinuxSampler will remain open source. Again, the commercial exception is just to + prevent commercial exploitation by third parties that haven't contributed anything to + open source projects. +
+ + +I've heard the commercial exception of LinuxSampler was added at a certain version?
++ No, the commercial exception in LinuxSampler's license terms were there since day one. + Even further it's not only there since the very first publicly available CVS + (developer) version of LinuxSampler, that commercial exception was even already in + Benno Senoner's proof of concept code called "EVO", which LinuxSampler was based on. + There was even a rumour that we would have manipulated CVS history to "pretend" this + exception wasn't added at a later point. Needless to say that this rumour is completely + false as well. Think about it! We're a group of developers spread around the world who + work on this project for fun and ideology in our spare time. Most of us contributed to + various other open source / free software projects. Do you seriously think we would + cheat on such an issue? Beside that you certainly find various people completely + unrelated to this project who still have early versions of LinuxSampler and / or EVO + and thus can confirm that this commercial exception was always there. +
+ + +Doesn't LinuxSampler illegally link against libgig?
++ No! LinuxSampler does not "illegally" link against libgig, since the copyright holder + (in this case of libgig) has all rights of his work and thus is not bound to his own + license terms. The sole purpose of license terms is to grant other people certain + rights to use the work. +
+ + +Doesn't LinuxSampler illegally link against other libraries?
++ No, the only library LinuxSampler links to that has license restrictions regarding + linking is libgig (see above). Especially + LinuxSampler does not break Qt's license terms, since it does not link against Qt at + all.
-linuxsampler? qsampler? libgig? liblscp? hu?
+ +linuxsampler? qsampler? jsampler? gigedit? libgig? liblscp? jlscp? ... hu?
- There are currently four subprojects in the LinuxSampler project; linuxsampler, - qsampler, libgig and liblscp. linuxsampler is the core of the sampler, it includes the + There are currently seven subprojects in the LinuxSampler project; jlscp, jsampler, + libgig, liblscp, linuxsampler, gigedit and qsampler. linuxsampler is the core of the sampler, it includes the sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any - user interface. It offers a network server (LSCP server) to allow to be controlled by - an arbitrary user frontend from an arbitrary place over a netwrok connection or - locally from the same machine as well. - qsampler is the first GUI frontend written for linuxsampler, it is written with the Qt + user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by + an arbitrary user frontend from an arbitrary place over a network connection or + (of course) locally from the same machine as well. This decoupled / + "backend" design + of the sampler allows to run it even on a machine without any graphical interface, + without a Desktop, the machine doesn't even have to have a graphics card! + qsampler is the first GUI + frontend + written for linuxsampler, it is written in C++ using the Qt GUI library and thus can be compiled for various architectures and operating systems - without modifications on the source code. - libgig is a C++ library written for loading Gigasampler files and DLS Level 1 and 2 - files. libgig is used by linuxsampler to load Gigasampler files and it can be + without modifications of the source code. + gigedit is an instruments editor application for Gigasampler format files. You can + run it as stand-alone application or in conjunction with LinuxSampler. In the latter + case you can play and immediately hear all your modifications made with gigedit in + realtime. + libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2 + files, that is for reading and (since version 3.0.0) also writing of those files. + libgig is used by linuxsampler to load Gigasampler files, it is used by gigedit to + load, modify and create new Gigasampler files and it can be used by qsampler to retrieve additional informations about Gigasampler files. liblscp is a C library written as a wrapper around the LSCP network protocol, thus to control linuxsampler. It was originally designed to be used on both sides, that is on server / backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now - 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 + linuxsampler, it's written in Java and thus platform independent. jlscp is a library which + can be compared with liblscp, with the only difference that jlscp is written in Java and + liblscp in C. jsampler requires jlscp. +
+What do I need to compile and install?
- You should compile and install at least linuxsampler. As a beginner you should - defintely as well compile and install qsampler, liblscp and libgig. qsampler is a - convenient GUI frontend for linuxsampler. qsampler depends on liblscp, so you have to - compile and install liblscp before starting to build qsampler. It is recommended to - install libgig as well, you don't have to actually because libgig is at the moment - statically included with linuxsampler, but qsampler can use it to retrieve - additional informations from Gigasampler files. + You should compile and install at least libgig and linuxsampler. As a beginner you should + definitely as well compile and install a convenient GUI frontend like either qsampler or + jsampler, whatever you prefer. qsampler depends on liblscp, so you have to + compile and install liblscp before starting to build qsampler. Also if you like to be + able to edit instruments, you should compile and install gigedit as well. The recommended + order to compile and install is: +
-
+
- libgig +
- linuxsampler +
- gigedit +
- liblscp +
- qsampler +
+ Of course you can also install QSampler and JSampler side by side. So you can test and use + both at the same time.
-How do I checkout from CVS?
+ +Compilation of LinuxSampler aborts with ...
+
- The procedure of checking out the newest version from CVS is described on the
- Downloads site.
+ • "Required libgig version not found...
"
+
+ This error might occur when running LinuxSampler's configure script. Make sure
+ you have the required libgig version installed. If you're compiling a Subversion
+ version of LinuxSampler you usually have to compile and install the current
+ Subversion version of libgig as well. Also note there are couple common mistakes
+ which let this error occur even after having compiled and installed the required
+ libgig version. Read
+ this bug report
+ about common mistakes and how you can fix them.
+
+ • "can't find a register in class `GENERAL_REGS' while reloading `asm'
"
+
+ This is caused by the inline assembly code for
+ SIMD optimization in older versions of
+ linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with
+ -O2 or -O3 to avoid this problem. Usually this is done by default, if not try:
+
+
CXXFLAGS="-O3" ./configure +make+
+ Alternatively you could also disable all hand-crafted assembly optimization code by: +
+./configure --disable-asm +make+
+ but the latter is definitely not recommended, as it will increase CPU usage a lot!
-How do I compile from CVS?
- The procedure for compiling from CVS is the same for all subprojects, that is no matter
- if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you have to
- have the autotools (automake, autoconf and libtool) installed and compile it that way:
+ • "../common/Resampler.h:142: error: memory input 2 is not directly addressable
"
+
+ This was reported (1,
+ 2)
+ to be a gcc/g++ version problem, in conjunction with the inline assembly code for
+ SIMD optimization in older versions of
+ linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed.
+ You can check this with:
+
gcc --version +g++ --version+
+ In case you already got gcc and g++ of version 3.3 or higher + installed and it still causes the compilation error mentioned + above, try the following: +
+export CC=`which gcc` +export CXX=`which g++`+
+ On certain systems however you still get this error in conjunction with older + versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of + linuxsampler are not affected anymore + (read this for details). +
+ + +How do I checkout from Subversion?
++ The procedure of checking out the newest version from Subversion is described on the + Downloads site and on the + web interface site + of our Subversion server.
-Can I use linuxsampler without a GUI as well?
- Yes, but unfortunately there is no console based frontend frontend for linuxsampler (yet). - You have to write LSCP scripts and send it to the running linuxsampler application. - You can send a LSCP script to linuxsampler on the console with the following command: -
-1- |
-
- cat yourscript.lscp | netcat -t localhost 8888- |
-
netcat localhost 8888 < yourscript.lscp
+ or on certain systems (like Debian) you have to provide the -t switch: +
+netcat -t localhost 8888 < yourscript.lscp+
Of course you can also replace localhost by the IP address of the machine where linuxsampler is running. Alternatively you can also make a telnet connection (port 8888) to linuxsampler's LSCP server and type commands manually.
- +Are there example LSCP script files somewhere?
Yes, have a look on the Documentation site for some common LSCP script examples. For details about LSCP read the LSCP reference. Be welcome to ask - questions for details about LSCP on the mailing list. + questions for details about LSCP on the + mailing list.
@@ -220,13 +443,49 @@ In order to achieve good results under Linux you need to have a patched kernel. There are different patches available depending on what version (2.4.x or 2.6.x) of kernel you use. - The JACK FAQ site is also a good resource + The JACK FAQ site + (or the old JACK FAQ site) + is also a good resource for how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run - LinuxSampler with root priviliges (support for libcap is planned though). As a rule of thumb: if - you don't get warnings like "cannot mlockall() memory" you are safe to run it as ordinary user as well. + LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot + mlockall() memory" on the console, you are safe to run it as ordinary user as well. + +LinuxSampler aborts at runtime with ...
++ Note: For Windows specific runtime errors, please have a + look at the + Trouble Shooting section of + the LinuxSampler Windows HOWTO. +
+ +
+ • "gig::Engine error: Failed to
+ load instrument, cause: Unknown exception while trying to
+ parse gig file.
"
+
+ Usually LS gives you a meaningful error message in case it
+ failed to load an instrument. However there might be rare
+ cases where LS cannot resolve the reason and you get an
+ error message like above. In this case make sure security /
+ user limits aren't set too low. You can list your current
+ limits with:
+
ulimit -a+
+ Usually most of those settings are set to "unlimited" on + most boxes. If this is not the case on yours, make sure that + at least the limits for "max locked memory", "virtual + memory" and "data seg size" are sufficiently high enough. + The exact value depends on the instruments you want to load. + If your security policy allows it, you could simply set + those limits to "unlimited" (see also config file + /etc/security/limits.conf and + bug report #41). +
+