Building and installing JAMin. ALT Linux Master 2.4
1. Introduction2. 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
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.
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
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
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
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.
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
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.
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.
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.
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.