New version: 0.5.2!
New features:
- Highshelf and Lowshelf can be defined with Q-value.
Thanks very much for implementing this!
To make a filter like that you can use a number of shelving filters spaced an octave apart in frequency with a Q of 0.7 and the gain set to the slope you want e.g. -1db. So if you start at 1.5K and go up from there it should look similar.Henrik,
Is it possibble, to build a shelving filter in camilladsp according attached REW screenshot (the falling part starting at 1kHz)?
Dear all,
I planning setting up a 8 channel DSP by using a M-Audio Delta 1010lt sound card and an Intel Atom Mainboard. Before buying the sound card I tried to get CamillaDSP running with the integrated onboard sound of the mainboard (an Intel HD Audio). However, I am not able to get any sound out of the system despite the fact that CamillaDSP starts with no errors. Therefore, I assume an error in my config file or setup error.
My config file:
My aplay devices:
My arecord devices:
I planning setting up a 8 channel DSP by using a M-Audio Delta 1010lt sound card and an Intel Atom Mainboard. Before buying the sound card I tried to get CamillaDSP running with the integrated onboard sound of the mainboard (an Intel HD Audio). However, I am not able to get any sound out of the system despite the fact that CamillaDSP starts with no errors. Therefore, I assume an error in my config file or setup error.
My config file:
Code:
---
devices:
samplerate: 44100
chunksize: 1024
silence_threshold: -60
silence_timeout: 3.0
capture:
type: Alsa
channels: 2
device: "hw:Loopback,0,0"
format: S32LE
playback:
type: Alsa
channels: 2
device: "hw:Intel,1,0"
format: S32LE
filters:
volumemaster:
type: Volume
parameters:
ramp_time: 200
FIR1:
type: Conv
parameters:
type: Raw
filename: filter.txt
format: TEXT
FIR2:
type: Conv
parameters:
type: Raw
filename: filter.txt
format: TEXT
mixers:
to2:
channels:
in: 2
out: 2
mapping:
- dest: 0
sources:
- channel: 0
gain: 0
inverted: false
- dest: 1
sources:
- channel: 1
gain: 0
inverted: false
pipeline:
- type: Mixer
name: to2
- type: Filter
channel: 0
names:
- volumemaster
- type: Filter
channel: 1
names:
- volumemaster
- type: Filter
channel: 0
names:
- FIR1
- type: Filter
channel: 1
names:
- FIR2
My aplay devices:
Code:
sudo aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 0: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 1: Intel [HDA Intel], Gerät 0: 92HD73C1X5 Analog [92HD73C1X5 Analog]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: Intel [HDA Intel], Gerät 1: 92HD73C1X5 Digital [92HD73C1X5 Digital]
Sub-Geräte: 0/1
Sub-Gerät #0: subdevice #0
My arecord devices:
Code:
sudo arecord -l
**** Liste der Hardware-Geräte (CAPTURE) ****
Karte 0: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
Sub-Geräte: 7/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 0: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 1: Intel [HDA Intel], Gerät 0: 92HD73C1X5 Analog [92HD73C1X5 Analog]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
As far as I understand it the definition for the playback device "hw:Intel,1,0" refers to Card No. 1 and Device No. 0, therefore the digital port of the Intel HDA:
"Karte 1: Intel [HDA Intel], Gerät 0: 92HD73C1X5 Analog [92HD73C1X5 Analog]"
Is my assumption right? Is the first digit of "1,0" referring to the "card" and the second digit to the "device"?
"Karte 1: Intel [HDA Intel], Gerät 0: 92HD73C1X5 Analog [92HD73C1X5 Analog]"
Is my assumption right? Is the first digit of "1,0" referring to the "card" and the second digit to the "device"?
The first ID is the card. The card ID can be either numeric (1), or card name (Intel). Therefore your case of hw:Intel,1,0 means card Intel, device 1, subdevice 0 - the digital output.
Thank you very much for the detailed explaination. I will give it a try.
One more question: Do I have to define the subdevice (last digit)? What is the purpose of defining a subdevice?
One more question: Do I have to define the subdevice (last digit)? What is the purpose of defining a subdevice?
Subdevice corresponds to a substream. Typically a device has only one subdevice - it supports only only one substream and does no support hardware mixing. Devices with HW mixing (and snd-aloop loopbacks) allow multiple substreams and define several subdevices.
Normally you do not need to specify the subdevice and subdevice ID 0 is used by default.
Normally you do not need to specify the subdevice and subdevice ID 0 is used by default.
Did anyone try the 0.6.0 beta with the new wasapi backend?
I'm curious to know how (and if) it works.
I'm curious to know how (and if) it works.
New version: 0.5.2!
New features:
- Highshelf and Lowshelf can be defined with Q-value.
Thanks a lot!
I haven't been around here for some time, so I just now checked out the new releases and saw the great news 🙂
I updated the documentation page, and put the readmes for all published versions here: CamillaDSP
Should make it easier to find the readme for a specific version.
Should make it easier to find the readme for a specific version.
Anyone using this with a Motu M4 in a multi-channel setup? I'd love to pick your brain / see your pipeline config!
Thanks,
Jim
Thanks,
Jim
Follow-up on my RasPi4B + USBStreamer stereo EQ setup:
The USBStreamer seems to be... less than ideal for this. 192kHz and 176.4kHz don't really work properly with Linux ALSA configurations. Working on an ideal setup for stereo DSP, I have a question up over on the I2S sound thread on the Raspberry Pi forums. I'd like to eliminate the USBStreamer if possible and have a fully self-contained DSP system with just a RasPi4B and hat. It seems like the guys over at Cirrus were halfway on the path with the Cirrus audio card for the RPi1 versions, but didn't bother continuing development.
If I can get this project to the point where it is solid, I'll create a github project with a known-working setup for anyone that wants an all-digital, sample-rate independent/preserving DSP chain. 384kHz is do not care, the concern is making the system basically transparent/plug-and-play for 99.99% of all current and common formats like HD audio streaming = no surprises unless you know what you've gotten yourself into. Right now, it's not 99.99%, and that bugs me. 🙄
To be fair, 44.1, 48, and 96 work fine.
The USBStreamer seems to be... less than ideal for this. 192kHz and 176.4kHz don't really work properly with Linux ALSA configurations. Working on an ideal setup for stereo DSP, I have a question up over on the I2S sound thread on the Raspberry Pi forums. I'd like to eliminate the USBStreamer if possible and have a fully self-contained DSP system with just a RasPi4B and hat. It seems like the guys over at Cirrus were halfway on the path with the Cirrus audio card for the RPi1 versions, but didn't bother continuing development.
If I can get this project to the point where it is solid, I'll create a github project with a known-working setup for anyone that wants an all-digital, sample-rate independent/preserving DSP chain. 384kHz is do not care, the concern is making the system basically transparent/plug-and-play for 99.99% of all current and common formats like HD audio streaming = no surprises unless you know what you've gotten yourself into. Right now, it's not 99.99%, and that bugs me. 🙄
To be fair, 44.1, 48, and 96 work fine.
Last edited:
Hello!!
I've been trying to do some active crossover with a Pi and Camilladsp. I'm using a DIYinHK usb DAC.
It has been a fresh installation of both the Pi and the CamillaDSP. I confronted this when I try to start the system:
May I have some advice?
I've been trying to do some active crossover with a Pi and Camilladsp. I'm using a DIYinHK usb DAC.
It has been a fresh installation of both the Pi and the CamillaDSP. I confronted this when I try to start the system:
Code:
pi@raspberrypi:~/Documents $ camilladsp xover.yml
Jun 26 17:23:24.428 INFO Capture device supports rate adjust, module: camillalib::alsadevice
Jun 26 17:23:24.488 INFO Starting playback from Prepared state, module: camillalib::alsadevice
thread 'AlsaPlayback' panicked at 'called `Result::unwrap()` on an `Err` value: Error("snd_pcm_state", UnsupportedOperation)', /home/pi/.cargo/registry/src/github.com-1285ae84e5963aae/alsa-0.5.0/src/pcm.rs:159:75
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: SendError { .. }', src/processing.rs:27:37
thread 'AlsaCapture' panicked at 'called `Result::unwrap()` on an `Err` value: SendError { .. }', src/alsadevice.rs:534:38
May I have some advice?
Could you run again with -vv and paste the output? Also please attach your config.May I have some advice?
Are you using 0.5.2?
@ttf97: I have looked a bit and the error you get comes from ALSA. When reading the card state it returns something invalid, instead of one of the allowed states.
Can you give the details of your system? I need distribution, kernel version, what DIYinHK interface it is, and which Pi model.
We may end up sending a bug report to the ALSA team.
Can you give the details of your system? I need distribution, kernel version, what DIYinHK interface it is, and which Pi model.
We may end up sending a bug report to the ALSA team.
- Home
- Source & Line
- PC Based
- CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc