Realtime Internet Band Practice Software

llcon, Low-Latency (Internet) Connection tool
Under the GNU General Public License (GPL)


 

Objectives


The task is to build a client/server software to enable musicians to play together over the internet. Target internet connection is DSL with 256 kbps upstream and 1 Mbit downstream. The server software must be located at a server with a very fast internet connection (at least 1 Mbps for up- and downstream) and a very low ping time.

To get sufficient results, a sample rate of 24 kHz (mono channel) was chosen. An audio compression algorithm with very low delay is IMA-ADPCM (delay is just one sample). This gives a raw compressed audio data rate of 96 kbps.

Target hardware setup at the client is stereo audio input signal with one channel is the instrument and the other channel is a microphone signal. On the microphne channel a reverberation effect can be applied (maybe at a later time other audio effects are added). Currently, only the sound cards "Soundblaster Live" and "Soundblaster Audigy" were successfully tested with llcon.

To get satisfactory results, the ping time from the client computer to the server should not exceed 30 ms average and the network jitter should be as low as 2-5 ms.

First tests showed that an upstream of 128 kbps is too slow for using the llcon software. At least 256 kbps upstream bandwidth is needed. To get the low ping time, additionally the option "DSL fast path" should be selected.


 

Instructions


First, the server software is started at the Linux-server. This is now avaiting the network packets from the clients. If the packets from different clients arrive, the audio signals are added together and the audio mix signal is sent back to each client. The client software is started at the Linux computer at home having a DSL (or faster) connection to the internet. Then, the correct IP number of the server must be set (make sure no firewall is blocking the UDP network traffic).

There are certain faders on the right to tune the software to get minimal delay. The lower the network and soundcard buffer sizes are, the lower the latency but at the same time, the quality of the stream decreases (more drop-outs will occur, with some settings even no signal can be transmitted anymore). The LEDs at the bottom of the faders show the current status. If the LED is red, increase the value of the fader until the LED is green again.

If the server shall be started from within an ssh-shell, there is a command line option
llcon -sn
available which starts the server without a GUI (even the GUI is not used, QT must still be installed on the server to run the server software).


 

Source Code


The source code is hosted at Sourceforge.net.
SourceForge.net Logo


 

Installation


Linux:

Required packages: QT (devel packages, too!), ALSA (devel packages, too!)
  • cd llcon
  • sh bootstrap
  • ./configure
  • make
  • run llcon/linux/llcon
NOTES:
- it may be required by your Linux distrubution that you set the QTDIR environment variable prior to the "./configure" call. E.g., for SUSE: export QTDIR=/usr/lib/qt3 or for Debian: export QTDIR=/usr/share/qt3
- if the file "bootstrap" is not available, skip this step

Knoppix:

Llcon can be run under a Knoppix Linux live system. A binary for the current version of Knoppix is available at the llcon download page. This can be used together with the Knoppix CD / DVD available for free download from the Knoppix mirrors.


 

Screen Shots


Main window of client

 
Settings window of client

 
Main window of server

 

Links


Free / Open Source Projects:

  • LDAS - Low Delay Audio Streamer
    LDAS is a project to produce a low delay audio streamer in software. The project is part of the centre's work on distributed multimedia interaction, of the Audio over IP Networks research project area.
    Unfortunately, it seems that this project is not maintained anymore since the main developer has left the lab.
  • NINJAM
    NINJAM is a program to allow people to make real music together via the Internet. It is cross-platform, with clients available for Mac OS X and Windows. NINJAM does not provide true real-time streams but uses a technique to overcome the internet latency issues by making the latency much longer. 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."

Commercial Projects:

  • eJAMMING AUDiiO
    eJamming is a real-time internet collaboration technology and service for musicians. It enables musician to make music and collaborate with others in complete synchrony over the internet. The eJamming AUDiiO portal helps to find other musicians to play with online.
 
 

TRADEMARKS:The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
LINKS TO THIRD PARTY SITES:This site contains links to other sites. We are not responsible for the content of any linked Web site.

· last update: 2.5.2007