In my last post on the subject of the MacBook Pro noise dilemma, I dismissed with borderline contempt the notion that “opening and closing Mirror.widget” was a reasonable workaround for the CPU whine problem. I felt pretty certain after my experiments with tweaking CPU usage that any workaround would necessarily equate to equivalent CPU usage or battery draw behind the scenes.
I may yet turn out to have been right, but I’m now using the “Mirror Widget Hack” (MWH) instead of my own QuietMBP. Why? I just got the feeling that my machine was running hotter, mooing more, and generally behaving less amicably when QuietMBP was used to alleviate the symptoms instead of the magical Mirror.widget. The damned computer feels like a wise investment when I use the MWH! I love it again (mostly). So, to all the readers who felt dismissed by my jarring rejection of MWH: mea culpa. I’m sorry.
I don’t like magic, though. At least not when I can’t understand it. I’m ready to admit that MWH does something that brings my computer into a state of calm, but if MWH can do it, surely some other piece of software, that is more convenient to run than a dashboard widget, can do the same thing. I decided to start looking carefully into what exactly happens to the computer when you apply this hack.
First of all, Mirror.widget contains no code. Well, that’s no fun! How the hell does it fix my system, then? The widget is largely implemented in the form of a special QuickTime movie “mirror2.mov” that is somehow configured to automatically reflect the incoming iSight image in real-time. Great, so I can get the same system-calming affects by opening the movie in QuickTime Player, right? Right. But as soon as I quit QuickTime Player, the noise comes back. When you close the widget, the noise stays away forever (actually until you use some app other than Dashboard that opens and then closes access to the iSight). I thought I’d try to open the widget in Safari. No dice. Even after editing the widget so it would attempt to operate despite not being in the Dashboard – it silences the noise while the movie is visible, but the noise comes back after closing the web page. Get this: even turning off the movie in Mirror Widget, by clicking the little “i” in the lower left corner causes the noise to come back. Something about the (perhaps clumsy, but beautifully, wondrously clumsy) way that Dashboard closes up shop for the widget while the movie is active causes the system to get “stuck in good mode.”
I decided to whip out Shark, Apple’s profiling tool from the CHUD toolset. I figured there must be something different about “my computer doing nothing” before and after the magic MWH. To get a fairly straightforward sample, I quiet all visible applications except Shark and the Finder. Then, with the noise blaring, I took a 2 second timed sample of “Everything.” This means all processes on the system that are using any CPU time at all for anything. Then I silenced the MBP with the MWH, and grabbed an identical 2 second sample. I did this a few times to make sure there were no statistical anomalies coloring my view of what’s going on. The difference between the two samples? Almost absofrickinlutely nothing. In fact, nothing of interest I can pinpoint after multiple sessions of sampling at different rates, over different durations, and using different sampling configuration.
The Mirror Widget is magic. I use it and love it. Be warned that as soon as you use your iSight again in another app, and then quit, the noise will come back. But other than that, I now switch my allegiance to Mirror Widget. I just wish I knew why it does what it does. Maybe somebody with more Shark skills than I can get to the bottom of this.
Update: Supporting evidence that the silence is a side-effect of a poor “cleanup” from Dashboard: opening mirror2.mov in QuickTime Player and then force-quitting QuickTime player produces the same “permanent” fix to the system. Also, opening Photo Booth (or I presume any other iSight-using app) and force-quitting it while the silence is golden will achieve the same result. Getting closer to an answer!
More: Apple’s “WhackedTV” developer sample also eliminates the noise if you add a video track in the app (defaults to iSight) and then quit. Apparently however it cleans up or doesn’t clean up upon quit is also well-suited to leaving the Mac in quiet mode.
Update 2: I decided to hack the WhackedTV example to produce the simplest possible app that can shut the MBP up and immediately quit. This would make a suitable login item, and can be manually relaunched any time the noise comes back (e.g. after using the iSight for something real). Download MagicNoiseKiller (Intel only) today!