Blog Entries tagged squeezebox
Feeds: RSS | Atom

Ripping 300 CDs..

Published: 2009-01-19 19:52 UTC. Tags: linux squeezebox

I'm currently in the process of transferring my CD collection into digital format for use with my Squeezebox. This is a major project when you own around 300 CDs..

Stack of CDs

Ripping CDs, but to what format?

I did some thinking and evaluation before choosing format for the storage of my CDs in digital format;

Ogg Vorbis

Ogg Vorbis was one of the alternatives. It is patent free, which would fit my free software background. There are a whole bunch of devices supporting it, but with the SO buying a new mp3 player that didn't support Ogg, and the Squeezebox only half-supporting it, Ogg was unfortunately not an alternative.


FLAC were another alternative. Free, and also lossless - the thought of actually storing the CDs without loss of data was tempting. Again, it fell on compatibility. Finding devices such as mp3 players and car audio equipment.

One option would have been to store as FLAC and then recode everything to mp3, possibly on demand, but I demeed that out as too much work with little gain.


So, as you might have guessed, for compatibility, I choose to rip my CDs to mp3. I'm using the LAME encoder with the best quality variable bitrate (VBR) encoding. According to the Hydrogen Audio Wiki, LAME has the best VBR encoder out there.

The resulting MP3's play directly on the Squeezebox hardware without problems, and works as intended in the SO's mp3 player as well.


Squeezecenter Performance on QNAP TS-109 II

Published: 2008-12-14 19:11 UTC. Tags: turbostation squeezebox

As promised in Yesterdays post, here are some data on the performance of Squeezecenter on an QNAP TS-109 II running Debian Lenny.

Picture of QNAP TS-109 II

My idea when buying the QNAP was to use it as a low-power alternative to keeping my workstation switched on all the time for access to my music collection from the Squeezebox.

Low power processors have a drawback, though - you don't get that much processing power out of them. Running Squeezecenter on it turned out to work.. but not very fast.

Memory Consumption

The QNAP TS-109 II has 256Mb of memory. That's good, because squeezecenter alone consumes about 70Mb of virtual memory, och which 60 is resident. The MySQL server started by squeezecenter will consume another 97M virtual/20Mb resident. Part of the virtual memory used by MySQL is probably mmap:ed files, and that doesn't really count.

With only squeezecenter and the standard set of daemons such as syslogd and dhcpd running, and NFS server in the kernel, it seems like there's not much swap usage, so the amount of available memory is not extremely low. Don't try the 128Mb version of the QNAP, though, that will be painstakingly slow because much more swap will be required.

Web Interface Performance

The web interface is rather slow. You have to wait several seconds before things appear, and it also seems like the CPU consumption increases significantly while using the web interface.

One strange thing is that the CPU consumption of the perl process is very high, while the CPU consumption of the MySQL process is very low. One has to wonder if the SQL database is used in an optimal way. Letting the database do most of the work is often the best way to achieve good performance. Doing a lot of processing after the data has been read from the database is a bad way. But, I have not studied the database operations in detail, this is just guesswork from my side.

Changing from the default skin to the Classic skin did help, but it's still slow.

Using the Squeezebox to search for music

Picture of idle Squeezecenter v3

Using the remote to search for music via the squeezebox has good performance. Starting playback sometimes has a slight delay, which I think in most cases is because of transcoding..

Transcoding Ogg Vorbis files

The firmware for the Squeezebox has support for decoding Ogg Vorbis files, but unfortunately it doesn't seem to work well at all. It can't read about half of my Ogg Vorbis files. Even newly ripped files are troublesome, and if I rip CD and code it into Ogg Vorbis, some of the files will work in the Squeezebox, some will not.

Since I do have a lot of Ogg Vorbis files, the solution is to have Squeezecenter transcode the Ogg data to another format that the Squeezebox understands, before sending it over the network. This process is called transcoding.

I first tried to transcode into FLAC, but that was too CPU-intensive for the QNAP TS-109 II to handle - probably because two compressed formats were involved.

Transcoding from Ogg to AIFF does seem to work rather well - there is still a slight delay before you can hear the music after pressing play on the remote.

An interesting experiment would be to use the integer-only Ogg decoder, Tremor. That might speed things up because as far as I understand, floating point performance is not that good on the ARM architecture.


Running Squeezecenter on the QNAP TS-109 II does work, but it's a bit slow. Part of the problem is that Squeezecenter is rather bloated, functionality-wise.

It's a pity the only documentation on the protocol used between squeezecenter and squeezebox is the Perl source code.


Running Squeezecenter on QNAP TS-109 II

Published: 2008-12-13 21:18 UTC. Tags: hardware turbostation squeezebox

I have now managed to get Squeezecenter running on my QNAP TS-109 II. Squeezecenter is the server a Squeezebox network music player connects to in order to get hold of its music.

Picture of QNAP TS-109 II

Since the QNAP TS-109 II is running on the ARMEL architecture, installation was a little bit tricky.

Squeezecenter is written in Perl. Let me state early that Perl is not my favourite programming language.

I installed the Debian package of Squeezecenter 7.3 available Slimdevices web. The package's architecture is all, which is not true - it contains Perl XS code compiled for i386 and amd64. This code won't run on ARMEL.

The Squeezecenter package also ships lot's and lot's of third party Perl modules, but they don't work on Perl 5.10 because of module version conflicts. I run Debian Lenny on the QNAP, and guess which Perl version is shipped with Lenny... Yep, Perl 5.10.

I found an excellent forum post by "bugfixer" at the squeezebox forums explaining how to get Squeezecenter running on Perl 5.10. Much of the information in this blogpost comes from that post.

The shipped perl modules are all available as Debian packages - with one exception - the libjson-xs-perl package in Debian lacks the file /usr/lib/perl5/JSON/XS/, so I had to copy that one from the version shipped with squeezecenter.

The squeezecenter Debian package also has a large amount of dependencis not listed in the package's metadata. And to add to the misery, it requires the perl package Encode::Detect, which is not even available as Debian package.

To avoid having to keep track of this mess, I created a puppet class which installs all dependencies, installs squeezecenter, and then removes all files which cause trouble. With that work done, I can reinstall squeezecenter and be pretty sure it will work. I did an upgrade of squeezenter today by downloading the new squeezecenter debian package, installing it, then ran puppet to move away all the offending perl classes - worked as a charm!

So, if you want a list of all packages required and all files that must be moved, refer to the source for my squeezecenter puppet class. That list will be kept more up to that than if I would list the info on this blog post.

I'll be back with some info on the performance when running Squeezecenter on the QNAP. I can say already that it's not blazingly fast..