The Stinkpad Saga Part 2.

I did some more research into the “meh” quality of the Stinkpad onboard audio, and it turned out that the sound chip resamples everything internally to 48kHz. The resampling doesn’t seem to cause any bad artifacts, just a slight loss of treble through the anti-alias filter, but that very lack of high end is probably what makes it meh.

So I decided to have one last attempt at getting an audiophile-grade output from old Stinkpad, and if it failed I would throw him out of the window and make do with a single computer. I’ve long been a fan of M-Audio products: I struggled with music production on consumer soundcards for years, until the day I bought a Delta 66, and everything just worked. So I bought a Transit, which is their cheapest, lowest-channel-count USB audio doofer.

Upon installing it to the Stinkpad I got exactly the same snaps and pops as before, at the rate of about 5 per second πŸ™ But this time, I noticed that they only happened when the CPU was idle, and loading it up with Winamp’s visualisation thing made them go away. There were no pops from Sound Forge, and indeed I was able to get a bit-for-bit digital copy through the Transit’s optical I/O to my MP3 player and back. (I have an IHP-120 running Rockbox that has digital I/O and can record and playback uncompressed, so I could test everything by dubbing a test file from the laptop to the IHP-120 and back, and subtracting the result from the original.)

This was a promising result that made it worth investigating more. I assumed that the problem was due to some sort of power management system that was shutting the CPU off when it was idle, and maybe taking a bit too long to power it up again, so that the USB audio stream ran dry. And now the heartwarming bit, the Thinkpad 600X might be 10 years old, but IBM/Lenovo still support it! I was able to download a power management driver compatible with XP from their site. This added a tab to XP’s Power Properties dialog, with options to disable CPU and PCI bus power management. I disabled the CPU power management, and the audio troubles were utterly gone, with the machine running considerably faster as a bonus.

Of course, in computing you never fix one problem without introducing three new ones. The CPU fan now runs full speed all the time, and I expect the battery will now last about 5 minutes while the laptop will get hot enough to fry eggs πŸ™ There doesn’t seem to be any way of having this CPU power management “On for battery power but off for AC”, either. Maybe there was a driver to make that happen in Windows 98, but it wouldn’t work in XP.

Oh well, I guess this is what I get for bringing a vintage tractor on the information superhighway.

I smell stinkpad…

I’m currently trying to kick my computer collecting habit, as there’s only room for so many of the things in my flat. My plan is to get down to two machines: one small, low-powered one that can be left on all the time, for things like playing MP3s and internet radio, and running BitTorrent, and a big fast machine crammed with noisy fans to use for my digital audio experiments. The role of the low-powered machine used to be filled by Linosaur, my Linux server, but it’s currently down after a failed attempt to fit it into a smaller case. (That’s “down” as in dismantled in a cardboard box in my mum and dad’s garage. No, it doesn’t respond to pings.)

Hence, I decided that the Stinkpad should take its place. This is an old IBM Thinkpad 600E that refuses to die. It was made at IBM’s plant in Greenock, so it has some typically Scottish quirks such as headbutting you on errors instead of beeping. I upgraded the memory and hard drive, but I can’t do anything about the slow-ass 500MHz CPU. However in this application, the slowness isn’t a problem, as long as it can run uTorrent and Winamp.

The problem I had was that it wouldn’t even do that, since I upgraded it to XP. The onboard audio tended to stutter whenever the machine was loaded, and any external soundcards I tried just popped and stuttered even worse. I tried all sorts of things, messing with settings, disabling all the XP eye candy, but it made no difference.

That is, until I went into the Device Manager and noticed that my hard drive was running in PIO mode! Like it was 1987 again! πŸ™‚ (For non-tech readers, PIO is an old, obsolete way of communicating between hard drive and computer, which is very slow and wastes CPU power. Any half-decent machine can use “DMA” mode which shifts the data faster, and lets the CPU get on with something else in the meantime.)

All attempts to make it go into DMA mode failed, until I found this helpful script. After the mandatory reboot, the stuttering was gone, and as a bonus, the Stinkpad felt about 10 times faster. It must have been stuck in PIO mode for ages, maybe even since the day I installed XP. Who knows why it happened, I’ll just hope it doesn’t do it again.

It now performs its role better than Linosaur did. Since it’s Windows, I can listen to the BBC IPlayer (powered by Windows Media, which makes it pretty off-limits for Linux.) I get really good sound quality using a Roland UA-1EX USB sound dongle, with Otachan’s ASIO plugin for Winamp to bypass all the kernel mixer and resampling gubbins built into Windows. (for media played through Winamp at least…) No I don’t! it worked once and then started snapping and popping πŸ™

Neatest of all, using TCPMP it gives decent full-screen playback of MP4 movies, something Linosaur always struggled to do since it had no screen at all πŸ™‚ I first tried TCPMP as a player for my palmtop, and it worked so well on that, I thought I’d try the desktop version too.

All in all, I think this is pretty good meh for a 10 year old laptop running XP.