Jokosher testing on Ubuntu Dapper

Jokosher is an audio production tool, designed for multi-track recording, which runs under Linux. The primary design goal was ease of use. Jono today called for Jokosher testers, to iron out bugs in Jokosher for version 0.9.

The application has come a long way, and is kind of usable in its current incarnation (not currently suitable for the kind of music I do [electronica], which needs lots of low-level wave editing, sampling and looping, but I'm just putting in bug reports and feature requests). It is impressive what's been achieved so far, and I'd like to see it become more general-purpose, so I can use it for my own audio production. I had got 0.2 working pretty easily, and submitted a few bug reports, then realised the team wouldn't be interested in that, and had probably fixed a load of the bugs. So I decided to bite the bullet and try it out properly from the latest version.

The biggest struggle is getting the thing installed. You're OK if you have a bleeding edge Ubuntu (Feisty) as it is packaged for that, but if you want to help with the testing, you'll need to get the CVS versions of Gstreamer and associated libraries, plus a checkout of Jokosher from Subversion. This turns out to be a bit of a pain, so here are some pointers if you're on an old Ubuntu (like me with Dapper). I won't replicate all the documentation here (there is a fine amount on the Jokosher userdocs website), but I'll try to summarise and provide pointers to the right places:

I got my instructions from http://userdocs.jokosher.org/InstallingCvsGstreamer and http://userdocs.jokosher.org/Installation. But here they are boiled down to the essentials (for Ubuntu Dapper):

# make a directory to put everything into
# (Gstreamer CVS, jokosher etc.)
mkdir ~/apps/jokosher
cd ~/apps/jokosher

# pull gstreamer (and associates) from CVS
mkdir gstreamer
mkdir gstreamer/head
cd gstreamer/head
cvs -d:pserver:anoncvs@anoncvs.freedesktop.org:/cvs/gstreamer co gstreamer \
gst-plugins-base gst-plugins-good gst-plugins-ugly gst-python gnonlin

# pull trunk jokosher from SVN
cd ~/apps/jokosher
svn checkout http://svn.jokosher.python-hosting.com/JonoEdit/trunk jokosher-trunk

# setup dependencies to build everything; NB there are a LOT of these: 
# this is just a list of the ones which have been identified, but there's a 
# chance there are others; you'll soon find out if the compilation step fails...
sudo apt-get install build-essential automake1.7 libtool libglib2.0-dev \
libxml2 liboil0.3-dev python-dev python-gtk2-dev bison flex libxml2-dev \
libgnomevfs2-dev libasound2-dev libspeex-dev libflac-dev libtag1-dev \
libhal-dev libogg-dev libvorbis-dev libid3tag0-dev libmad0-dev

# here's the tricky bit: getting a backport of liboil0.3.8, which 
# gst-plugins-base needs (Ubuntu Dapper has version 0.3.6 or something);
# note that I've done this rather recklessly, and hope it won't cause 
# horrendous clashes with other installed versions of liboil; 
# it doesn't complain, anyway
wget http://backports.org/debian/pool/main/libo/liboil/liboil0.3_0.3.8-0bpo1_...
wget http://backports.org/debian/pool/main/libo/liboil/liboil0.3-dev_0.3.8-0b...
sudo dpkg --install liboil0.3_0.3.8-0bpo1_i386.deb
sudo dpkg --install liboil0.3-dev_0.3.8-0bpo1_i386.deb

# setup a script which will run the CVS gstreamer alongside 
# any existing gstreamer you've installed
cp gstreamer/head/gstreamer/docs/faq/gst-uninstalled ./gst-head

# make it executable
chmod +x gst-head

# edit it: you need to change the line which starts MYGST so 
# it points to the directory ABOVE the head directory, where 
# you checked Gstreamer out; in my case:
#
# MYGST=$HOME/apps/jokosher/gstreamer

# create a script in ~/apps/jokosher/gstreamer/head called 
# build_all.sh to build all your gstreamer bobbins 
# from source, keeping it inside the ~/apps/jokosher directory; 
# it looks like this:

/* START SCRIPT */

#!/bin/bash
# build all the gstreamer stuff
for f in gstreamer liboil gst-plugins-base gst-plugins-good 
gst-plugins-ugly gst-python gnonlin; do
  cd $f
  echo "Building $f"
  make distclean
  rm -rf po
  cvs update -PAd
  ./autogen.sh
  make
  # don't do make install here, as this will trash existing libraries
  cd ..
done

/* END SCRIPT */

# make it executable
chmod +x ~/apps/jokosher/gstreamer/head/build_all.sh

# now we're ready to build
cd ~/apps/jokosher

# setup the build environment so everything points 
# at the right versions 
# of gstreamer etc.; 
# NB calling this drops you into ~/apps/jokosher/gstreamer/head
./gst-head

# and once there you can build everything with:
./build_all.sh

That does the building part. To run Jokosher once you've done all that:

cd ~/apps/jokosher
./gst-head
 ~/apps/jokosher/jokosher-trunk/Jokosher/Jokosher

This worked for me! I'm now ready to try out the delights of bleeding-edge Jokosher.

Comments

You should go find Dave.

He and I haven't talked much (I hadn't talked to him for a long while and when, briefly, he told me about what he was up to, I never got around to listening to what he sent me--I should ask for it, again) but Dave does music too.

Neat, huh?

I think I'll head off somewhere else, for now. Thank you very much for this experiences. It was refreshing. Have fun coding. (Another thing Dave loved to do. Heh)