hpsjam
hpsjam copied to clipboard
Online audio jamming software
<IMG SRC="https://raw.githubusercontent.com/hselasky/hpsjam/main/HpsJam.svg"></IMG>
HPS JAM
An online audio collaboration tool for low latency audio with lyrics and chat support.
News
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!
Features
- 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
Users guides
How to build client and server under FreeBSD after cloning this repository
- git submodule init
- git submodule update
- qmake PREFIX=/usr/local
- make all
- make install
How to build server under Ubuntu Linux after cloning this repository
- 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
Notes
- 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"
Dependencies
- jackd libjack-dev
- ASIO
- build-essential
- qt5-qmake
- qtbase5-dev
- qtbase5-dev-tools
- libqt5svg5-dev
- libqt5webenginewidgets5
- libqt5webchannel5-dev
- qtwebengine5-dev
Example how to start the client
HpsJam &
Example how to start the server in foreground mode, to see errors
HpsJam --server --port 22124 --peers 16
Example how to start the server
HpsJam --server --port 22124 --peers 16 --daemon
Example of an Ubuntu service file
[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 ] \ # [--mixer-password ] \ # [--ncpu ] \ # [--httpd] \ # [--httpd-conns \ # [--cli-port ] Restart=on-failure RestartSec=30 StandardOutput=journal StandardError=inherit SyslogIdentifier=jamulus [Install] WantedBy=multi-user.target #
Example how to use ffmpeg to stream from HpsJam to icecast
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
How to get help about the commandline parameters
HpsJam -h
Privacy policy
HPS JAM does not collect any information from its users.
Supported platforms
- 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