An online audio collaboration tool for low latency audio with lyrics and chat support.
Some non-backwards compatible network protocol changes have been introduced as of v1.1.0 to significantly reduce audio jitter. Please update both client and server software at the same time!
- uncompressed audio transmission in 1 channel 8-bit up to 2 channels 32-bit. This results in crystal clear high-end audio over the internet!
- additional protection against jitter by redundancy in packet transmission
- local audio effects:
- highpass
- lowpass
- bandpass
- delay - With this feature you can hear yourself with an "average" delay that fits the real one from the server. This provides a clean local signal without jitter, while maintaining the delay and thus being "in sync" with fellow musicians when playing/jamming. Usage: click "MIXER" then "EQ DELAY" then "Long Delay" and then "Apply". This will apply the calculated average. You may want to click the "Long Delay" button several times before hitting apply, so that you can choose the appropiate delay. Credits go to Nils Brederlow for suggesting it.
- automatic audio compression when signal overflows.
- built in HTTP server allows for streaming the uncompressed audio in 32-bit stereo WAV-file format to disk or other programs. Supported for both client and server.
- server and mixer access can be password protected.
- low latency MIDI event routing
- high quality recording and playback
- multi-path UDP transport to optimize latency and jitter
- git submodule init
- git submodule update
- qmake PREFIX=/usr/local
- make all
- make install
- sudo apt-get install git build-essential qt5-qmake qtbase5-dev qtbase5-dev-tools libqt5svg5-dev libqt5webenginewidgets5 libqt5webchannel5-dev qtwebengine5-dev libjack-dev jackd
- git submodule init
- git submodule update
- qmake PREFIX=/usr WITHOUT_AUDIO=YES QMAKE_CFLAGS_ISYSTEM="-I"
- make all
- make install
- By giving qmake the "WITHOUT_AUDIO=YES" flag you can skip the jack dependency for the server side.
- By giving qmake the "QMAKE_CFLAGS_ISYSTEM=-I" flag you can fix the following compile error "fatal error: stdlib.h: No such file or directory"
- jackd libjack-dev
- ASIO
- build-essential
- qt5-qmake
- qtbase5-dev
- qtbase5-dev-tools
- libqt5svg5-dev
- libqt5webenginewidgets5
- libqt5webchannel5-dev
- qtwebengine5-dev
HpsJam &
HpsJam --server --port 22124 --peers 16
HpsJam --server --port 22124 --peers 16 --daemon
[Unit] Description=HpsJam headless server After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=jamulus # or hpsjam if that exists Group=nogroup NoNewPrivileges=true ProtectSystem=true ProtectHome=true Nice=-20 IOSchedulingClass=realtime IOSchedulingPriority=0 #### Change this parameters to your liking ExecStart=/bin/sh -c 'exec /usr/bin/HpsJam --server \ --port 22126 \ --peers 16' # [--welcome-msg-file /yourPath/yourFile # [--password <64_bit_hexadecimal_password>] \ # [--mixer-password <64_bit_hexadecimal_password>] \ # [--ncpu <1,2,3, ... 64, Default is 1>] \ # [--httpd ] \ # [--httpd-conns \ # [--cli-port ] Restart=on-failure RestartSec=30 StandardOutput=journal StandardError=inherit SyslogIdentifier=jamulus [Install] WantedBy=multi-user.target #
HpsJam --server --port 22124 --peers 16 --httpd 127.0.0.1:8080 --daemon ffmpeg -f s32le -ac 2 -ar 48000 -i http://127.0.0.1:8080/stream.wav \ -acodec libmp3lame -ab 128k -ac 2 -content_type audio/mpeg \ -f mp3 icecast://source:[email protected]:8000/stream
HpsJam -h
HPS JAM does not collect any information from its users.
- FreeBSD hpsjam port
- Linux
- Android (See App Store)
- iOS (See App Store)
- MacOSX (See App Store)
- Windows (64-bit) Binary build here
- Raspberry-Pi JamBox