Probably you come by 'cause you're owning a little audio streaming device called Logitech Squeezebox Touch...
...and you're looking for a little gadget that'll make it "sing".
Yep. That's the place. You found it...
10 minutes of intensive reading and 20 minutes of work (max) will hopefully get you there.
I'm pretty sure it'll turn out to be worth the effort...
(Perhaps you'd like to read some motivating testimonials first. ;) )
From what I see the Touch has been and still is a very successful product. It is widely used in high-end systems, as well as kitchens and bathrooms.
It is even used by a number of professional reviewers and manufacturers.
I think for a good reason.
Why is that?
The Touch usually replaces a noisy PC incl. high quality spdif interface as transport.
With an iPad or any other Android pad the whole family will finally
be able to manage Daddies holy audio system without touching it.
There are not very many multi-purpose devices out there coming close to that little box. It's price/performance ratio will be hard to beat by the competition.
The real nice thing about the box is that it allows us to squeeze a little
extra juice out of it. Perhaps even a bit more than just a little extra... ;)
Over here you'll find a set of recommendations about how to improve the performance of that device. I'll show you how to configure your Squeezebox streaming solution and most important how to introduce and handle my Touch Toolbox 3.0 for best sound.
Of course there are many many other ways and solution to improve your audio experience and streaming solutions. I'll show you "my way".
Once you're finished with this little journey, you'll be a big step closer
towards reference audio quality.
I'm sure the majority of systems will respond with a serious sound quality improvement.
Of course you should have a reasonable audio chain in place. The better the downstream equipment (amp and speakers), the more you'll notice
The quality of DAC you're using will obviously directly impact
the level of improvement you'll experience.
Top Quality DAC manufacturer try to fight the transport associated problems since years. Some do better than others and usually ask serious money for doing so. Still 99.9% fail on isolating from transport associated distortions. You'll hear what I mean.
With my solution I'm mainly addressing the "audiophile" minded community, who cares about best possible soundquality supplied by an audio chain or device.
That doesn't mean of course that mid-/lo-fi systems wouldn't benefit.
Of course, if you run your Squeezebox in the bathroom, I'd say you can
skip this exercise. ;)
I'm not aware of any other source providing a similar toolset that you find over here.
Please also consider. All modifications, including HW and network mods,
and my advise make "my package".
If you strip the scope down, you won't experience its full potential.
However. Even applying just some of the modifications should make a
noticeable difference. But keep in mind, certain -- sometimes very little --
bottlenecks in the chain will limit your overall system resolution.
And I'd like to point out:
My toolbox is not some kind of "illegal" hack. It's rather the other way around.
Logitech (the Squeezebox company section) invites the community to participate in enhancing their product line. Pretty intelligent strategy. Though I'm not aware if they really appreciate my work ;)
If you really feel uncomfortable to do the SW implementations by yourself or if you run in trouble.
Please contact me. Though I'd prefer that you get in touch with me or others
who've done it before via the forum links at the bottom of the blog.
II. Modification Philosophy
The basic idea behind my proposed optimizations is to avoid as many potential interferences to the audio-datastream as possible. We won't touch the actual
Highly dynamic and non-linear load conditions - not necessarily the absolute CPU load - quality of software drivers, the base operating system, parameter configurations, power fluctuations and instability, RFI/EMI, clock interferences and intermodulations, common mode noise and many more sources, inside a computer - the Touch can be considered a mini computer - impact the physical conditions such as timing or the shape of a single (physical) bit and the quality of the entire bit stream. It's very tricky to get them all under control.
Some of those distortions even directly interfere with the electronics on the receiver side (e.g. your external DAC).
It doesn't actually matter if you run analog or if you stay 100% digital all the way to the SPDIF output - everything is affected!
The myth that "0s are 0s and 1s are 1s -- it's all digital don't care about" is simply said wrong and misleading.
It's not about just digital 1s or 0s actually. The data receiver must be able to read a certain analog voltage and need to declare it a 1 or 0. Since timing and shape of that bit and its distortion are continuously changing and usually far far away from being ideal, the receiver will see all but a clean rectangular evenly separated noise-free signal.
In the majority of cases the situation is that bad that a receiver is not able to recover respectively refresh that incoming bitstream properly.
If people are talking about bit-perfection or bit-transparency, it won't tell you anything about the actual sound quality. Bit perfection just says that the value of a bit (or sample) arrived as it was sent - as a 1 or 0 - but it doesn't say at what time resp. in what condition it arrived (or even it's reflection arrived) and if and how the receiving end is able to cope with that condition. And that's a key issue.
The vast majority of DACs out there are just not able to properly cope with quality issues on the incoming bit stream respectively connection.
This is not only applicable just to the Squeezebox btw. It's also valid for any other Transport (e.g. PC or MAC based). Most of them cause pretty serious trouble.
Since 2006 I'm actively looking into that subject btw.. From Windows I switched to Linux in 2007. Since the beginning I havn't seen any DAC, which wouldn't respond to changes done on the transport side.
I really hope that some day somebody comes up with a DAC that's
immune against incoming distortions on its inputs.
That would finally make so called audiophile High-End transports, PC based audiophile SW players, PC optimizations and also my Toolbox contribution
more or less obsolete and might save us all a lot of money.
Lots of talk so far.
If you want to get a feeling about what to expect... ...you might want to read some testimonials first before you start the journey
Just modifying the Touch firmware with my Toolbox wouldn't be sufficient.
It should get you a huge step ahead of course.
To squeeze the last bit out of your network streaming solution, you should
have a look at pretty much the entire setup.
You'd need to address following areas:
1. Logitech Media Server Setup (formerly known as Squeezebox Server)
2. Squeezebox base setup
3. Touch Toolbox setup
4. Server and network setup
5. HW modifications (optional - different blog)
You wouldn't believe it, but all those areas somehow impact your sound
experience. Some more and some less.
The SW related optimizations follow the good old "less is more" approach applied to the source. I'm able to reduce those distortions by shutting down
this or that feature or by doing some parameter optimizations. Even a very simple thing such as shutting down the monitor will cause serious power
savings on the Touch, which in turn will cause less trouble..
My measures won't solve the issues completely, that would require a completely different approach, but I'm personally more then happy with the achieved result.
Changelog Toolbox 3.0
The feature list reads as follows:
* heavily improved installation process
* full integration of all mods into just one tool
* help function
sound related optimizations:
* task priority tuning (NEW)
* networking parameter tuning (NEW)
* networking configuration related adjustments (NEW)
* kernel parameter adjustments (updated)
* screen on/off during operations (no more reboot required) (NEW)
* infrared on/off (NEW)
* exclusive audio routing ( no more asound.conf) (NEW)
* the daemon killer (you'll love that one) (NEW)
* volume lock at 100 % (for testing purposes) (NEW)
* samba off
* Not to forget the hopefully better and more detailed description plus
some quite some extra advise
3.0 has been tested on systems running up to LMS and Touch FW 7.7.0
Quite some new stuff on the table. ;)
Lets get started.
IV. Modifications and Setup
1. Logitech Media Server Setup
Note: I assume that you do the server configurations from your web
browser. Just enter server IP address into your web-browsers address field:
Replace xxx with your server IP address ( e.g. 192.168.0.100)
If your link works, bookmark it.
Below instructions refer to the Logitech Media Server browser interface to
match all type of operating systems.
Enter the Logitech Media Server SETUP menu in your browser (you find it at the bottom right corner):
Change your setup according to below examples:
Logitech media server has many plugins turned on by default. Turn off all plugins, which you do not need
1.4 Automatic updates
Automatic updates executed usually interfere with the toolbox setup.
Your toolbox setup might get overwritten or corrupted.
You can run updates anytime manually.
1.5 Use server optimization features*
* PC/MAC based servers with plenty of horsepowers under the hood.
1.6 Server Based Decoding
One important change is to avoid flac decoding locally on the Touch.
By default most data formats such as flac, wav (will even be converted
to flac by the default setting of the Media Server ), Apple lossless, etc. are send in compressed/native format down to the Touch. The Touch then takes care on the decoding. That will decrease network load and unfortunately increase decoding workload locally on the Touch.
There might be a downside in case of Hires audio material. Decoding the flacs on the server causes much higher network load (more data to send) thus higher load on the Touch ethernet receiver. That's even worse if you go the WLAN route, since you're facing much more wpa decryption load etc. . This high load might have a bigger impact than the local flac decoding. (Remember: We always need to find the best compromise!)
I strongly recommend to compare above recommendations with the default settings, if playback of HiRes material is of very high importance to you.
While ripping your CDs have the flacs compressed at lowest compression factor 0.
Beware: You won't be able to figure out the compression level later on!
Comment: The streaming bitrate/s for 24/96 will not be shown correctly under extended songinfo. (see here ) . You'll also see 1411kb/s for 24/96.
2. Squeezebox Base Setup
Make sure you have the latest firmware installed.
Enter the settings menu on the Touch:
a. Audio settings
Volumeadjustment: No volume adjustment
"SoundEffects None" is a very important setting.
If you don't set this you'll hear all system sounds of
your Touch over your speakers at a very high volume
once you got the toolbox installed!!!!
You don't want that to happen!!!
Brightness Control: Manual Brightness
Screensaver: When playing/stopped/off: Screen Off
Networking: Here you select: Connect to ethernet network
Remote Login: Enable ssh
NOTE: If you don't do that, you can't access and install
the toolbox via the network later on..
e. You can also turn off all logging. It's set to "INFO" by default.
It's a bit annoying since there quite some settings to change.
3. Touch Toolbox
3.1 Copyright & Disclaimer
I put quite some time and effort into the project and keep doing it.
The toolbox for sure has quite some intellectual and monetary value.
That's why the tools respectively solution I provide at this blog
are restricted to private and non-commercial use only.
I do claim a copyright for my overall solution respectively the intellectual property behind it!!
No content as a whole or part of this site may be reproduced or publicized without written permission of the author!!!
The information you'll find may be changed or updated without notice. I may also apply improvements and/or changes to the programs supplied through this blog at any time without notice.
For those who are going to apply the tools and modifications, please:
Please read the carefully DISCLAIMER before you start the journey.
I do anticipate your acceptance of it.
Keep in mind -- Everything you do with my toolbox or you do by following my advise , you 100% do at your own risk.
Don't blame me if you smoke anything. I try my best to avoid any problems.
Back to business.
What we'll do is following. First we will download and store a tar-archive (it's similar to zip under Windows) consisting of all stuff you need to modify the box.
You can always revert your Touch back to the original settings respectively firmware status, by just doing a factory reset . You'd just push the tiny reset button on the back, right above the power plug for a bit >5s. As soon as
you get off that button, the Touch will tell you about the restore being in progress. It's that easy to get back to 0.
There is IMO no risk that you mess anything up on the software side. I restored my box a hundred million times and never experienced a serious problem.
Below instructions work under Linux and Microsoft. I also wrote up some hints
how to apply the modifications on an OSX platform (I can't test it by myself though).
1. If you was running version 1.0 or 2.0 of my Toolbox or any other mods you MUST run a factory reset of the Touch first. We need a clean base. Push the little black button on the back for more than 5s.
2. Update to latest firmware e.g. 7.6.1. as supplied with the Logitech Media Server. I do have 7.7.0 beta working fine.
3. Initial setup of Touch via touchscreen done and
check if audio playback is working. (see chapter 2.)4. Make sure SSH access is enabled on the Touch (see chapter 2.)
5. On Windows systems download WinScp and Putty and install them.
We need at least WinScp to transfer files from a Windows platform to the
Touch via SSH and to run some commands locally on the Touch.
The SB Touch is running an embedded Linux with realtime kernel btw.
On Linux and OSX systems, we can do a simple ssh/scp from a terminal
You might have to install ssh on your Linux systems: Ubuntu/Debian/Mint run: sudo apt-get install openssh-server openssh-client
On OSX you've got all you need installed.
6. Player IP address of your Touch
To figure out the IP address of your Touch you open your Squeezebox Server Settings/Player
The IP address of your Touch might change everytime you reboot the device.
If possible make sure that you get this address fixed. More recent routers
will allow you to "reserve" an IP address based on recognized MAC addresses.
You need to login to your router first. Usually you'll find all active clients listed
under a kind of network settings menu. There you'll be able to reserve an IP
address for your Touch. (There's no need to work with good old static IPs anymore). If you're already there do the same for your server.
You'll also need that IP reservation for doing remote controlling the toolbox later on, with e.g. iSSH (see chapter 3.10).
3.3 Download Toolbox
Download the Toolbox and save it on your PC.
By clicking on the download links you accept above disclaimer.
Current version: TT3.0 build:11/02/11
Version 1: Touch Toolbox 3.0 with Wireless LAN deactivated
I did read and accept the disclaimer as laid out in Chapter 3.1
Version 2: Touch Toolbox 3.0 with Wireless LAN activated
I did read and accept the disclaimer as laid out in Chapter 3.1
(Old Version: Touch Toolbox 2.0 - without description)
3.4 Accessing the Touch (Windows)
1. Enter the Touch IP address in the "Hostname" field.
2. As user you enter "root", as password you enter "1234"
3. As protocol you select "SCP"
4. Press "Login" and confirm the pop-up (ssh key generation) with yes.
Now you should get logged in.
You might want to save that connection, since you need to login several time during the process.
Note: Ignore the WinSCP error messagess - just click OK.
3.5 Copy the toolbox (Windows)
Once WinScp logs in to the Touch as user root, you'll see the local and the remote directory structure side by side in the explorer style file manager.
The remote directory on te right is "/root" and it is usually empty.
On the PC side change to the directory where you've stored your downloaded touchtoolbox file.
On the Touch side you stay where you are.
Now Drag and Drop the touchtoolbox3.0 file into the default ( /root) directory .
3.6 Unpack the tar-archive (Windows)
Open a Putty terminal ( the two-terminals icon) within WinScp - enter:
(the user root is selected automatically)
A terminal window opens. When logging in you end up at the target directory "/root"
To see if you file is there type below command and push <enter> afterwards:
(If the file is not listed something went wrong with the copy in WinScp, try to check the source/target directories)
If the file is listed, you type:
tar xvf to*
( You can use the asterisks instead of typing the full name)
The archive gets unpacked now. All files are distributed to the target directories with correct permissions.
3.7 Initialize the Toolbox
Just type in the terminal commandline:
The toolbox will now get initialized. The system will reboot immediately afterwards.
NOTE: All mods are ON with TT3.0..
Screen is Off.
buffer is at lowest value 3400.
WLan is off.
Digital output only is on.
For those of you who can live with those settings, hopefully the majority, will be pretty much set after tt -i.
Others have to turn the features off which they can't make use of.
For a better understanding you might want o have a look at this little tutorial:
Windows users can proceed to 3.9 from here. You might want to read Note 3 in below chapter.
3.8 Linux/OSX (commandline)
1. Open a terminal: CTRL-ALT-T (Linux) ; App "Terminal" under OSX
2. Check the login access and accept ssh key:
##Accept the ssh key
3. Copy the file:
I assume that your downloaded file resides in /Users/your-user-id/Download for OSX
and /home/your-user-id/Download for Linux.
To find out if your file is there type:
If it is there copy it over to the Touch:
scp touchtoolbox3.0-LAN.tar root@Your-Touch-IP-Address:/
scp touchtoolbox3.0-WLAN.tar root@Your-Touch-IP-Address:/
(e.g. scp touchtoolbox3.0-LAN.tar email@example.com:/ )
If the file wasn't at the respective "Download" directory you need to find the place
where you put it! ;)
4. Now login into the Touch and unpack the archive:
tar xvf touchtoolbox3.0-LAN.tar
tar xvf touchtoolbox3.0-WLAN.tar
5. Initialize the Toolbox:
That's about it. You're done for the moment. The system will reboot and the default modifications
and parameter settings should be in place and activated.
You'll always run the toolbox commands in the same manner under Linux or OSX:
1. Open Terminal
2. ssh root@Your-Touch-IP-Address
4. exit or close terminal
Note1: The modified files or the toolbox might get removed or overwritten during Logitech
upgrades. That'll lead to inconsistencies and the toolbox will not work
properly - if at all - anymore.
You need to do a factory reset and run the whole upgrade procedure again if this happens.
Note2: tt -i installs already a full set of modifications! You might have to adjust it to your situation.
Just in case your Touch hangs up during the upgrade process while booting - this happened to me once or twice. Just DO A POWER RESET by unplugging the power cable!! After this everything should be working fine.
This won't happen during operation later on!!!!
Let's give it a try. Again we need to be on the Touch command line in WinSCP ( CTRL-T) or via ssh on Linux.
That's how it looks on the Touch:
Now you should see all commands available - like above.
Now you should see the status after initialization, like this:
Wasn't that difficult. ;)
For sure you'll experience in the printout of tt -s something like shown in the printout above: "Unknown HZ value! (94) Assume 100."
That's a Logitech respectively Linux kernel bug and not my fault. It's been fixed on newer kernels since a long long time.
c. BUFFER SIZE Tuning
With this modification you will resize the Alsa buffer. It's the buffer from
the Linux soundlayer to your device and NOT the streaming buffer on the ethernet receiver.
tt -b 4000
The system will now reboot.
You can choose values between 3400us and 50000us. 20000 is the Touch default setting. Most of the people seem to made it work at a 4000 setting.
Run tt -s to see if your change is active.
If you experience crackling sound (XRUNS=buffer underruns) while playing music, your buffer setting is too low.
In this case, increase the value by a couple of 100 us to e.g. 4400 or even higher until the sound stops crackling. You might have to run several loops to figure out the lowest value for your environment.
If 4000 does not work for you, you might checkup your environment, server or network for high-load conditions. I'm running 3400 and 24/96 without XRUNS.
d. OUTPUT ROUTING
By default all outputs run in parallel. With this modification you will disable either the analog or the digital output.
And you'll turn off the Alsa "plugin" output mode - which is the 2nd best choice in terms of SQ..
With this mod we go straight to the "hardware=hw".
And for the Linux experts: With TT30 we even got rid of asound.conf
You'll also be able to define a single output for a 24bit USB DAC.
NOTE: There are radio stations sampled with less than 44.1khz. Those radio
stations will cause the so called "Chipmunk" effect.
At this point you need to set your priorities!!! If those radio stations are
important to you, you need to skip this modification.
By now you should know the game how to access the Touch. On the command-line you enter:
1. for activating the digital output only, type:
tt -o 0
2. for analog out only
tt -o 1
The system will reboot automatically after that modification. Run tt -s to see if the change is active.
Note: USB DACS
I tried for quite some time to get USB DACs going. The toolbox is pretty much prepared to get those going.
Unfortunately the majority of DACs (USB Class 2) will not function properly. Logitech is using a very old USB Audio driver which could be the reason.
You'll experience buffer problems (XRUNS).
USB Audio Class 1 DACS with 24bit support might work.
I'll get a device isochronous device for testing soon. If I make it work I'll update the Toolbox.
e. WLAN ON/OFF
With this modification you will disable the Wlan, which is IMO a must!!!!
(Please have a look at the HW/network section for a feasible HYBRID solution for those of you who must go wireless!)
All WLAN related processes (incl. wpa encryption) will no longer be started at boot time.
From commandline run:
The system will reboot automatically. To reactivate Wlan run the same command again.
Run tt -s to see if the change is active.
f. DISPLAY ON/OFF
With this modification you will disable the screen on the fly.
This will have a bigger impact then just applying the screen-off screensaver.
Run from the Touch commandline :
That's about it. To reactivate the display run tt -x again.
To switch the display off at boot, in case you don't want use the screen at all, you can make that modification permanent, by typing
The system will reboot automatically. Afterwards the screen stays dark after boot.
To disable that permanent display off mod, just run the command tt -d
To restore the original status just run:
after the reboot yopu're back at inital status. You can start over with tt -i
h. INFRARED RECEIVER ON/OFF
You can turn off your infrared receiver with
You'll get it back on by running the same command again.
i. VOLLOCK (experimental)
This modifications locks the volume control at 100%. Though I do it slightly different then Logitech (see function lock volume under player settings) is doing it.
Why experimental?? No idea why this mod does what it does. ;)
Just give it a try and let me know what you experience:
tt - v
Some people might have their amps directly connected to the DAC or to the Touch analog output without having an external volume control in the path.
These people who exclusively use the software volume control of the Squeezebox will smoke their speakers if they use this function!!! So pleeaase - stay away from this mod.
Other folks who do have an external volume control in place, pleeaase
turn your external volume control down before you apply this function first.
So folks. You better know what you're doing.
f. THE DAEMON KILLER MOD
If you're done with everything else you should run this one. The cream on the cake mod. This mod kills pretty much all (system related) background daemons (that's how background processes are called in Linux land) on the Touch.
It goes that far that even remote access daemons are killed. The side effect -- you'll get locked out!!! No more access to the box until you "reboot" the machine.
You need to do a power reset (unplug the cable and plug it back in) or you push very short (in any case less than 3s !!) the black button on the back right above the power connector.
The box reboots into the "normal" TT3.0 state.
You need to rerun tt -k every time you reboot or better power-up the system
I can't make it a permanent setting for obvious reasons.
There is NOOO factory reset needed to get back to normal!!!
Congratulations. That'll be it. Now you're set - at least on the Touch software side.
3.10 Toolbox Remote Control
Running some of above toolbox commands from iPhone/iPad or any Android pad by using an ssh client on your typical remote control I consider pretty convenient.
You don't want to run to your PC all the time to get some useful features activated.
It might happen that you e.g. want to turn on and off the screen all the time.
And of course you want to run the daemon killer any time you boot the device up.
There is a simple solution to it.
If you run an iPhone/iPad get yourself iSSH - a nice terminal program.
You then configure some makros. This way you can run certain commands
with just one click.
Here's how it works.
You just configure. e.g.:
Enter your own name of that particular action, your Touch IP address of course, user root, the password is as usual 1234 and the toolbox command of choice.
My setup looks then like this:
TT Login logs me in into the Touch to run all other commands from the iPad. Just leave the command field empty for general access.
4. Windows 7 Network & Server Optimization
Yes folks. I know. You don't want to see this chapter. Me neither.
Just to let you know. Even the server setup makes a difference.
They all sound different, doesn't matter if you take a NAS, Windows, MAC, or a Linux.
I'll give you at least some hints of how to run your Logitech Media Server pretty decent on a Windows 7 platform:
4.1 Networking parameters
Download and install TCP Optimizer
Once installed - Right Click on it.
"Open as Administrator"
Select "Modify all Network Adaptors" and "Optimum" at the bottom.
4.2 Windows environment tuning
Download and install Fidelizer
Once installed - Right Click on it.
"Open as Administrator"
Choose one of the lower optimization layers first.
5. HW and Network modifications
I forked the IMO as important HW and Network modification
subject into a new article.
Don't miss that one once you're finished and got used to the new
V. Final Wrap Up
Now you're hopefully set. Some of you will experience more, some will
experience less and even some will report no improvements with my modification proposals. Some might even claim they must have bad ears. ;)
All systems are different, all people are different.
I hope that most of you will experience and enjoy a new sound experience...
...otherwise I could have skipped this massive exercise. ;)
\Klaus a.k.a soundcheck
Some words about my background:
I graduated in Telecommunications engineering. I started my professional Unix career in 1992, designing and integrating network operations systems in Telecommunications networks worldwide. 5 years later that carreer turned
into business management, marketing & sales and management consulting in the telecommunications market until today.
I kept running Linux machines at home though. On this SB Touch project I pretty much applied most of my experiences gained over the last 4-5 years working on Linux PCs in that particular audio optimization area.
Unfortunately the Touch won't let me do everything, what I've been doing on my own Linux installations. I know there'd be even more to gain. There are not very many people out there who are driving the subject like I do.
As I mentioned before. If the DAC manufacturers would do a better job, we wouldn't have to do all that tweaking.
Meanwhile ( since 2/3 years) some commercial companies jumped on that PC/OSX audio optimizations train asking partly serious money for IMO less improvements.
On the non-commercial side there are only very few folks e.g. CICS with his CPLAY/CMP2 under XP ( Audio Asylum), who's trying to push the subject to its limits. Of course there are more players and optimizations popping up every day.
All following that track and trying to make some money with it. There's also quite some piggybacking going on out there of course. None of them is modifying the actual sound device firmware as I'm doing it though.
Talking about myself: I'm neither aware that anybody else has been active on the
SB Touch side - the way I've done it - nor I'm aware that people have been working on improving the audio-qualities of Ethernets/networking/streaming environments the way I described it. I'd explicitly leave a note or reference, if I'd be using others people ideas. (you've also seen my Copyright paragraph in the beginning of the blog)
Finally -- not to forget, I'd like to thank especially Alfred and Tom for testing my continuously evolving modifications.
My support and toolbox discussion thread you'll find @
diyaudio.com - Touch Modifications
Note: I won't answer technical (support) issues over here.