Mathias Linux Music Page
News
Introduction
Software Used
Pitfalls
Resources
The Results
Thanks
Hit no:
30628 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