Use JackClient Python API to do some autopatching for our JackTrip server
- JACK
- jacktrip
- LADSPA/Jack plugins
- Icecast & Darkice
- python dependencies
$ sudo aptitude install invada-studio-plugins-ladspa
$ git clone https://repo.or.cz/ng-jackspa.git
$ sudo aptitude install libglib2.0-dev libncurses5-dev ladspa-sdk ladspa-sdk-dev
$ cd ng-jackspa
# trying to avoid building the GTK version, so avoid make install...!
$ make njackspa jackspa-cli
$ cp njackspa jackspa-cli /usr/local/bin/
$ njackspa /usr/lib/ladspa/inv_input.so 3301
To use this on Ubuntu 18, you'll need to install jackclient-python's dependencies, which currently means the following:
$ sudo aptitude install python3-pip
$ python3 -m pip install -r requirements.txt --user
Systemd service files are in ./services
, see the README.md there.
If all dependencies are configured correctly you can start the Jackd, Icecast and JackTrip services. Edit the relevant service config files if you want to change the default session configurations.
-
Ensure that you have some lounge music path at the currently hard-coded path in lounge_music.py, currently
/home/sam/lounge-music.mp3
. -
Ensure that you have write access to the currently hard-coded path in stereo_recording.py, currently
/home/sam/
. Nb. files will have filenames with prefixdarkice-
, e.g.darkice-01.wav
.
jacktrip_pypatcher_mode_2.py
should replicate what the built-in autopatcher does when in-p2
modejacktrip_pypatcher.py
should do all the patching you ever need!
Some clients would prefer to receive a mono headphone mix, as they can then wear their headphones only on one ear & hear the acoustic sound in their room with their other ear. The easiest thing is for these clients to run jacktrip with -n1
.
Alternatively they can patch jacktrip/receive_2
to system/playback_1
on their local jackd server.
Run tests with:
$ python3 -m pytest
Written by Tom Ward and Sam Andreae as part of a project with Noise Orchestra