Building and installing JAMin. ALT Linux Master 2.4

1. Introduction
2. Installing from scratch
3. Installing for ALT Linux Master 2.4
4. Installing for Fedora Core 3

3.1. Easy installation

Because ALT Linux distros are based on APT4RPM (a port od Debian's dpkg/apt to RPM, done by Connectiva team), it's quite easy to install JAMin in this environment. If you're not planning to make your life difficult (i.e. interesting) and move to Sisyphus — a development tree/package repository, you might like first setting up your /etc/apt/sources.list so that it grabs both updates and contrib packages for ALT Linux Master 2.4. Open /etc/apt/sources.list in your favourite text editor and look for the following two strings:

rpm [alt] ftp://updates.altlinux.com Master/2.2/i586 updates		
rpm [alt] ftp://ftp.altlinux.com/pub/distributions/ALTLinux/Master/2.4 i586 contrib

If they are not present, add them (there should be no "#" character in the beginning of both strings) and run

sudo apt-get update

This will help apt to know, what new packages are available via updates and contrib repositories. Now run

sudo apt-get install jamin

Et voila! The most recent prebuilt version of JAMin will be installed in your system.

In case JAMin is currently not present in contrib, you will most likely have to install prerequisite software and build/install JAMin from sources yourself.

3.2. Prerequisite software

3.2.1. pkgconfig, automake, autoconf

Important note: all of the instructions in this document assume that you have setup your /etc/sudoers configuration file, so that you don't need to be logged as root (which is potentially dangerous) nad that all of installation CDs are added to /etc/apt/sources.list. Before you start building anything you will need some of a few development packages. In order to be able to build packages at all make sure you have installed rpm-build package. Then in console run:

sudo apt-get install pkgconfig automake_1.7 autoconf_2.5

[back to top]

3.2.2. ALSA

You need the following packages: kernel-modules-alsa-std-up, kernel-headers-alsa, libalsa, libalsa-devel, alsa-tools, alsa-utils.

sudo apt-get install kernel-modules-alsa-std-up kernel-headers-alsa libalsa libalsa-devel alsa-tools alsa-utils

apt-get may ask for a specific name of kernel-modules-alsa-std-up, because there can be several std kernels available to install.

If your system has no ALSA setup, here is an example of /etc/modules.conf section to configure a DSP24 card:

alias char-major-116 snd
alias char-major-14 soundcore

# ALSA portion
alias snd-card-0 snd-ice1712

# OSS/Free portion
alias sound-slot-0 ice1712

# OSS/Free portion - card #0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss        

This should be about the same for any single card. Just change the card type. There's a lot more specific information to be garnered by checking for your specific soundcard in the ALSA Soundcard Matrix. If you want to do things the easy way you can try the alsaconf utility. The only problem with that is that there isn't a full list of sound cards. In my case I can use the M-Audio Delta 1010 setup because I happen to know that it uses the same chipset as mine. I didn't have any problem doing it by hand though so it's up to you.

[back to top]

3.2.3. The GIMP Toolkit

GTK is the GIMP Tool Kit. GIMP is the GNU Image Manipulation Package (GNU is GNU's Not Unix;). Acronym hell. At any rate, in order to use JAMin (don't worry, we'll get there eventually) you need version 2 of GTK+. GTK+ has it's own list of prerequisites.

3.2.3.1. Glib

Directly from www.gtk.org — "GLib is the low-level core library that forms the basis of GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system." Install it:

sudo apt-get install glib2 glib2-devel

3.2.3.2. Pango

Again from www.gtk.org — "Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0."

sudo apt-get install libpango libpango-devel

3.2.3.3. ATK

Once more, from www.gtk.org — "The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices."

sudo apt-get install libatk libatk-devel

3.2.3.4 GTK+

One more time — "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites."

sudo apt-get install libgtk+2 libgtk+2-devel

[back to top]

3.2.4. libsndfile

The latest version of libsndfile is available from Erik de Castro Lopo's page at http://www.zip.com.au/~erikd/libsndfile. Download and do this:

sudo apt-get install libsndfile libsndfile-devel

[back to top]

3.2.5. FFTW

FFTW is the "Fastest Fourier Transform in the West". The FFTW package is available from http://www.fftw.org. Download version 3.X and do this:

sudo apt-get install libfftw3 libfftw3-devel

[back to top]

3.2.6. LADSPA

LADSPA stands for Linux Audio Developer's Simple Plugin API. It is available at http://www.ladspa.org. You will want to download the LADSPA SDK instead of just the LADSPA header file.

sudo apt-get install ladspa_sdk

This will also install some plugins in /usr/lib/ladspa.

[back to top]

3.2.7. SWH plugins

You will need Steve Harris' SWH plugins. Recent version of JAMin may require most recent version of Steve's LADSPA plug-ins. Get them from http://plugin.org.uk/. Here's the command sequence:

tar -xvzf swh-plugins-*.tar.gz
cd swh-plugins-*
./configure --prefix=/usr
sudo make install
cd ..		  

Note that these get installed in /usr, so before installing make sure you have removed previos build or RPM package. If you're willing to install Steve's plug-ins from distro, run

sudo apt-get install ladspa-swh-plugins

[back to top]

3.2.8. JACK

The JACK Audio Connection Kit is the glue that holds professional Linux audio applications together. JACK is a low latency audio server that provides a means of allowing multiple applications to use a system's sound hardware at the same time. It will also allow them to share audio among themselves. JACK is a requirement for JAMin. At the moment of writing there is no special need to get JACK from http://jackit.sourceforge.net and compile it yourself. All you really need is

sudo apt-get install libjack jackd jackit-devel jackit-utils

But if you really need most recent version of JACK, download the sources and

tar -xvzf jack-audio-connection-kit-*.tar.gz
cd jack-audio-connection-kit-*
./configure --prefix=/usr --enable-optimize
make
sudo make install		  

With given options JACK will be installed installing in /usr. In versions of JACK later than 0.70.4 you can possibly get some xrun relief by doing this:

sudo mkdir /mnt/ramfs
sudo cat >>/etc/fstab <<EOF
none       /mnt/ramfs      tmpfs      defaults  0 0
EOF		  

Then add --with-default-tmpdir=/mnt/ramfs to the JACK configure line when you build it. This may help with xruns, especially if your /tmp directory is on a reiserfs partition. The jury is still out on ext2/3.

[back to top]

3.2. JAMin

3.3.1. Downloading JAMin

JAMin is available as a tarball from http://sourceforge.net/projects/jamin. JAMin is a rapidly changing beast. Because of this you may want to get the JAMin software from CVS. If you decide to use CVS here are the commands to download JAMin:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/jamin login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/jamin co jamin        

When you are prompted for a password simply press Enter.

[back to top]

3.3.2. Building and installing JAMin

After downloading the tarball:

tar -xvzf jamin-*.tar.gz
cd jamin-*
./configure
make
sudo make install        

If you downloaded from CVS do the following:

cd jamin
./autogen.sh
./configure
make
sudo make install        

Notice that we didn't specify --prefix=/usr on the ./configure line. This is because JAMin is a program and it only needs to be in your path to run. You can put it in /usr if you want. Just remember to be consistent — do it the same way every time.

[back to top]

3.3.3. Configuring JAMin

JAMin has a single configuration file — jamin_ui. This file can be used to define GTK user interface customization. It is not required. There is an example loaded into ${prefix}/share/jamin/examples/jamin_ui when you do the make install. To customize that file, copy it to ~/.jamin/jamin_ui and make changes.

[back to top]