SonoBus, patched
A fix for the SonoBus connection bug that stops the AU / VST3 plugin connecting on macOS. Build it yourself in one command. Free software, GPLv3.
Build it on your Mac
One command. It fetches the source, applies the fix, builds a universal binary (Apple Silicon and Intel), signs it, and installs the plugins for your DAW. Takes 15–40 minutes, mostly unattended.
curl -fsSLO https://vanini.space/static/downloads/sonobus/build-on-mac.sh
bash build-on-mac.shYou need Xcode command line tools (xcode-select --install) and
Homebrew; the script installs
cmake itself and tells you plainly if anything is missing.
Building locally avoids Gatekeeper entirely. The quarantine flag is only applied to downloaded files, so a plugin compiled on your own machine loads with no warning and nothing to work around.
What gets installed
~/Library/Audio/Plug-Ins/VST3/SonoBus.vst3— shows as “SonoBus”~/Library/Audio/Plug-Ins/VST3/SonoBusInstrument.vst3— shows as “SonoBus Instrument”~/Library/Audio/Plug-Ins/Components/SonoBus.component— AU~/Applications/SonoBus.app— standalone
Quit and reopen your DAW afterwards so it rescans plugins.
If you had the official SonoBus installed before: its copies live
in the system-wide /Library/Audio/Plug-Ins/ and your DAW may keep loading
those instead of the patched ones — the bug then looks like it came back. The
script checks for them at the end and prints the exact lines to move them aside. SonoBus
is two plugins (“SonoBus” and “SonoBus Instrument”); both
old copies need moving.
What this fixes
Upstream SonoBus has a bug where the AU and VST3 plugin fails to connect to a connection server, while the standalone app connects fine. It surfaces as “Connect failed: Invalid argument” — or, worse, as nothing at all.
Three bugs, one code path
- Name resolution reported the wrong error. The client resolved
hostnames with
gethostbyname()and reported failures usingerrno— which that function never sets. The message shown was whatever stale value happened to be inerrno. When that value was0, the caller read the failure as success and hung silently forever. - Malformed addresses became a broadcast address.
inet_addr()signals failure with a value indistinguishable from a valid255.255.255.255, and the result was never checked — so bad input parsed out of untrusted network messages silently turned into a broadcast address. - Connecting used
select(), which breaks past 1024 open files. This is the one that actually produces the error.select()cannot handle a file descriptor at or above 1024; a DAW with a real session keeps far more files open than that, so the plugin’s socket lands above the limit,FD_SEToverflows its buffer, and the connect fails with a bare “Invalid argument”. The standalone app keeps few files open and never hits it — which is exactly the plugin-only, sometimes-it-works pattern people report. Fixed by moving topoll(), which has no such limit.
Fully compatible with standard SonoBus. The patch changes nothing on the wire. You can still join groups with anyone running the official build, on the default server or any other.
Installing
Unzip, then copy the plugins into your user plug-in folders:
cp -R SonoBus.vst3 ~/Library/Audio/Plug-Ins/VST3/
cp -R SonoBus.component ~/Library/Audio/Plug-Ins/Components/Clearing the quarantine flag
These plugins are ad-hoc signed but not notarized, so macOS marks them as quarantined after download and your DAW will refuse to load them. Clear it once:
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST3/SonoBus.vst3
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/Components/SonoBus.componentThen quit and reopen your DAW so it rescans plugins.
Source code and licence
SonoBus is free software licensed under the GNU General Public License v3. This is a modified version, and the modifications are published here as required by that licence.
- Original project: github.com/sonosaurus/sonobus
- Changes made: name resolution moved to
getaddrinfo(), address parsing moved toinet_pton(), the connect wait moved fromselect()topoll(), connect failures forced to a non-zero return, and macOS network entitlements added to the build. - Modified: August 2026.