Ninjam
Encyclopedia
NINJAM stands for Novel Intervallic Network Jamming Architecture for Music.
Creating music naturally relies on players' ability to keep time with each other. Latency
between players causes natural time keeping to be thrown awry. The internet does not provide a low-latency data exchange mechanism that can be used over global distances.
In order to achieve some semblance of latency-free collaboration, a workaround
is needed.
NINJAM provides a non-realtime mechanism for exchanging audio data across the internet, with a synchronisation mechanism based on musical form. In other words 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
.
In NINJAM, this is achieved by delaying all received audio until it can be synchronised with other players. The delay is based on the musical form
. This synchronisation means that each player hears the others in a session and can play along with them. NINJAM defines the form in terms of the "interval" - the number of beats
to be recorded before synchronising with other players. For example, with an interval of 16, four bars of common time
would be recorded from each player, then played back to all others.
to a server
via a TCP/IP
connection to a specific port
(commonly in the range 2049 upwards, depending on the host).
The "client" here is only the component that the player uses to connect to a NINJAM server, encode and transmit their audio stream, receive and decode remote players' streams and handle the chat (IRC-like) session. Each player will also need some way of feeding audio information to the NINJAM client - either by using the client as a plugin in a DAW
or by using the standalone version with a direct audio input.
Each client's data is synchronised against a distributed clock. This clocking is then used to distribute the data out to all the other clients so that they can play all the remote streams in sync. The server does little apart from manage connections, chat and data streaming.
Subscription service relying on low latency internet connections. NINJAM is not tied to a single supplier and does not rely on being local (in internet geography terms) to the people you want to jam with.
This is a quote from the article:
“For the first time, any musician–vocalists, acoustic guitarists, horns, strings, even harmonica players and accordionists–can play together with others over the Internet in sync,” said eJamming Co-Founder and Chairman/President Alan Jay Glueckman.
Subscription service relying on a central server. Appears to be "track at a time". NINJAM calls this "session mode" in the REAPER
-tied client. Only currently offered on the Cockos server.
Appears to be another "track at a time" collaboration system like RocketPower.
There is only so much headroom in an audio channel. Never peaking above 12dB and having a "loud" level around 18dB ensures space in the mix for others.
.
effect above.
, Mac OS
and Linux
. As the Linux version works with JACK
, it can have audio routed to it from any JACK client. On Windows, use with virtual audio sources is problematic as there is no comparatively easy routing mechanism. Hence it is more suited to real instruments, where it provides a simpler alternative to the complexity of running a DAW just to access NINJAM.
on the NINJAM web site
The bandwidth requirements are not trivial; outbound bandwidth is the major requirement. A 4 person session will require approximately 768kbps of outbound and 240kbps of inbound bandwidth. An 8 person session will require approximately 3mbps of outbound (and 600kbps inbound) bandwidth.
It is claimed
that the server source code compiles on Linux, FreeBSD, Darwin/OS X, and Windows. There is no information available regarding what versions of Linux & FreeBSD are required nor of the hardware required to support the application running under those OS's.
record and index their content at NINJAM AutoSong under the Creative Commons
license. As of Jan 2010 there was something over 23,000 plus hours of content, or approximately 1.2TB.
Creating music naturally relies on players' ability to keep time with each other. Latency
Latency (engineering)
Latency is a measure of time delay experienced in a system, the precise definition of which depends on the system and the time being measured. Latencies may have different meaning in different contexts.-Packet-switched networks:...
between players causes natural time keeping to be thrown awry. The internet does not provide a low-latency data exchange mechanism that can be used over global distances.
In order to achieve some semblance of latency-free collaboration, a workaround
Workaround
A workaround is a bypass of a recognized problem in a system. A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed...
is needed.
NINJAM provides a non-realtime mechanism for exchanging audio data across the internet, with a synchronisation mechanism based on musical form. In other words 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
Justin Frankel
Justin Frankel is an American computer programmer best known for his work on the Winamp media player application and for inventing the gnutella peer-to-peer network...
, and Tom Pepper
Tom Pepper
Tom Pepper is a computer programmer best known for his collaboration with Justin Frankel on the invention of the Gnutella peer-to-peer system. He and Frankel co-founded Nullsoft, whose most popular program is Winamp, which was sold to AOL in May 1999...
.
In NINJAM, this is achieved by delaying all received audio until it can be synchronised with other players. The delay is based on the musical form
Musical form
The term musical form refers to the overall structure or plan of a piece of music, and it describes the layout of a composition as divided into sections...
. This synchronisation means that each player hears the others in a session and can play along with them. NINJAM defines the form in terms of the "interval" - the number of beats
Beat (music)
The beat is the basic unit of time in music, the pulse of the mensural level . In popular use, the beat can refer to a variety of related concepts including: tempo, meter, rhythm and groove...
to be recorded before synchronising with other players. For example, with an interval of 16, four bars of common time
Common Time
"Common Time" is a science fiction short story written by James Blish. It first appeared in the August 1953 issue of Science Fiction Quarterly and has been reprinted several times: in the 1959 short-story collection Galactic Cluster; in The Testament of Andros ; in The Penguin Science Fiction...
would be recorded from each player, then played back to all others.
Technical background
Each player in a NINJAM session feeds audio data from their clientClient (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
to a server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
via a TCP/IP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
connection to a specific port
TCP and UDP port
In computer networking, a port is an application-specific or process-specific software construct serving as a communications endpoint in a computer's host operating system. A port is associated with an IP address of the host, as well as the type of protocol used for communication...
(commonly in the range 2049 upwards, depending on the host).
The "client" here is only the component that the player uses to connect to a NINJAM server, encode and transmit their audio stream, receive and decode remote players' streams and handle the chat (IRC-like) session. Each player will also need some way of feeding audio information to the NINJAM client - either by using the client as a plugin in a DAW
Digital audio workstation
A digital audio workstation is an electronic system designed solely or primarily for recording, editing and playing back digital audio. DAWs were originally tape-less, microprocessor-based systems such as the Synclavier and Fairlight CMI...
or by using the standalone version with a direct audio input.
Each client's data is synchronised against a distributed clock. This clocking is then used to distribute the data out to all the other clients so that they can play all the remote streams in sync. The server does little apart from manage connections, chat and data streaming.
eJAMMING
Subscription service relying on low latency internet connections. NINJAM is not tied to a single supplier and does not rely on being local (in internet geography terms) to the people you want to jam with.
This is a quote from the article:
“For the first time, any musician–vocalists, acoustic guitarists, horns, strings, even harmonica players and accordionists–can play together with others over the Internet in sync,” said eJamming Co-Founder and Chairman/President Alan Jay Glueckman.
RocketPower
ArticlesSubscription service relying on a central server. Appears to be "track at a time". NINJAM calls this "session mode" in the REAPER
REAPER
REAPER is a digital audio workstation created by Cockos. It is distributed with an uncrippled evaluation license with a nag screen explaining the license cost. It is currently available for Microsoft Windows and Mac OS X...
-tied client. Only currently offered on the Cockos server.
RiffLink
Appears to be another "track at a time" collaboration system like RocketPower.
Common considerations
All clients feed data at 0dB to the server, regardless of local monitoring levels. When setting up, set the NINJAM client "local" level to 0dB. "local" does not affect transmitted volume. The slider labelled "local" only affects what you hear locally, not what others hear. You must adjust your input level - before the NINJAM client in the signal path - to affect what remote players are hearing.There is only so much headroom in an audio channel. Never peaking above 12dB and having a "loud" level around 18dB ensures space in the mix for others.
REAPER-tied VST effect
Probably the most commonly used option (based on number of posts on the NINJAM support forums) but requires that you use REAPERREAPER
REAPER is a digital audio workstation created by Cockos. It is distributed with an uncrippled evaluation license with a nag screen explaining the license cost. It is currently available for Microsoft Windows and Mac OS X...
.
Open Source AU plugin
Derived from the Open Source Standalone version, works on Mac AU hosts. Similar considerations to REAPER-tied VSTVirtual Studio Technology
Steinberg's Virtual Studio Technology is an interface for integrating software audio synthesizer and effect plugins with audio editors and hard-disk recording systems. VST and similar technologies use digital signal processing to simulate traditional recording studio hardware with software...
effect above.
Open Source standalone clients
Standalone clients are available for WindowsMicrosoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. As the Linux version works with JACK
JACK Audio Connection Kit
JACK is a professional sound server daemon that provides real-time, low latency connections for both audio and MIDI data between applications that implement its API...
, it can have audio routed to it from any JACK client. On Windows, use with virtual audio sources is problematic as there is no comparatively easy routing mechanism. Hence it is more suited to real instruments, where it provides a simpler alternative to the complexity of running a DAW just to access NINJAM.
Server and server set-up requirements
More detailed set-up and configuration is availableon the NINJAM web site
Bandwidth
All figures are approximate, but are based on figures from Cockos Inc. web site.The bandwidth requirements are not trivial; outbound bandwidth is the major requirement. A 4 person session will require approximately 768kbps of outbound and 240kbps of inbound bandwidth. An 8 person session will require approximately 3mbps of outbound (and 600kbps inbound) bandwidth.
Linux
It is claimed
that the server source code compiles on Linux, FreeBSD, Darwin/OS X, and Windows. There is no information available regarding what versions of Linux & FreeBSD are required nor of the hardware required to support the application running under those OS's.
Development status
This is a GPL project, source code is available but development appears to be stalled.See also
The NINJAM servers hosted by CockosCockos
Cockos, Inc is an American digital audio technology company founded in 2004 by Justin Frankel. The company's stated goal is: "to develop software sustainably while preventing profit rationale from forcing engineering compromises...
record and index their content at NINJAM AutoSong under the Creative Commons
Creative Commons
Creative Commons is a non-profit organization headquartered in Mountain View, California, United States devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons...
license. As of Jan 2010 there was something over 23,000 plus hours of content, or approximately 1.2TB.