All Projects → sonosaurus → Sonobus

sonosaurus / Sonobus

Licence: gpl-3.0
Source code for SonoBus, a real-time network audio streaming collaboration tool.

Projects that are alternatives of or similar to Sonobus

Matchering
🎚️ Open Source Audio Matching and Mastering
Stars: ✭ 398 (-32.08%)
Mutual labels:  audio, music, vst
Wdl Ol
Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:
Stars: ✭ 906 (+54.61%)
Mutual labels:  plugin, audio, vst
Zrythm
a highly automated and intuitive digital audio workstation - official mirror
Stars: ✭ 703 (+19.97%)
Mutual labels:  audio, music, vst
Awesome Musicdsp
A curated list of my favourite music DSP and audio programming resources
Stars: ✭ 871 (+48.63%)
Mutual labels:  plugin, audio, vst
Camomile
An audio plugin with Pure Data embedded that allows to load and to control patches
Stars: ✭ 527 (-10.07%)
Mutual labels:  plugin, audio, vst
Audio Plugin Development Resources
Various resources related to developing plugins for audio production.
Stars: ✭ 136 (-76.79%)
Mutual labels:  plugin, audio, vst
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (+54.1%)
Mutual labels:  audio, music, vst
Baseplug
MVC audio plugin framework for rust
Stars: ✭ 44 (-92.49%)
Mutual labels:  plugin, audio, vst
Node Audio
Graph-based audio api for Node.js based on LabSound and JUCE
Stars: ✭ 67 (-88.57%)
Mutual labels:  plugin, audio, vst
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+114.68%)
Mutual labels:  plugin, audio, music
Juce
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.
Stars: ✭ 3,841 (+555.46%)
Mutual labels:  plugin, audio, vst
Parsec Sdk
Low latency, peer-to-peer, interactive game streaming.
Stars: ✭ 400 (-31.74%)
Mutual labels:  peer-to-peer, low-latency
Bitmidi.com
🎹 Listen to free MIDI songs, download the best MIDI files, and share the best MIDIs on the web
Stars: ✭ 422 (-27.99%)
Mutual labels:  audio, music
Skplayer
🎵 A simple & beautiful HTML5 music player
Stars: ✭ 437 (-25.43%)
Mutual labels:  audio, music
Jukebox
Code for the paper "Jukebox: A Generative Model for Music"
Stars: ✭ 4,863 (+729.86%)
Mutual labels:  audio, music
Audiomentations
A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.
Stars: ✭ 439 (-25.09%)
Mutual labels:  audio, music
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (-24.06%)
Mutual labels:  audio, music
Fredboat
A Discord music bot sharing 1 million servers with 20 million users
Stars: ✭ 471 (-19.62%)
Mutual labels:  audio, music
Librosa
Python library for audio and music analysis
Stars: ✭ 4,901 (+736.35%)
Mutual labels:  audio, music
Ts3audiobot
Advanced Musicbot for Teamspeak 3
Stars: ✭ 397 (-32.25%)
Mutual labels:  plugin, music

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

For Linux there is a Snap installation available at snapcraft.io/sonobus which should let you install it easily on many different distributions. You can install it from the graphical snap-store, or using the following command line assuming snap is already installed:

sudo snap install sonobus

Currently the Snap build supports JACK v1 (not v2), so you will want to make sure you have the jackd1 package installed instead of jackd2. For instance, on Ubuntu you would need to do an:

sudo apt install jackd1

After installing you will want to connect sonobus with alsa and jack1 and alsa with the following commands:

sudo snap connect sonobus:jack1
sudo snap connect sonobus:alsa

Raspberry Pi

You can either install the Snap of SonoBus on your existing Raspberry Pi distribution, or you can use the Jambox dedicated image which also includes other popular remote network jamming software, including SonoBus. Check it out at github.com/kdoren/jambox-pi-gen, and grab the latest release image.

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.

On macOS

Open the Xcode project at Builds/MacOSX/SonoBus.xcodeproj, choose the target you want to build and go for it.

On Windows

Using Visual Studio 2017, open the solution at Builds\VisualStudio2017\SonoBus.sln, choose the target you want to build and go for it.

On Linux

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

cd Builds/LinuxMakefile

Make sure you have libopus and the libopus development package (libopus-dev), as well as JACK (jackd) and its development package. Also libasound2-dev , libx11-dev, libxext-dev, libxinerama-dev, libxrandr-dev, libxcursor-dev, libgl-dev, libfreetype6-dev, libcurl4-openssl-dev.

Other distributions may have slightly different package names for these, for instance in Debian, you might substitute libcurl4-gnutls-dev.

If you are using Ubuntu, you can run the following script to install all the prerequisites (scripts for other distributions wanted, please contribute them if you can):

./ubuntu_get_prereqs.sh

There are other scripts for some other distributions. After they are installed, build SonoBus with the following command, both the standalone application and the VST3 plugin will be built:

./build.sh

When it finishes, the executable will be at Builds/LinuxMakefile/build/SonoBus. You can install it using the installation script.

sudo ./install.sh

It defaults to installing in /usr/local, but if you want to install it elsewhere, just specify it as the first argument on the commandline of the script. If you wish to uninstall you can run the uninstall script in the same directory.

sudo ./uninstall.sh

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 10998, or port forward TCP/UDP 10998 from your internet router to the machine you are running it on.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].