Rename BGMDevice from "Background Music Device" to "Background Music".

Resolves #116.
This commit is contained in:
Kyle Neideck 2017-06-25 12:39:34 +10:00
parent 243c798ccd
commit ccac7d7001
No known key found for this signature in database
GPG key ID: CAA8D9B8E39EC18C
5 changed files with 21 additions and 19 deletions

View file

@ -150,7 +150,7 @@ static float const kStatusBarIconPadding = 0.25;
NSError* error = [audioDevices setBGMDeviceAsOSDefault];
if (error) {
[self showSetDeviceAsDefaultError:error
message:@"Could not set Background Music Device as your default audio device."
message:@"Could not set the Background Music device as your default audio device."
informativeText:@"You might be able to set it yourself."];
}
}
@ -224,7 +224,7 @@ static float const kStatusBarIconPadding = 0.25;
// TODO: Check whether the driver files are in /Library/Audio/Plug-Ins/HAL and offer to install them if not. Also,
// it would be nice if we could restart coreaudiod automatically (using launchd).
[alert setMessageText:@"Could not find the Background Music virtual audio device."];
[alert setInformativeText:@"Make sure you've installed Background Music.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")."];
[alert setInformativeText:@"Make sure you've installed Background Music Device.driver to /Library/Audio/Plug-Ins/HAL and restarted coreaudiod (e.g. \"sudo killall coreaudiod\")."];
} else if (code == kBGMErrorCode_OutputDeviceNotFound) {
[alert setMessageText:@"Could not find an audio output device."];
[alert setInformativeText:@"If you do have one installed, this is probably a bug. Sorry about that. Feel free to file an issue on GitHub."];

View file

@ -195,7 +195,7 @@ private:
static pthread_once_t sStaticInitializer;
static BGM_Device* __nonnull sInstance;
#define kDeviceName "Background Music Device"
#define kDeviceName "Background Music"
#define kDeviceManufacturerName "Background Music contributors"
enum

View file

@ -17,7 +17,7 @@ Device". They're shown in `System Preferences > Sound` along with the real audio
When you start BGMApp, it sets BGMDevice as your system's default output device so the system (i.e. Core Audio) will
start sending all<sup id="a1">[1](#f1)</sup> your audio data to BGMDriver. BGMDriver plays that audio on BGMDevice's
input stream, and the user can record it by selecting "Background Music Device" in QuickTime the same way they'd select
input stream, and the user can record it by selecting the Background Music device in QuickTime the same way they'd select
a microphone.
So that you can still hear the audio, BGMApp starts listening to BGMDevice's input stream and playing the audio out of
@ -50,10 +50,10 @@ Nothing](http://www.rossbencina.com/code/real-time-audio-programming-101-time-wa
## BGMDriver
The BGMDriver project is an audio driver for a virtual audio device called Background Music Device, which we use to
intercept the audio playing on the user's system. The driver processes the audio data to apply per-app volumes, see if
the music player is playing, etc. and then writes the audio to BGMDevice's input stream. It's essentially a loopback
device with a few extra features.
The BGMDriver project is an audio driver for a virtual audio device named "Background Music", which we use to intercept
the audio playing on the user's system. The driver processes the audio data to apply per-app volumes, see if the music
player is playing, etc. and then writes the audio to BGMDevice's input stream. It's essentially a loopback device with a
few extra features.
There are quite a few other open-source projects with drivers that do the same
thing--[Soundflower](https://github.com/mattingalls/Soundflower) is probably the most well known--but as far as I know

View file

@ -51,11 +51,11 @@ their normal maximum volume.
## Recording system audio
With Background Music running, open QuickTime Player and go `File > New Audio Recording...` (or movie/screen). Then
click the arrow next to the record button that looks like `⌄` and select `Background Music Device` as the input device.
click the arrow next to the record button that looks like `⌄` and select `Background Music` as the input device.
You should be able to record system audio and a microphone together by creating an [aggregate
device](https://support.apple.com/en-us/HT202000) that combines your input device (usually Built-in Input) with
Background Music Device. You can create the aggregate device using the Audio MIDI Setup utility from
the Background Music device. You can create the aggregate device using the Audio MIDI Setup utility from
`/Applications/Utilities`.
## Install from source
@ -109,9 +109,11 @@ consider submitting a bug report, too.)
## Troubleshooting
If Background Music crashes and system audio stops working, open the Sound panel in System Preferences and change your
system's default output device to something other than Background Music Device. If it already is, it might help to
change the default device and then change it back again. Failing that, you might have to uninstall.
If Background Music crashes and your audio stops working, open the Sound panel in System Preferences and change your
system's default output device to something other than the Background Music device. If it already is, it might help to
change the default device and then change it back again.
Failing that, you might have to uninstall. Consider filing a bug report if you do.
## Known issues
@ -124,13 +126,13 @@ change the default device and then change it back again. Failing that, you might
General tab of Skype's preferences.
- Plugging in or unplugging headphones when Background Music isn't running can silence system audio. To fix it, go to
the Sound section in System Preferences, click the Output tab and change your default output device to something other
than Background Music Device. Alternatively, you may Option+Click on the Sound icon in the menu bar to select a
than the Background Music device. Alternatively, you may Option+Click on the Sound icon in the menu bar to select a
different output device.
This happens when macOS remembers that Background Music Device was your default audio device the last time you last
used (or didn't use) headphones.
- [A recent Chrome bug](https://bugs.chromium.org/p/chromium/issues/detail?id=557620) can stop Chrome from switching to
Background Music Device after you open Background Music. Chrome's audio will still play, but Background Music won't be
This happens when macOS remembers that the Background Music device was your default audio device the last time you
last used (or didn't use) headphones.
- [A Chrome bug](https://bugs.chromium.org/p/chromium/issues/detail?id=557620) can stop Chrome from switching to the
Background Music device after you open Background Music. Chrome's audio will still play, but Background Music won't be
aware of it.
- Some apps play notification sounds that are only just long enough to trigger an auto-pause. The only workaround right
now is to increase the `kPauseDelayNSec` constant in [BGMAutoPauseMusic.mm](/BGMApp/BGMApp/BGMAutoPauseMusic.mm).

View file

@ -70,7 +70,7 @@ There are also lots of other TODOs commented around the code.
- Should we hide the BGM device when BGMApp isn't running? This would fix the problem of our device being left as the
default device if BGMApp doesn't shutdown properly (because of a crash, hard reset, etc.), which stops the system from
playing audio. The problem with that is Background Music Device can still be used without BGMApp, to record
playing audio. The problem with that is the Background Music device can still be used without BGMApp, to record
system/apps' audio, so ideally the BGM device would be able to just unset itself as the default device when BGMApp
isn't running. For now, I think we should just have `kAudioDevicePropertyDeviceCanBeDefaultDevice` become false.