Atom Feed
Comments Atom Feed

Similar Articles

2009-01-10 12:10
Squeezecenter IMMS Pluigin lives!
2009-06-08 21:54
Home Servers

Recent Articles

2019-07-28 16:35
git http with Nginx via Flask wsgi application (git4nginx)
2018-05-15 16:48
Raspberry Pi Camera, IR Lights and more
2017-04-23 14:21
Raspberry Pi SD Card Test
2017-04-07 10:54
DNS Firewall (blackhole malicious, like Pi-hole) with bind9
2017-03-28 13:07
Kubernetes to learn Part 4

Glen Pitt-Pladdy :: Blog

Easy Squeezy

I have been trying to persuade myself to buy one of these things for a few years now. Yeah - I know... that's weird, but it is a fair amount of money and I wasn't going to part with it easily. To cut a long story short, I finally allowed myself to have one.

Making choices

I have long been fussy about sound and currently enjoy a pair of 1950's Leak TL12's through a pair of speakers I designed myself and have been tweaking to perfection (sadly more than I can say about the room!) over several years. I have gradually given up sources until I got down to a Cambridge CD4 Special Edition (awesome quality form the money!) and a modified Rega Planar 2 with an extremely elaborate passive phono preamp, again one of my own designs and a little OTT to say the least - including the first stage running off rail-to-rail supply of 160V (no it's not valves, though I considered them as an option when I designed it) to get the best performance practical out of a passive design.

The trouble was that I didn't listen to it. Music is there to be enjoyed, and the problem a conventional setup gives is that it is a laborious process to really get enjoyment out of it and I'm not that obsessed. I had become spoiled (ok, PC audio isn't that good even with a moderately priced studio sound card) listening with XMMS and later Audacious with IMMS magic. To someone who hasn't experienced it, it probably means absolutely nothing, but it opened my eyes a different way of enjoying music.

After a while I simply stopped listening to CDs. Having well over 2000 FLAC encoded (lossless) files on tap made digging around for CDs a pain, and I probably only want to listen to a few tracks on each. Then there was the IMMS goodness....

IMMS Magic

I don't know how I discovered it originally, but I am completely addicted now. IMMS (Intelligent Multimedia Management System) combines 2 things:

  1. While I listen, IMMS gradually learns my listening habits. This does take a while (months) to start working really well which may discourage some people.
  2. Track by track, IMMS analyses the sound and keeps a database of sound correlations between tracks files. Again, this takes some time to learn all the tracks.

Then the magic starts to happen. As it learns, IMMS begins make intelligent decisions on what track to play next. This is very subtle initially, but when I am listening to a random shuffle without IMMS now that it has learned, I quickly get frustrated. The subtlety of IMMS is one of it's best features - it quietly works it's magic without needing to announce it's self or require user input.

Once IMMS has learned then it often goes all day without playing a dud. When it does play something that I'm not in the mood for, I just skip to the next track, or jump to something I do want to listen to, and it takes the hint and keeps to the mood I am in.

Switching to Squeezebox

I eventually decided that I had to be able to play music the same way on my main system as I do on a PC so after examining the audio stage schematics for the Squeezebox and trawling forums on it, I sold the CD player and bought a Squeezebox Classic.

My first impression was that it was very nicely packaged, and more surprisingly not plasticy as I had expected. It is unexpectedly heavy and the build quality is very respectable for mainstream audio kit, astonishingly good for something computer related.

Setting up was trivial - installed Squeezecenter (used to be called Slim Server) which they very conveniently provide as an apt-gettable .deb so it was all as easy as "apt-get install squeezecenter". My firewalling is paranoid on the server so that needed some tweaks and it was all up and running. The web interface runs though a quick set of basic configuration and it is ready to use.

Connected the Squeezebox to the network (I went for wired - I very rarely turn my wireless on, and I don't like the thought of having RF blasting away besides audio), gave a quick and easy configuration with the remote. Although it happily uses DHCP to set it's self up within seconds, I ended up putting it on a static address which keeps it with the way I organise my network.

After that it's time to start playing music.


I haven't been able to do detailed listening tests, but the sound is definitely plenty good enough for all but the fussiest listeners.

The one thing that does stand out as room for improvement is the analogue design. I suspect one thing I will do is attack that at some stage in the future. The output op-amp is probably a good candidate for improvement and I suspect by far the cheapest way to improve the sound. The power supply is a switcher which are prone to problems, though not always the case. Certainly something that needs investigating further.

Another thing I may look at is the output buffer topology. It manages to use 2 lots of caps in the audio chain (the first could definitely be removed with some mods to the design). The output cap is often a necessary evil on single supply designs, and due to me using a relatively low impedance "passive pre" (input selector and unbuffered volume pot) any nasty behaviour is more likely to show up. At most I don't expect to do much more than put in some HF bypass caps.

The only other thing that I can grumble about is that it only plays 44.1KHz and 48KHz files. While I currently don't have any more than that, high end labels like Naim have been selling high sample rate and bit depth files for a while now which certainly puts the recording format beyond blame. Storage is so cheap now that I don't think it makes any sense to store music in low rate files any more.

Back to IMMS....

Squeezecenter don't talk to IMMS which means that I quickly got frustrated listening on the Squeezebox and found myself frantically pushing skip on every other track. I've searched and can find many people asking for an IMMS plugin, but I couldn't find any.

Squeezecenter is written in Perl so runs on virtually anything including some NAS hard disks, plus I do rather like Perl in a dirty hacky kind of way. I'm not weird - some languages just have a unique character.... ok .... I'm probably weird then.

The biggest issue with Squeezecenter 7 (SC7 from now on) is that almost all the documentation on Plugins and examples are for previous incompatible versions. That means that it's down to the wonders of Open Source: RTFC. Fortunately SC7 is neatly put together and it didn't take long to find my way around even if much of the code is lacking in comments.

To cut a long story (to follow in another blog entry) short, after about a day and plenty of messing round with how to link IMMS to SC7 (I tried to be smart and do a nifty threaded Plugin initially, only to find out that making SC7 play nice wasn't much fun, then there was the matter of how to make it work without queueing like XMMS/Audacious), I have spent the last few hours happily listening to a Squeezebox Classic through my Leak TL12's for a few hours now while IMMS does it's magic on the server.

I will be writing more on my experiences and once I have the code in a presentable form and the really ugly stuff fixed (right now it will throw a spectacular wobbler in any other mode than song shuffle), I'll be releasing my Squeezecenter IMMS Plugin...... Stay tuned.

Update: I have now released the initial version of my IMMS Plugin for Squeezecenter.