Anyone else muck around with music creation/sequencing software on Linux? I've only just poked at it a little, nothing serious (yet). What I've discovered so far...

- The default version of Rosegarden in the Ubuntu 10.04 repository is pretty flaky. I've just installed a newer one from one of the Launchpad PPAs, but it is still too early to tell how much of an improvement it is.

- JACK (which seems to be required to do anything beyond very rudimentary music creation/editing on Linux) and the PulseAudio sound system (which is a standard part of Ubuntu these days) don't play very nice together. The best you can hope for seems to be an uneasy truce between the two. The drill seems to be close any audio applications which are using PulseAudio before starting JACK, and restart the PulseAudio server (which typically gets very confused when JACK runs) after you're done with JACK.

- Qsynth/FluidSynth seems to be a reasonable back-end software synth for Rosegarden (which does not have its own built-in software synth). But it seems you gotta make sure you start Qsynth first, *then* Rosegarden, or things don't always work right. There's probably a way to fix that with one of the JACK tools... I'm still sorting all this stuff out.

- Still trying to figure out how to find good free (and legal) SoundFont banks without wading through gazillions of files on random poorly maintained web sites. (I guess the default ones in the Ubuntu repository will do for now...)

- Still trying to figure out how LADSPA (for effects plugins) fits into the picture.

It all feels very much like trying to cobble something together with duct tape and hot glue... but I'm learning some interesting stuff!

Oh man, I've been trying for years, but the lack of realtime priority in the Linux scheduler has seriously impeded my ability. I don't have extra equipment, or time, to dedicate to audio, at the moment. Then there is documentation, and figuring out how everything works.

My best suggestion is to get a distro that specializes in music production. Everything with be setup, the sound issue will be taken care of, and a realtime kernel will be installed. Ubuntu Studio would probably be the easiest route for you. I've played with it in the past, and it's pretty good. Everything works, but there isn't a lot of documentation on it.

Jack is designed to be like a patch panel. You can patch different programs into other programs, into other programs.... It's esoteric at first, but very handy once you start getting the idea.

Try out Hydrogen for drum programming. I'm an actual drummer, and Hydrogen annoys me the least when it comes to getting what I want to do out of my head.

My experience with digital music creation and sequencing is pretty limited. I'm most familiar with recording real instruments, editing the samples, then tracking everything out.

Just a quick side note to all this... in learning more about JACK and LADSPA, I realized that I finally had a solution to an issue that's been a minor irritant for a long time: how to get a global graphical EQ in Linux. My headphones are somewhat lacking in bass; OTOH my speakers are lacking in treble and have somewhat "boomy" bass. I've been dealing with this by loading different EQ settings in Audacious (the music player I use when I'm on the computer) every time I switch back and forth between speakers and headphones, and just living with everything else sounding slightly tinny or boomy (depending on whether I'm listening on headphones or speakers).

Well, it turns out you can insert JACK into the signal chain between PulseAudio and ALSA. PulseAudio becomes just another JACK client. Then you can set up equalizer settings (using jack-rack) that get applied to all of your audio. I've even got jack-rack configured with different EQ settings for the front and rear soundcard outputs; now I can just leave the headphones plugged into the front output, and the speakers (they're only 2+1) plugged into the rear output (I've got JACK configured to route the "front" audio signal to both the front and rear outputs, but through different EQs for each). So I don't need to plug/unplug the headphones *or* futz with EQ settings any more. Cool!

Setting things up like this also sidesteps the issue of JACK and PulseAudio fighting with each other, and keeps Google Chrome happy (previously, Chrome was getting confused whenever I started/stopped JACK; I don't think it likes when PulseAudio disappears out from under it).

To do all of this, JACK appears to be consuming only 5% of one core on a quad-core Phenom II. I can live with that.

Now I just need to figure out how to get it to come up configured like this automatically after a reboot, instead of needing to manually load up all the JACK tools and make the various virtual audio path connections. JACK appears to be very scriptable, so this should be a relatively easy problem to solve.

Edit: JACK in action (click the image for a full-size uncompressed PNG):

Flatland_Spider wrote:JACK really is what PulseAudio should have been.

Yeah, that's the impression I'm getting. It does seem rather complicated (probably too much so for non-techie users), but this could've been addressed with better front-end tools to hide some of the arcane details instead of throwing the baby out with the bathwater (which is what PulseAudio seems to have done).

So it would seem that in order to have full audio functionality on Linux, we need to run two complete audio stacks side-by-side... software bloat FTL. But at least there's a way to make it work... and RAM + CPU cycles are cheap these days.