Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
This release no longer hardcodes the
SoundPusher Audio device as input device, but can instead use any compatible (6 channels, 48000Hz) device whose sound is encoded and forwarded to the desired output device. This includes Rogue Amoeba's Loopback Audio when configured to provide 6 channels, which was what I was testing with (in addition to
There's also been improvements to the default device restoration (in particularly when quitting). This should be much more reliable now.
Last but not least: I realized that FFmpeg's "new"
send_frame / receive_packet API (which I started using in v1.2.0) has been resulting in memory (re)allocations on the audio thread. That is bad but there seems to be no way (that I could figure out anyhow) to avoid it, so now we're using the old deprecated API again which behaves better in this regard.
It seems that some users of Rogue Amoeba's Loopback product were also
using SoundPusher and ended up being rather confused. Their product has
a bit more branding, so it's probably easier to rename my device (even
though I was first
Updated ffmpeg to 4.2.3.
Note that if you mix previous versions of app with current version of
the driver (or vice versa), they will not find each other. You can
safely delete the old
This lets us use AVFoundation's
[AVCaptureDevice requestAccessForMediaType:completionHandler:] for querying (and requesting) audio input.
This should be done as soon as the user attempts to start a chain, so they hopefully realize that their action caused this request.
This enables the hardened run-time and other things required for App Notarization.
The embedded FFmpeg has been updated to v4.1.3.
The provided binaries should be correctly notarized.
edit: SoundPusher.app was missing the audio-input entitlement for the hardened run-time. Try again if you were having problems.
- Add microphone entitlement that seems required since macOS 10.13.5. I was so proud of not needing any...
- Updated ffmpeg to 4.0.1.
- Added a small safe amount of excess audio frames to keep around, which should prevent odd situations where SoundPusher continually readjusts between over- and underflow.
IOCycleUsagewith random data instead of silence to stress encoder.
- Increase minimum deployment target to macOS 10.12 and move to
Loopback Audio is unchanged.
Note that the application is a fair bit larger now, this seems due to Xcode 9 putting the largest resource (the app icon) into both the asset catalog as well as a separate
AppIcon.icns. I couldn't figure out how to include only one of them. ¯\(ツ)/¯
There should be no perceptible changes, but internals moved around a fair bit.
Fixed channel mapping bug which would have been incorrect were it not for a second coincidence making it correct for the actual case that was being used.
Updated to FFmpeg 3.0.
Note: No changes to LoopbackAudio compared to the previous version.
Added stereo upmix (enabled or disabled from the menu).
The current upmix matrix is
L' = L R' = R C' = C + (L + R) * 1/sqrt(2) Ls' = Ls + (L - R) * 1/2 Rs' = Rs + (R - L) * 1/2 LFE' = LFE
This also correctly increments the version of the installer, as that takes its version number from the
There should be no noticeable changes to the previous version.