- NINJAM - open source (GPL) software to allow people to make real music together via the Internet. Every participant can hear every other participant. Each user can also tweak their personal mix to his or her liking. NINJAM is cross-platform, with clients available for Mac OS X, Linux, and Windows. REAPER (our digital audio workstation software for Windows and OS X) also includes NINJAM support (ReaNINJAM plug-in).
NINJAM uses compressed audio which allows it to work with any instrument or combination of instruments. You can sing, play a real piano, play a real saxophone, play a real guitar with whatever effects and guitar amplifier you want, anything. If your computer can record it, then you can jam with it (as opposed to MIDI-only systems that automatically preclude any kind of natural audio collaboration1).
Since the inherent latency of the Internet prevents true realtime synchronization of the jam2, and playing with latency is weird (and often uncomfortable), NINJAM provides a solution by making latency (and the weirdness) much longer. Latency in NINJAM is measured in measures, and that's what makes it interesting. The NINJAM client records and streams synchronized intervals of music between participants. Just as the interval finishes recording, it begins playing on everyone else's client. So when you play through an interval, you're playing along with the previous interval of everybody else, and they're playing along with your previous interval. If this sounds pretty bizarre, it sort of is, until you get used to it, then it becomes pretty natural. In many ways, it can be more forgiving than a normal jam, because mistakes propagate differently. Part tool, part toy, NINJAM is designed with an emphasis on musical experimentation and expression.
- https://en.wikipedia.org/wiki/Ninjam - stands for Novel Intervallic Network Jamming Architecture for Music. The software and systems comprising NINJAM provide a non-realtime mechanism for exchanging audio data across the internet, with a synchronisation mechanism based on musical form. It provides a way for musicians to "jam" (improvise) together over the Internet; it pioneered the concept of "virtual-time" jamming. It was originally developed by Brennan Underwood, Justin Frankel, and Tom Pepper.
- https://github.com/libninjam/gninjam - clone of the original gninjam codebase
- https://github.com/libninjam/libninjam - common base library for compatible ninjam servers and clients
- https://github.com/wahjam/wahjam - a fork of NINJAM and remains compatible with the network protocol. It also includes support for the jammr online jamming platform.
- Jamtaba - a free (and open source) software to connect in ninjam servers and play music jam sessions with people around the world. JamTaba can be used as a multiplatform standalone software, VST (Windows) or AU (Mac OSX) plugin. Using the standalone version you can use your audio and MIDI devices and load VST/AU plugins inside JamTaba (JamTaba standalone is a VST/AU host). Using the VST/AU plugin you can use JamTaba in your preferred DAW and send your audio tracks to JamTaba, and Jamtaba will stream these audio tracks to ninjam servers. Off course JamTaba will receive and play the other musicians audio streams, so you can play with others and have some fun playing online!
- https://github.com/linjam/linjam - a cross-platform NINJAM client utilizing the libninjam library and built upon the JUCE framework. The first milestone (cross-platform NINJAM 0.06 equivalent) is now 84% complete. Latest commit on 8 Mar 2015.
- https://github.com/bill-auger/TeamStream TeamStream allows musicians to play music together over the internet. It is based on the excellent NINJAM softwares (http://ninjam.com) and allows free-form improvisation in the standard multi-directional NINJAM configuration or more structured performances in a linear chain-streaming configuration. Visit the TeamStream homepage (http://teamstream.herokuapp.com) for details.
TeamStream began development in February 2012 and is an open-source project which aims to continue where NINJAM left off; adding new visual and usability enhancements, in the hopes of making NINJAM-ing simpler and more enjoyable, especially for non-technical musicians. If you are a developer and would like to help out; feel free to fork this repo. The following is a list of some of the new features that have been added so far (more to come).
UPDATE: As of June 2014, TeamStream is no longer maintained. All of it's functionality is being ported to it's cross-platform successor: LinJam.
- Zenjam - a simple ninjam client allowing users to quickly connect and play with musicians from around the world. Zenjam supports Windows, OSX and Linux. Closed source?
- http://ninbot.com - Jam online with musicians from around the world. Record and share your sessions.
- https://jammr.net - wahjam based
- Selected Jam Sessions - selections from jam sessions recorded through the wonders of NINJAM, the intervalic real-time online jam software. Most jams take place on the servers at ninbot and Ninjamer. Both servers have robotic listeners that capture jam sessions and archive the results to The Internet Archive. Jams are also streamed live over Icecast2 (ninbot - stream URL links work; ninjamer - stream URLs need manually entering or use the M3U links). The ninbot site provides a limited facility for editing captured jams.
- https://github.com/burillo-se/ninjamencoder - Audio interval encoder for NINJAM
- Jamulus - enables musicians to perform real-time jam sessions over the internet. There is one server running the Jamulus server software which collects the audio data from each Jamulus client, mixes the audio data and sends the mix back to each client. Jamulus is Open Source software (GPL, GNU General Public License) and runs under Windows (ASIO), MacOS (Core Audio) and Linux (Jack). It is based on the Qt framework and uses the OPUS audio codec. The required minimum internet connection speed is 200 kbps for the up- and downstream. The ping time (i.e. round trip delay) from your computer to the server should not exceed 40 ms average.
- https://github.com/christofmuc/JammerNetz - an Open Source system for "networked music performance" (NMP), also known as "jamming over the internet". It consists of a lightweight server software, and a little UI client software that can use your audio devices and stream multiple uncompressed high-quality audio channels to other participants as a common mixdown.
- https://github.com/mfvargo/rtjam - The Real Time Music Jam software is intended to provide low latency audio over the network that will enable performers to make music as if they were in the same place. The system is comprised of a broadcast server that listens on a UDP port for jam packets and some number of clients that create/consume audio data. The server keeps a table of up to 4 jammers in the "room" and will forward each packet it receives to the other jammers in the room. It does not transmit the packet back to the orginator (client provides local monitoring). Multiple servers can be run each on their own udp port (--port option) each corresponding to it's own "room". Each jam packet has two separate channels of audio so the jammers can have a channel for voice and guitar, stereo keyboards, or whatever they choose. The two channels are isochronous for that person.
- https://github.com/hselasky/hpsjam - An online audio collaboration tool for low latency audio with lyrics and chat support.