Hog Mode

A key aspect of BitPerfect’s playback method is that it utilizes the so-called “Hog Mode”.  This means that it takes exclusive control of the audio output device it is playing through, and no other Apps – including OS/X – can access it.  There are two reasons for doing this.  The first is so that when you are listening to your music, which may be playing at high volume, you do not want system noises (such as “You’ve got Mail!”) interrupting playback.  The second is that, in order for other Apps to be able to send sounds to the same output device, the playback chain has to include the capability to mix extraneous sounds in with the music, and the elimination of such extraneous subroutines from the playback chain is a key element of what we do to make BitPerfect sound so good.

It is often the case that the audio output device you select for BitPerfect to play through is also OS/X’s (and therefore your system’s) default audio output device.  So when BitPerfect needs to play through that device, and forces it into “Hog Mode”, the first thing OS/X does is realize it can no longer access it.  As far as OS/X is concerned, it is as though the device had suddenly been disconnected.  OS/X responds by immediately designating another available audio output device as the temporary “default” audio output device.  (There are various criteria at play when it comes to which available audio output device OS/X will select for this purpose, but in any case BitPerfect cannot control this process.)  This situation remains until one of two things happens.  Either the user steps in and (using Audio Midi setup, or System Preferences, for example) sets another available (i.e. not "hogged") device to be the default audio output device, or BitPerfect releases its “Hog Mode”, at which point OS/X can once again access it, and will immediately set it back to being the “default” audio output device.  Just remember that while BitPerfect is “hogging” its audio output device, you can go into Audio Midi setup or System Preferences, and you will find that you cannot access that device, set its properties, or designate it as the “default” audio output device.  It can be instructive to open Audio Midi Setup and observe what happens to the audio output devices as you start and stop playing BitPerfect.

What determines when BitPerfect “Hogs” its designated audio output device?  Well, it does this when iTunes is in either its “Playing” or “Paused” states.  In order to release “Hog” mode, you need to put iTunes into its “Stopped” state.  Unfortunately, in iTunes’ user interface, the Play button only toggles between “Playing” and “Paused” modes, and so it never enters “Stopped” mode unless it reaches the end of an Album or a Playlist.  There are only two ways to force iTunes into its “Stopped” state and thereby release the “Hog Mode” on the audio output device.  The first is to select “Controls|Stop” from iTunes’ main menu (or to use its keyboard shortcut “CTRL-.”).  The second is to select “Stop” from BitPerfect’s menu bar drop-down menu.  Of course, you can also quit BitPerfect, or "Disable" it from its menu bar drop-down menu, but those are more extreme measures.

Some unexpected behavior can occur on systems which have an active AirPlay device plus a different audio output device (lets call it the “DAC”) which is used by BitPerfect and is also OS/X’s default audio output device.  When BitPerfect hogs the DAC, OS/X may select AirPlay as the temporary default audio output device.  This can – in certain configurations when AirPlay is connected to an AppleTV device or a Home Theater receiver – cause the Home Theater system to unexpectedly switch on and off.  In order to avoid this, BitPerfect provides a setting “Stop iTunes using AirPlay Devices” which in effect simultaneously places a “Hog” on the AirPlay device to prevent it being selected by OS/X as the temporary default audio output device.