Port of the opensource version of JamesDSP to Linux
This project has been moved to the GitHub organisation 'Audio4Linux'
This is experimental and still work in progress. Every feature from the opensource version is implemented. Feel free to join our Telegram Group (combined with Viper4Linux)
You can find the repo of my gst-wrapper for JDSP here.
And the GUI is available here
Since the gst interface of this port is very similar to viper4linux, I will temporarily use a slightly modified version of the viper script written by @noahbliss.
At the moment JDSP and Viper4Linux are not compatible. Trying to start them both will cause them to interfere with each other and result in no audio output.
For now, I will only include the basics in the readme. More details will be added later.
Supported sample formats:
- 32-bit float (LE)
- 32-bit int (LE)
Supported samplerates:
- 44100
- 48000
Pretty much everything from the opensource version is implemented:
- Analog modelling (12AX7)
- BS2B
- ViPER DDCs
- Limiter
- Compression
- Convolver
- Reverbation (Progenitor2)
- Bass boost
- Stereo widener (Side/Mid)
Instead of being tied to presets; stereo widener, bs2b and the reverbation engine can be fully customized.
On Arch you can install the AUR package by yochananmarqos:
yay -S jdsp4linux-git
And the GUI for JDSP on Linux:
yay -S jdsp4linux-gui-git
Please check the workarounds section if you encounter any problems.
Install gstreamer-1.0 and some tools to build the gstreamer plugin. (If you have already installed Viper4Linux before, you can skip this step...)
sudo apt-get install libsamplerate0 libsamplerate0-dev libsndfile1 libsndfile1-dev
sudo apt-get install build-essential autoconf libtool
sudo apt-get install gstreamer-1.0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo pacman -S base-devel
sudo pacman -S libsndfile libsamplerate
sudo pacman -S gst-plugins-good
Clone both JDSP4Linux repos
git clone https://github.com/ThePBone/JDSP4Linux.git
git clone https://github.com/ThePBone/gst-plugin-jamesdsp.git
Build the gst plugin
cd gst-plugin-jamesdsp
./autogen.sh
make
and install it...
sudo cp src/.libs/libgstjdspfx.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/
sudo cp src/.libs/libgstjdspfx.so /usr/lib/gstreamer-1.0/
If everything went alright gst-inspect-1.0 should display all element properties of the JDSP plugin:
gst-inspect-1.0 jdspfx
Copy the test-script (used to launch JDSP) to /usr/local/bin
sudo cp ../JDSP4Linux/jdsp /usr/local/bin
Create the config folder...
mkdir -p ~/.config/jamesdsp
and copy the default config in there.
cp ../JDSP4Linux/audio.conf ~/.config/jamesdsp/audio.conf
Now JDSP4Linux should be setup correctly. Edit the audio.conf to your liking and launch JDSP using the script (like Viper4Linux):
jdsp start
And stop it like this:
jdsp stop
Like I said, work-in-progress != stable, so use it with caution.
You can find installation instructions for the GUI here
Join our Telegram Group
As described here, you can set a custom alsa path.
You can also follow the instructions over there, but make sure you drop the devices.conf in ~/.config/jamesdsp
.
Run this command:
pactl list sinks | grep "Name: " -A1
...and look for the Alsa Output Path of your headset. If we have this command output for example:
Name: alsa_output.pci-0000_00_1f.3.analog-stereo
Description: Built-in Audio Analog Stereo
Name: jdsp
Description: JDSP4Linux
Then alsa_output.pci-0000_00_1f.3.analog-stereo
would be the output path.
Finally create the file ~/.config/jamesdsp/devices.conf
and paste the path in there, like this:
location=...insert custom alsa path here...
...and reload JDSP:
jdsp restart
Edit /etc/pulse/default.pa
as root and uncomment or add the following line:
load-module module-udev-detect tsched=0
Set the default samplerate to 48000Hz in pulseaudio's config:
sudo nano /etc/pulse/daemon.conf
Replace this line:
; default-sample-rate = 44100
with this one:
default-sample-rate = 48000
And restart pulseaudio:
pulseaudio -k
pulseaudio --start
Please open an issue or contact me on Telegram @ThePBone if you find any bugs or have questions.