Commit graph

326 commits

Author SHA1 Message Date
Marcus Wu
44e3e96986
Update comment based on suggestion
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-23 12:09:42 -04:00
Marcus Wu
d9a22d1b62
Update comment based on suggestion
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-23 12:09:29 -04:00
Marcus Wu
ce56a96829
Updated according to suggestions
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-22 20:48:41 -04:00
Marcus Wu
c10ea9d132
Updated according to suggestions
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-22 20:48:20 -04:00
Marcus Wu
64003ca1d6
Updated according to suggestions
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-22 20:47:57 -04:00
Marcus Wu
7df7f062e0
Updated according to suggestions
Co-authored-by: Kyle Neideck <kyle@bearisdriving.com>
2021-03-22 20:47:41 -04:00
Marcus Wu
2090761ae5 Add BGMASApplication to test target 2021-03-19 21:00:39 -04:00
Marcus Wu
c303f60343 Fix licensing text in new files 2021-03-19 20:52:04 -04:00
Marcus Wu
97d3645bd3 Fix main volume changes not showing on slider 2021-03-19 20:44:49 -04:00
Marcus Wu
9765193c1f Added app volume and pan setting to AppleScript 2021-03-19 20:29:36 -04:00
Kyle Neideck
2ff4c08e75 Add GitHub issue templates. 2021-02-21 01:02:07 +11:00
Kyle Neideck
3a529cc0fb
Update the copyright year in the README. 2021-02-21 00:21:15 +11:00
Kyle Neideck
0f653f90a8
Merge pull request #430 from findtravishere/master
Update README.md for option 2 snapshot version regarding homebrew
2021-02-11 22:02:58 +11:00
findtravishere
4c40e0286e Update README.md for option 2 snapshot version regarding homebrew 2021-02-08 11:07:17 +08:00
Kyle Neideck
bdebc07b38
MANUAL-UNINSTALL.md: Add a troubleshooting section 2021-01-26 10:20:04 +11:00
Kyle Neideck
65c2a34ce5
Merge pull request #400 from rstad/master
updates brew cask instructions in README
2020-12-11 12:16:35 +11:00
Russell Stadler
94459f7e8c updates brew cask instructions in README
`brew cask install` appears to be deprecated, and using it gets this warning:

```Warning: Calling brew cask install is deprecated! Use brew install
[--cask] instead.```

So this is a super small change in README to reflect that.
2020-12-10 12:25:52 -08:00
Kyle Neideck
ef4bd54965
Add a warning about Big Sur compatibility to the README. 2020-12-03 23:05:25 +11:00
Kyle Neideck
c0ab98b98b
Workaround deadlocks when starting IO on macOS Big Sur.
This works similarly to the workaround in the previous commit, but
avoids the short wait while XPC times out. It still allows some initial
frames to be dropped when IO starts.

See #328, #388 and PR #390.
2020-11-26 00:49:34 +11:00
Aleksey Yurkevich
043bfb3633 Big Sur fix 2020-11-21 16:27:59 +03:00
Kyle Neideck
63393054ba
Merge pull request #349 from stenalpjolly/patch-1
Update README.md
2020-08-10 18:48:53 +10:00
Stenal P Jolly
6486c8ccf3
Update README.md 2020-08-10 14:10:37 +05:30
Kyle Neideck
c068810953
Merge pull request #344 from YohanTz/readme-update
Updated README.md
2020-08-07 15:21:06 +10:00
Yohan Tancrez
dd05f60c1d Updated README 2020-08-07 02:32:11 +02:00
Kyle Neideck
df02aae263
Fix some spurious error messages in build_and_install.sh.
Also, update the Xcode versions for CI builds.
2020-07-11 17:30:02 +10:00
Kyle Neideck
f20dd578ab
Temporarily allow debug builds to pass even if the install fails.
The debug build packages are still failing to install on Travis and it's
not clear why.
2020-06-22 11:31:00 +10:00
Kyle Neideck
026558d974
Disable UndefinedBehaviorSanitizer in debug build packages.
Debug builds from CI have been crashing because they can't find the
UBSan dylib (even though it was in the bundles).
2020-06-22 01:36:56 +10:00
Kyle Neideck
ae724fe7af
Reduce logging in CI builds so Travis doesn't kill them.
Upload the build_and_install.log from the packaging step instead of
printing it.
2020-06-21 00:12:16 +10:00
Kyle Neideck
42fbd7590e
Temporarily allow debug builds to pass even if the install fails.
Debug packages are failing to install on Travis CI, but I can't
reproduce the problem locally and there's not much to go on in the
installer logs.
2020-06-20 23:25:19 +10:00
Kyle Neideck
ae564d761b
Fix BGMXPCHelper not being included in debug packages.
The path to the built BGMXPCHelper bundle was missing from package.sh,
so it wasn't including that bundle in the .pkg it created. Then the .pkg
would fail when you tried to install it.
2020-06-20 20:51:26 +10:00
Kyle Neideck
6edf25bfbe
Merge pull request #300 from qaisjp/patch-1
Fix details box markdown
2020-05-13 22:37:21 +10:00
Qais Patankar
694c8d612e
Fix details box markdown 2020-05-13 13:34:38 +01:00
Kyle Neideck
f24a6cb2f1
Try to avoid using the discrete GPU on multi-GPU systems to save power.
Add NSSupportsAutomaticGraphicsSwitching to BGMApp's Info.plist in the
hopes that it will use the integrated GPU when possible. BGMApp doesn't
need to use the fastest GPU, so it's better to save battery power.

Untested because I don't have the right hardware. (I actually have an
iMac with a discrete GPU, but the integrated GPU seems to be disabled.)

See #284 and
<https://developer.apple.com/library/archive/qa/qa1734/_index.html>.
2020-04-21 14:11:42 +10:00
Kyle Neideck
70a64de734
Fix apps failing to start audio after upgrading Background Music.
A macOS bug was stopping BGMXPCHelper from running, which would stop
BGMDevice from starting IO. It would wait in StartIO until timing out.

I'm not sure why that didn't cause BGMDriver's XPC connection fail. If
it had, BGMDevice would have just started IO without waiting for BGMApp
to be ready. The it would have just dropped some initial frames and
logged an error instead of freezing for 30 seconds.

The fix/workaround is to delete the old version of BGMXPCHelper before
installing the new one.
2020-04-19 16:43:17 +10:00
Kyle Neideck
488ed16dfc
Hopefully fix a segfault caused by BGM_PlayThrough.
Issue #276 reported a segfault that occurred while BGMApp was launching.
It was caused by BGM_PlayThrough's output IOProc when it tried to read
from the ring buffer. I haven't been able to reproduce the problem, so I
don't know whether this commit will actually fix it. Hopefully it will
at least make it easier to diagnose.

This commit adds locking around accesses to the buffer so that the
IOProcs will skip the current IO cycle if it isn't safe to use the ring
buffer. That should only happen during launch or when changing the
output device. (And only if something else has gone wrong.)
2020-04-18 22:00:49 +10:00
Kyle Neideck
8499b85736
Add known issue to the README: only stereo devices currently work.
Also:
 - Explain why Background Music needs "microphone access".
 - Add BlackHole to the related projects.
2020-04-10 22:21:32 +10:00
Kyle Neideck
1a2c880b32
Merge pull request #279 from Anaxilaus/master
Add troubleshooting tips
2020-04-09 19:35:08 +10:00
Mert Dede
4cfc8df48a
Update README.md
Add tip to troubleshooting for meeting softwares.
2020-04-09 12:27:25 +03:00
Mert Dede
4ff3db4238
Update README.md
Add troubleshooting warning for experienced OS issues.
2020-04-09 12:19:18 +03:00
Kyle Neideck
23ecf7e46e
Fix BGMDriver and BGMXPCHelper's version strings for SNAPSHOT builds.
And DEBUG builds. The "-SNAPSHOT-abc0123" suffix was only being added to
the version string for BGMApp.
2020-02-09 22:18:52 +11:00
Kyle Neideck
63b458abdc
Limit the installer logs copied into the Travis logs. 2020-02-09 21:31:26 +11:00
Kyle Neideck
d95b0d8b1a
Add a repackage option (-r) to package.sh.
It takes an expanded Background Music .pkg installer and repackages it
into a new .pkg installer. It's mainly useful for code signing, since
you have to expand the unsigned package, sign each of the bundles,
repackage it and then sign the new package.

Also, fix build_and_install.sh putting the BGMXPCHelper dSYMs in the
wrong archive.
2020-02-09 20:19:41 +11:00
Kyle Neideck
8de821d4aa
Add an archive option (-a) to build_and_install.sh.
Archiving is the standard way to build a release for distribution using
Xcode. package.sh now uses this option when it creates a release
package.

This change is mainly to keep the Run settings in the Xcode schemes from
affecting the release builds, which means we can commit the schemes with
more sensible settings.

Also, disable AddressSanitizer in the BGMDevice scheme, which was
stopping coreaudiod from launching because its sandbox won't allow the
process to load the AddressSanitizer dylib.
2020-02-05 00:09:14 +11:00
Kyle Neideck
08d428c948
Merge branch 'CodeNameFox06-patch-1' 2020-01-25 19:17:59 +11:00
Kyle Neideck
1710b93333
Merge branch 'patch-1' of https://github.com/CodeNameFox06/BackgroundMusic into CodeNameFox06-patch-1 2020-01-25 19:17:02 +11:00
Kyle Neideck
2c1677305d
Add optional debug logging in release builds.
Clicking the status bar icon with the option key held now reveals a
setting that enables debug logging in BGMApp. It's enabled by default in
debug builds.

It doesn't enable debug logging in BGMDriver or BGMXPCHelper yet.

This will hopefully make it easier for people to include logs when they
report bugs that don't occur with most hardware or are otherwise hard to
reproduce.

Enabling debug logging should be unlikely to cause audio glitches, but I
haven't tried to make it completely safe.

Also,
 - add some basic unit tests for BGMPlayThrough and expand the mocks for
   the CoreAudio HAL API,
 - fix the UI tests so you can run them without code signing them, and
 - update copyright years.
2020-01-24 08:07:34 +11:00
Kyle Neideck
8ca17bb5f8
Fix occasional IO deadline misses in BGM_Device.
Seems to have been introduced by my previous commit.
2019-12-01 14:04:57 +11:00
Kyle Neideck
120606b95e
Fix the BGMDriver tests not compiling. 2019-11-30 22:36:17 +11:00
Kyle Neideck
5fc615bdb5
Add a copy of CARingBuffer to the BGMDriver project.
It was using the copy in the BGMApp project, but for historical reasons
they both have a separate copy of the PublicUtility classes. We haven't
gotten around to combining them yet, so this commit is to keep them
consistent until we do.

Also, some minor clean up in BGMDriver related to #218.
2019-11-30 21:04:21 +11:00
Gordon Childs
40f0128dcd
first attempt at using CARingBuffer 2019-11-30 21:04:21 +11:00