What is NINJAM?
NINJAM stands for "Ninjam Is Not Just Another MP3 Jamming" tool. It was created by Justin Frankel, the same person who created Winamp (the legendary media player) and Reaper (the popular digital audio workstation).
Unlike video calls or other jamming apps that try to fight internet latency and usually fail, NINJAM takes a completely different approach: it embraces the latency.
How does it work?
NINJAM uses an interval-based approach. Instead of trying to send audio in real time (which always has noticeable delays over the internet), it organizes music into synchronized loops called intervals. Here is the key idea:
- Everyone plays in sync to the same tempo and interval length
- While you record what you are playing in the current interval, you hear what others played in the previous interval
- Think of it like a musical round or relay — you respond to what just happened
- There is always a delay of one interval, but everyone stays perfectly in sync
During Interval 1 you only record — there is nothing from others yet. Starting from Interval 2, while you record your new part, you hear what others played during the previous interval. This one-interval offset is what makes NINJAM work over any internet connection, regardless of distance.
This means NINJAM works best with improvisational music: jazz, blues, ambient, experimental, funk, and anything where you can react to what you hear. It is not designed for playing pre-written songs note-for-note, but for creative, free-flowing jams where musicians respond to each other.
Understanding BPM and BPI
Two settings control the timing of every NINJAM session:
- BPM (Beats Per Minute) — the tempo, how fast the music goes
- BPI (Beats Per Interval) — how many beats fit in one loop/interval
Together, they determine the interval length:
(BPI / BPM) x 60 = seconds.
For example, at 120 BPM / 16 BPI, each interval lasts
8 seconds (16 / 120 x 60 = 8).
Why NinjamZap?
The name says it all: NINJAM + Zap. “Zapada” is Argentine slang for an informal jam session — getting together with friends to play music, improvise, and have fun with no pressure. That spirit is at the heart of this app.
NinjamZap was born during the pandemic, when a group of musician friends from Córdoba, Argentina could no longer meet to play together. Searching for a way to keep jamming, they discovered NINJAM — and fell in love with it. What started as weekend “zapadas” over the internet became a six-year passion for the platform and its community.
The app was created by Javier Cordero, an independent developer and drummer from Córdoba with over 25 years of experience in software engineering, who simply wanted a mobile NINJAM client that didn’t exist yet. NinjamZap is a personal project and a love letter to the NINJAM community — built to make online jamming accessible to everyone, right from your phone.
Have questions, ideas, or just want to say hi? Reach out at [email protected].
Getting Started
NinjamZap is the first mobile NINJAM client for iOS. You can join jam sessions with musicians around the world directly from your iPhone or iPad.
When you first open NinjamZap, you will see the login screen:
The login screen — sign in or continue as guest
You have two options to get started:
- Sign in with an account — use Google, Microsoft, or Apple to log in. This saves your preferences and settings across sessions.
- Continue as Guest — no account needed. Just tap the button and jump straight into jamming. Guest mode gives you full access to all jam session features.
Tip: If you just want to try NINJAM for the first time, Guest mode is the fastest way in. You can always create an account later.
Connecting to a Server
After logging in or entering guest mode, you will see the Connection screen. This is where you configure your session before joining a jam.
The connection screen — configure and connect
NINJAM Username
Choose a name that will be visible to other musicians in the session. This can be anything you like — your name, your instrument, or a creative alias.
Server Address
Enter the address of a NINJAM server you want to join, for example ninbot.com:2049.
If you do not know any servers, tap "Browse" to open the Server Browser,
which shows a list of available public servers along with the number of musicians
currently connected to each one.
Audio Routing
Select your audio input and output devices. For the best experience:
- Wired headphones — lowest latency, no feedback issues
- Audio interface (iRig, Focusrite, etc.) — best quality for instruments and microphones
- Bluetooth headphones — they work, but add some latency
Latency Settings
Choose a latency preset based on your audio setup:
- Ultra Low — best for wired headphones and audio interfaces. Smallest audio buffer for the tightest response.
- Safe — recommended for Bluetooth devices or if you experience audio glitches. Larger buffer to prevent crackling.
Connect
Once everything is configured, tap Connect to join the session. The app will connect to the server and start syncing with the current interval.
The Session
Once connected, you are in the Session screen — the main jamming interface. Here is what you will find:
Master Volume, Mute and Metronome
Master controls and local channels
- Master Volume — controls the overall output level of everything you hear (remote musicians, metronome). The VU meter next to it shows your current output level.
- Mute — mutes all audio output instantly.
- Metronome — a click track that keeps everyone in sync, following the BPM set by the server. Enable it, especially when you are starting out. It helps you stay on beat and understand when each interval begins and ends.
Local Channels (Your Audio)
This section shows your audio input. The key control here is the "Xmit" toggle (short for Transmit). When Xmit is enabled, your audio is sent to the server and other musicians can hear you. When it is disabled, you are in "listen only" mode.
Tip: When you first join a session, start with Xmit off. Listen for a few intervals to get a feel for the music, then enable Xmit when you are ready to play.
Remote Channels (Other Musicians)
Remote channels — each musician has their own controls
Each musician in the session appears as a separate channel with their own controls:
- Volume slider — adjust how loud you hear that musician
- Mute (speaker icon) — temporarily silence a musician
- Solo (headphone icon) — hear only that musician, muting everyone else
- Recv toggle — enables or disables receiving audio from a remote user. Turn it off if you do not want to hear a particular person at all.
- VU meters — show the audio levels for each channel in real time, so you can see who is playing even before adjusting volumes
Chat
The chat panel lets you communicate with other musicians via text messages. It is an essential part of the NINJAM experience.
The chat panel — communicate with other musicians
- The server topic and rules are shown at the top of the chat
- System messages tell you when musicians join or leave the session
- Use chat to introduce yourself, suggest a key or tempo change, coordinate the jam, or just say thanks for a great session
- Be friendly — the NINJAM community is welcoming and collaborative
BPM / BPI
Tap the green BPM/BPI bar at the bottom of the session screen to open the BPM/BPI panel. This is where you can view and propose changes to the session tempo and interval length.
The BPM/BPI panel — adjust tempo and interval length
- BPM slider — adjust the tempo (beats per minute)
- BPI slider — adjust the beats per interval (loop length)
- Vote buttons — propose your changes to the server. Changes require a majority vote from the connected musicians to take effect.
- Tap Tempo — tap the button repeatedly to detect a tempo from your tapping rhythm. Useful when you want to match a song or a groove you have in mind.
Common BPM/BPI combinations
| Setting | Duration | Style |
|---|---|---|
120 / 16 |
8 sec | Standard jam — 4 bars of 4/4, works for most genres |
85 / 16 |
11.3 sec | Relaxed groove — blues, soul, laid-back funk |
90 / 8 |
5.3 sec | Short loops — fast call and response |
70 / 32 |
27.4 sec | Ambient — slow, evolving soundscapes |
Audio Setup Tips
Use headphones! Without headphones, your microphone picks up the playback audio and creates a feedback loop. This ruins the experience for everyone in the session.
Recommended setups (best to good)
- Audio interface (iRig, Focusrite iTrack, etc.) + wired headphones — the gold standard. Best audio quality, lowest latency, no feedback.
- Wired headphones with the built-in iPhone microphone — great for getting started. Low latency, no feedback.
- Bluetooth headphones — works, but adds latency. Use the "Safe" latency preset. Good enough for casual jams.
- Speaker with Echo Cancellation — when the built-in microphone is selected, tap the phone icon on the microphone row to enable Echo Cancellation. Audio quality will be reduced.
Audio interface tips
If you use an external audio interface (like an iRig), plug it in before opening NinjamZap. The app will automatically detect it and route audio through it. You can verify the selected device in the Audio Routing section on the Connection screen.
Technical details
NinjamZap processes all audio internally at 48 kHz. If your audio device runs at a different sample rate (common with Bluetooth), the app automatically resamples to match. This is handled transparently — you do not need to configure anything.
Tips for Great Jam Sessions
- Start by listening. Join a session and listen for at least one full interval before you start playing. Get a feel for what is happening musically.
- Keep it simple. Leave space for others. The best jams happen when everyone contributes without stepping on each other.
- Use the chat. Say hello when you join. Suggest a key if the music needs direction. Thank people when you leave. Communication makes sessions better.
- If it sounds weird, give it a few loops. Remember, you are hearing the previous interval. After two or three intervals, your ear adjusts and things start to click.
- Experiment! NINJAM is a playground for improvisation. Try new sounds, play instruments you are learning, explore different genres. There are no wrong notes in a jam.
Troubleshooting
"I can not hear myself"
Turn up the volume slider on your local channel — this controls how loud you hear yourself in the mix. Also make sure Xmit is enabled so that others can hear you too, and that your Master Volume is up.
"Others can not hear me"
Make sure you have granted microphone permission to NinjamZap (check iOS Settings > NinjamZap > Microphone). Also verify that Xmit is turned on for your local channel.
"Audio is glitchy or crackling"
Switch to the "Safe" latency preset in Audio Routing on the Connection screen. Close other apps that might be using audio. If you are on Bluetooth, try switching to wired headphones.
"Can not connect to server"
Check your internet connection. Verify the server address is correct (including the port, e.g., ninbot.com:2049). Some servers may be temporarily offline — try a different one from the Server Browser.
"I hear echo or feedback"
Use headphones. Without them, your microphone picks up the playback and sends it back to the server. If you must use the speaker, tap the phone icon on the built-in microphone row to enable Echo Cancellation.
"The music sounds out of sync"
That is normal! In NINJAM you always hear the previous interval. This is by design. Turn on the metronome to help you stay on beat, and give it a few intervals to adjust your ear to the concept.
If you are experiencing other issues or need help, contact us at [email protected].