Mathias Linux Music Page
 

News
Introduction
Software Used
Pitfalls
Resources
The Results
Thanks

Hit no: 22792 since 031013

News

05-03-08 Ehehehh.... There's not much happening on this page, that's for sure. Watch out for the oooold info around here, everything is used on your own risk...
Mostly, I'm coding (at work or home) or sleeping or trying to make some music once in a while. Life is good, but tinnitus sucks. Wear ear-protection! The newest musical stuff can be found on the Computerville page. I haven't done all the music at that place.

MusE has become a really neat little beast. Hoping to be able to go to LAC in Karlruhe, Germany, in April.

03-11-06 New ideas up on the Lunar Shuttle Disaster page. MusE 0.6.2 released!

03-10-12 New mix of "Computerville" up on the Lunar Shuttle Disaster page.

03-10-11 Finally back! A long time ago, I was hacked, and in my attempts to reinstall everything I manage to fry my server. After that, I've gotten stuck in a programming project (on my spare time. what I do on the rest of the time is another story...). I've been working on improving the softsynth version of Fluidsynth for MusE (originally written by Bob Ham and others, but I guess I've rewritten most of it now). Mostly to help myself, but others will benefit of it as well, I hope, but now, finally, the same old stuff is up on a totally different place. Hope you'll find anything useful here.

03-08-03 Got the time to sit down and play a little. An alpha version of a tune that probably will be called "Little Girl" is up on the Lunar Shuttle Disaster page.

03-07-21 Mother nature threw a few lightning-bolts over our town resulting in a few fried switches, telephone-networks, [insert your favourite sensitive electronical equipment here], but we're up and running again.

Introduction

Welcome to Mathias Linux Music Page. I like music, and Linux, and when combining those two the result can actually be quite enjoyable. Of course, a whole bunch of software is needed to produce anything audible at all. The good news is that a whole lot of software is right now being developed that makes this possible.

Right now I'm on a crusade. A crusade to prove that it is possible to produce something that's not only audible, but actually comparable to the proprietary program suites that have been around for quite a while (Cubase, ProTools etc...). NOTE: I did NOT say that the actual software used for producing the music are comparable to the proprietary ones. I still think there's a long way to go before that would be true. But, they've actually come a long road. And it IS possible to use them. And the final result IS comparable (I guess a studio techician will disagree with that, but not the average listener).

Yes, there are lots of pitfalls on the road to producing something enjoyable. I'm going to add some tips and tricks that might help you out of weird problems (that I've been stuck in myself). Hope they might be of any use.

The software used

My work is based on MusE, ZynAddSubFX, Fluidsynth, Jack, various LADSPA-plugins and JAM. I'm using Mandrake Linux 9.1 and a very friendly guy called Thac has put up a whole bunch of packages with audio-apps, ready to install. Most of them has worked very well for me. Thac's RPMS are definitely a must for the Mandrake Audio User. A low latency-kernel is a must (I just installed Thac's RPM and it went in just fine. Can't burn any cds using it though, and NVIDIA's display driver won't work with it. I guess I need to compile a kernel more tailored to my needs, but what the hey, it's working great for audio (and I'm too lazy to compile a kernel right now).)

Pitfalls

...or: the mystifying little things that sometimes fixes the problems.

Jack

Shut down artsd before starting up Jack, it saves you trouble (someone told me one could have both running at the same time, but I don't know what that should be good for, and I don't know if that is true either. I'm happy with just running Jack, though :-). I found an applet called Kickarts (can't find the link) that comes in handy when turning on and off artsd. I'm mostly starting jack with jackd -R -d alsa -d hw:0 -p 512 -r 48000 (I'm using an SB Live). There is also graphical frontend for Jack, qjackctl, if you prefer that. I had some trouble in my experiences with it though, and prefer to use it the console way.

ZynAddSubFX

I didn't manage to get Thac's RPM-version of ZynAdd to work (it should be fixed now, I hope). It had something to do with the links to the fftw-libs. I downloaded the source to ZynAdd (which doesn't include any autoconf-generated Makefile) and had to manually change the libraries which to link ZynAdd to. I switched from dfftw to sfftw, and it worked.

I must say I am very impressed with the sound of this synth, it produces a really neat, warm sound. There is, however, one big problem with this synth, and that is that it's not realtime safe. The midithread, and the jack-thread accesses the same object, both locking the same object when accessing it. One particular outcome of this is that different period values in jack (the -p switch) results in timing issues of various size. E.g. small period results (-p 512) in lesser mismatch in timing whereas larger period (-p 2048) results in timing errors that makes the result unbearable to listen to. I really hope to get to investigate this issue further in the future (or that the author manages to implement a workaround). ZynAdd has also been very stable on me, although the realtime issues makes it tough to use it with other CPU-intensive software.

The master FX-buses is a very nice feature too. It has one rather peculiar oddity though. When running Jack in realtime mode (which I always do...) loading a master-synth file most often causes it to be zombiefied. It's a bit of a gamble to manage to get it to load (I usually copy the mas_zyn-files to /mnt/ramfs, and still it gets tough when having a couple of channels. Success rate is about 1/10. I think ZynAdd doesn't use a separate thread for loading/various init-routines, which might be a way to fix the problem).

Remember to connect ZynAdd to jack's alsa_pcm with [insert your favourite jackconnect tool here], or else you won't hear much of what's coming out, since this is not done by default! (I've hardcoded the jack-outputs in the code myself, but it shouldn't be difficult to get the default values from jack itself, but... I really hope to get time to fix this in the future, as well).

MusE

I'm using MusE in realtime mode (muse -R).
I had problems getting MusE to connect to Jack (which is a must if you want to use any other synths than the built in ones (which don't work very well yet, in my opinion).
I thought the problem was with Jack, but it appeared to be the "startup-tune" (~/.musePrj) that was messing up things. Eager as I am I wanted to try it out before running it with Jack. MusE looks for Jack first, if it doesn't find Jack it settles for alsa instead. MusE opens the last saved file when starting (thus starting with the configuration that goes for that tune, which in my case was Alsa). Removing ~/.musePrj and restarting MusE with Jack running made it use Jack instead, which solved the problem. Removing ~/.musePrj seems to remove a lot of trouble. Always try this first whenever MusE goes weird at you.

If you're using qt-3.1.2 and are having problems with uic when compiling, you can try to change the line in widgets/appearancebase.ui
from:
!DOCTYPE UI>UI version="3.2" stdsetdef="1">
to
!DOCTYPE UI> UI version="3.1" stdsetdef="1">
This problem is fixed in the CVS now.

LADSPA

Using LADSPA plugins in MusE is gambling with high odds. Some plugins use stereo input and others mono. Using a stereo-input plugin on a mono-track (and vice versa) most oftenly crashes MusE. Even if you do get the plugin to work, other problems might be lurking, and it might not be easy to find out which plugin it is that causes the problems. I plan to write a list of plugins that I've been using that seem to be working, in the future.

Fluidsynth

I had some very strange errors while using Fluidsynth. When playing everything worked OK, but after stopping, it got zombiefied by Jack after a few seconds. I noticed it had something to do with the reverb (when turning it off everything worked OK). I've heard/read something about problems with various reverbs. When the audio level goes to zero calculations get tricky (it's called a denormal-problem I think). Installing fluidsynth from CVS solved the problem.

JAM

This neat mastering tool really blew my mind. The fun thing is that I've got the impression that the developers have only worked on it for a short time. The only major pitfall I had was that I had problems downloading it (couldn't get CVS-access on Sourceforge! They say it's overloaded now and then). Here is a tgz-archive for the interested (thanks to Jan Depner).

Ehmm, thinking of it, I had one other pitfall with this baby, and it was a few xruns. Not sure whether this had to do with my system, various other software packages (like MusE) or JAM itself. They got less frequent though, when I used Ecasound as input to JAM instead of MusE. It's a real thriller mixing down when you've got half a minute or two before you're through the song (am I going to get an xrun now? am I going to get an xrun now?? waaah! I got one! ....do it all over again). I should probably try to optimize my system a bit, but there's always so many things you need to do... :-)

Resources

I've made a few ZynAdd-patches. You can find them here.

The Results

Now, what do you think? Is this stuff worth the trouble of setting the gear up? Take a listen to my upcoming project "Lunar Shuttle Disaster" and make your own opinion. I have to say it's a really nice feeling to know the result is completely made with free software.

Thanks...

...goes to all OSS software developers.

Special thanks go to Robert Jonsson, Paul Nasca and Werner Schweer.

Mail me here