|
Realtime Internet Band Practice Software
llcon,
Low-Latency
(Internet) Connection tool
Under the GNU General Public License (GPL)
|
|
|
|
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.
|
|
|
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).
|
|
|
|
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.
|
|
 |
| Main window of client
|
 |
| Settings window of client
|
 |
| Main window of server
|
|
|
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.
|
|