LinuxSampler - modular, streaming capable sampler

Copyright (C) 2003, 2004 by Benno Senoner (benno@gardena.net)
              and Christian Schoenebeck (cuse@users.sourceforge.net)
Copyright (C) 2005 - 2021 Christian Schoenebeck


License
-------

The LinuxSampler library (liblinuxsampler) and its applications are
distributed under the terms of the GNU General Public License (see COPYING
file), but with the EXCEPTION that they may NOT be used in COMMERCIAL
software or hardware products without prior written authorization by the
authors.

Also note that liblinuxsampler and its applications are linking against
other libraries; respect their licenses as well!


Description
-----------

LinuxSampler is sampler backend, thus server-like console application. It
provides a TCP based network interface with a custom ASCII based protocol
called "LSCP" to control the sampler and manage sampler sessions. You either
have to send commands manually to LinuxSampler, e.g. by connecting via
'telnet' or by using 'netcat' or you might want to use a graphical user
interface (frontend) like QSampler (C++/Qt based) or JSampler (Java based).

For more information visit http://www.linuxsampler.org/documentation.html


Requirements on Linux
---------------------

    o At least a C++14 compliant compiler for building from source.
    o A low latency enabled kernel
      (see http://www.linuxsampler.org/faq.html#dropouts).
    o At least one supported MIDI input system (i.e. ALSA, JACK, CoreMIDI or
      MidiShare) and at least one support audio output system (i.e. ALSA,
      JACK or ARTS) have to be installed, along with their respective
      development (header) files.
    o libgig and its development (header) files for loading Gigasampler
      format files.
    o libtool
    o If you are compiling from CVS you need to have the autotools installed
      (autoconf, automake (>= 1.5)).
    o If you want to generate the liblinuxsampler API documentation you
      need to have Doxygen installed.


Compiling on Linux
------------------

    a) Compiling and installing directly

    The general procedure by calling './configure && make' on the source's
    toplevel directory will compile and 'make install' as root will install
    LinuxSampler on your system.

    Note: if you are compiling from CVS you have to explicitly call
          'make -f Makefile.cvs' before doing the above procedure. This will
          generate all autotools managed build files.

    LinuxSampler itself is a library called liblinuxsampler. You can
    generate the API documenation for liblinuxsampler by explicitly calling
    'make docs'.


    b) Creating Debian packages

    Simply calling 'dpkg-buildpackage -rfakeroot -b' from the source's
    toplevel directory will compile and build the Debian binary package.
    The Debian package will be placed one directory above the source's
    toplevel directory (thus ../).


    c) Creating Redhat packages

    You need to have the rpmbuild tool installed and properly configured to
    create RPM packages. To create the RPM packages do the following:

    * Get .spec file generated by ./configure and edit it as appropriate.

    * Copy the source tarball to "/usr/src/<rpmdir>/SOURCES" directory,
      where <rpmdir> is dependent to the system you are using. For SuSE
      <rmpdir> will be "packages", for Mandrake <rpmdir> is "RPM" and for
      Redhat / Fedora <rpmdir> always equals "redhat".

    * Build the rpm(s) by invoking 'rpmbuild -bb <specfile>' from the
      command line.

    On success, the resulting rpm(s) can usually be found under the proper
    "/usr/src/<rpmdir>/RPMS/<arch>" directory.


Compilation on OSX
------------------

    Please read osx/README.osx for detailed instructions about how to
    compile the sampler for Mac OSX.

Test Cases
----------

    There are automated test cases against core elements of the sampler,
    which allow you to check the beheaviour of the sampler on your system.
    These test cases are not compiled by default:

    o Make sure cppunit is installed on your system.

    o Run 'make tests' from the toplevel source directory to compile the
      test cases.

    o Run the test cases with 'src/testcases/linuxsamplertest'.

