sonobus is a free, open source media & streaming project written in C++ and released under GPL-3.0. It has 2,188 GitHub stars, 185 forks and 195 open issues, and was last pushed 14 days ago. On this registry it ranks #17 of 34 tracked projects in Media & Streaming, with 5 head-to-head comparisons available.

What is sonobus?

SonoBus is a free, GPL-3.0-licensed, low-latency peer-to-peer audio streaming application that lets musicians, podcasters, and audio engineers send and receive high-quality audio between devices over the internet or a local network.

What it is

SonoBus is an open-source C++ application, written by Jesse Chappell and published under the GPL-3.0 licence, with its source at github.com/sonosaurus/sonobus. It runs as a standalone application on macOS, Windows, iOS, and Linux, and as an audio plugin (AU, VST) on macOS and Windows. The repository sits in the Miscellaneous / Media & Streaming category, carries 2,188 stars and 185 forks, and its topic list names audio, music, network, peer-to-peer, low-latency, podcasting, plugin, vst, audiounit, and aax.

The concrete problem it solves is getting audio from one person's machine to another's without a centralized conferencing service in the middle. SonoBus connects multiple users into a group that they join by choosing a unique group name with an optional password; the connection server is used only so that members of a group can find each other, while all audio travels directly between users peer-to-peer. Within a group, each participant gets fine-grained control over latency, quality, and overall mix, with network statistics clearly visible and all settings dynamic.

Key capabilities

  • Group sessions joined by a unique group name with optional password, where the connection server handles peer discovery only and audio is sent directly between users.
  • Audio quality switched instantly between full uncompressed PCM at 16, 24, or 32 bit and compressed bitrates of 16-256 kbps per channel using the low-latency Opus codec, set independently for each connected user.
  • Recording of the audio from everyone in the group, plus playback of any audio content to the whole group.
  • Optional input compression, noise gate, and EQ effects, along with a master reverb.
  • Standalone operation on macOS, Windows, iOS, and Linux, and plugin operation (AU, VST) on macOS and Windows.
  • Source builds driven by CMake 3.15 or above through ./setupcmake.sh and ./buildcmake.sh, producing artefacts under build/SonoBus_artefacts/Release.
  • Xcode project generation via ./setupcmakexcode.sh into buildXcode/SonoBus.xcodeproj, and the Windows script ./setupcmakewin.sh for Visual Studio 2017 builds.

Who uses it and how

  • Bands and remote session players connecting several people at once to make music, where wired ethernet to the router is recommended for the lowest latency.
  • Podcasters who record the audio from everyone in the group in a single session, as reflected in the podcasting topic.
  • DAW users on macOS and Windows who load the AU or VST plugin inside their host rather than running the standalone application.
  • Mobile users on iOS, who run the standalone application on the device.
  • Linux users installing from Debian packages or the Snap package, or building from source after reading linux/BUILDING.md.

Getting started

Binary releases for macOS and Windows are available at sonobus.net or from the releases on this repository, and Debian-based and Snap packages for Linux are documented at sonobus.net/linux.html. Building from source requires CMake 3.15 or above plus Xcode on macOS or Visual Studio 2017 on Windows, with all dependencies including prebuilt Opus libraries kept in the GIT repository.

How it compares

No list of paid products that this project replaces is provided in the facts, and no comparable tools are named. SonoBus stands alone in this registry.

When to use it — and when not to

SonoBus deliberately applies no echo cancellation and no automatic noise reduction in order to preserve audio quality, so anyone with a live microphone must use headphones to avoid echoes and feedback, and anyone who needs acoustic echo cancellation should look elsewhere. The data communication is not encrypted, so groups handling sensitive audio should not choose it on that basis. WiFi works but adds jitter and packet loss, forcing a bigger safety buffer and therefore higher latency, so wired ethernet is the recommended path for low-latency use. Self-builders must supply the toolchain — CMake 3.15 or above, Xcode, or Visual Studio 2017 — and the repository carries 195 open issues.

project readme (upstream, from github) — read inline

SonoBus

SonoBus is an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network.

Simply choose a unique group name (with optional password), and instantly connect multiple people together to make music, remote sessions, podcasts, etc. Easily record the audio from everyone, as well as playback any audio content to the whole group.

Connects multiple users together to send and receive audio among all in a group, with fine-grained control over latency, quality and overall mix. Includes optional input compression, noise gate, and EQ effects, along with a master reverb. All settings are dynamic, network statistics are clearly visible.

Works as a standalone application on macOS, Windows, iOS, and Linux, and as an audio plugin (AU, VST) on macOS and Windows. Use it on your desktop or in your DAW, or on your mobile device.

Easy to setup and use, yet still provides all the details that audio nerds want to see. Audio quality can be instantly adjusted from full uncompressed PCM (16, 24, or 32 bit) or with various compressed bitrates (16-256 kbps per channel) using the low-latency Opus codec, and you can do this independently for any of the users you are connected with in a group.

IMPORTANT TIPS

SonoBus does not use any echo cancellation, or automatic noise reduction in order to maintain the highest audio quality. As a result, if you have a live microphone signal you will need to also use headphones to prevent echos and/or feedback.

For best results, and to achieve the lowest latencies, connect your computer with wired ethernet to your router if you can. Although it will work with WiFi, the added network jitter and packet loss will require you to use a bigger safety buffer to maintain a quality audio signal, which results in higher latencies.

SonoBus does NOT currently use any encryption for the data communication, so while it is unlikely that it will be intercepted, please keep that in mind. All audio is sent directly between users peer-to-peer, the connection server is only used so that the users in a group can find each other.

Installing

Windows and Mac

There are binary releases for macOS and Windows available at sonobus.net or in the releases of this repository on GitHub.

Linux

There are packages available for Debian-based Linux distributions as well as a Snap package. See installation instructions at sonobus.net/linux.html.

Or if you prefer, you can build it yourself following the build instructions below.

Building

The original GitHub repository for this project is at github.com/sonosaurus/sonobus.

To build from source on macOS and Windows, all of the dependencies are a part of this GIT repository, including prebuilt Opus libraries. The build now uses CMake 3.15 or above on macOS, Windows, and Linux platforms, see details below.

On macOS

Make sure you have CMake >= 3.15 and XCode. Then run:

./setupcmake.sh
./buildcmake.sh

The resulting application and plugins will end up under build/SonoBus_artefacts/Release when the build completes. If you would rather have an Xcode project to look at, use ./setupcmakexcode.sh instead and use the Xcode project that gets produced at buildXcode/SonoBus.xcodeproj.

On Windows

You will need CMake >= 3.15, and Visual Studio 2017 installed. You'll also need Cygwin installed if you want to use the scripts below, but you can also use CMake in other ways if you prefer.

./setupcmakewin.sh
./buildcmake.sh

The resulting application and plugins will end up under build/SonoBus_artefacts/Release when the build completes. The MSVC project/solution can be found in build/SonoBus_artefacts as well after the cmake setup step.

On Linux

The first thing to do in a terminal is go to the Linux directory:

cd linux

And read the BUILDING.md file for further instructions.

License and 3rd Party Software

SonoBus was written by Jesse Chappell, and it is licensed under the GPLv3, the full license text is in the LICENSE file. Some of the dependencies have their own more permissive licenses.

It is built using JUCE 6 (slightly modified on a public fork), and AOO (Audio over OSC), which also uses the Opus codec. I'm using the very handy tool git-subrepo to include the source code for my forks of those software libraries in this repository.

My github forks of these that are referenced via git-subrepo in this repository are:

https://github.com/essej/JUCE in the sono6good branch.

https://github.com/essej/aoo.git in the sono branch.

If you want to run your own connection server instead of using the default one at aoo.sonobus.net, you can build the headless aooserver code at

https://github.com/essej/aooserver

The standalone SonoBus application also provides a connection server internally, which you can connect to on port 10999, or port forward TCP/UDP 10999 from your internet router to the machine you are running it on.

Thanks

Thanks for everyone involved in testing, especially to Christof Ressi for the AOO library.

Software development credits:

  • For designing and implementing the Soundboard feature:
    • Sten Wessel
    • Hannah Schellekens

Documentation credits:

  • Michael Eskin
  • Tony Becker

Translation credits:

  • RelationLife (Taewook Yang)

Frequently asked questions

Is sonobus free to use?

sonobus is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does sonobus do?

Source code for SonoBus, a real-time network audio streaming collaboration tool.

What is sonobus written in?

sonobus is primarily written in C++. Its source is publicly available at https://github.com/sonosaurus/sonobus, and it has 2,188 GitHub stars.