--- web/trunk/www.linuxsampler.org/faq.html 2006/07/01 16:57:08 894 +++ web/trunk/www.linuxsampler.org/faq.html 2006/07/01 16:57:37 895 @@ -134,29 +134,34 @@

linuxsampler? qsampler? libgig? liblscp? 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 six subprojects in the LinuxSampler project; jlscp, jsampler, + libgig, liblscp, linuxsampler 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 + 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 locally from the same machine as well. - 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 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. + 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) als writing of those files. + libgig is used by linuxsampler to load 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 libgig and linuxsampler. As a beginner you should - definitely as well compile and install liblscp and qsampler. qsampler is a - convenient GUI frontend for linuxsampler. qsampler depends on liblscp, so you have to + 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. The recommended order to compile and install is:

    @@ -169,24 +174,27 @@

    Compilation of LinuxSampler aborts with ...

    - "can't find a register in class `GENERAL_REGS' while reloading `asm'"
    - 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: -

    - - - + +
    1
    +					•   "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: +
    + + + - + - -
    1
     2
    -
    -
    CXXFLAGS="-O3" ./configure
    +					
    +
    CXXFLAGS="-O3" ./configure
     make
    -
    -

    +

    +
    Alternatively you could also disable all hand-crafted assembly optimization code by: -

    - +
    -
    1
     2
    @@ -196,18 +204,21 @@ make
    -

    + +
    but the latter is definitely not recommended, as it will increase CPU usage a lot!

    +

    - "../common/Resampler.h:142: error: memory input 2 is not directly addressable"
    + •   "../common/Resampler.h:142: error: memory input 2 is not directly addressable"
    +
    This was reported (1, 2) - to be a gcc/g++ version problem. Make sure you got gcc and g++, - both of version 3.3 or higher installed. You can check this with: -

    - + 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: +
    -
    1
     2
    @@ -217,13 +228,11 @@ 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: -

    - +
    -
    1
     2
    @@ -233,12 +242,19 @@ 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 CVS?

    The procedure of checking out the newest version from CVS is described on the - Downloads site. + Downloads site and on the + web interface site + of our CVS server.

    How do I compile from CVS?

    @@ -246,8 +262,7 @@ 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 need to have the autotools (automake, autoconf and libtool) installed and compile it that way: -

    - +
    -
    1
     2
    @@ -259,15 +274,28 @@
     make
    + +

    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: -

    - + Yes, but unfortunately there is no console based frontend for linuxsampler (yet). + You have to write LSCP scripts and send it to the running linuxsampler application. But + don't worry, if you don't know how to write LSCP scripts, you can also start by saving + a sampler session with QSampler, because the session files qsampler writes are actually + real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the + following command: +
    + + + + +
    1
    +
    +
    cat yourscript.lscp | netcat localhost 8888
    +
    + or on certain systems (like Debian) you have to provide the -t switch: + @@ -275,8 +303,7 @@
    cat yourscript.lscp | netcat -t localhost 8888
    -
    1
    -

    + 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. @@ -288,7 +315,8 @@ 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.

    @@ -300,8 +328,8 @@ The JACK FAQ site is also a good resource 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.