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.