Slackermedia
› Home
Downloads
Contact
Contribute

Links
Slackware
Slackbuilds
Slackbook
GNU
Linux

Klaatu's HOWTO's

Building a multimedia system on any OS is a precarious task; you want to maximize the flexibility, you want to have every tool available to you with as much integration as possible. You want the latest features, you want to understand the tools of the trade, and you want a solid system that is stable, powerful, and will, as they say, eat any and all media for lunch.

There are quite a few distributions of Linux geared toward multimedia. These might be good to sample available multimedia applications available on Linux, but typically if you are an artist then you have specific requirements, specific tools and combinations of tools that you prefer, and probably a unique workflow. The best solution is to build a custom environment for yourself and your work.

Slackware has long been known for its stability and flexibility. People use Slackware for everything from pocket distros (Slax) to servers, desktop systems, and even as a basis for building their own distributions (Wolvix, Zenwalk, and many others).

Building and distributing a multimedia distribution based on Slackware would go against the very idea of creating a completely customized multimedia distribution; so this article will be a "Text Based Distribution"; that is, a tutorial on how to build your own multimedia system upon a base Slackware install. Like the Linux-From-Scratch (LFS) project, part of the distro is the process of you creating it, and part of the power of creating your own distro is the ability to change things to suit your needs. The distro you end up with may well be quite different than the system described in this article, but that is why there are no .iso's for slackermedia gnu+linux.

  1. From the Ground Up
  2. Install Slackware and configure it for your machine. If you've never installed Slackware before, this article may or may not be a bit advanced for you. You will need to know how to get a comfortable, working Slackware system installed and configured; good resources for this are practice (it makes perfect), Alan Hicks's slackbook project and Jeremy's Linux Questions forum.

    This having been said, there are some hacks around having to install and configure Slackware the traditional way, such as downloading the cd iso for Zenwalk and installing it. This is a Slackware-based distribution which is essentially Slackware with a more GUI installer and configuration stage, and XFCE instead of KDE. There are no extra steps required to use traditional Slackware tools like slackpkg and sbopkg. Another such potential alternative is SLAMPP, which similarly does not use KDE by default but is fully compatible with all the usual Slackware tools and packages. While these may be easier for some to install, there may be less customization since you are relying on the distro to set up much of your environment, and building from source may or may not require additional steps such as obtaining kernel headers and development tools. Therefore, this hack around installing Slackware may require hacks around not having install Slackware, as it were; installing Slackware proper is encouraged.

  3. Multimedia User
  4. Once your Slackware system is installed and configured, you may want to create a multimedia user. This is by no means a required step but some might find it a convenient way to create a dedicated environment for multimedia work. This user might have, for instance, a fluxbox or xfce desktop to maximize system resources available for heavy multimedia applications, and a home folder organized specifically for their projects (a series of Samples or Synth Bank directories, for instance, or a directory dedicated to stock footage, and so on).

    To do this, simply invoke the adduser command and create your multimedia user. As that user, set your desktop environment with this command:

  5. Package Management
  6. Set up slackpkg by editing /etc/slackpkg/mirrors and choosing one (and only one) mirror from either the Slackware version you are running, or from Slackware-current to stay up-to-date with new additions to Slackware. Setting it to the Slackware version you are running is very safe and is the same as having a Slackware .iso ever-present in your drive from which you may install official Slackware packages should you ever need to do so. Using Slackware-current is less safe because your repository is now mirroring the latest additions Pat Volkerding and the Slackware team are posting in preparation for the next version. Slackware-current on a mission-critical system is generally considered bad policy.

    SlackBuilds.org has been a well-known and important part of Slackware for years now, and sbopkg is Chess Griffen's frontend for it. Sbopkg acts and feels very much like BSD's "ports" system, and makes installation of unofficial Slack Packages as easy as a few keystrokes. You should download the latest sbopkg package and install it:

    If you don't know already, learn to use sbopkg.

  7. Getting the Deps and Libs
  8. Many of the dependencies, libraries, and backend apps are already installed on a default Slackware install, and many others can be obtained easily and quickly via sbopkg. The question is whether or not you should build a given dependency or application from source code yourself.

    Building from source gives you the ability to build the application so that it has the features that you need, whereas relying on an unmodified Slackbuild or a prepackaged binary will not give you the same control over what you are installing.

    Armed with a little knowledge, gained from reading the README files in the code, or the slackbuild scripts from within sbopkg, it is safe to install most all libs and many dependencies from sbopkg or other sources, and other dependencies or major applications at your own discretion.

    Mind the order in which you install libraries and dependencies; if you attempt to install, for instance, Inkscape before you install gc or libsigc++ then the install will obviously fail since Inkscape depends on gc and libsig++, so sequence is important.

    The lists of libraries and dependencies can be, like the rest of Slackermedia, be divided into roughly-defined modules according to what kind of multimedia the system will be used to create. If harddrive space is not an issue, installing all dependencies and libraries is highly recommended.

    Please note that the queue files assume a full Slackware install. If you chose to install Zenwalk or SalixOS or SLAMPP or Wolvix instead of stock Slackware, there may be dependency issues, notably with:


    which are directly referenced as dependencies of some of the items included in the queue files. Resolve them via Slackpkg before attempting to use these sbopkg queue files.

    To use a queue file, copy the slackermedia-*.sqf to /var/lib/sbopkg/queues and then launch sbopkg. Select the queue option, load the appropriate queue, and then process the queue.

    huge
    All slackermedia deps and libs; everything from groups avg, av, vg, and a. Highly recommended.

    avg
    Deps and libs for Audio, Video, and Graphic Designers, and everyone else. In other words, everyone should install this group. Installs scons OpenAL freealut locale-gettext ftgl exiftool gtk-engines gtk-qt-engine wxGTK imlib2 giblib scrot fftw shorten icu4c cppunit lua podofo libdvdnav libdvdplay dvdauthor lsdvd

    av
    Deps and libs for Audio and Video creators. Requires sdl libvorbis libtheora, all included in a stock Slackware install. Installs yasm ladspa_sdk set_rlimits libmp4v2 faad2 faac libdv x264 libquicktime libsndfile twolame libsamplerate xvidcore libdca lame libmpeg2 liblo speex smpeg aften a52dec mjpegtools lv2core vorbisgain aacgain mp3gain swh-plugins ogmtools oggvideotools amrwb amrnb dirac schroedinger mplayer-codecs jack-audio-connection-kit qjackctl fluidsynth libdvdcss vobcopy

    vg
    Deps and libs for Video and Graphic creators. Requires exiv2, libkdcraw, libkipi, included in a stock Slackware install. Installs libdc1394 libopenraw openjpeg SDL_gfx gc gsl graphviz liblqr gimp-lqr-plugin gimpfx-foundry kipi-plugins lensfun dcraw ufraw gdk-pixbuf potrace qtpfsgui raw-thumbnailer unpaper libsigc++ glibmm cairomm pangomm gtkmm Cython pysetuptools lxml numpy inkscape

    a
    Deps and libs for Audio creators. Installs id3lib, id3v2, freepats, TiMidity++


    This gives you a solid foundation for a wide variety of more discipline-specific applications. Feel free to customize this base install as you see fit; you may not need so many video codecs, or you may opt for a different id3 tag editor, and so on. However, installing the above layer of dependencies and libraries prepares your system quite well for a more discipline-specific set of applications.

    A very robust Slackermedia install will involve over 50 packages from sbopkg and more to be built from source. The sbopkg queue file for all the packages listed on this site can be downloaded here and placed into /var/lib/sbopkg/queues/ and then loaded into sbopkg as a queue to process. Feel free to add to it or subtract from it as needed.

  9. Real-Time Kernel
  10. For audio and video content producers, it will probably be necessary to compile a custom, realtime kernel (also sometimes called an "RT Kernel"). There is a fairly dreadful mythology about compiling kernels, much less about patching it to have realtime functionality, but Slackware makes the process quite easy.

    To simplify the process, do not attempt to upgrade your kernel as well as patch it for realtime performance unless there is a clear need for an updated kernel. Otherwise, the source code for the Linux kernel that the current Slackware system is using can be found in /usr/src/linux and can be patched, recompiled, and used with realtime capabilities.

    To patch and compile the kernel:

    1. Determine what kernel release you are running.
      • uname -av
    2. Download the patch for the appropriate version of your kernel, accessible freely at rt.et.redhat.com/download to the /usr/src/linux directory:
      • su -c 'wget rt.et.redhat.com/download/patch-2.6.29.6-rt24.bz2 -P /usr/src/linux/'
    3. cd to the kernel source and apply the patch.
      • cd /usr/src/linux
      • su # and enter root password
      • bzip2 -d patch*bz2
      • patch -p1 < patch*rt24
      • make oldconfig
    4. The "make oldconfig" command serves two purposes; it inherits the configuration of your currently running kernel, as well as allows you to configure new options introduced by the patch. As these new options may vary from kernel version to kernel version, it is best to provide a general rule rather than exact responses to questions:
      1. DO accept the default responses most of the time
      2. DO NOT enable debugging
      3. DO select to enable pre-emptive realtime options
    5. It may or may not be necessary to run the "make menuconfig" command. This launches an ncurses-based, menu-driven list of possible options for your new kernel. The menu can be overwhelming, but as it starts off with your oldconfig as a foundation, you should feel free to look through the menu and disable code and modules for hardware that you know you do not have and do not anticipate needing. Alternately, if you know that you do have some piece of hardware and see that it is not included in your current configuration, you may choose to build that into the kernel or as a module.
      Even if you do not change anything about the menuconfig, it is a good idea to have a look at it, just to see what options are available in that monolith of code that runs your computer. You may also find, unfortunately, that you will need to revisit this menuconfig in the event that your new kernel does not boot, so getting accustomed to the layout might be helpful.
    6. Compile the kernel and its modules - note that slackbook.org has a typo when it covers this process, so it is being covered here:
      • make bzImage
      • make modules
      • mv /boot/vmlinuz /boot/vmlinuz.stock
      • cat arch/x86_64/boot/bzImage > /boot/vmlinuz # or arch/i386/boot/bzImage
      • mv /boot/System.map /boot/System.map.stock
      • cp System.map /boot/System.map
      • make modules_install
    7. The new kernel is now in place and its modules are installed. Still as root user, edit lilo.conf and run lilo to reflect the new topography of your system:
      • vim /etc/lilo.conf
      • Duplicate the current entry, but change the label to reflect that it will boot the realtime kernel, and change the vmlinuz reference in the stock kernel so that it points to vmlinux.stock rather than vmlinuz. In the end, you will have entries quite similar to this:
        image = /boot/vmlinuz
        root = /dev/sda1
        label = slackermedia
        read-only

        image = /boot/vmlinuz.stock
        root = /dev/sda1
        label = slackware
        read-only
      • lilo
    8. Reboot the machine and boot using the realtime kernel. It should boot as quickly or quicker (depending on how much customization you did in menuconfig) as the stock Slackware kernel. Once it has booted, an interface to assigning realtime priority must be installed.
    9. If the new kernel does not boot as expected, then it will most certainly provide errors during the boot process. Take note of the errors, reboot to with the stock kernel, and research what the errors mean. Typical errors are that the user has left some important code to be built as modules rather than building them into the kernel, or has removed some vital component of the kernel altogether in an effort to reduce its size. Research the issue, cd into /usr/src/linux and run as root "make clean", and then repeat the compile process. It will not be necessary to re-apply the patch; just run make menuconfig again to modify the settings, and recompile, cat the bzImage to the boot directory, make modules_install, run lilo, and reboot.

  11. Real-Time Priorities
  12. Now that the realtime kernel has been installed and boots as expected, an interface for the user to assign realtime priorities must be installed and implemented. The application is set_rlimits; there is a SlackBuild for it, so it can easily be installed via sbopkg.

    After installation, there will be a new file in /etc called set_rlimits.conf.new. It is well commented and the man page is well written. Re-name the set_rlimits.conf.new to set_rlimits.conf and edit it so that the @audio group has, roughly:


    and so on for each application you wish to elevate to higher realtime priorities.

    Note that this configuration will require that all important applications are launched via a terminal so that you can ensure that they are launched with realtime capability; that is, "set_rlimits qtractor" and "set_rlimits qjackctl" and so on. If this fits into your workflow, you may leave it as is. Otherwise you may wish to either edit the entries in your application menu so that the command being sent upon launching an application includes the set_rlimits prefix, or alias the applications in your .bashrc file, or however you wish to finesse the process of launching your realtime applications.

  13. Applications
  14. The system is now ready for the multimedia applications which the artist will use every day to create content. The set of applications can fairly well be separated into "modules" according to what artistic discipline the user intends to follow. There is no reason not to install all modules, but the modular approach allows the user to ignore discplines you have no interest in (ie, if you are a visual artist and have no need for a robust audio workstation, or if you are exclusively a musician and have no need for video or graphic tools.)

  15. Modules
  16. Audio Workstation

    Because Linux does not have a staff of musicians packaging sets of samples, synth banks, drum loops, and so on, it is up to the artist to create and/or compile the components of their art work. This means that either you should spend time gather together whatever raw materials you will require for your art, whether by creating your content or gathering it from outsides sources like freesound.org or Computer Music Magazine.

    Graphic Designer

    As with the music module, you will need to gather together your raw materials since, luckily, Linux does not come pre-packaged with a standardized set of pre-fabricated artistic components. Typically helpful for the graphic artist is a good set of fonts, which you should collect and back up for re-installs; many good free fonts can be found at dafont.com -- but check the licensing policy of each font as all are not necessarily free for all kinds of usage. Stock photography also often helps; a good resource is flickr which allows searches within various Creative Commons licensing schemes.

    Film and Video Editor

  17. Notes on Compiling
  18. Audacity

    Audacity is a time-honored and widely used free software audio editor, used by a staggering number of audio hobbyists and professionals alike. As such, it probably deserves to be compiled from source. Luckily, Chess Griffin's slackbuild for it applies all the right options although it does leave the soundtouch and twolame featuers optional. To ensure that soundtouch and/or twolame compatibility is compiled in, make sure that you have soundtouch and twolame support installed and the ./configure process should auto-detect the support and compile accordingly. You can also simply modify the slackbuild script so that support is definitely built in rather than left to auto-detection.

    The version of Audacity is extremely important, as well. Klaatu (of Hacker Public Radio and maintainer of Slackermedia) and monsterb (Debian user, of Linux Cranks) swear by version 1.3.8. Releases are frequent with Audacity, but not all releases are equal, and so you may want to find a good release and stay with it for as long as it continues to meet your needs. There are official "stable" releases as well.

    Chess Griffin's slackbuild is currently created for 1.3.7 but modifying the VERSION line in the slackbuild script to 1.3.8 and downloading the 1.3.8 source into the slackbuild directory with:

    will allow you to properly build and then install, in this case, 1.3.8 (substitute your favourite release if you prefer)

    You may also download the official Slackermedia Audacity power-user config file and place in your ~/.audacity-data directory for a better UI layout.

    Digikam

    Digikam is a direct competitor to powerful digital darkroom applications as well as to photo managers. It is fully featured, powerful, and has a rich plugin structure which enables even more features. Even if a graphic artist or photographer is happy using GIMP or Krita, digikam is an important tool for its workflow and image manipulation ability. Compilation is fairly simple, although it uses cmake rather than the usual ./configure && make && make install sequence. Instead, you first have the options to export key variables such as the location of the qt libraries you wish to use, and then issue ctmake with whatever options you feel are necessary, and then (as root) make install. Here is a sample:

    GIMP Brushes

    As of GIMP 2.4, GIMP can use Photoshop ABR brushes, so almost any website offering free brushes for image manipulation programs will have something to offer.

    Installing GIMP brushes is simple; to install them on a system-wide basis, move the brush files (*.gbr *.arb *.vbr etc) to the /usr/share/gimp/2.0/brushes/ directory. To install them only to your multimedia user, copy the files to that user's ~/.gimp-2.x/brushes directory.

    Fonts

    There are font packages available via sbopkg, and also these sites:

    To install fonts on a system-wide basis, the font files (usually *.ttf) should be copied to /usr/share/fonts/foobar where foobar is the type of font. Usually they are TTF fonts, so they are copied into /usr/share/fonts/TTF. Keeping this in mind, here is an example of installing a font, all done as root user:

    1. Copy TTF font to /usr/share/fonts/TTF
    2. cd /usr/share/fonts/TTF
    3. mkfontscale .
    4. mkfontdir .
    5. /usr/bin/fc-cache -f

    Ffmpeg

    ffmpeg is the backbone of many video-related applications from players to editors (and is in fact even both of these things in itself). For the most flexible system possible, ffmpeg should be intalled from source code. It's a big application with many of options and you will want to have control over whether these options are enabled or disabled. To learn about the options, read the ffmpeg compiling documentation found in the source code tarball, and then try ./configure --options

    A sample configuration of ffmpeg-0.5 for a diverse system:

    Blender

    Blender is a powerful application that you can use for graphics or video editing -- or both -- as well as motion graphics, game programming, desktop publishing, and quite a lot more. It is also very actively developed, with new features arriving fairly often. While there are pre-compiled binaries available on the blender.org site (and through sbopkg) for 32-bit and 64-bit systems, the binaries force you to use their version of ffmpeg which may not be the best version of ffmpeg for your needs.

    The compilation process of blender is not as complex as it might seem at first glance. On a default Slackware system, most of Blender's dependencies are already installed and there is no need for "development" versions of anything as there are on distributions like Fedora or Ubuntu.

    If you installed all of the dependencies (primarily for Blender: scons, openAL, ftgl, smpeg, and gettext) listed as the starting point for this multimedia version of Slackware, then the process is simple:

    Download the source code from their site. The development team offers you a stable release tarball as well as the development code from svn; you will want to go with the stable release. Untar the downloaded archive (tar -xzf blender-2.x.tar.gz), cd into blender-x.x/ and type scons. Yes, there is no ./configure && make && su -c 'make install' -- it's just "scons".

    The binary itself will be located in a directory called build/linux2/bin/ and will be called, of course, blender. You may move this executable file to whatever location is most convenient for you; such as /usr/local/bin.

    Unexpected errors are common enough to warrant a note about them. Blender is frequently developed, and building it from source will sometimes render a puzzling error. Chances are, of course, that someone before you has experienced the same error, so simply do an internet search on the error in order to find a solution or work-around. In 2.49b, for instance, there were issues with xvidcore, resulting in a nasm.inc error during compilation. An internet search would reveal a post in the Blender forum about the error, why it was happening, and the current workaround

    Errors do happen, but they needn't dissuade you from compiling important applications from source.

    Blender Plugins

    Blender has an extesible plugin architecture. While the video sequence editor appears somewhat under-featured at first glance, the addition of almost 50 "sequence plugins" make Blender a serious video editing application. Of course there are also plugins for the more common 3d Modeling functions of Blender ("Texture Plugins" and Python scripts). There are two good repositories for plugins:

    For the video editor: The plugins for the sequence editor include vital functions like blurs, alphamattes, chroma keys, wipes, image rotation, glow, iris, desaturation, and other fun things like lightsaber effects, lsd effect, warps, old movie emulation, old tv set emulation, strobes, stereograms, splins, splits, pixelation, colorizer, clockwipe, and more. These, combined with Blender's already built-in video sequence effects, result in few effects one cannot achieve as easily in Blender as any other "industry standard" video editing system.

    For the 3d Animators: The plugins for textures include important presets like scales, bricks, weaves, refraction, tiles, rings, dots, clouds, marble, water, and much more.

    Blender is not complete without these plugins, so go and download them. Installing the pre-compiled binaries is as simple as copying the .so files to a directory of your choice; you can define the location of your plugin directory in Blender's user preferences.

    LiVES

    LiVES is a Video Editing System. Once again, being built upon powerful free software like mplayer, mencoder, sox, and more, there are few formats it cannot support. It features a number of high quality realtime effects. The interface is unique but it is flexible enough to offer fairly conventional means of achieving results, as well. Klaatu's LiVES SlackBuild may be downloaded from slackbuilds.org or accessed via sbopkg.

    HandBrakeCLI

    HandBrakeCLI is a commandline DVD ripper that will read DVDs and convert the native muxed mpeg2 files to some other format, like Ogg Theora, x264, and others. It is one of the many invaluable tools for the video editor, who can typically expect to receive video from every imageinable source. The compilation is simple, but requires both yasm (an extra on the Slackware install disc) and jam (available via sbopkg). Similar to Blender, the build process results in a binary called HandBrakeCLI that should be moved to a more suitable location, like ~/bin or /usr/local/bin.

    Transcode

    Transcode is similar to ffmpeg but has some unique features, and is also a recommended dependency on some other major applications. Like ffmpeg, it has many options that you will want to ensure are enabled and others that can safely be left disabled. While there is a slackbuild for it, I find it better to compile from source. A sample ./configure invokation:

    Note that you may also want to include --enable-x264 depending on your needs.

    SoX

    As ffmpeg is to video, so SoX is to audio; therefore, to have maximum flexibility in your multimedia studio you will want to create a custom compile of SoX. Since SoX probably installed itself when you installed Slackware, first do:


    Then download the sox source code and compile. This is a good set of ./configure options:

    Note that if you are doing customization that differs from what Slackermedia does, then one of the "--with-foobar=dyn" options may cause your ./configure to exit with an error. This is probably because, for instance, you have defined "--with-flac=dyn" but you have no flac support on your system; either install flac (or whatever there is a problem with) or remove that option from your ./configure command.

    Synfig Studio

    Synfig Studio is a keyframe-based vector animation tool for Linux. Generally, it is similar to something like Flash or creating animated GIFs in Photoshop. Technically, it consists of two elements: synfig, the backend, and synfig studio, the GUI front end. In order to compile it, you first must install ETL, then synfig, and finally synfig studio. All of these packages are available via its project page. Note that also included on the project page are rpm packages for both 32bit and 64bit systems, so using Slackware's rpm2tgz utility may work as well.

    Compiling from source code requires nothing special, although on 64bit systems there may be confusion between /usr/local/lib and /usr/local/lib64 directories, which could cause compiling errors. Should this occur, define the appropriate paths with the --libdir=/usr/local/lib64 or --libdir=/usr/local/lib, and possibly set PKG_CONFIG_PATH as needed.

    Qtractor

    Qtractor is a Qt4-based multi-track audio editor with LADSPA (and, currently in svn, LV2), DSSI, and even VST support. It still claims to be alpha software, so you will want to give it a few test runs before integrating it into your production workflow, but Slackermedia's maintainer, Klaatu, has been using it for months to edit podcasts without incident.

    Compilation is a little complex for its multitude of options.

    It requires Qt4, JACK, ALSA, libsndfile, LADSPA (all available via slackpkg and sbopkg). Optional installs are libvorbis, libmad, libsamplerate, liblo -- again, all available via slackpkg or sbopkg. You may also choose to download and install:

    With so many options available to you, be sure to check the enabled options after ./configure has finished. Only if you have installed components to non-default locations should you need to define paths. Obviously, reading the documentation included with Qtractor would clarify extra configuration options.

    LADSPA, DSSI, and VST plug-in paths need to be defined in the actual application, but this should be fairly obvious to you when using the app.

    Soft Synths and Effects Explained

    Soft Synths are the software versions of the big and bulky synthesizers that electronic musicians used to use. The concept of using a synthesizer is simple if expressed in hardware terminology; if you have a recording device and a synthesizer, then you connect the synthesizer sound Out to the recorder's sound In, press record on the recording device and play on the synthesizer. If you want your music to be more complex, then you'll purchase an 4-track recorder, a mixer, and mulitiple synthesizers. To make it more automated, you'd use MIDI so that you can trigger sounds and pre-recorded phrases on cue.

    In the software world, the equivalent setup would be a good multi-track audio editor like Qtractor or Rosegarden (from sbopkg) and some soft synths. To record, then, you will start the qtractor application, add a new track, open the mixer window, and define the track as containing a plugin that is a synthesizer of your choice. The soft synth then appears onscreen as a plugin into qtractor, which you can then sequence and play and record.

    In the hardware world, we might have experienced issues with cable sizes (eight-inch connectors, quarter-inch connectors, mono vs stereo, and so on) or MIDI compatibility; in the software world we experience issues with soft synth plugin formats. Specifically, soft synths and effect units are created in a variety of different formats. For Qtractor, we have access to:

    VST is the most ubiquitous of soft synth formats and via a combination of Steinberg's VST SDK and Qtractor, you can have Linux-Native VST synths or effects on your Slackermedia machine. Note that the VST plugins must be Linux-Native, which are far fewer in number than Windows and Mac VST plugins, making the best support for soft synth and effects available via DSSI and LADSPA.

    Installing soft synths and effects is simple; find the synth or effect you want, download the source code, build and install. The default install location rarely needs to be altered. Then, in qtractor, go to View > Options > Plugins and define where all of your installed plugins are located in your system. The paths are usually /usr/local/lib or /usr/lib or /usr/lib64. Once these paths are defined, you will be presented with, when you create a track and insert a plugin, a list of auto-detected LADSPA, DSSI, and VST plugins that you may use on that track. The plugin may be a soft synth that you want to use to generate sound, or it may be an effect that you wish to process the track through. It may be a combination of both.

    Keep in mind as you search the internet for new synths and plugins that you are looking for DSSI or LADSPA plugins unless you intend to do quite a bit of hacking to get VST plugins to work. Also keep in mind that if you decide to use a stand-alone soft synth or effect, that they must be JACK-aware.

    Finding Soft Synth Plugins for Linux

    One source for good soft synths and effects is Planet CCRMA ("Planet Karma"), a well-maintained site that hosts audio software for Red Hat / Fedora / CentOS; this provides an exhaustive list of all the audio software available for Linux, a brief description of each application and its function, and even RPMs that could be utilized by Slackware's rpm2tgz for a quick and easy install.

    Outside of this, the usual Linux search locations apply.

    whySynth

    whySynth - In terms of instant gratification, this is one of the best. If you require a synth fully loaded with diverse pre-made patches, install this first. With over 200 synth sounds ready-to-use and a friendly interface, whySynth is the synth to install if all you want to do is get started making synth music on Linux.

    The interface for whySynth at first is simply a list of available patches; if you want to create new patches or edit current ones, you can select Edit > Edit Patch and you will be shown a full synthesizer interface.

    To install whySynth, download the source code from dssi.sourceforge.net and set the PKG_CONFIG_PATH:

    and then compile as usual with ./configure && make && su -c 'make install'

    Access it via qtractor or other DAW as a plugin for a MIDI track.

    Xsynth-DSSI

    Xsynth is part of the basis for whySynth but may require more setup than whySynth and, for those not familiar with synthesis may be overwhelmed by its interface. Installing it is the same as with whySynth.

    hexter

    Hexter is a Yamaha DX7 emulator that also can import native Yamaha DX7 patch files (many are available with a simple google search). The user interface is simple with more complex controls accessed via the "Edit" button on the synth itself. It comes pre-packaged with 70 patches and has moderate control over each. Installation is the same as whySynth. Be sure to read the README for links to sites with DX7 patches and information.

    nekobee-DSSI

    Nekobee is a simple synth for DSSI with modest controls. Installation is same as whySynth.

    Fluidsynth

    Fluidsynth is a command-line synthesizer that utilizes E-MU's Soundfont format. Soundfonts are a flexible format and provide high quality sounds to a variety of platforms. Because they can be used on a variety of platforms, there are many soundfonts available, many entirely free. In a sense, soundfonts are akin to sample banks, with Fluidsynth acting as your host and soundfont as the source of any variety of soundwave.

    Fluidsynth is available via sbopkg.

    Fluidsynth-DSSI

    There are two notable frontends for Fluidsynth: the plugin Fluidsynth-DSSI and the stand-alone Qsynth.

    Fluidsynth-DSSI is installed and used like all other DSSI plugins, while Qsynth requires further MIDI and Audio routing.

    Soundfonts

    In order to utilize Fluidsynth, Qsynth, or Fluidsynth-DSSI, you must have soundfonts on your system. Soundfonts are plentiful online, but unfortunately, like GIMP brushes and free fonts, there seems to be no central repository for them. This means that each artist must go online and hunt for soundfonts. So that you have to do this only once, it is advisable to archive all soundfonts you download.

    Soundfonts require no installation, as such. Simply unzip or unrar or untar the soundfonts that you download and place them in a directory somewhere on your system. They are loaded manually into Fluidsynth-DSSI by clicking the "Load Soundfont" button on Fluidsynth-DSSI's interface, and they are loaded manually into Qsynth via the Setup button.

    One good source of free soundfonts is Hammersound.net. This site merely lists soundfonts available and links to files hosted elsewhere, so some links will have expired, but hammersound.net remains an invaluable resource.

    Unfortunately, many of the Soundfonts available online are also compressed with the proprietary archiving tools sfArk and sfpack. For the former there is limited Linux support and for the latter there is none. However, a collection of most - if not all - of the free soundfonts available from Hammersound, already uncompressed and ready-to-use, has been posted online by Slackermedia user Hank Fields in the form of a torrent file. The download is under one gigabyte but contains over 350 soundfonts and well over 1000 sounds. Download and seed.

    Finding Effect Processors for Linux

    Effect processors are those devices (or in this case, software plugins) that take sound and process them to combine them with some effect, like reverb, a bitcrusher, echo, guitar amp emulator, and so on. They are often available separate from one another but typically it is more convenient to simply download a package of plugins.

    Steve Harris LADSPA Plugins

    This is perhaps the most ubiquitous package of plugins, featuring every effect imagineable. They are high quality plugins well worth downloading and installing. Install via sbopkg and find them in your DAW's LADSPA plugin window.

    Calf Plugins

    The Calf plugin set features common effects like delay, phaser, reverb, an organ synthesizer, and others. By default, it installs the plugins as both DSSI and LADSPA plugins, so no matter what DAW you are using you should see them as available plugins. As long as you have installed the Audio module of Slackermedia, then installation of Calf is a simple ./configure && make && su -c 'make install'

    Stand-Alone Synths

    Stand-alone synths exist outside of the Qtractor interface, and must be tied into the Qtractor workflow via JACK. The key to doing this successfully is to make sure that the stand-alone synth is JACK-aware, and knowing your MIDI drivers.

    To understand the specifics of using stand-alone synths in Qtractor, see the updated Qtractor User Manual. Here is a quick overview: start Qtractor (which in turn starts jackd), then start the stand-alone synth. Set the MIDI driver of the stand-alone synth to alsa_seq, the Slackware default MIDI driver. Make sure, via QJackCtl, that Alsa Sequencing is enabled (in the Misc tab). Load a soundfont and set the bank to something other than zero and populate its MIDI channels with the soundfonts you wish to use. Create a new MIDI track in Qtractor, setting the MIDI channel to whatever soundfont you want that track to speak to. Once the track appears in your workspace, right-click the track name and select Outputs and connect the Master MIDI output of Qtractor to the stand-alone synth. Now all MIDI data you enter into that track will trigger the stand-alone synth.

    Qsynth

    Qsynth, from the developer of QJackCtl and Qtractor itself, is a solid, intuitive, and attractive GUI frontend for Fluidsynth. It uses, therefore, soundfonts for its sound sources and therefore is almost endlessly diverse. From one Qsynth instance, you can create multiple Qsynth engines, and each engine may have a variety of soundfonts loaded into it.

    Get qsynth at qsynth.sourceforge.net. Installation is achieved with the standard ./configure && make && su -c 'make install' sequence. It depends upon fluidsynth, available via sbopkg.

    Linux Sampler

    The Linux Sampler is a stand-alone sampler as well as a DSSI, LV2, and Linux-native VST unit. It uses the GigaStudio sample format, used in many of the de facto soft sampler applications. The compile options are many, but the download page of linuxsampler.org provides a good guide on how to proceed.

    The source code for Linux Sampler consists of a minimum of two components (libgig and linuxsampler) with an option of using up to seven components. To compile it as a stand-aloen application as well as a DSSI and LV2 (the two free formats Qtractor supports) this is the order that the compilation must occur:

    The main source of trouble during compiling these components will most likely be the order in which everything is installed. The above order is correct, and should render no errors. Defining the PKG_CONFIG_PATH variable helps define the presence and version of libgig. As the download page of Linux Sampler says, Qsampler is independent of linuxsampler itself, just as jsampler is. Therefore, if you build the backend (libgig+linuxsampler+gigedit) then you can choose to download and install Qsampler and its dependency or Jsampler and its dependency, or both, or neither.

    The example above renders both a simple DSSI plugin immediately accessible via Qtractor, and a stand-alone application that can be utilized either independely or with a DAW (like Qtractor) via JACK -- the same as with Qsynth and other stand-alone sound generators.

    Sooper Looper

    Sooper Looper is a digital tape loop device, or a looping sampler. It requires JACK and, notably, a 1.2.x series libsigc++. Please note that libsigc++ 2.x which is available via Slackbuilds is not sufficient; a libsigc++ release in the 1.2.x series must be downloaded from the libsigc++ site and installed. It will co-exist peacefully with libsigc++ 2.x but it must be present for Sooper Looper to build.

    Aside from that, Sooper Looper builds relatively easily with ./configure && make && su -c 'make install' although depending on what it is set to, you may need to set PKG_CONFIG_PATH to /usr/local/lib

    Sooper Looper itself can be run on the command line or with a GUI. The command for the command line application is sooperlooper while the command for the gui application is slgui.

    Hydrogen

    Hydrogen is a software-based drum machine with the traditional pattern and song paradigms of traditional hardware sequencers. Creating custom drum kits is very easy, and the interface is both intuitive and powerful. Hydrogen is readily available for other operating systems, as well, so it has a good community surrounding it and a good repository of custom drum kits available via a dedicated sourceforge project page.

    Download the sourcecode from hydrogen-music.org and untar it. Compilation uses scons, which will be installed if you have done the basic installs recommended by Slackermedia. It also depends on zlib or libtar and liblrdf, all available via sbopkg.

    After all dependencies have been installed, run scons --help and verify that the configuration options are satisfactory. Then simply run scons, followed by su -c 'scons install' and hydrogen will be installed and ready to use.

    Using Hydrogen with a DAW, like Qtractor, is fairly trivial with QJackCtl; simply ensure that Hydrogen's MIDI driver is set to ALSA and then direct the DAW's master MIDI out to Hydrogen via the connection screen in QJackCtl.

more to come...