03 Dec 2005 21:26

Juk

I've been giving Juk a try, and here's my somewhat brutal assessment. First let me say I love taglib, which seems to be by the same guy that wrote Juk. So I'm sure Juk will catch up with its features and become a great program. I don't really have any major gripes with the UI, which is high praise coming from me. I just don't find it to be stable enough for normal use. I'm looking at version 2.2.2.

The first thing you notice is that you have to pretty much install all of KDE to get Juk. This is an oft-debated issue that I'm not going to address further at this juncture.

The second thing I noticed is that it kept crashing on me. All. The. Time. Maybe it's just my karma; I tend to bring out the worst in software. Some of the bugs are reproducible, others seemed to be random, but for awhile I was crashing the thing every couple of minutes, literally. Once I learned what not to do, we started getting along better.

The complete instability is the primary reason I won't be using Juk in the near future, but the second reason is almost as compelling - it tends to skip. Ok, maybe it's not a skip, but a jump or a underrun, but the old terminology dies hard. Incidentally, I wasn't too keen about having to use artsd, I have no idea what akode is but I bet it's a bad idea, and gstreamer seems to underrun on OGGs for some reason. So basically, Juk isn't able to play music smoothly and that's not good enough for me. (Hint: a nice fat buffer is not a problem for music players!)

Now for what I liked. I already told you I like taglib, and Juk's tagger didn't disappoint me (aside from its being one of the more crashable aspects of the program). Its MusicBrainz support means this is the only program I've found so far that I can get to run that supports MusicBrainz, and it does so well. I wish there was more information about just how it made the matches though. In some cases I don't know which of the 10 versions of a song I've got, so I don't dare tag it with one of the versions, but if I knew the acoustic fingerprint was almost a perfect match, (much more so relatively speaking than the others) that might give me more confidence. I also like the automatic tree of Artist, Genre, and Albums, and the playlist stuff. I like random album mode. I dislike that turning random on and off is so hard. I found that it wasn't obvious which set of music was being considered for play at any time, but I like the history and queue interfaces.

In short, I like Juk but I won't be using it because of stability issues. I did use it to organize my tags, though. For renaming files, I think I'm going to write my own script as I have very strange (but simple) ideas about how the filestructure should be. I think Juk's renaming comes close to the ease and power of EasyTag though. Incidentally, if EasyTag did MusicBrainz, I probably never would have looked at Juk, in spite of EasyTag's odd interface. That would have been a loss, because I trust Juk (or rather, taglib) much more than I do EasyTag not to mess my files up, in spite of the lack of any experience that would cause me to distrust EasyTag.

27 Nov 2005 22:19

ruby-taglib on Debian

Ruby-taglib works great on Debian. Grab Mahoro (which also looks very handy) and follow the instructions. Then grab ruby-taglib and do sudo ruby setup.rb.

The only thing to watch out for is that ruby-taglib requires the C bindings to taglib, which are in a separate debian package. You want libtagc0-dev, not just libtag1-dev.

Taglib is extremely cool, and is going to assist me in reorganizing my music collection. I'll try to remember to bore you with the details once I'm done.

22 Oct 2005 19:57

JACK and ZynAddSubFX Survive Intense Thrashing!

I wrote a program with a serious memory leak, and filled up my 512MB RAM and 1GB swap. My computer, falcon, was in serious thrashing mode. The red led was on solid, X was completely unresponsive (characters I typed in my xterm showed up about 10 minutes later). Even my laptop's network connection was unresponsive (because falcon is my router here)

While I was debating as to why the Out-Of-Memory killer hadn't reaped my runaway process yet, I got curious as to whether JACK would work at all. So I reached over and pressed some keys on my MIDI keyboard (ZynAddSubFX was running, as it usually is), and sure enough Zyn came sounding through loud and clear. In fact, I couldn't hear a single XRUN. It was as if the computer was as idle as could be. I was seriously impressed.

Impressed, but not overly surprised. I did ask for this after all. I have 2.6.13 with Ingo Molnar's realtime-preempt patch, and rtlimits configured properly. jackd runs at priority 65, and my sound card at priority 99. I have the realtime-preempt patch configured at PREEMPT_DESKTOP, because I've had stability issues with PREEMPT_RT. PREEMPT_DESKTOP has been solid though, I have a 33-day uptime, and I use falcon heavily.

I won't go into the details again on how to get where I am, because the information in the last paragraph coupled with tapas' excellent instructions for realtime preemption and rtlimits are all you need.

One last statistic, in case you still don't believe me. That thrashing session started about an hour ago and lasted about half an hour. Here's the screenshot from qjackctl:

qjackctl status screenshot

22 Sep 2005 19:38

Hearnet 0.0.4—Don't Paniq!

Leonard paniq Ritter sent me a nifty patch for hearnet some time ago. I really dig it, and I finally got around to incorporating the patch and releasing a new version. Here's what paniq has to say about it:

changed code so that it uses 32-voice polyphony and plays bridges / chromatic orders.

as an effect, you get very harmonic sounds if packet sizes on a site are the same, and quite weird stuff if packet sizes vary.

Go get it and see how much cooler it sounds!

20 Sep 2005 09:12

LAM

LAM is a site that aggregates music made with linux and spits it back out at you in the form of HTML, RSS (podcast), and M3U. I wrote it as an excercise in learning Ruby on Rails while reading the Pragmatic Programmers' excellent (as always) book Agile Web Development with Rails: A Pragmatic Guide.

It was, and is, a lot of fun. More fun than I've had doing web-stuff in a very long time. But the real reason for this post is so that it will be linked from somewhere so Google will eventually pick it up and return it on a search for "linux audio music" or "music made with linux".

28 Jun 2005 09:04

dmix by Default in ALSA 1.0.9

I say, it's high time to celebrate. From the ALSA 1.0.9 changelog:

- Summary: Use dmix/dsnoop for default PCM
  Use dmix/dsnoop plugins for default PCM in most of mobo chips

If you don't know what dmix is, basically it solves the problem of only one program being able to play audio at a time on cheap sound cards. In other words, kick those abomination sound servers (e.g. esd and artsd) out the door.

24 Jan 2005 14:13

IMMS

In the days of yore, the napster days, it became apparent that traditional music selection just wouldn't cut it. Then we all had hard disk crashes and our music selection was manageable. But I remembered my dream of writing a plugin for XMMS to do adaptive playlisting. When I once tried to realize that dream I was quickly defeated as I realized what it would take to beat the XMMS API into submission. One man, mag, had the courage and ambition to tackle XMMS and do what so many of us undoubtedly dreamed about. The result was IMMS.

IMMS was great but it wasn't practical for someone as obsessive about listening to music as I am, until very recently. As a result I didn't really give it a try although I knew it would be wonderful when it reached "that point". Well it has arrived.

The changes that had to be made, and have been, are:

  • Don't mess with queuing and non-random play. Queuing just barely got here and I was not about to lose my new favorite feature just for an adaptive random, and I play whole albums in sequence all the time. Especially Afro-Celt Sound System. IMMS wasn't to blame here, it was the lame XMMS interface (the main reason I never had the gumption to write something like IMMS). XMMS CVS now has fixed this (I think it was mag's patch) and IMMS naturally takes advantage of it.
  • Be responsive. Nothing is more annoying than a break in the music. IMMS was moderately responsive on most systems, but throw it on the network drive here at work and the time it was taking to do frequency analysis needing to copy the file over was making xmms sluggish and unresponsive and taking forever. (This is why I really need this adaptive stuff - I can't stand half of what my coworkers like, but I'm not about to waste the time finding and the disk space copying everything I like to my computer. Besides, I just might like one of those artists with a weird name that I've never heard before.) IMMS recently split out into daemon and plugin parts, so xmms is not interrupted while the analysis and whatnot happens, and it is a lot smarter about bandwidth too.

IMMS is keen, great, and all that. You want it. Go grab XMMS CVS and IMMS 2.0.1 and enjoy. (yes, forget about your package manager, until they catch up anyhow)

21 Sep 2004 21:03

snd-cs46xx doesn't do wavetable synthesis

I got a Turtle Beach Santa Cruz sound card which is driven by the cs46xx ALSA driver, but much to my dismay there doesn't seem to be a way to get its wavetable MIDI synthesis to work in linux. So I guess it's back to the softsynths for me, e.g. fluidsynth. They're not so bad, but I think the card would have done a better job of it.

Still, it's a good card.