Chrome 25 broke audio for me rather badly
I listen to my scanner a lot. I usually pipe it through Airplay and mix it with my music and have it on while working on other things. Part of that is because it's nice to have music and random background chatter, but it's also because you have to keep music playing or each new playback event would lag. I described this in a post back in October.
Anyway, I've been doing this for a while, and so I have a certain sense of how things should flow. A call will play, then it will reach the end, my browser will fetch the next call, and then it will start playing. This all happens relatively quickly. If it takes longer than usual, then I know something is up: my Internet connection is going crazy, my server is dying, or (more likely) something stupid is happening on my Macbook.
I should mention which browser I use for this. I use Chrome. I purposely use it for this and only this because that way it stays out of the way of my normal browsing (Firefox). For the most part, this has worked out. Occasionally, I run into insanity like when it started digging around in my contacts, but that was it.
Tonight, that changed, and yet another wart was introduced. There's now a delay of maybe two or three seconds between clicking play and having it actually play any sound. This is not just in my scanner page, either. I can actually load a MP3 in its own tab and click the little play triangle, and it will lag there, too!
Obviously, this is unprecedented. This amount of lag previously only happened when I didn't have music playing at the same time. Now, the music has no effect. I restarted the browser, shut down everything, and tried again, but it's still happening. None of this made any sense. It just came up out of nowhere.
Then I realized something: Chrome tends to update itself, and I did in fact shut it down today because it had a little green blob that says "I need to be restarted to pick up an update". I went into my server logs and found what happened. I was running "Chrome/24.0.1312.57", but after the upgrade, now I'm on "Chrome/25.0.1364.99". Uh oh. I jumped an entire major version. That must be it.
The changelog suggests they did something involving speech recognition in version 25. That suggests they were at least in the general neighborhood of audio during the run-up to this release, and something might have changed.
Besides the lag, I also got something really weird happening at times where it started mangling the audio horribly. I'd switch back to my internal speakers and it would be fine, but going back to the Airplay device would screw it up again. The music was fine throughout this, incidentally, so it's not anything to do with my headphones or that part of the audio chain.
I don't really have the words to describe what it was doing with the audio. I could still make out syllables and things like that, but there was this buzzing type noise going on along with it. It seems familiar but I can't quite place it. I can't easily get a recording of it, unfortunately.
Considering all of this started when Chrome upgraded itself and that everything sounds great and is lag-free in Firefox, I guess I just lost my last reason to use Chrome. Now I just need to figure out a good way to keep my scanner running in Firefox without getting in my way.
While writing this, I remembered that Firefox added something called "pin tab" which is intended for "web apps". I guess my scanner is the closest thing to that in my life, so I decided to try it. It actually seems rather useful! The tab shrinks down to just the favicon width, and (most importantly) command-W stops working. I won't ever double-tap that and kill the scanner now.
Way to go, Firefox! It already had just the thing I needed right when I happened to need it.
I should note that I turned up a bunch of weird bug reports talking about audio lag in Chrome and someone else who actually reported bizarre noises "upon switching the audio output". Considering I have to switch the audio output to enable Airplay, that sounds about right.
I will also mention that I disabled some built-in Flash plugin and a bunch of other stuff in an attempt to make this work. It didn't help. Well, it's too late. I've switched.