The sound of silence – briefly

Yesterday we packed our middle daughter off to a week of pony camp. She’s only an hour away, but it’s the longest she’s been away from us. We were suitably apprehensive.

But when we arrived we were met by a lovely set of event leaders, who helped “A” settle straight in. She’s bunking with loads of other horse-mad girls, and even as we were walking away, she was heading straight for the stables.

I think she’s going to have a good time!

But back at home the house has been surprisingly quiet. “A” loves her music, and whenever she has a spare second, tends to be practicing on either the piano or flute. Recently she and “J” have been vying for who can master the Michael Nyman piece, “The Heart Asks Pleasure First”, and the sudden silence around the house is somewhat unnerving.

But to counter that, “P” has managed to prove that she really does know her multiplication tables off by heart, and earned herself her longed-for saxophone.

So tonight the house was echoing to the sounds of the saxophone instead. And boy is it loud!

Upgraded study music system

Like a lot of people, I sometimes work from home. In general it’s a day or two a week, and I’m lucky enough to have a small (2m x 2m) study dedicated to that. And since it’s the one room in the house that is genuinely “mine” and no-one else’s, it’s something of a refuge as well as a place of work.

My need for music while I work has meant that over the years I’ve moved from a pair of earphones plugged into the laptop, to a Joggler acting as a DIY Squeezebox Touch. This fed a pair of powered computer speakers from its headphone socket, which produced some basic noise, but wasn’t exactly high fidelity.

For some time now I’ve been watching the discussions around Gainclone and T-class amplifiers on the internet with interest, and this month I decided to spend some of my “toy fund” on improving my study music system. In the end, I was somewhat limited by the Joggler (which I wanted to keep) in my choice of improvements, as the only analogue audio output available is a low-quality headphone output. Which meant I needed to move into the digital domain, and flow my music over the USB output into an offboard DAC and amplifier.

I looked at various options (mostly involving second-hand DACs) but then I discovered this review of the Topping TP30, which is a combination T-class amplifier and USB DAC in a conveniently small package. Further investigation led me to this further (and more detailed) review.

At this point I was pretty much convinced, especially as I was able to get one delivered from a UK Ebay supplier for only £63. My only concern was that as the output is only 10watts RMS per channel into 8 ohm loads, the speakers need to be reasonably efficient, even in as small a room as mine.

Fortunately I had an old pair of speakers from a Sony micro hifi, which looked like they might be good candidates – and were helpfully only 6 ohm loads too.

So, what does it sound like?

Surprisingly good. It’s no match for my old Audiolab 8000A and KEF reference speakers in the lounge, but it’s a massive step up from the old set of 2.1 powered speakers that I was using. It produces a very pleasant sound, tending towards the lean and analytical – which is the sound I prefer anyway. With a good recording, it can be quite revealing, and with the right track it happily grabs the beat and rocks along nicely. Volume levels are (as Rolls Royce would say) “adequate”; half volume is as much as I would ever want in this size room. My only criticism would be that it doesn’t have the reserves of power to provide sudden big slams of bass; but then I wasn’t expecting that it would.

What’s interesting to me from having done this is the minimal cost of creating a very impressive sounding system; the TP30 was £63 delivered. Speakers like mine are about £25 on Ebay. Jogglers are £50 on Ebay. Admittedly I already had the NAS with the Squeezeserver software & music store … but many people have a spare computer these days, or you could equally well feed the amplifier and speakers directly from a laptop. Hard to imagine a better value-for-money set up for a student. It’s even relatively portable.

Joggler Squeezeboxes (part iv)

Since finally getting the BBC iPlayer listen again streams to work by switching over to the AAC streams rather than the WMA streams, it appears that the BBC have broken the AAC streams at their end. I’ve (temporarily) switched back over the to WMA versions, which work, but that I (still!) cannot seek within.

Sometimes it really does feel like life is a constant case of 2 steps forward and 1 step back…

Joggler Squeezeboxes (part iii)

After quite a lot more experimentation, I’ve completely failed to get seeking within iPlayers WMA-based “listen again” streams to work. Although I’ve yet to prove it definitively, it seems that the Squeezebox Server code doesn’t support seeking within such a stream – flagging my transcoding command line as being capable of seeking, and then using the GUI to attempt to actually seek in the stream doesn’t result in the Squeezebox Server passing the seek location to my transcoding command.

More research into WMA streaming seems to indicate that passing the seek command from a client to the server is not trivial on non-Windows platforms, and appears to be based on a collection of proprietary and less-than-well-documented dataflows.

So my (completely unsubstantiated) suspicion is that Squeezebox Server running on a non-Windows platform (like mine) doesn’t support seeking within WMA streams.

However, there is always another way. And in this case, it transpires that not only do the BBC stream their iPlayer radio streams as WMA, but also as AAC, which is a codec that is significantly better documented and supported on Linux. So by simply changing the preferences within the iPlayer plug-in it’s possible to switch to using the AAC streams, which are supported by both my Jogglers and my Classic player. Better yet, it’s possible to also seek within the “listen-again” versions of those streams. In short, it all now “just works”.

Although I’m now using AAC streams for iPlayer access, the work that I put into getting WMA streaming to work with the Jogglers hasn’t been wasted, as there are other Internet Radio stations out there that do only broadcast in WMA, and this transcoding solution allows me to access them too.

And finally, unlike the Jogglers build-in Internet Radio application, the Squeezeplay application buffers enough content (irrespective of codec) to completely avoid skipping and audio drop-outs. Perfect!

Joggler Squeezeboxes (part ii)

After a lot of trial and error, I now have the Jogglers able to cope with WMA streams, which is to say that they can now play the BBC iPlayer Internet Radio streams. There are a few limitations, but I finally feel like I’m getting somewhere with the problem.

The solution is (as expected) to transcode at the Squeezebox server, converting WMA streams destined for the Jogglers into PCM streams. However, working out exactly how to do that has involved quite a lot of trial and even more errors. Ultimately, on my Ubuntu based server, I only needed to create a single file – /etc/squeezeboxserver/custom-convert.conf.

The content is as follows:

wma pcm * 00:0E:8E:22:9B:52
   # FR
   [mplayer] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=/dev/fd/1 $FILE$
wma pcm * 00:0E:8E:25:09:ED
   # FR
   [mplayer] -really-quiet -vc null -vo null -cache 128 -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=/dev/fd/1 $FILE$

That may be hard to read due to the formatting, but this is really 2 sets of 3 lines, where each set of 3 lines relates to one of my two Jogglers; those lines describe:

  1. the transcode that I am describing, and the device for which this must take place. So, WMA to PCM, for a device with a given MAC address.
  2. the capabilities of the external transcoding application described in line 3. Refer to the comments in the convert.conf file in the same directory for what the codes mean; in this case, that this transcoder can cope with both files and remote streams.
  3. the command line to do the actual transcoding. The syntax is a little odd, as mplayer has no obvious way to write PCM to stdout (which is what is required), but using /dev/fd/1 as the output file achieves this admirably. $FILE$ is substituted with either a filename or a URL depending on the source of the WMA that needs to be transcoded; either is acceptable to mplayer.

The only issues I’ve found so far are that:

  1. Squeezebox server doesn’t seem to correctly clean up the transcoding processes, and leaves them running in the background. It’s not clear to me when (or even if) they ever get terminated, and if so, by whom?
  2. It seems to me that when playing back a “listen again” stream, I ought to be able to seek backwards and forwards in it. Unfortunately, this doesn’t work. The stream simply restarts from the beginning, which is frustrating. Adding the additional substitution code into the custom-convert.conf file to enable start time offsets to mplayer doesn’t improve the situation, and in fact, seems to usually break the (currently working) transcoding of the WMA streams. I’ve exhausted my debugging of this, and posted for assistance on the Squeezebox server forums – I’m beginning to suspect that it may be a limitation.

For reference, here are the same lines as above, but with what I think are the correct substitution lines to enable seeking. They don’t work for me under Ubuntu 9.10 and Squeezebox Server 7.5.1:

wma pcm * 00:0E:8E:22:9B:52
# FRT:{START=-ss %s}
[mplayer] -really-quiet -vc null -vo null -cache 128 $START$ $DURATION$ -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=/dev/fd/1 $FILE$
wma pcm * 00:0E:8E:25:09:ED
# FRT:{START=-ss %s}
[mplayer] -really-quiet -vc null -vo null -cache 128 $START$ $DURATION$ -af volume=0,resample=44100:0:1,channels=2 -ao pcm:nowaveheader:file=/dev/fd/1 $FILE$

Joggler Squeezeboxes

Having lived with with a Joggler in my study for about a week now, I’m starting to get a feel for its strengths and weaknesses. In theory, it’s a great little tool to have instantly available, with instant access to Internet radio, my audio collection, the traffic conditions, news headlines etc.

But in practice I’m making very little use of any of the built in applications; the Trafficmaster-based travel application is kind of interesting, but the SatNav in the car does a better job at the point in time when I most need it. The RSS-based news reader is OK, but it’s based on what the Sky news people think will be of interest, and often I don’t agree with them. The weather forecast application is pretty enough, but can’t be sufficiently localised, and has a bug that means the upcoming days are sometimes out of sequence!

The Internet radio application is undoubtedly the one I use the most, usually for the national BBC radio stations, but unfortunately it doesn’t buffer enough content, and often stutters and falters. But it is very convenient and easy to use.

On the other hand, the Squeezeplayer application, which turns the Joggler into a Squeezebox, is a joy to use. The touchscreen is beautifully integrated with it, and the ability to rapidly “flick” through my music collection, along with their album art, is simply joyous. There are down-sides however. Integration between the Squeezeplayer application and the main O2 “Tango” GUI is basically non-existent. The Squeezeplayer application simply runs over the top of the rest of the GUI, taking over completely. This means that they run independently with different time-outs, screen-savers etc, which can be a little confusing. However, I can easily forgive it that when I get another Squeezebox for only £50.

However, the Joggler isn’t a perfect Squeezebox replacement. The Squeezeplay application doesn’t have the same support for native audio formats as the hardware players – so while it has excellent support for MP3, and supports PCM/WAV/AIFF & FLAC even at esoteric 24bit 96KHz rates, it cannot play WMA files/streams in any form. Which unfortunately means it doesn’t support the BBC iPlayer plug-in. This is frustrating, as I suspect that the Squeezeplayer will do a much better job of buffering Internet radio streams than the native Joggler application.

So the question is, how to enable WMA support?

My initial thought was to enable WMA support in the basic Joggler OS (which is just Linux), with the expectation that it would be possible for the Squeezeplayer application to trivially exploit that support. The problem with this approach is that Squeezeplayer is really an embedded application; it’s not designed to run on an operating system with varying capabilities, and expects instead a bare minimum, to which it must supply all the domain specifics – ie, the audio decoding. So even if I did supply WMA support in the OS, the Squeezeplayer application wouldn’t exploit it without me making significant changes to Squeezeplayer. It’s basically a non-starter (for me anyway).

The next option is based on the understanding that Squeezeboxes (and hence the Squeezeplayer application) do not directly talk to Internet radio stations. Instead, they talk to a Squeezebox Server, which acts as a proxy for the Squeezeboxes, and talks to the Internet radio stations on their behalf. Fortunately this allows us to apply transcoding to the Internet radio stream, decoding it from the original format, and re-encoding it into another format that the Squeezeplayer can process.

This has potential, except the documentation is poor, and all my attempts to date have resulted in the Squeezeplayer “hanging” at the point where it is starting to stream the Internet radio stream. Debugging information seems to be telling me that the right transcoding options have been identified by the server, and that the correct external programs have been located. What’s not clear is whether or not they are being correctly invoked. More work to be done!

Additional “Squeezeboxes”

As I mentioned in my last post, there was a period of time where I believed that my Squeezebox 3 audio player had terminally died. This seemed at the time to be a complete disaster, because Logitech no longer service, nor sell them. Fortunately, I was rescued by a colleagues superior electronics skills, but in the meantime I’d started investigating what options I had for replacing my Squeezebox. The obvious choice was to purchase either a new Logitech Touch, or Logitech Duet system, both of which are essentially plug and play replacements for my (older) Squeezebox 3. However, at more than £250 each, this would have been an expensive option, especially for a device that I was not terribly taken with.

A more interesting option was the discovery that it was possible to take the control system software from the Duet, and port it to a generic Linux computer. This would allow that computer to act like the Duet system, at least functionally.

The really interesting discovery was that people were running this on “hacked” O2 Jogglers creating their own Squeezebox Touch, but with a bigger touchscreen display. Given that Jogglers can be purchased second-hand on EBay for around £50, this proposition starts to look very attractive indeed. The only drawback is the lack of high quality audio outputs.

However, this can be easily resolved through the use of a USB DAC, which can be connected between the Joggler and an amplifier, to provide very high quality audio out – potentially much better than that provided by my existing Squeezebox 3. Something like this HRT Music Streamer II would be perfect.

In the end, I no longer needed another very high quality Squeezebox, but the opportunity to add a couple more “adequate quality” Squeezeboxes, at very low cost, was too good to miss. I acquired a pair of second-hand Jogglers, added the additional software to them and plugged some powered speakers into the headphone sockets.

The result is “good enough” music/video players for my study and the kids playroom, that can also do interesting things with various internet-based applications (calendars, news, weather, mapping etc). Result!

Hifi disaster, rescued by KEF (part ii)

Just to conclude this, I disassembled the speaker with the failed HF driver unit, disconnected the HF drive unit from the crossover unit, and measured the resistance through the suspect HF drive unit coil, which proved to be open circuit – ie, dead. So I went ahead and ordered a matched pair of replacement HF drive units from KEF, for £78 delivered the next day.

The units dutifully turned up the next day, along with detailed instructions on how to replace them. In total it required about an hour, mostly because it involved some soldering of connections inside the speaker, which although straight-forward, was a bit physically awkward.

And the good news is that the speakers are now sounding as good as new again.

However, when that HF unit initially failed, I had started thinking of replacing my speakers with a 5.1 speaker set. And the thought of moving to a surround sound set-up has stuck with me, to the point where I started investigating how to create a 5.1 system using my KEF Reference 101/2s as my L+R front speakers.

After some good advice from the avforums website, and a chat with the historic speaker experts at KEF, I was advised to try to find another pair of Reference 101/2s for my rear speakers and a Reference 100c, or 90c for the centre (dialogue) speaker.

By sheer fluke, I managed to find a pair of 101/2s up for sale locally (the only ones I’ve seen so far) and managed to get them for £90 – which seemed a good price. I also found a KEF Reference 90c centre speaker on ebay for £65 delivered. I now need to decide on my AV receiver and a HiFi rack (these look nice!), sort out some wall brackets, and ultimately, whether I need a subwoofer or not. If I do, then I hear very good reports about these ones.

So far, between repairs and purchases, the speakers for my fledgling surround system have cost me £235. Admittedly they are not brand-new, or modern “lifestyle” designs, but they are all top quality, full-range speakers that would have cost nearly £1500 when new.

It’s not how I’d originally expected this to work out, but it is proving exceptionally cost-effective!

Hifi disaster, rescued by KEF

Back when I was first diagnosed with cancer and waiting for my operation to be scheduled, I digitised my entire music collection, storing it on my home server so I could play it back through a Squeezebox. This was great, because I could access anything in my music collection with the push of a couple of buttons. No CD’s to find, no messing around with CD players … just instant access to whatever I wanted to listen to, whenever I wanted to listen to it. And as a bonus I could also listen to loads of radio stations from all around the world, and when not playing music I could even use the squeezebox display to show useful information, like the weather forecast, share prices, or the number of unread emails for each member of the house.

It was a jolly cool piece of kit. Until it all went horribly wrong this week.

I was playing some music through the squeezebox, with the amplifier turned up high, but the volume turned right down (digitally) on the squeezebox. Which was fine. Until the squeezebox “glitched” and started playing electronic noise at maximum output through the amplifier. The result appears to be a blown tweeter in one of my old, but loved KEF 101/2 reference speakers.

I’ve since reset the squeezebox, and all seems to be working normally again. But the tweeter (or possibly the crossover electronics) is toast. Now these were very expensive speakers in their day, so I wasn’t looking forward to the bill associated with replacing them with something of equivalent quality. At the same time, it would actually make more sense these days to replace them with a 5.1 surround sound speaker package. But again, the price was eye-watering.

So I got to wondering if they could be repaired.

A quick call to KEF, and it turns out that a matched pair of replacement tweeters, with full DIY instructions on how to replace them, costs about £80. Lead time is currently about a month as they are waiting for stock to arrive from China. Which I think is pretty impressive service from a company that is supporting a product that is approaching 20 years old. The only fly in the ointment is if the tweeter is OK, and the crossover electronics has gone instead. KEF no longer have stock of those. They can (and would) however do a component level repair of my original unit, but depending on what has gone wrong I expect it might be quite expensive.

Still, it’s a lot better than paying £600 for a new pair of equivalent speakers. So kudos to KEF for excellent customer service.

The sound of music

My elder daughters both play piano and flute, and have the shared use of a piano and a flute between them. So far that’s worked out really well, but contention for the flute has been getting difficult, and is getting worse now that they are both starting to talk about joining flute ensembles and the (same) school orchestra.

Meanwhile our youngest will start junior school this year, and will also be offered music lessons. Fortunately she wants to play something (anything?!) different to her sisters, but this means finding yet another instrument for her. We’d been starting to think about what we could do about this, when as though by magic, everything came together this weekend. My eldest daughters godmother mentioned that she had a flute that she no longer used, which she was happy to lend to “J” long-term, and a clarinet came up for sale through our local church at a very reasonable price.

So on Saturday I went to visit “J”s godmother to collect her flute. I had a great time too… Kirsty lives just far enough away that it’s difficult to just pop in, so I’d not seen her in several months. We spent a great morning quaffing coffee and chatting about everything and nothing, before going out and grabbing lunch together. It was just like the old times. It’s hard to do things like that now that we’re all so busy with work and families, but this convinced me that I need to make an effort to spend more time with my friends – it’s too easy to let it slide for too long.

Meanwhile my beloved wife had been persuading talking to our youngest about the clarinet, and playing her some clarinet music to see if she liked the sound of the instrument. Fortunately she did, so by the end of the day we became the proud owners of a rather beautiful Yamaha clarinet, for an extremely good price. Her school offers clarinet lessons, so with a little luck we’ll be able to get her enrolled in those when the autumn term commences. We’d like her to learn the piano too, but with three piano players in the house now I’m hoping that we can at least get her started on that with some informal lessons from within the family.

Saturday evening and much of Sunday the house was filled with the sound of flutes as my two eldest tried to play some pieces together. A job for this week is to find them a book of proper flute duets to play. Meanwhile our youngest has started learning the fingering on “her” clarinet, and can already extract a series of notes from it. It occurs to me that when the kids finally start leaving home, it’s going to be very much quieter around here. I’ll miss it.