Lately I’m using mpd instead of a squeezebox as my network music player of choice. The only thing I miss about squeezebox is its integration with MusicIP. MusicIP is a great piece of abandon-ware. It analyzes your digital music collection to discover acoustic “similarity” between tracks. Given a seed song (or songs), it creates a playlist of “similar” songs — sort of like Pandora, but operating on your own music collection. (The notion of “similar” here is based on some undisclosed metric; MusicIP is most regrettably closed-source.) I’ve used MusicIP for years now and I’m still impressed by how well it works. It’s an integral part of how I navigate my music collection.
I wrote a simple script to act as a middle man between MusicIP and mpd. It gets the current song from mpd, asks MusicIP to generate a playlist with this song as the seed, and passes the result back to mpd. You can run it from any machine on your network. Linking this script to a desktop icon gives a nice way to generate a MusicIP mix with one click. Continue reading →
Here are the LADSPA plugins I use in my software DSP approach to active loudspeakers. I mostly use them within ecasound, but they should work just as well in any other LADSPA host.
You can download the source code here. Install with the usual
make; make install. Continue reading →
When loudspeakers are placed close to walls, the delay between the direct and reflected sound waves affects not only the perceived timbre (due to room gain and comb filtering) but also the degree to which believable phantom stereo images are created. If reflected sound waves arrive too soon after the direct sound, they generate spurious directional cues that spoil the stereo-imaging magician’s trick.
Some people go to great lengths to absorb room reflections with acoustic absorbers and diffusers, but the evidence  suggests this probably isn’t a good idea. These products have inherently uneven frequency response; their presence can drastically alter the timbre of the reflected sound, and it’s harder for the ear/brain to ignore reflections if their spectral content is different from the direct sound. Continue reading →