The Jamulus software enables musicians to perform real-time jam sessions over the internet. There is a Jamulus server which collects the audio data from each Jamulus client, mixes the audio data and sends the mix back to each client.
Go to file
corrados a4be0cd825
Update README.md
finished main window help texts
2019-06-16 10:27:41 +02:00
android 2018 -> 2019 2019-03-24 09:30:30 +01:00
distributions removed backup file 2019-05-30 09:50:21 +02:00
libs/opus CVE-2017-0381 2017-03-29 15:57:13 +00:00
linux 'make -j2' might make problems for some compilers, make is just fine for deployment 2019-05-18 08:49:40 +02:00
mac fixes for MacOS 2019-03-24 09:54:22 +01:00
src moved file 2019-06-16 10:08:49 +02:00
windows Merge branch 'master' into feature/pljones-audio-stream-saving 2019-04-03 18:14:49 +01:00
.gitignore added file to ignore for MacOS 2019-03-24 09:58:21 +01:00
ChangeLog updated some texts 2019-05-27 18:07:52 +02:00
COPYING update licence for OPUS 2013-02-19 17:59:35 +00:00
INSTALL.md Rename INSTALL to INSTALL.md 2019-06-16 08:48:02 +02:00
Jamulus.pro Reduce to single history graph source 2019-05-26 19:16:45 +01:00
README.md Update README.md 2019-06-16 10:27:41 +02:00

Homepage picture

Jamulus - Internet Jam Session Software

Jamulus icon

The Jamulus software enables musicians to perform real-time jam sessions over the internet. There is one server running the Jamulus server software which collects the audio data from each Jamulus client, mixes the audio data and sends the mix back to each client.

Jamulus is Open Source software (GPL, GNU General Public License) and runs under Windows (ASIO), MacOS (Core Audio) and Linux (Jack). It is based on the Qt framework and uses the OPUS audio codec.

The source code is hosted at Sourceforge.net. Sourceforge logo

Required Hardware Setup

The required minimum internet connection speed is 200 kbps for the up- and downstream. The ping time (i.e. round trip delay) from your computer to the server should not exceed 40 ms average.

For the Jamulus software to run stable it is recommended to use a PC with at least 1.5 GHz CPU frequency.

On a Windows operating system it is recommended to use a sound card with a native ASIO driver. This ensures to get the lowest possible latencies.

Windows Download and Installation

Download a Windows installer at the Sourceforge.net download page

The Jamulus software requires an ASIO sound card driver to be available in the system. If your sound card does not have native ASIO support, you can try out the following alternative: ASIO4ALL - Universal ASIO Driver For WDM Audio

The ASIO buffer size should be selected as low as possible to get the minimum audio latency (a good choice is 128 samples).

Help (Software Manual)

Main Window

Jamulus icon

Status LEDs

LEDs

The Delay status LED indicator shows the current audio delay status. If the light is green, the delay is perfect for a jam session. If the ligth is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming.

The Buffer status LED indicator shows the current audio/streaming status. If the light is green, there are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the audio stream is interrupted caused by one of the following problems:

  • The network jitter buffer is not large enough for the current network/audio interface jitter.
  • The sound card buffer delay (buffer size) is set to a too small value.
  • The upload or download stream rate is too high for the current available internet bandwidth.
  • The CPU of the client or server is at 100%.

Input level

Input level

The input level indicators show the input level of the two stereo channels of the current selected audio input. Make sure not to clip the input signal to avoid distortions of the audio signal.

Chat button opens the Chat dialog

Chat dialog

Press the Chat button to open the Chat dialog. The chat text entered in that dialog is transmitted to all connected clients. If a new chat message arrives and the Chat dialog is not already open, it will be opened automatically at all clients.

My Profile button opens the Musician Profile dialog

My profile dialog

Press the My Profile button to open the Musician Profile dialog. In this dialog you can set your Alias/Name which is displayed below your fader in the server audio mixer board. If an instrument and/or country is set, icons for these selection will also be shown below your fader. The skill setting changes the background of the fader tag and the city entry shows up in the tool tip of the fader tag. This tool tip is shown in the following picture.

Fader tag tool tip

Connect/disconnect button

Push this button to connect a server. A dialog where you can select a server will open. If you are connected, pressing this button will end the session.

Connect dialog

The server list shows a list of available servers which are registered at the central server. Select a server from the list and press the connect button to connect to this server. Alternatively, double click a server from the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding the list item. Permanent servers are shown in bold font.

Note that it may take some time to retrieve the server list from the central server. If no valid central server address is specified in the settings, no server list will be available.

Alternatively, you can enter an IP address or URL of the server running the Jamulus server in the server address field. An optional port number can be added after the IP address or URL using a comma as a separator, e.g, jamulus.dyndns.org:22124. A list of the most recent used server IP addresses or URLs is available for selection.

Reverberation effect

Reverberation

A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached.

The reverberation effect requires significant CPU so that it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage.

Local audio input fader

Local audio input fader

With the audio fader, the relative levels of the left and right local audio channels can be changed. For a mono signal it acts like a panning between the two channels. If, e.g., a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows L -x, where x is the current attenuation indicator.

Server audio mixer

Audio faders

In the audio mixer frame, a fader for each connected client at the server is shown. This includes a fader for the own signal. With the faders, the audio level of each client can be modified individually.

With the Mute checkbox, the current audio channel can be muted. With the Solo checkbox, the current audio channel can be set to solo which means that all other channels except of the current channel are muted.

Compilation and Development

See the Compile Instructions file.

Acknowledgments

This code contains open source code from different sources. The developer(s) want to thank the developer of this code for making their efforts available under open source: