A Django site.
October 17, 2006
» All sorts ‘o good stuff…

Well, it has been a while. And there have been many changes! The big one is that my family and I up and moved to Minnesota - the Twin Cities area. After child #2 we decided that being closer to free babysitting my wife’s family was a priority. And as luck would have it, a cool job cropped up that sealed the deal. Since this is my tech blog, lemme just focus on that.

I’ve joined Good Technology. Good develops and sells mobile enterprise software and services - push email, calendaring, etc. They essentially compete with RIM, makers of the Blackberry. But the huge difference from RIM is that Good’s software is entirely platform agnostic.  Their client software runs on many different devices, including Treos, Windows Smartphones and Pocket PCs, Symbian devices (like the new Nokia E62), and, interestingly, some of the early Blackberries.  (I’m currently dogfooding on the Treo 700p Good provided me with - cool!).  Companies needn’t “lock in” to a particular hardware platform - they can even let each employee pick a device/OS they’re comfortable with.  I’m also told that we have a great admin back end compared to some of our competitors - I’ve used it before, but I’m definitely more focused on the handhelds at the moment. 

Anyway, I joined the Advanced Technology Group, a new and very small team here in Minneapolis (the rest of the company is in California) where we’re working on all sorts of interesting stuff.  My boss reports directly to the CTO, and we work pretty tightly with Engineering.  Our charter is essentially to work on stuff that Engineering doesn’t have the bandwidth to deal with.  It may be new product R&D, or just cleaning up some code that we all think will improve maintainability  (So far I’ve done both of these).

So what does all this have to do with audio driver development?  Well, nothing.  It’s something fairly new - though I did do handheld work at my previous company.  I was ready for a change - and, for better or for worse, there’s not much in the way of DSP audio gigs in Minnesota.

So that’s my current status.  We’re still staying with my in-laws (yah, it’s a bit crowded), but we’ll hopefully find a house and get more settled in fairly soon.  And when that happens I’ll hopefully have some time to work on OneSnap again.  I see that a few people have run into bugs - and I’ve run into another issue w/ ON2007’s shared notebooks.

October 15, 2006
» Temporary Post Used For Style Detection (6434973b-b1ea-4dca-9f23-bedd7ca1cd06)

This is a temporary post that was not deleted. Please delete this manually. (eb531664-1f15-4329-985e-8fb595c58f6a)

August 14, 2006
» Temporary Post Used For Style Detection (335cb985-277b-4f95-96ba-b00b981b6068)

This is a temporary post that was not deleted. Please delete this manually. (f49153d6-bd99-4b07-927c-cbd21e2c7aaf)

June 27, 2006
» OneSnap released!

I’ve released OneSnap

Check it out here

June 17, 2006
» New site (beta): planetscm.org

I’ve been playing around with django , a pretty cool ~MVC framework in Python.  To that end, I set up a Planet SCM , a feed aggregator about software configuration management.  The SCM guys don’t seem to be very prolific, so I wanted one place on the web where I could go to quickly see if anyone has posted anything.

 It’s using Feedjack, a django-based feed aggregator.  I haven’t messed with it much, but, so far, it’s quite awesome!

 If anyone knows of some other good SCM blogs, do let me know!

May 16, 2006
» Hosting woes…

If you visited over the past couple of days, you may have noticed our site was down.  Apparently our hosting service, Razorlogix, lost a hard drive.  This caused them to go down multiple days, and also lose some data, or something, as this blog was never actually restored - the data/database was there, but it wouldn’t run for some reason.  (I’m beginning to suspect overall system or permissions errors, but who knows).  Yeah, pretty unforgivable that a bad hard drive has caused so many problems.

Razorlogix apparently agreed: for better or for worse, they’ve decided to throw in the towel: they’re ceasing commercial hosting in a week or so.  

So I hooked up w/ Dreamhost, and have moved the blog over.  I think everything is back to normal, now.  The big job, however, will be my wife’s blog , which actually has a substantial number of followers…

And, yeah, I’ll get back to posting soon.  Right now, though, I have a new family member that’s taking the bulk of my time. :-D

March 29, 2006
» OneSnap preview

No audio this time.  This’ll only be interesting to OneNote users. 

So, in my spare time I developed a PowerToy for OneNote , Microsoft’s notetaking application.  The PowerToy is called OneSnap, and it’s used to import web pages from IE (as a "screen capture") to OneNote.  But the cool thing is that you get can import into any section in your OneNote notebook.

Here’s a preview from the User’s Guide:

onesnap preview.JPG

The dialog is what you get when you click on the the OneSnap button in IE.  

It actually was one of the winners of the Microsoft OneNote PowerToy Contest , so Microsoft is supposed to release it on their web site.  But it has been months since the contest ended, so I’m not expecting them to move on it anytime soon.

So after a bit more beta testing I’m going to release it here.  Stay tuned!

March 27, 2006
» History Lesson: PC Audio Usability

Before getting deep into Vista audio, I want to relate some history, and give a little bit of my perspective on PC audio.  (Note: I have a tendency to use "PC audio" to mean "Windows audio".  No slight intended on Linux folks.)  I’m going to start by discussing current PC audio usability.   Put simply, it sucks.

At its most basic, the usability problems are pretty simple: when Aunt Bee gets a new email from Opie, she simply wants to hear "You’ve Got Mail!"  She doesn’t want to think about hooking up the speakers, turning on the speakers, finding and installing drivers that actually work, finding the sound control panel, finding the other sound control panel, unmuting the audio, setting the volume, configuring her mail reader to blurt "You’ve Got Mail!" when Opie emails her, re-hooking up the speakers because she got it wrong the first time, turning the volume up on the speakers, etc., etc., etc….. 

It’s just too much for most end users to deal with.  Heck, it’s too much for me to deal with, and I develop these things! 

What most people want and expect is the same experience they get with their TV: they click a button to turn it on, and then hear audio.  It may be white noise - but they hear something.

Yah, a bunch of people hook up Home Theater systems to their TVs (and their PCs - that’s a future blog article), which takes more equipment and special configuration.  But it’s not the default: it’s an option that can be safely ignored.  The important thing is that the TV’s home theater option doesn’t get in the way of Aunt Bee from hearing her soaps when she turns on her TV.  For the base - and most common - case, the TV still just works.  (Now, of course, Andy could install a Home Theater system for Aunt Bee as an Earth day gift, and then Barney could come over, eat all Bee’s pretzels and futz with the remotes that Andy told Bee to never, ever touch except for these four buttons right here…..  But at least out-of-the-box Aunt Bee can happily watch & listen to her soaps.)

PC audio, though, simply isn’t there yet.  Many systems don’t even come with speakers, let alone allow for easy configuration. 

Take, for example, the main Windows volume control:

What are all those sliders?  I dunno, but, let me assure you, they certainly aren’t what you’d expect them to be. Like you’d maybe expect CD Audio to control your,
well, CD audio.  But it’s hit-or-miss: it depends on how your CD drive is
wired into your system and what app you’re using to play your CDs.  And PC Beep reminds me of that scene in Office Space when that guy is trying to figure out the fax machine:

                            PC load letter?  What the f- does that mean?!

Let’s take a second and contrast this with the Mac.  Now, I’m not anywhere close to being a Mac apologist.  We are a dual-OS household, and our iMac frustrates me much more than any of our PCs.  But Macs do have one thing nailed: the audio.  But every iMac ships with either built-in speakers, or a pair of external speakers.  They’re not great, but they’re good enough for Aunt Bee (and the external ones even look nice).  The volume control is in the top-right corner, and there’s only one:

A keen observer may note that Windows does have a little system tray icon that only displays a single volume knob, but it is hit-or-miss w/rt showing up, and it’s really just hiding all but one of those volume controls in the main control panel.  In the Mac world, there is only one playback volume control, as far as I can tell.

But there’s extremely good reasons why Windows audio is so convoluted.  It mostly comes down to two: the need for legacy support, and Windows’ open audio architecture. 

The legacy support requirements means that MS has a real hard time fixing any of the braindead issues: just removing one of those crazy volume controls would be a heroic effort. 

Legacy support is what it is, but I want to focus on the other issue: Windows’ open audio architecture.  The open architecture means that guys like me have way more control over the end-user’s audio experience than we really should have.  Microsoft sets some basic ground rules, but then we can do whatever we want outside of that.  Want to support a 46-channel soundcard?  Sure, no problem.  Want to expose it as a single 46-channel device?  Sure.  Or how about 23 stereo devices?  Sure.  Well, how about both a 46-channel device and 23 stereo devices?  Yeah, of course we can do that, too.  (A similar example just came up on the wdmaudiodev mailing list - there’s actually legitimate reasons for doing something like this). 

Now I’m certainly not suggesting that codec vendors should be left out in the cold: we certainly can and do add huge value to Windows audio - in fact, too much value.  The problem is that the open architecture is somewhat of a crutch for Microsoft.  Because we have such free reign, Microsoft hasn’t had to sweat too many of the PC audio details.  Yeah, the built-in controls suck, but system manufacturers that care can get codec vendors to produce new control panels.  And we do: each codec vendor has its own, custom-tailored control panel.  And though the control panels do pretty-much the same thing, they’re all fairly different from each other: different look & feel, slightly different controls, etc. 

Take, for instance, the speaker wizard.  Almost all of the vendors’ audio control panels have some sort of speaker wizard that will help you plug the proper speaker into the proper jack.  Some are more hand-holdy, with the "did you hear the sound?…  Okay, where did you hear the sound?" type of dialogs, while others are of the click-the-speaker-and-it-will-make-a-noise variety.  In this case, being different doesn’t really help: it just frustrates the end user, who really just wants to get his or her speakers working with as little thought about it as possible.

The thing is, none of us codec vendors really want to make a speaker wizard: we just have to because Windows doesn’t provide one.  Admittedly, we’re always happy to get some branding in front of the consumer, and a speaker wizard may not be a bad place to do it.  But it’s still a good chunk of work, and really not an area we want to focus on.  We’d rather be improving audio fidelity, adding Dolby Digital support, improving our device-discovery (JackSense) technology and GUI,  etc. 

And this is also no good for the consumer: what they really need is for Microsoft to spend a few hundred thousand dollars on usability studies, figure out the best way to lay out a speaker wizard for 85.777% of the population, implement that, spend a few more hundred thousand dollars on usability studies that that disprove the first studies, re-implement the speaker wizard, then be done with it.  Or at a minimum,  Microsoft’s audio GUI guy should build the speaker wizard, show it to some of the other developers, let them kibitz about it for a few weeks, then ship it.  This would make it on par with all the other speaker wizards out there - but then at least the consumer would get the same speaker wizard each time they pulled it up on a Windows system.

So now, almost every PC has at least two audio control panels: the Windows control panel, and the Codec vendor’s control panel, which may or may not include all the basic Windows audio controls.  Great: Aunt Bee is even more confused when she tries to get her "You’ve Got Mail!" working.  What’s worse, Andy can’t help her because his PC has a completely different audio control panel.

So what we need is for Windows to take care of the basics, and also enable codec vendors to enhance the audio experience.  And it should do this in a way that ties together the user interface into some sort of cohesive unit. 

As luck would have it, one of the main goals of Vista audio is to resolve some of the more glaring usability issues.  Next time, we’ll look a bit more at how Microsoft is going about this, and how it’s panning out so far. 

Let me finish, though, by saying that this isn’t going to be another "MS sucks" blog.  I have huge respect for the Vista audio team, and what they’re trying to accomplish.  It’s a great undertaking, and so far it looks like they’re generally succeeding.

» Oops…

Not that anyone is reading, but by mistake I posted a couple of drafts.  I’ll put the real article up later today.

March 23, 2006
» Introduction

Is this thing on?  Testing…

Hi, my name is Andrew Wheeler.  I’m an audio driver developer at Sigmatel, working mostly on porting the DSP effects in our current Windows XP driver to the new Vista audio driver model.  I also get involved with SCM when possible, as I find it pretty interesting.  This topic includes ClearCase, Subversion, and Python, my favorite scripting language.

Where do I come from?  I’ve made career of audio DSP and driver development, with a strong focus on 3D audio.  I started my career as an undergrad developing passive sonar systems at Applied Research Laboratories, where I also built my first 3D audio system

I then joined Crystal River Engineering, a startup company focused on 3D audio for psychoacoustics research and virtual reality simulation.  (Remember VR?  It was pretty hot during the 90’s.) 

CRE was purchased by Aureal Semiconductor, where we developed PC audio chips and A3D, one of the first interactive 3D audio technologies that took off w/ gamers.  (Though our technology was pretty darn good for the day, much credit can be given to Toni Schneider for the marketing of A3D.  Toni has gone on to do some very cool things in the web world.)  Aureal/A3D was successful enough to garner Creative Lab’s attention, when they promptly sued us into oblivion (despite winning the case, we ran out of money), and bought the remains.  (There was more to it than just that - we probably would have gone out of business fairly soon, regardless.) 

I then joined Spatializer Labs for a brief stint as VP of Engineering , and then joined a now-defunct startup company focused on  providing a "DirectX" gaming API for cell phones.  And that led me to Sigmatel…

This is my technical blog.  I’ll likely be posting any personal/family stuff on my wife’s/family blog, Educating the Wheelers.