I don't have much merit, I started with mdsimon's script, made progress with difficulty with Google then gave in to chatgpt... well, I learned to ask him the right questions!
I have tried your script but:
is not working because module can not be found.
I installed camillaDSP with the tutorial from mdsimon with this lines:
And so camilladsp is in a different location
Any idea what i have to use instead of:
Python:
cdsp = CamillaClient("127.0.0.1", 1234)
cdsp.connect()
is not working because module can not be found.
I installed camillaDSP with the tutorial from mdsimon with this lines:
Bash:
mkdir ~/camilladsp ~/camilladsp/coeffs ~/camilladsp/configs
wget https://github.com/HEnquist/camilladsp/releases/download/v3.0.1/camilladsp-linux-aarch64.tar.gz -O ~/camilladsp/camilladsp-linux-aarch64.tar.gz
sudo tar -xvf ~/camilladsp/camilladsp-linux-aarch64.tar.gz -C /usr/local/bin/
Any idea what i have to use instead of:
Python:
from camilladsp import CamillaClient
At the moment i do it this way, but don't know, if it has any disadvantage:
Python:
import asyncio
import evdev
import socket
import websocket
import time
import json
cmdUp = {
"AdjustVolume": [1.0, -60.0, 0.0]
}
cmdDown = {
"AdjustVolume": [-1.0, -60.0, 0.0]
}
MOUSE_PATH = "/dev/input/event2"
ws = websocket.create_connection("ws://localhost:1234")
def adjust_volume(direction):
if direction == "up":
print(f"UP")
ws.send(json.dumps(cmdUp))
else:
print(f"DOWN")
ws.send(json.dumps(cmdDown))
async def main():
device = evdev.InputDevice(MOUSE_PATH)
async for event in device.async_read_loop():
# Listen for relative wheel events (e.g., mouse wheel or similar)
if event.type == evdev.ecodes.EV_REL and event.code == evdev.ecodes.REL_WHEEL:
if event.value > 0:
#print(f"Up")
adjust_volume("up")
elif event.value < 0:
#print(f"Down")
adjust_volume("down")
if __name__ == "__main__":
asyncio.run(main())
Last edited:
a little bit cleaned code:
Python:
import asyncio
import evdev
import websocket
import json
cmdUp = {"AdjustVolume": [1.0, -60.0, 0.0]}
cmdDown = {"AdjustVolume": [-1.0, -60.0, 0.0]}
MOUSE_PATH = "/dev/input/event2"
ws = websocket.create_connection("ws://localhost:1234")
def adjust_volume(direction):
if direction == "up":
#print("UP")
ws.send(json.dumps(cmdUp))
else:
#print("DOWN")
ws.send(json.dumps(cmdDown))
async def main():
device = evdev.InputDevice(MOUSE_PATH)
async for event in device.async_read_loop():
# Listen for relative wheel events (e.g., mouse wheel or similar)
if event.type ==
.EV_REL and event.code == evdev.ecodes.REL_WHEEL:
if event.value > 0:
adjust_volume("up")
elif event.value < 0:
adjust_volume("down")
if __name__ == "__main__":
asyncio.run(main())
"cdsp = CamillaClient("127.0.0.1", 1234)cdsp.connect()is not working because module cannot be found.
install pyCamillaDSP, the Companion Python library for CamillaDSP.
"At the moment I do it this way, but don't know, if it has any disadvantage":
Ok, it work but here are the main reasons why using the pycamilladsp library is more appropriate than manually sending JSON via websocket when interacting with CamillaDSP:
cdsp.adjust_volume(1.0, -60.0, 0.0)
This improves readability, maintainability, and reduces the risk of mistakes in the command format.
DSP communication,
3) It ensures that commands you send follow the structure expected by CamillaDSP.
You avoid silent bugs due to incorrect field names, types, or missing values.
4) The library includes structured error responses and exceptions, which makes it easier to catch and debug issues.
With raw websockets, you have to parse everything manually.
5) If the CamillaDSP protocol evolves, the library can be updated to stay compatible —
you won’t need to rewrite your JSON messages or low-level socket logic.
6) Using pycamilladsp helps separate application logic (e.g., handling a rotary encoder) from DSP communication, which makes your code cleaner and more modular.
install pyCamillaDSP, the Companion Python library for CamillaDSP.
"At the moment I do it this way, but don't know, if it has any disadvantage":
Ok, it work but here are the main reasons why using the pycamilladsp library is more appropriate than manually sending JSON via websocket when interacting with CamillaDSP:
1) Instead of building and sending raw JSON commands, you can use intuitive Python methods like:cdsp.adjust_volume(1.0, -60.0, 0.0)
This improves readability, maintainability, and reduces the risk of mistakes in the command format.
DSP communication,
2) The CamillaClient class handles:- WebSocket connection establishment
- Reconnection logic (if needed)
- JSON serialization/deserialization
3) It ensures that commands you send follow the structure expected by CamillaDSP.
You avoid silent bugs due to incorrect field names, types, or missing values.
4) The library includes structured error responses and exceptions, which makes it easier to catch and debug issues.
With raw websockets, you have to parse everything manually.
5) If the CamillaDSP protocol evolves, the library can be updated to stay compatible —
you won’t need to rewrite your JSON messages or low-level socket logic.
6) Using pycamilladsp helps separate application logic (e.g., handling a rotary encoder) from DSP communication, which makes your code cleaner and more modular.
Thanks a lot!
pycamilladsp was the missing link 😉
Now your script is running without any change! Controlling Volume with the Bluetooth mouse is working on more then 10 meter distance 😉
I like 😉
pycamilladsp was the missing link 😉
Now your script is running without any change! Controlling Volume with the Bluetooth mouse is working on more then 10 meter distance 😉
I like 😉
Strange
It worked but now not anymore.
What i have done since it doesn't work anymore:
What i have tried to make a new install:
This has worked first time.
It worked but now not anymore.
Bash:
from camilladsp import CamillaClient
ImportError: cannot import name 'CamillaClient' from 'camilladsp' (unknown location)
What i have done since it doesn't work anymore:
- reboot
- changed IP to fixed IP
What i have tried to make a new install:
Bash:
sudo apt install git
sudo python -m venv --system-site-packages /opt/venv
source /opt/venv/bin/activate
pip3 install git+https://github.com/HEnquist/pycamilladsp.git
deactivate
This has worked first time.
OK... does it mean, that i have installed a python version in /opt/venv/bin/python3 and the client resources are in this installation?
sudo python -m venv --system-site-packages /opt/venv
python -m venv: Uses Python’s built-in module to create a virtual environment.
--system-site-packages: Allows the virtual environment to access globally installed Python packages (in addition to isolated packages).
/opt/venv: Specifies the location where the virtual environment will be created — in this case, in /opt/venv.
This creates a Python virtual environment in /opt/venv that has access to system-wide packages.
python -m venv: Uses Python’s built-in module to create a virtual environment.
--system-site-packages: Allows the virtual environment to access globally installed Python packages (in addition to isolated packages).
/opt/venv: Specifies the location where the virtual environment will be created — in this case, in /opt/venv.
This creates a Python virtual environment in /opt/venv that has access to system-wide packages.
OK... now i have created my first service, to run the script on startup 😉
1. Create a service file:
Create a file at /etc/systemd/system/mousewheel.service:
Paste the following:
"ExecStartPre=/bin/sleep 10" is just because script is not starting... maybe camillaGUI is not ready?
2. Enable the service:
3. Test it manually:
Then check status:
1. Create a service file:
Create a file at /etc/systemd/system/mousewheel.service:
Bash:
sudo nano /etc/systemd/system/mousewheel.service
Code:
[Unit]
Description=Run mousewheel.py at startup
After=network.target
[Service]
ExecStartPre=/bin/sleep 10
Type=simple
User=chriss
WorkingDirectory=/home/chriss
ExecStart=/opt/venv/bin/python3 /home/chriss/mousewheel.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
Adjust the path to mousewheel.py if it’s not directly in /home/chriss.
2. Enable the service:
Bash:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable mousewheel.service
3. Test it manually:
Bash:
sudo systemctl start mousewheel.service
Then check status:
Code:
sudo systemctl status mousewheel.service
Hi everyone, a kind soul from ASR directed me here for help after some install and config troubles of camilladsp on the latest linux mint. It's an HTPC using HDMI to a Denon AVR in 5.1, but without the rear speaker so it has a 3.1 physical speaker config where the rear surrounds are redirected to the front at 70% using 3.1downmix.yml file in /etc/camilladsp/.
I have a lot of devices in capture and playback that mean nothing to me. I have no idea which ones are correct. I've tried virtually all combinations and the closest I can get is the following where at least camilla dsp says it's running, but the levels are always below -96db and the volume slider does nothing. If I try other devices, I get errors and camilla won't even start.
Logs:
Here are my filters
See the link to the ASR thread to follow a history of how I got here, including the list of devices available.
https://www.audiosciencereview.com/...fig-help-device-selection-overwhelming.63297/
At the moment after booting sound is fine when playing out of roon. After activating camilladsp roon says
I have re-followed the readme and reconfigured everything using pipewire. I have no idea how to troubleshoot this. Any assistance from a kind soul?
I have a lot of devices in capture and playback that mean nothing to me. I have no idea which ones are correct. I've tried virtually all combinations and the closest I can get is the following where at least camilla dsp says it's running, but the levels are always below -96db and the volume slider does nothing. If I try other devices, I get errors and camilla won't even start.
Logs:
Here are my filters
See the link to the ASR thread to follow a history of how I got here, including the list of devices available.
https://www.audiosciencereview.com/...fig-help-device-selection-overwhelming.63297/
At the moment after booting sound is fine when playing out of roon. After activating camilladsp roon says
I have re-followed the readme and reconfigured everything using pipewire. I have no idea how to troubleshoot this. Any assistance from a kind soul?
That means Roon and CamillaDSP is on the same PC?At the moment after booting sound is fine when playing out of roon. After activating camilladsp roon says
I am not sure, if Linux is handling the audio interface exclusiv, you need to deactivate this interface in Roon! From Roon to CDSP you need a virtual Loopback connection.
@OhmygodwhatamIdoing? I see you have configured the device you call Alsa loopback in pipewire so that it connects to the Generic device. That is the hdmi device! You need to change it to the Loopback device (CARD=Loopback) for things to work. The idea is to let pipewire send audio to the Alsa Loopback virtual device, and not touch the HDMI device. Then you let CamillaDSP record from the other side of the Loopback, process, and play it back on the Generic (HDMI) device.
@HenrikEnquist : So my pipewire.conf should look like this?
and the capture and playback devices should be the hw:CARD:Loopbacks. In the 0 and out the 1?
and the capture and playback devices should be the hw:CARD:Loopbacks. In the 0 and out the 1?
The pipewire config looks ok, and the CamillaDSP capture device also. But the CamillaDSP playback device should be the "Generic" HDMI device.
@HenrikEnquist I'm missing something. Can you confirm the config? Still getting the following error
asound.conf points to "hw:Loopback:0" on lines 20,25,28 and I updated lines 44 with the number of channels bumped to 6 and 47 set the rate to 48000.
pipewire.conf points to "hw:CARD=Loopback,DEV=1" on line 233, edited from your template that had "hw:Loopback,0,0" originally.
alsaconfig.yml points to "hw:CARD=Loopback,DEV=1" as the capture device selected from the list via webUI
alsaconfig.yml points to "hdmi:CARD=Generic,DEV=1" as the playback device selected via list from web UI (See below for matching aplay output to capture options.)
The playback device was selected by viewing aplay-l and picking the only one to say Denon from the list, then selecting it from the playback device list. See BOLD below.
** List of PLAYBACK Hardware Devices **
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 7: HDMI 1 [DENON-AVR]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: ALC897 Analog [ALC897 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
when compared to the list of playback devices...
hw:Loopback,0,0: Loopback, Loopback PCM, subdevice #0
hw:Loopback,0,1: Loopback, Loopback PCM, subdevice #1
hw:Loopback,0,2: Loopback, Loopback PCM, subdevice #2
hw:Loopback,0,3: Loopback, Loopback PCM, subdevice #3
hw:Loopback,0,4: Loopback, Loopback PCM, subdevice #4
hw:Loopback,0,5: Loopback, Loopback PCM, subdevice #5
hw:Loopback,0,6: Loopback, Loopback PCM, subdevice #6
hw:Loopback,0,7: Loopback, Loopback PCM, subdevice #7
hw:Loopback,1,0: Loopback, Loopback PCM, subdevice #0
hw:Loopback,1,1: Loopback, Loopback PCM, subdevice #1
hw:Loopback,1,2: Loopback, Loopback PCM, subdevice #2
hw:Loopback,1,3: Loopback, Loopback PCM, subdevice #3
hw:Loopback,1,4: Loopback, Loopback PCM, subdevice #4
hw:Loopback,1,5: Loopback, Loopback PCM, subdevice #5
hw:Loopback,1,6: Loopback, Loopback PCM, subdevice #6
hw:Loopback,1,7: Loopback, Loopback PCM, subdevice #7
hw:Generic,3,0: HD-Audio Generic, HDMI 0, subdevice #0
hw:Generic,7,0: HD-Audio Generic, DENON-AVR, subdevice #0
hw:Generic,8,0: HD-Audio Generic, HDMI 2, subdevice #0
hw:Generic,9,0: HD-Audio Generic, HDMI 3, subdevice #0
hw:Generic_1,0,0: HD-Audio Generic, ALC897 Analog, subdevice #0
null: Discard all samples (playback) or generate zero samples (capture)
lavrate: Rate Converter Plugin Using Libav/FFmpeg Library
samplerate: Rate Converter Plugin Using Samplerate Library
speexrate: Rate Converter Plugin Using Speex Resampler
jack: JACK Audio Connection Kit
oss: Open Sound System
pipewire: PipeWire Sound Server
pulse: PulseAudio Sound Server
speex: Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix: Plugin for channel upmix (4,6,8)
vdownmix: Plugin for channel downmix (stereo) with a simple spacialization
hw:CARD=Loopback,DEV=0: Loopback, Loopback PCMDirect hardware device without any conversions
hw:CARD=Loopback,DEV=1: Loopback, Loopback PCMDirect hardware device without any conversions
plughw:CARD=Loopback,DEV=0: Loopback, Loopback PCMHardware device with all software conversions
plughw:CARD=Loopback,DEV=1: Loopback, Loopback PCMHardware device with all software conversions
sysdefault:CARD=Loopback: Loopback, Loopback PCMDefault Audio Device
front:CARD=Loopback,DEV=0: Loopback, Loopback PCMFront output / input
surround21:CARD=Loopback,DEV=0: Loopback, Loopback PCM2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0: Loopback, Loopback PCM4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0: Loopback, Loopback PCM4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0: Loopback, Loopback PCM5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0: Loopback, Loopback PCM5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0: Loopback, Loopback PCM7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=Loopback,DEV=0: Loopback, Loopback PCMDirect sample mixing device
dmix:CARD=Loopback,DEV=1: Loopback, Loopback PCMDirect sample mixing device
usbstream:CARD=Loopback: LoopbackUSB Stream Output
hw:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Direct hardware device without any conversions
hw:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRDirect hardware device without any conversions
hw:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Direct hardware device without any conversions
hw:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Direct hardware device without any conversions
plughw:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Hardware device with all software conversions
plughw:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRHardware device with all software conversions
plughw:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Hardware device with all software conversions
plughw:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Hardware device with all software conversions
hdmi:CARD=Generic,DEV=0: HD-Audio Generic, HDMI 0HDMI Audio Output
hdmi:CARD=Generic,DEV=1: HD-Audio Generic, DENON-AVRHDMI Audio Output
hdmi:CARD=Generic,DEV=2: HD-Audio Generic, HDMI 2HDMI Audio Output
hdmi:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 3HDMI Audio Output
dmix:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Direct sample mixing device
dmix:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRDirect sample mixing device
dmix:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Direct sample mixing device
dmix:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Direct sample mixing device
usbstream:CARD=Generic: HD-Audio GenericUSB Stream Output
hw:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogDirect hardware device without any conversions
plughw:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogHardware device with all software conversions
sysdefault:CARD=Generic_1: HD-Audio Generic, ALC897 AnalogDefault Audio Device
front:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogFront output / input
surround21:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogDirect sample mixing device
usbstream:CARD=Generic_1: HD-Audio GenericUSB Stream Output
usbstream:CARD=acp: acpUSB Stream Output
asound.conf points to "hw:Loopback:0" on lines 20,25,28 and I updated lines 44 with the number of channels bumped to 6 and 47 set the rate to 48000.
pipewire.conf points to "hw:CARD=Loopback,DEV=1" on line 233, edited from your template that had "hw:Loopback,0,0" originally.
alsaconfig.yml points to "hw:CARD=Loopback,DEV=1" as the capture device selected from the list via webUI
alsaconfig.yml points to "hdmi:CARD=Generic,DEV=1" as the playback device selected via list from web UI (See below for matching aplay output to capture options.)
The playback device was selected by viewing aplay-l and picking the only one to say Denon from the list, then selecting it from the playback device list. See BOLD below.
** List of PLAYBACK Hardware Devices **
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 7: HDMI 1 [DENON-AVR]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: ALC897 Analog [ALC897 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
when compared to the list of playback devices...
hw:Loopback,0,0: Loopback, Loopback PCM, subdevice #0
hw:Loopback,0,1: Loopback, Loopback PCM, subdevice #1
hw:Loopback,0,2: Loopback, Loopback PCM, subdevice #2
hw:Loopback,0,3: Loopback, Loopback PCM, subdevice #3
hw:Loopback,0,4: Loopback, Loopback PCM, subdevice #4
hw:Loopback,0,5: Loopback, Loopback PCM, subdevice #5
hw:Loopback,0,6: Loopback, Loopback PCM, subdevice #6
hw:Loopback,0,7: Loopback, Loopback PCM, subdevice #7
hw:Loopback,1,0: Loopback, Loopback PCM, subdevice #0
hw:Loopback,1,1: Loopback, Loopback PCM, subdevice #1
hw:Loopback,1,2: Loopback, Loopback PCM, subdevice #2
hw:Loopback,1,3: Loopback, Loopback PCM, subdevice #3
hw:Loopback,1,4: Loopback, Loopback PCM, subdevice #4
hw:Loopback,1,5: Loopback, Loopback PCM, subdevice #5
hw:Loopback,1,6: Loopback, Loopback PCM, subdevice #6
hw:Loopback,1,7: Loopback, Loopback PCM, subdevice #7
hw:Generic,3,0: HD-Audio Generic, HDMI 0, subdevice #0
hw:Generic,7,0: HD-Audio Generic, DENON-AVR, subdevice #0
hw:Generic,8,0: HD-Audio Generic, HDMI 2, subdevice #0
hw:Generic,9,0: HD-Audio Generic, HDMI 3, subdevice #0
hw:Generic_1,0,0: HD-Audio Generic, ALC897 Analog, subdevice #0
null: Discard all samples (playback) or generate zero samples (capture)
lavrate: Rate Converter Plugin Using Libav/FFmpeg Library
samplerate: Rate Converter Plugin Using Samplerate Library
speexrate: Rate Converter Plugin Using Speex Resampler
jack: JACK Audio Connection Kit
oss: Open Sound System
pipewire: PipeWire Sound Server
pulse: PulseAudio Sound Server
speex: Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix: Plugin for channel upmix (4,6,8)
vdownmix: Plugin for channel downmix (stereo) with a simple spacialization
hw:CARD=Loopback,DEV=0: Loopback, Loopback PCMDirect hardware device without any conversions
hw:CARD=Loopback,DEV=1: Loopback, Loopback PCMDirect hardware device without any conversions
plughw:CARD=Loopback,DEV=0: Loopback, Loopback PCMHardware device with all software conversions
plughw:CARD=Loopback,DEV=1: Loopback, Loopback PCMHardware device with all software conversions
sysdefault:CARD=Loopback: Loopback, Loopback PCMDefault Audio Device
front:CARD=Loopback,DEV=0: Loopback, Loopback PCMFront output / input
surround21:CARD=Loopback,DEV=0: Loopback, Loopback PCM2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0: Loopback, Loopback PCM4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0: Loopback, Loopback PCM4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0: Loopback, Loopback PCM5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0: Loopback, Loopback PCM5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0: Loopback, Loopback PCM7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=Loopback,DEV=0: Loopback, Loopback PCMDirect sample mixing device
dmix:CARD=Loopback,DEV=1: Loopback, Loopback PCMDirect sample mixing device
usbstream:CARD=Loopback: LoopbackUSB Stream Output
hw:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Direct hardware device without any conversions
hw:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRDirect hardware device without any conversions
hw:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Direct hardware device without any conversions
hw:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Direct hardware device without any conversions
plughw:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Hardware device with all software conversions
plughw:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRHardware device with all software conversions
plughw:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Hardware device with all software conversions
plughw:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Hardware device with all software conversions
hdmi:CARD=Generic,DEV=0: HD-Audio Generic, HDMI 0HDMI Audio Output
hdmi:CARD=Generic,DEV=1: HD-Audio Generic, DENON-AVRHDMI Audio Output
hdmi:CARD=Generic,DEV=2: HD-Audio Generic, HDMI 2HDMI Audio Output
hdmi:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 3HDMI Audio Output
dmix:CARD=Generic,DEV=3: HD-Audio Generic, HDMI 0Direct sample mixing device
dmix:CARD=Generic,DEV=7: HD-Audio Generic, DENON-AVRDirect sample mixing device
dmix:CARD=Generic,DEV=8: HD-Audio Generic, HDMI 2Direct sample mixing device
dmix:CARD=Generic,DEV=9: HD-Audio Generic, HDMI 3Direct sample mixing device
usbstream:CARD=Generic: HD-Audio GenericUSB Stream Output
hw:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogDirect hardware device without any conversions
plughw:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogHardware device with all software conversions
sysdefault:CARD=Generic_1: HD-Audio Generic, ALC897 AnalogDefault Audio Device
front:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogFront output / input
surround21:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 Analog7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
dmix:CARD=Generic_1,DEV=0: HD-Audio Generic, ALC897 AnalogDirect sample mixing device
usbstream:CARD=Generic_1: HD-Audio GenericUSB Stream Output
usbstream:CARD=acp: acpUSB Stream Output
@chriss0212 EDIT: Ignore the below. I just tried the first Alsa Loopback and it works! Though seemingly only in 2 channels. Still, it's the furthest I've ever made it. Today is a good day. 🙂
What would I replace the roon output with? To answer your previous question, this PC has the native roon bridge installed and has the windows roon UI on top using bottles.
What would I replace the roon output with? To answer your previous question, this PC has the native roon bridge installed and has the windows roon UI on top using bottles.
Last edited:
- Home
- Source & Line
- PC Based
- CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc