CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc.

I have a question about importing FIR filters from e.g. RePhase.

I'm trying to generate a relatively simple lowpass filter for a crossover. The curve looks like you'd expect it to look in RePhase.

There is a ported enclosure phase adjustment but the phase is fine otherwise. This shows the original filter and generated filter.

dyj9Xzb.png


But when I import it into CamillaDSP, no matter what format I use, it shows the filter and impulse looking OK but the phase looks worse than the actual speaker measurement.

rgbFgWi.png


Settings for this particular export are:

7OmGBz4.png


Note that biquad frequency reponse plots look exactly as I'd expect.

Is this normal or am I missing something to get the proper results?
 
Tried a few other things with the shairport-sync camilladsp using pipes. I just noticed that camilla does not respond to stop() or set_config() via web socket when airplay connection to shairport is stopped (no airplay active session). stop() and set_config() seem to work when airplay session is active.

The current implementation of the file backend wasn't designed to handle a stream that stops providing data. The main cases I had in mind were reading from a file on disk, and receiving on stdin. And for stdin I assumed the pipe would be closed when there is no data. Now if piping from an app that keeps the pipe open but doesn't send any data, then the capture thread gets stalled and that's why it can't react to any websocket commands. I plan to look into this after version 1.0 is finalized.
 
I have a question about importing FIR filters from e.g. RePhase.

...

Is this normal or am I missing something to get the proper results?

mdsimon2 is right. The phase includes the delay of the FIR filter, which means at wraps around a lot. Just ignore it! I tried making it smart to plot it nicely, but that turned out to be really (really!) challenging. I could never get it reliable.
 
Ok phew.

I did load the impulse response into REW and it looked good.

Maybe the right course while it isn't showing properly is tonight it and add a user-friendly notice that it is omitted deliberately?

Thanks guys.
Yeah REW is dong some clever stuff to get the phase right. I think I just need to spend more time on it. When I do that I will also finish the group delay plot (which also relies on a well-behaved phase). That one is nearly finished.
 
Something like this?

filtereval.png
For now it just looks for the largest peak in the impulse response and uses that position as delay zero. I also added a group delay plot, which seems to work fine for all filters. Both phase and groupdelay become quite strange in the stopband of brickwall filters, but that's kindof expected as it mainly depends on numerical noise there.


It can be argued if it's really correct to remove the delay of the FIR filters for the phase plot. But when not removing it, then even if the plot is techically correct, it's still completely useless to look at...
 
I'm trying to test another interface with Camilla. I took the config I've been using daily with my MOTU UltraLite-mk5, and made some very basic adjustments to the device and channel numbers, but I've ended up with someting that crashes every minute. This is the log of a crash:

Code:
ubuntu@ubuntu:/usr/local/etc/camilladsp/logs$ cat log2021-11-16T2137.txt
Nov 16 21:37:27.059 DEBG Read config file Some("/usr/local/etc/camilladsp/configRME192.yml"), module: camilladsp
Nov 16 21:37:27.079 DEBG Read raw data from: '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, number of coeffs: 262144, module: camillalib::filters
Nov 16 21:37:27.082 DEBG Read wav file '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, channel: 0 of 2, samplerate: 192000, length: 131072, module: camillalib::filters
Nov 16 21:37:27.099 DEBG Read raw data from: '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, number of coeffs: 262144, module: camillalib::filters
Nov 16 21:37:27.102 DEBG Read wav file '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, channel: 1 of 2, samplerate: 192000, length: 131072, module: camillalib::filters
Nov 16 21:37:27.102 DEBG Config is valid, module: camilladsp
Nov 16 21:37:27.102 DEBG Start websocket server on 0.0.0.0:5000, module: camillalib::socketserver
Nov 16 21:37:27.103 DEBG Wait for config, module: camilladsp
Nov 16 21:37:27.103 DEBG Config ready, module: camilladsp
Nov 16 21:37:27.103 DEBG Build new pipeline, module: camillalib::filters
Nov 16 21:37:27.103 DEBG Using channels [true, true], module: camilladsp
Nov 16 21:37:27.103 DEBG Buffer frames 16384, module: camillalib::alsadevice
Nov 16 21:37:27.103 DEBG Build from config, module: camillalib::filters
Nov 16 21:37:27.107 DEBG Capture: supported channels, min: 2, max: 2, list: [2], module: camillalib::alsadevice
Nov 16 21:37:27.107 DEBG Capture: setting channels to 2, module: camillalib::alsadevice
Nov 16 21:37:27.107 DEBG Capture: supported samplerates: Discrete([192000]), module: camillalib::alsadevice
Nov 16 21:37:27.107 DEBG Capture: setting rate to 192000, module: camillalib::alsadevice
Nov 16 21:37:27.107 DEBG Capture: supported sample formats: [S32LE], module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Capture: setting format to S32LE, module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: supported channels, min: 8, max: 20, list: [8, 14, 16, 20], module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: setting channels to 20, module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: supported samplerates: Discrete([44100, 48000, 88200, 96000, 176400, 192000]), module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: setting rate to 192000, module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: supported sample formats: [S24LE3], module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Playback: setting format to S24LE3, module: camillalib::alsadevice
Nov 16 21:37:27.108 DEBG Opening audio device "hw:CARD=Loopback,DEV=0" with parameters: HwParams { channels: Ok(2), rate: "Ok(192000) Hz", format: Ok(S32LE), access: Ok(RWInterleaved), period_size: "Ok(4096) frames", buffer_size: "Ok(32768) frames" }, SwParams(avail_min: Ok(4096) frames, start_threshold: Ok(0) frames, stop_threshold: Ok(32768) frames), module: camillalib::alsadevice
Nov 16 21:37:27.109 DEBG Audio device "hw:CARD=Loopback,DEV=0" successfully opened, module: camillalib::alsadevice
Nov 16 21:37:27.109 DEBG Capture thread ready to start, module: camilladsp
Nov 16 21:37:27.120 DEBG Read raw data from: '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, number of coeffs: 262144, module: camillalib::filters
Nov 16 21:37:27.124 DEBG Read wav file '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, channel: 0 of 2, samplerate: 192000, length: 131072, module: camillalib::filters
Nov 16 21:37:27.139 DEBG Conv conv-l is using 16 segments, module: camillalib::fftconv
Nov 16 21:37:27.147 DEBG a1=-1.838334102564905 a2=0.8504587169940455 b0=1 b1=-1.838334102564905 b2=0.8504587169940455, module: camillalib::biquad
Nov 16 21:37:27.147 DEBG a1=-1.9967604006840272 a2=0.996765639706586 b0=1 b1=-1.9967604006840272 b2=0.996765639706586, module: camillalib::biquad
Nov 16 21:37:27.148 DEBG Build from config, module: camillalib::filters
Nov 16 21:37:27.161 DEBG Read raw data from: '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, number of coeffs: 262144, module: camillalib::filters
Nov 16 21:37:27.162 DEBG Read wav file '/usr/local/etc/camilladsp/conv192.wav', format: FLOAT64LE, channel: 1 of 2, samplerate: 192000, length: 131072, module: camillalib::filters
Nov 16 21:37:27.177 DEBG Conv conv-r is using 16 segments, module: camillalib::fftconv
Nov 16 21:37:27.185 DEBG a1=-1.838334102564905 a2=0.8504587169940455 b0=1 b1=-1.838334102564905 b2=0.8504587169940455, module: camillalib::biquad
Nov 16 21:37:27.186 DEBG a1=-1.9967604006840272 a2=0.996765639706586 b0=1 b1=-1.9967604006840272 b2=0.996765639706586, module: camillalib::biquad
Nov 16 21:37:27.186 DEBG build filters, waiting to start processing loop, module: camillalib::processing
Nov 16 21:37:27.188 DEBG Opening audio device "hw:CARD=II24066911,DEV=0" with parameters: HwParams { channels: Ok(20), rate: "Ok(192000) Hz", format: Ok(S243LE), access: Ok(RWInterleaved), period_size: "Ok(2048) frames", buffer_size: "Ok(16384) frames" }, SwParams(avail_min: Ok(2048) frames, start_threshold: Ok(6144) frames, stop_threshold: Ok(16384) frames), module: camillalib::alsadevice
Nov 16 21:37:27.189 DEBG Audio device "hw:CARD=II24066911,DEV=0" successfully opened, module: camillalib::alsadevice
Nov 16 21:37:27.189 DEBG Playback thread ready to start, module: camilladsp
Nov 16 21:37:27.189 DEBG Both capture and playback ready, release barrier, module: camilladsp
Nov 16 21:37:27.189 DEBG Supervisor loop starts now!, module: camilladsp
Nov 16 21:37:27.189 DEBG Starting playback loop, module: camillalib::alsadevice
Nov 16 21:37:27.189 DEBG Starting captureloop, module: camillalib::alsadevice
Nov 16 21:37:27.189 DEBG Processing loop starts now!, module: camillalib::processing
Nov 16 21:37:27.190 INFO Capture device supports rate adjust, module: camillalib::alsadevice
Nov 16 21:37:27.190 DEBG Starting capture, module: camillalib::alsadevice
Nov 16 21:37:27.260 INFO Starting playback from Prepared state, module: camillalib::alsadevice
Nov 16 21:37:28.563 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:28.957 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:29.351 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:29.745 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:30.139 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:30.533 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:30.927 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:31.321 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:31.714 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:32.108 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:32.424 WARN sample rate change detected, last rate was 108616.07786784055 Hz, module: camillalib::alsadevice
Nov 16 21:37:32.502 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:32.896 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:33.290 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:33.448 WARN sample rate change detected, last rate was 103981.84866854179 Hz, module: camillalib::alsadevice
Nov 16 21:37:33.684 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:34.078 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:34.472 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:34.520 WARN sample rate change detected, last rate was 99353.54971394426 Hz, module: camillalib::alsadevice
Nov 16 21:37:34.866 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:35.260 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:35.575 WARN sample rate change detected, last rate was 108698.61109147898 Hz, module: camillalib::alsadevice
Nov 16 21:37:35.653 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:36.047 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:36.441 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:36.599 WARN sample rate change detected, last rate was 103984.5862144952 Hz, module: camillalib::alsadevice
Nov 16 21:37:36.835 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:37.229 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:37.242 DEBG Current buffer level: 14909.100775193798, corrected capture rate: 99.825078125%, module: camillalib::audiodevice
Nov 16 21:37:37.242 DEBG Playback buffer level: 14909.100775193798, signal rms: [-1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -51.264782, -52.044754, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0], module: camillalib::alsadevice
Nov 16 21:37:37.242 DEBG SetSpeed message received, module: camilladsp
Nov 16 21:37:37.623 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:37.668 WARN sample rate change detected, last rate was 99640.66253364692 Hz, module: camillalib::alsadevice
Nov 16 21:37:38.017 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:38.411 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:38.726 WARN sample rate change detected, last rate was 108375.97953043395 Hz, module: camillalib::alsadevice
Nov 16 21:37:38.805 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:39.199 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:39.592 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:39.750 WARN sample rate change detected, last rate was 103987.11697108649 Hz, module: camillalib::alsadevice
Nov 16 21:37:39.986 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:40.380 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:40.774 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:40.820 WARN sample rate change detected, last rate was 99562.8868038393 Hz, module: camillalib::alsadevice
Nov 16 21:37:41.168 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:41.562 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:41.877 WARN sample rate change detected, last rate was 108462.13689675787 Hz, module: camillalib::alsadevice
Nov 16 21:37:41.956 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:42.350 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:42.744 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:42.901 WARN sample rate change detected, last rate was 103983.33961466742 Hz, module: camillalib::alsadevice
Nov 16 21:37:43.137 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:43.531 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:43.925 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:43.972 WARN sample rate change detected, last rate was 99492.76942632339 Hz, module: camillalib::alsadevice
Nov 16 21:37:44.319 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:44.713 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:45.028 WARN sample rate change detected, last rate was 108538.88921769423 Hz, module: camillalib::alsadevice
Nov 16 21:37:45.107 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:45.501 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:45.895 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:46.053 WARN sample rate change detected, last rate was 103984.55981607863 Hz, module: camillalib::alsadevice
Nov 16 21:37:46.289 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:46.683 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:47.077 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:47.124 WARN sample rate change detected, last rate was 99413.94241260685 Hz, module: camillalib::alsadevice
Nov 16 21:37:47.246 DEBG Current buffer level: 15116.48031496063, corrected capture rate: 99.8196875%, module: camillalib::audiodevice
Nov 16 21:37:47.247 DEBG Playback buffer level: 15116.48031496063, signal rms: [-1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -55.98024, -56.549973, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0], module: camillalib::alsadevice
Nov 16 21:37:47.247 DEBG SetSpeed message received, module: camilladsp
Nov 16 21:37:47.470 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:47.864 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:48.180 WARN sample rate change detected, last rate was 108628.97350147512 Hz, module: camillalib::alsadevice
Nov 16 21:37:48.258 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:48.652 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:49.046 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:49.204 WARN sample rate change detected, last rate was 103980.55319950747 Hz, module: camillalib::alsadevice
Nov 16 21:37:49.440 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:49.834 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:50.228 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:50.276 WARN sample rate change detected, last rate was 99343.91606551039 Hz, module: camillalib::alsadevice
Nov 16 21:37:50.622 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:51.015 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:51.331 WARN sample rate change detected, last rate was 108710.12759645536 Hz, module: camillalib::alsadevice
Nov 16 21:37:51.409 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:51.803 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:52.197 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:52.355 WARN sample rate change detected, last rate was 103990.48842467154 Hz, module: camillalib::alsadevice
Nov 16 21:37:52.591 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:52.985 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:53.379 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:53.424 WARN sample rate change detected, last rate was 99627.59350364588 Hz, module: camillalib::alsadevice
Nov 16 21:37:53.773 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:54.167 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:54.482 WARN sample rate change detected, last rate was 108382.2267780743 Hz, module: camillalib::alsadevice
Nov 16 21:37:54.561 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:54.954 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:55.348 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:55.506 WARN sample rate change detected, last rate was 103990.47339617302 Hz, module: camillalib::alsadevice
Nov 16 21:37:55.742 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:56.136 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:56.530 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:56.576 WARN sample rate change detected, last rate was 99555.52705034055 Hz, module: camillalib::alsadevice
Nov 16 21:37:56.924 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:57.251 DEBG Current buffer level: 15112.629921259842, corrected capture rate: 99.81979166666667%, module: camillalib::audiodevice
Nov 16 21:37:57.252 DEBG Playback buffer level: 15112.629921259842, signal rms: [-1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -50.5444, -49.997208, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0], module: camillalib::alsadevice
Nov 16 21:37:57.252 DEBG SetSpeed message received, module: camilladsp
Nov 16 21:37:57.318 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:57.633 WARN sample rate change detected, last rate was 108462.4197972666 Hz, module: camillalib::alsadevice
Nov 16 21:37:57.712 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:58.106 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:58.500 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:58.657 WARN sample rate change detected, last rate was 103987.53997736314 Hz, module: camillalib::alsadevice
Nov 16 21:37:58.893 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:59.287 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:59.681 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:37:59.728 WARN sample rate change detected, last rate was 99484.5594519432 Hz, module: camillalib::alsadevice
Nov 16 21:38:00.075 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:00.469 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:00.784 WARN sample rate change detected, last rate was 108541.70431775649 Hz, module: camillalib::alsadevice
Nov 16 21:38:00.863 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:01.257 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:01.651 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:01.809 WARN sample rate change detected, last rate was 103986.16730102418 Hz, module: camillalib::alsadevice
Nov 16 21:38:02.045 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:02.439 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:02.832 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:02.880 WARN sample rate change detected, last rate was 99412.64820095769 Hz, module: camillalib::alsadevice
Nov 16 21:38:03.226 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:03.620 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:03.935 WARN sample rate change detected, last rate was 108638.60970057512 Hz, module: camillalib::alsadevice
Nov 16 21:38:04.014 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:04.408 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:04.802 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:04.960 WARN sample rate change detected, last rate was 103982.92202360749 Hz, module: camillalib::alsadevice
Nov 16 21:38:05.196 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:05.590 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:05.984 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:06.032 WARN sample rate change detected, last rate was 99330.13558931928 Hz, module: camillalib::alsadevice
Nov 16 21:38:06.377 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:06.771 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:07.087 WARN sample rate change detected, last rate was 108715.70533651546 Hz, module: camillalib::alsadevice
Nov 16 21:38:07.165 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:07.255 DEBG Current buffer level: 15103.866141732284, corrected capture rate: 99.82002604166667%, module: camillalib::audiodevice
Nov 16 21:38:07.255 DEBG Playback buffer level: 15103.866141732284, signal rms: [-1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -60.65212, -60.93553, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0], module: camillalib::alsadevice
Nov 16 21:38:07.256 DEBG SetSpeed message received, module: camilladsp
Nov 16 21:38:07.559 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:07.953 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:08.111 WARN sample rate change detected, last rate was 103987.44767925265 Hz, module: camillalib::alsadevice
Nov 16 21:38:08.347 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:08.741 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:09.135 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:09.180 WARN sample rate change detected, last rate was 99629.77327028643 Hz, module: camillalib::alsadevice
Nov 16 21:38:09.529 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:09.923 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:10.238 WARN sample rate change detected, last rate was 108389.82157766876 Hz, module: camillalib::alsadevice
Nov 16 21:38:10.316 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:10.710 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:11.104 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:11.262 WARN sample rate change detected, last rate was 103995.0578989233 Hz, module: camillalib::alsadevice
Nov 16 21:38:11.498 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:11.892 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:12.286 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:12.332 WARN sample rate change detected, last rate was 99543.38333268101 Hz, module: camillalib::alsadevice
Nov 16 21:38:12.680 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:13.074 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:13.389 WARN sample rate change detected, last rate was 108474.89329923985 Hz, module: camillalib::alsadevice
Nov 16 21:38:13.468 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:13.862 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:14.255 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:14.413 WARN sample rate change detected, last rate was 103987.2896863877 Hz, module: camillalib::alsadevice
Nov 16 21:38:14.649 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:15.043 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:15.437 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:15.484 WARN sample rate change detected, last rate was 99462.83995693279 Hz, module: camillalib::alsadevice
Nov 16 21:38:15.831 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:16.225 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:16.540 WARN sample rate change detected, last rate was 108559.66666616531 Hz, module: camillalib::alsadevice
Nov 16 21:38:16.619 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:17.013 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:17.262 DEBG Current buffer level: 15100.015748031496, corrected capture rate: 99.82010416666667%, module: camillalib::audiodevice
Nov 16 21:38:17.262 DEBG Playback buffer level: 15100.015748031496, signal rms: [-1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -51.486317, -52.628323, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0, -1000.0], module: camillalib::alsadevice
Nov 16 21:38:17.262 DEBG SetSpeed message received, module: camilladsp
Nov 16 21:38:17.407 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:17.564 WARN sample rate change detected, last rate was 103990.18724626655 Hz, module: camillalib::alsadevice
Nov 16 21:38:17.801 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:18.194 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:18.588 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:18.636 WARN sample rate change detected, last rate was 99406.19203033276 Hz, module: camillalib::alsadevice
Nov 16 21:38:18.982 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:19.376 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:19.691 WARN sample rate change detected, last rate was 108636.28083268208 Hz, module: camillalib::alsadevice
Nov 16 21:38:19.770 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:20.164 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:20.558 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:20.716 WARN sample rate change detected, last rate was 103987.90450065501 Hz, module: camillalib::alsadevice
Nov 16 21:38:20.952 WARN Prepare capture device, module: camillalib::alsadevice
Nov 16 21:38:21.346 WARN Capture failed, error: ALSA function 'snd_pcm_readi' failed with error 'EPIPE: Broken pipe', module: camillalib::alsadevice
Nov 16 21:38:21.346 ERRO Capture error: ALSA function 'snd_pcm_readi' failed with error 'EPIPE: Broken pipe', module: camilladsp
Nov 16 21:38:21.346 DEBG Wait for playback thread to exit.., module: camilladsp
Nov 16 21:38:22.145 DEBG Restarting with new config, module: camilladsp
Nov 16 21:38:22.145 DEBG Wait for config, module: camilladsp
Nov 16 21:38:22.146 DEBG No config and not in wait mode, exiting!, module: camilladsp

What I don't understand is that the warning seem to relate to the playback side. Here's my config:

Code:
devices:
  samplerate: 192000
  chunksize: 8192
  enable_rate_adjust: true
  silence_threshold: -75
  silence_timeout: 60.0
  capture:
    type: Alsa
    channels: 2
    device: "hw:CARD=Loopback,DEV=0"
    format: S32LE
  playback:
    type: Alsa
    channels: 20
    device: "hw:CARD=II24066911,DEV=0"
    format: S24LE3
mixers:
  to20chan:
    channels:
      in: 2
      out: 20
    mapping:
      - dest: 8
        sources:
          - channel: 0
            gain: 0
            inverted: false
      - dest: 9
        sources:
          - channel: 1
            gain: 0
            inverted: false
filters:
  vol:
    type: Loudness
    parameters:
      ramp_time: 200.0
      reference_level: -30.0 
      high_boost: 10.0
      low_boost: 15.0
  gain-pre:
    type: Gain
    parameters:
      gain: -30.0 
      inverted: false
  gain-post:
    type: Gain
    parameters:
      gain: 27.0
      inverted: false
  conv-l:
    type: Conv
    parameters:
      type: Wav 
      filename: /usr/local/etc/camilladsp/conv192.wav
      channel: 0
  conv-r:
    type: Conv
    parameters:
      type: Wav
      filename: /usr/local/etc/camilladsp/conv192.wav
      channel: 1
pipeline:
  - type: Mixer
    name: to20chan
  - type: Filter
    channel: 8
    names:
      - gain-pre
      - conv-l
      - gain-post
      - vol
  - type: Filter
    channel: 9
    names:
      - gain-pre
      - conv-r
      - gain-post  
      - vol

Can you point me in the right direction please? Many thanks.
 
Here's the top report with the test device that's crashing. Usage seems much the same as with the UltraLite-mk5:
Code:
top - 22:52:07 up 5 min,  1 user,  load average: 0.40, 0.51, 0.27
Tasks: 162 total,   1 running, 161 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8.8 us,  0.9 sy,  0.0 ni, 89.4 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
MiB Mem :   7809.2 total,   7211.0 free,    315.9 used,    282.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   7234.5 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                
   2361 root     -11   0  416568  27696   5300 S  36.8   0.3   0:57.45 camilladsp                                                                                                             
   2149 root      20   0 1273428  54944  22168 S   2.6   0.7   0:07.46 mono-sgen                                                                                                              
   2372 ubuntu    20   0   11872   3404   2680 R   1.0   0.0   0:02.54 top                                                                                                                    
     21 root      20   0       0      0      0 S   0.7   0.0   0:00.41 ksoftirqd/1                                                                                                            
     16 root      20   0       0      0      0 I   0.3   0.0   0:00.37 kworker/0:1-events                                                                                                     
    454 root      20   0       0      0      0 I   0.3   0.0   0:00.56 kworker/2:3-events                                                                                                     
   2123 root      20   0 1366180  48480  20444 S   0.3   0.6   0:06.09 mono-sgen                                                                                                              
      1 root      20   0  165292  10508   6936 S   0.0   0.1   0:03.39 systemd                                                                                                                
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd                                                                                                               
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                                                                 
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                                                             
      5 root      20   0       0      0      0 I   0.0   0.0   0:00.01 kworker/0:0-cgroup_destroy                                                                                             
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-mmc_complete                                                                                              
      7 root      20   0       0      0      0 I   0.0   0.0   0:00.08 kworker/u8:0-events_power_efficient                                                                                    
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                                                           
      9 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_tasks_kthre                                                                                                        
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_tasks_rude_                                                                                                        
     11 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_tasks_trace                                                                                                        
     12 root      20   0       0      0      0 S   0.0   0.0   0:00.22 ksoftirqd/0                                                                                                            
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.21 rcu_preempt                                                                                                            
     14 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                                                                                                            
     15 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0                                                                                                          
     17 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                                                                                                
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1                                                                                                                
     19 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/1                                                                                                          
     20 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/1                                                                                                            
     22 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0-events                                                                                                     
     23 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-events_highpri                                                                                            
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2                                                                                                                
     25 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/2                                                                                                          
     26 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/2                                                                                                            
     27 root      20   0       0      0      0 S   0.0   0.0   0:00.10 ksoftirqd/2                                                                                                            
     28 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0-mm_percpu_wq                                                                                               
     29 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0H-kblockd                                                                                                   
     30 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/3                                                                                                                
     31 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/3                                                                                                          
     32 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/3                                                                                                            
     33 root      20   0       0      0      0 S   0.0   0.0   0:00.12 ksoftirqd/3                                                                                                            
     34 root      20   0       0      0      0 I   0.0   0.0   0:00.12 kworker/3:0-events_freezable                                                                                           
     35 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/3:0H-kblockd                                                                                                   
     36 root      20   0       0      0      0 S   0.0   0.0   0:00.05 kdevtmpfs                                                                                                              
     37 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                                                                                                  
     38 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 inet_frag_wq                                                                                                           
     39 root      20   0       0      0      0 I   0.0   0.0   0:00.03 kworker/2:1-mm_percpu_wq
 
Sorted. I changed the interface's Class Compliant mode from 192/24/20 to 192/24/8 and this now works just fine. Sorry for the false alarm.

johnanon: Does your Motu soundcard really allow opening 192/24/20? That's way above the isochronous bandwidth for bInterval=1.

You're right that the MOTU doesn't operate at 192/24/20. If you want to operate it at 192/24, then you're limited to 10 channels, which is what I've been doing.

However, I'm testing an RME UCX II which does offer 192/24/20 according to the manual and confirmed by
Code:
cat /proc/asound/[DeviceName]/stream0
However, it's clear from my test that this doesn't work in practice with the ALSA loop and CamillaDSP as set out in my config file. Maybe this is to do with "the isochronous bandwidth for bInterval=1" but could you please explain what that means please? Thanks
 
Now this is interesting. The basic USB isochronous transfer can send 1 packet every 125us microframe (bInterval=1) with maximum size 1024 bytes. That limits the number of channels at 192/24 to 14 (192000*3*14/8000 microframes = 1008 bytes per microframe).

The UCX II card claims to pass 20 channels. The isochronous transfer defines so called high-speed mode where up to 3 packets can be sent in each microframe, nicely explained in How to transfer data to USB isochronous endpoints - Windows drivers | Microsoft Docs . I have never seen an audio device using multiple packets per microframe. Also I do not know support status of the high-speed mode in stock UAC2 drivers (linux, win, OSX), although linux devels say it should work, the support should be in lower-layer usb-core driver and the snd-usb-audio driver should not care about this.

I wonder if UCX II is this kind of device. Please can you try playback of some generated stream 192/24/20 e.g. in sox directly to hw:X, and post the stream0 file? I wonder what the packet size will be. Also lsusb -v dump for the soundcard? Thanks a lot.
 
Last edited:
Now this is interesting ... lsusb -v dump for the soundcard? Thanks a lot.

Thanks for the reply. Now I've had a few moments to do the above. The soundcard is set to 8 channels at the moment, if that's relevant.

Code:
Bus 001 Device 004: ID 2a39:3fd9 RME Fireface UCX II (24066911)
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x2a39 RME
  idProduct          0x3fd9 
  bcdDevice            3.01
  iManufacturer           1 RME
  iProduct                2 Fireface UCX II (24066911)
  iSerial                 3 39FD19CE0FE13C8
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x026d
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength       0x004b
        bmControls           0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID                1
        bmAttributes            3 Internal programmable clock 
        bmControls           0x03
          Clock Frequency Control (read/write)
        bAssocTerminal          0
        iClockSource            0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID              1
        bNrChannels            20
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             5
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bCSourceID              1
        bNrChannels            20
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               3
        bCSourceID              1
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             6
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               5
        bCSourceID              1
        bmControls         0x0000
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x030c  1x 780 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            16
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0270  1x 624 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            14
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0a4c  2x 588 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             8
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0258  1x 600 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           6
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            20
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x030c  1x 780 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           6
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            16
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0270  1x 624 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           6
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            14
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0a4c  2x 588 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           6
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             8
        bmChannelConfig    0x00000000
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0258  1x 600 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              2 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0061
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 7
        bNrInputPins            1
        baSourceID( 0)          6
        BaSourcePin( 0)         1
        iJack                   5 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 6
        iJack                   5 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 5
        iJack                   5 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 8
        bNrInputPins            1
        baSourceID( 0)          5
        BaSourcePin( 0)         1
        iJack                   5 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       1
          baAssocJackID( 1)       5
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       3
          baAssocJackID( 1)       7
 
... post the stream0 file?
And here's one of the other things you asked for. Are these helpful?

Code:
ubuntu@ubuntu:/usr/local/etc/camilladsp/logs$ sudo cat /proc/asound/II24066911/stream0
RME Fireface UCX II (24066911) at usb-0000:01:00.0-1.3, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S24_3LE
    Channels: 20
    Endpoint: 0x02 (2 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Sync Endpoint: 0x82 (2 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S24_3LE
    Channels: 16
    Endpoint: 0x02 (2 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Sync Endpoint: 0x82 (2 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No
  Interface 1
    Altset 3
    Format: S24_3LE
    Channels: 14
    Endpoint: 0x02 (2 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR -- -- -- -- -- -- -- -- -- -- -- --
    Sync Endpoint: 0x82 (2 IN)
    Sync EP Interface: 1
    Sync EP Altset: 3
    Implicit Feedback Mode: No
  Interface 1
    Altset 4
    Format: S24_3LE
    Channels: 8
    Endpoint: 0x02 (2 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR -- -- -- -- -- --
    Sync Endpoint: 0x82 (2 IN)
    Sync EP Interface: 1
    Sync EP Altset: 4
    Implicit Feedback Mode: No

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: S24_3LE
    Channels: 20
    Endpoint: 0x81 (1 IN) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 2
    Altset 2
    Format: S24_3LE
    Channels: 16
    Endpoint: 0x81 (1 IN) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
  Interface 2
    Altset 3
    Format: S24_3LE
    Channels: 14
    Endpoint: 0x81 (1 IN) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR FC LFE RL RR FLC FRC RC SL SR TC TFL TFC
  Interface 2
    Altset 4
    Format: S24_3LE
    Channels: 8
    Endpoint: 0x81 (1 IN) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR FC LFE RL RR FLC FRC
 
The above lsusb lists 20 channels/24bits altsetting, with 760bytes maxpacketsize. That means max. samplerate 760*8000/20/3=104kHz. Which is the value logged by camillaDSP. It looks as if the soundcard did not adjust its channels count for the samplerates and indeed allowed 192kHz/20ch/24bits, with many samples being lost due to the insufficient bandwidth. That would hint at a buggy firmware.

I am really interested in the stream0 for 20 channels playing, and whether the produced sound is OK. If testing with a tone, please use some non-rounded frequency so that the dropped samples (if any) do not amount to full periods of the sine signal (e.g. 8kHz signal would not exhibit any problem if any number of microframes were lost as there is exactly one period of the sine signal per microframe. Thanks.