Setup Guide: Ninjam for zero latency nonrealtime online jamming

Ninjam is a free plugin within the Reaper DAW for Windows, Mac or Linux
used for zero latency nonrealtime online jamming. It’s weird but it works.

Reaper + Ninjam Setup Guide:

Use headphones to avoid feedback noise.
Install Reaper + Ninjam video
Uncheck the Ninjam->File->Preferences boxes to stop Ninjam from saving all jam recordings to your HDD.
Join the server.
Type !join Django to join the Django room on the server.
Make sure you have the track armed for recording (little red circle icon).
Make sure record monitoring is on (little speaker icon).
Make sure your “Monitoring mix” bar is moving up and down when you play.
Make sure the “Recv” bars of other people are moving left and right when they play.
Adjust the Master/Metronome/Recv volume sliders.
Adjust the Monitoring volume slider so that you don’t hear yourself.
Set up a Computer click track.
Type !vote bpi 32 to change the BPI.
Type !vote bpm 40 to change the BPM.
Check xmit to start transmitting sound.
Quick demo video

More Guides:

Other Software:

Reaper + Ninjam Installation Steps:

  1. Download and install the Reaper DAW from
  2. Make sure your microphone and headphones are plugged in.
  3. Start Reaper.
  4. On first run Reaper should prompt you to set up your input and output devices. But if it doesn’t just go to Options->Preferences->Device and set up your microphone as the input and your headphones as the output.
  5. Create a new track (Ctrl+T or Track->Insert New Track).
  6. Click the Record Armed button on the track (little red circle button).
  7. Click the Record button (Ctrl+R) (big red circle button).
  8. Make some noise.
  9. You should see the waveform of your recording moving.
  10. Stop and play it back. Congratulations, you have recording and playback capabilities.
  11. Make sure a track is armed for recording (little red circle button).
  12. Make sure monitoring is enabled (little speaker icon).
  13. Find the FX master button and click it.
  14. From the list of plugins, select All Plugins and filter for ReaNINJAM.
  15. A new small window will appear and click “Show RealNINJAM Console”.
  16. Click Connect.
  17. You will see a list of public servers (some servers automatically record jam sessions) to which you can connect anonymously **OR** if you’d like to be in complete control install your own private server.
  18. Connect to the server
  19. Join the Django room by typing: !join Django

Ninjam Modes:

  • Normal NINJAM mode – a strange beast in which one hears the previous BPI interval that other players played. No latency issues, but it takes getting used to. We usually set up the interval for an entire song of 32 measures. Works best when used in conjunction with push-to-talk Skype calls.
  • Voice Chat mode – regular voice chat, will have latency issues. These can be mitigated somewhat by installing your own private Ninjam server and playing with local friends.

Explanation of how Normal NINJAM mode works:

2020 internet connections usually have enough latency to make playing live music uncomfortable. Ninjam works around the latency problem by extending the latency on all received audio until it can be synchronized with all other players.  This is done through the BPI interval. Then you set the BPM. So if you wanted to play a 32 bars song at 160 BPM you could:

  1. Set the BPI for 32 measures, and the BPM to 40 (160 beats/4) or
  2. Set the BPI for 128 (32 measures x 4) and the BPM to 160

or more complex


  • Protect your hearing from Ninjam noise spammers by adding a limiter to your FX.
  • Some public servers will automatically record the jam sessions and post it to
  • Uncheck the Ninjam->File->Preferences boxes to stop Ninjam from recording all jam sessions to your HDD.
  • A track must be armed for recording and monitoring has to be turned ON for Ninjam to work.
  • In the Ninjam window there are sliders for adjusting the Master volume, the Metronome volume, the Monitoring volume, and also sliders for adjusting audio received from the other participants.
  • Typing /bpi 16 in chat changes the interval on the server (if you have permission).
  • Typing !vote bpi 16 will vote for a change in BPI (if enabled on the server).
  • Typing /bpm 160 in chat changes the BPM on the server (if you have permission).
  • Typing !vote bpm 160 will vote for a change in BPM (if enabled on the server)

Ninjam Etiquette:

  • Quietly join a server. Before you join a server it is polite to stop transmitting sound by un-checking the xmit box, so that you don’t disturb an ongoing jam.
  • Use the chat to introduce yourself and ask what songs are being played.
  • Mind the BPI interval and the metronome. Because of the way Ninjam works everything has to happen within one BPI interval before it’s sent to the other players.
  • Mind your sound levels. Your levels on Ninjam should be around -10DB.

How to listen to and remix a recorded jam

All jams can be recorded by all participants, if they set the Ninjam -> File -> Preferences -> Save multitrack recordings to ON.

To view one of the recordings find and open the clipsort.log file of the jam session in Reaper. Reaper will then generate a project with different tracks for each of the participants in the jam.

Ninjam -> File -> Preferences -> Save multitrack recordings to ON
Find and open the clipsort.log file of the jam session in Reaper
Reaper will then generate a project with different tracks for each of the participants in the jam

Ninjam is a is a GPL project, so source code is available

Hope it helps