Ninjam: Jam And Record Online
What is NINJAM?
NINJAM is 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 (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 collaboration).
Since the inherent latency of the Internet prevents true realtime synchronization of the jam, and playing with latency is often uncomfortable, NINJAM provides a solution by making latency 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.
Part tool, part toy, NINJAM is designed with an emphasis on musical experimentation and expression.
How does NINJAM work?
NINJAM uses OGG Vorbis audio compression to compress audio, then streams it to a NINJAM server, which can then stream it to the other people in your jam. This architecture requires a server with adequate bandwidth, but has no firewall or NAT issues. OGG Vorbis is utilized for its great low bitrate characteristics and performance.
Each user receives a copy of other users audio streams, allowing for each user to adjust the mix to their liking, as well as remix later. This uses more bandwidth than having a server encode a single stream, but has numerous benefits (including lower server CPU use and the client having the full multichannel data for later use).
NINJAM can also save all of the original uncompressed source material, for doing full quality remixes after the jam.
Check out video examples of online jamming at the NINJAM/NINBOT site.