@chriss0212 : IMHO I am afraid you are turning in circles, and need to find out how your chain works first. While it seems simple at first sight, there are quite a few things which need to be taken into account.
First I would suggest what Henrik already did - get rid of the plug plugins, so that you access your device directly. Check that proc file and configure CDSP capture and playback to fit, so that the plug plugin is not required. That will eliminate useless uncertainties and clean up the chain.
Then I would suggest to draw your chain and think about what part runs at what samplerate and what is the source of the clock for that samplerate. This analysis will have direct impact on your CDSP config which needs to reflect the clocking arrangement of your chain.
First I would suggest what Henrik already did - get rid of the plug plugins, so that you access your device directly. Check that proc file and configure CDSP capture and playback to fit, so that the plug plugin is not required. That will eliminate useless uncertainties and clean up the chain.
Then I would suggest to draw your chain and think about what part runs at what samplerate and what is the source of the clock for that samplerate. This analysis will have direct impact on your CDSP config which needs to reflect the clocking arrangement of your chain.
"In this case", you mean it is likely to change when you play different songs/albums? This needs to be totally clear from the start. Can the streamer be configured to output a fixed rate?In this case source file is 96kHz and streamer is running 96kHz as well. When running 44.1 i have 22 but camillaDSP is showing 44.1kHz
The Digiface can lock it's clock to an input, but if I read the manual correctly, the sample rate of that input must match what the Digiface is set to. It won't automatically switch to another rate if the streamer decides to feed it at a new rate.
Turning in circles... yes... you ar right!@chriss0212 : IMHO I am afraid you are turning in circles, and need to find out how your chain works first. While it seems simple at first sight, there are quite a few things which need to be taken into account.
First I would suggest what Henrik already did - get rid of the plug plugins, so that you access your device directly. Check that proc file and configure CDSP capture and playback to fit, so that the plug plugin is not required. That will eliminate useless uncertainties and clean up the chain.
I am not using any plugin. I just installed kernel 6.12 because the RME is only supportet in this kernel (as far as i know)
Because i don't have access to the driver, i only can try out, to find out what is reacting how.Then I would suggest to draw your chain and think about what part runs at what samplerate and what is the source of the clock for that samplerate. This analysis will have direct impact on your CDSP config which needs to reflect the clocking arrangement of your chain.
The chain itself is very easy:
Streamer -> Toslink Output -> RME Toslink input -> CamillaDSP -> 4 times Toslink Output.
I have tried different settings in the Streamer: fixed rate and switching rates. Both have different problems.
Fixed rate: it runs severeal hours without a problem.
Switching rate: some samplerates are working some start to make problems.
Using the samplerate, wich makes no trouble in the switching scenario, starts to make problems after some hours.
Biggest Problem: i am a total Linux newbie... so i just can try to use ChtGPT... or the help of the community... what i realy appreciate!
I have tried both... fixes rate and switching rates... both with different behavior."In this case", you mean it is likely to change when you play different songs/albums? This needs to be totally clear from the start. Can the streamer be configured to output a fixed rate?
Problem is: i can not (or don't found how) change the samplerate what the rme should use internaly. Maybe it is set to 44.1kHz, because this is the only samplerete so far, without a problem.The Digiface can lock it's clock to an input, but if I read the manual correctly, the sample rate of that input must match what the Digiface is set to. It won't automatically switch to another rate if the streamer decides to feed it at a new rate.
Will try again, to connect the RME to a windows system, to check wht will happen, if i change the samplerate in the driver!
This is a part from the manual:
To me this sounds, that the RME will lock and set the SR to the input source. In alsamixer i get the sync status on input 1, what is the input i am using.
Strange is, that the SR what is shown in alsamixer is different to the one i am getting in CamillaDSP. Maybe something whaut is related to the muxing behavior in ADAT.
Clock Mode
Sample Rate Sets the currently used sample rate. Offers a central and comfortable way of configuring the sample rate of all WDM devices to the same value, as since Vista the audio software is no longer allowed to set the sample rate. However, an ASIO program can still set the sample rate by itself.
During record/playback the selection is greyed out, so no change is possible.
Clock Source
The unit can be configured to use its own clock (Internal = Master) or the digital input signal (Input 1-4 = Slave). If the external source isn't available (Input Status No Lock), the unit will change to the internal clock. The current clock source is displayed as Current.
Input Status
Indicates presence of a valid signal at the optical input 1-4 (Lock, No Lock) and whether the signal is synchronous (Sync). The third column shows the sample frequency detected by the hardware (coarse recognition, 32 kHz, 44.1 kHz, 48 kHz etc.). In Clock Mode the clock reference is shown. See also chapter 26.1.
To me this sounds, that the RME will lock and set the SR to the input source. In alsamixer i get the sync status on input 1, what is the input i am using.
Strange is, that the SR what is shown in alsamixer is different to the one i am getting in CamillaDSP. Maybe something whaut is related to the muxing behavior in ADAT.
I don't think Digiface can follow incoming SR - hence the "Sample Rate" drop down menu.
But in the manual:
Clock Source
The unit can be configured to use its own clock (Internal = Master) or the digital input signal (Input 1-4 = Slave). If the external source isn't available (Input Status No Lock), the unit will change to the internal clock. The current clock source is displayed as Current.
To me this COULD mean, that the device will follow and lock to the input. The Dropdown is only for WDM.... not for ASIO! When using ASIO, RME will follow the settings in the ASIO Software.
But tonight i will try to change the SR Settings in Windows to 96kHz... let's see what happens when i reconnect to Linux.
What i am wondering: it seems, that i can adjust the project SR in Reaper to what i like, and it seems to work... but have not tested it several hours yet.
The Digiface user guide is very nicely detailed. IMO the very important chapters are 26.1, 8.6.
IIUC the linux drivers report the same what the windows drivers do. If you want a more comprehensive view, I would recommend text mode amixer instead of text-UI alsamixer which mangles/cuts off names of the control elements. I do not have the device, but there are quite a few Digiface amixer dumps in https://www.alsa-project.org/cardinfo-db/
Since you have a streamer with independent SPDIF (always clock master), and use Digiface for output too, you need to set digiface clock to that SPDIF input. The status must be Sync (i.e. the output runs at sync with input).
Then no rate adjust and resampling in CDSP will be needed.
However, whenever the incoming rate changes, CDSP needs to be reconfigured so that it knows about the change. E.g. Henrik' s https://github.com/HEnquist/camilladsp-controller could be used, BUT only after adding support for the corresponding digiface alsa controls. Since I am not sure you can do that, the only way for you is to configure your streamer to resample to fixed output samplerate and configure CDSP at that (both capture and playback).
IIUC the linux drivers report the same what the windows drivers do. If you want a more comprehensive view, I would recommend text mode amixer instead of text-UI alsamixer which mangles/cuts off names of the control elements. I do not have the device, but there are quite a few Digiface amixer dumps in https://www.alsa-project.org/cardinfo-db/
Since you have a streamer with independent SPDIF (always clock master), and use Digiface for output too, you need to set digiface clock to that SPDIF input. The status must be Sync (i.e. the output runs at sync with input).
Then no rate adjust and resampling in CDSP will be needed.
However, whenever the incoming rate changes, CDSP needs to be reconfigured so that it knows about the change. E.g. Henrik' s https://github.com/HEnquist/camilladsp-controller could be used, BUT only after adding support for the corresponding digiface alsa controls. Since I am not sure you can do that, the only way for you is to configure your streamer to resample to fixed output samplerate and configure CDSP at that (both capture and playback).
That text in the Digiface manual is formulated a bit obscurely. What they wanted to say - since ASIO clients/applications directly talk to the driver, they are in control of the Digiface output samplerate. However since WDM clients/applications talk to the windows mixer instead, the windows mixer is the one in control of the Digiface output samplerate and you can set it via the windows mixer UI - that drop down. Samplerate set in WDM application will just configure what rate the app will talk to the windows mixer, which will resample to the output rate (that drop down) to send samples to the driver.To me this COULD mean, that the device will follow and lock to the input. The Dropdown is only for WDM.... not for ASIO! When using ASIO, RME will follow the settings in the ASIO Software.
In both cases it's the software/driver which sets the output samplerate - but only when the Digiface output clock is set to Internal .You cannot control its input clock as the incoming SPDIF /ADAT is always the clock master. Therefore, if Digiface output clock is set to SPDIF/ADAT input, no software can set the output samplerate physically. However, all audio APIs (wasapi, wdm, asio, alsa, etc.) require that the required rate is specified. Therefore typically the driver will accept only samplerate request which fits the currently running samplerate as detected from the input. That also occurs quite frequently with CDSP - it must know what samplerate to use, and finding out requires some side channels - e.g. reading some device alsa control prior to opening the device.
As I said it's quite complex and you need to understand how your chain works before being able to do informed configuration, instead of random changes (trial/error).
That's the plug plugin in your device name, nicely described e.g. in https://www.volkerschatz.com/noise/alsa.htmlI am not using any plugin. I just installed kernel 6.12 because the RME is only supportet in this kernel (as far as i know)
It's just a report by the rate measuring facility of CDSP. It measures using the computer time/clock, therefore the measured incoming-SPDIF rate inevitably varies a bit. If you had the config stop_on_rate_change set (https://github.com/HEnquist/camilladsp/blob/master/README.md#devices), it would stop the capture https://github.com/HEnquist/camilla...76376103f83d6d9b3/src/alsadevice.rs#L954-L969 .Maybe this is another hint?
View attachment 1462307
Tried: not working... Status is syncSince you have a streamer with independent SPDIF (always clock master), and use Digiface for output too, you need to set digiface clock to that SPDIF input. The status must be Sync (i.e. the output runs at sync with input).
Then no rate adjust and resampling in CDSP will be needed.
using fixed rate: after some time (hours) i am getteing crackling sound and periodic distortions.
using rate of source file: some sampling rates ar running without problems, other start with cracking sound.
Only solution for the moment: using 44.1 kHz.
I am afraid the configuration is not about trying, but about understanding your chain and configuring accordingly - correctly.Tried: not working... Status is sync
using fixed rate: after some time (hours) i am getteing crackling sound and periodic distortions.
using rate of source file: some sampling rates ar running without problems, other start with cracking sound.
Only solution for the moment: using 44.1 kHz.
AHHHHH.... ok... hope, i got it 😉That's the plug plugin in your device name, nicely described e.g. in https://www.volkerschatz.com/noise/alsa.html
I try 😉I am afraid the configuration is not about trying, but about understanding your chain and configuring accordingly - correctly.
But comming from Windows/ ASIO it's not that easy 😉
Actually the issues with clocking would be almost identical, the chain hardware does not change with the OS. The configuration of CDSP in windows would be almost the same as in linux, apart of device names 🙂But comming from Windows/ ASIO it's not that easy 😉
I hope so...... 😉
Digiface on OSX and WINDOWS was more or less plug&play without any issue... but i would like to use Linux 😉
Digiface on OSX and WINDOWS was more or less plug&play without any issue... but i would like to use Linux 😉
OK... will start at the beginning and try to use this device in CDSP
This will end up in this Error:
And here i am stucking...
Any idea how i could move on or why CDSP can not start with the card without plug?
with configured in CDSP with 8 Inputs and 32 outputs, 48kHz, Sampleformat S32LEhw:CARD=USB24129160,DEV=0
This will end up in this Error:
So i tried:025-05-19 20:11:53.963235 ERROR [src/bin.rs:293] Playback error: ALSA function 'snd_pcm_hw_params_set_channels' failed with error 'Invalid argument (22)'
2025-05-19 20:11:53.976728 ERROR [src/processing.rs:132] Message channel error: receiving on a closed channel
2025-05-19 20:11:53.976835 INFO [src/processing.rs:135] Playback thread has already stopped.
And i got:arecord -l
Next i tried this:* List of CAPTURE Hardware Devices **
card 1: USB24129160 [Digiface USB (24129160)], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: CX20632 Analog [CX20632 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
arecord -D hw:1,0 --dump-hw-params
Warning: Some sources (like microphones) may produce inaudible results
with 8-bit sampling. Use '-f' argument to increase resolution
e.g. '-f S16_LE'.
HW Params of device "hw:1,0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD MSBITS_MAX
SAMPLE_BITS: 32
FRAME_BITS: [256 1024]
CHANNELS: [8 32]
RATE: [32000 192000]
PERIOD_TIME: [125 1000000]
PERIOD_SIZE: [4 192000]
PERIOD_BYTES: [128 24576000]
PERIODS: [2 1024]
BUFFER_TIME: (41 2000000]
BUFFER_SIZE: [8 384000]
BUFFER_BYTES: [256 49152000]
TICK_TIME: ALL
--------------------
arecord: set_params:1371: Sample format non available
Available formats:
- S32_LE
And here i am stucking...
Any idea how i could move on or why CDSP can not start with the card without plug?
OK... because of my missing Linux knowledge, i made this wrong...@chriss0212 : You can always check parameters of the actual device stream at /proc/asound/your_card_name/pcmXp/subY/hw_params. If the reported params (samplerate, sample format, channels count) differ from CDSP playback params, than the plug plugin does the conversion automatically.
Now I searched for the Folder and found:
Input:
Output:access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 32
rate: 48000 (48000/1)
period_size: 512
buffer_size: 4096
What tells me: i was using wrong count of input- and output channels...access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 34
rate: 48000 (48000/1)
period_size: 512
buffer_size: 4096
I changed to this device:
set 32 inputs and 34 outputshw:USB24129160,0,0
Also changed input Sampleformat to S32LE and restart CDSP...
For the moment i have Sound!
Lets wait and hope 😉
- Home
- Source & Line
- PC Based
- CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc