A way to trade solos non-realtime in Ninjam or Jamtaba is to set a backing track loop that has a chorus for each player, and each player always plays the same portion of the BPI interval. Keep in mind that Ninjam time is weird.
For example, say 2 players want to trade solos over Coquette at 160 bpm :
- Set up the server BPI at 2 x 32 bars form = BPI 64 and the BPM at 160/4 = BPM 40 to get 1BPI = 1bar.
- Set a 64 bars long backing track loop consisting of 2 choruses of Coquette.
- Player 1 only plays in the first half of the BPI interval.
Player 1 = bars 01-32
- Player 2 only plays in the second half of the BPI interval.
Player 2 = bars 33-64
This approach will guarantee that the 2 soloists run in parallel, and do not clash due to Ninjam timing.
The downside of this approach is the long waiting time at the beginning for BPIs to sync up.
Public Ninjam servers are usually limited at max BPI 64 and min BPM 40. You can !vote BPI 64 and !vote BPM 40.
For 3+ players you will need access to the /bpi 96 and /bpm 40 admin commands, which are only available in private Ninjam servers.
Jamtaba looper: https://github.com/elieserdejesus/JamTaba/wiki/Ninjam-Looper
If you have questions please ask in the Gypsy Jazz Discord server: https://discord.gg/Q5X3vMG
PS. This approach can also work without backing tracks, if you have a good consistent rhythm player.
Hope it helps