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

As a prof of concept I have used

2 x AUDIOPHONICS U-Sabre LTE Asynchronous USB DAC 24bit/96kHz
+ MacBook built in headphone output

Mapped like this
Dac 0 -> MacBook integrated to Headphone output -> Sub L + R (Master Sync)
Dac 1 -> Midrange + Tweeter L
Dac 2 -> Midrange + Tweeter R

No measurements done yet - only listened for 2 days and it sounds really good - have not noticed any sync issues.

Next step is buying 3 x Topping D10S DAC's and then I will measure :)
 

TNT

Member
Joined 2003
Paid Member
As a prof of concept I have used

2 x AUDIOPHONICS U-Sabre LTE Asynchronous USB DAC 24bit/96kHz
+ MacBook built in headphone output

Mapped like this
Dac 0 -> MacBook integrated to Headphone output -> Sub L + R (Master Sync)
Dac 1 -> Midrange + Tweeter L
Dac 2 -> Midrange + Tweeter R

No measurements done yet - only listened for 2 days and it sounds really good - have not noticed any sync issues.

Next step is buying 3 x Topping D10S DAC's and then I will measure :)

How did you make 3 instances of the digital out for your 3 DACs from one Macbook output?

Edit: Aha its USB only.... yes - is synchronicity really maintain that is what one wonders...


//
 
Well - I will try to measure over the weekend :)

Attached screenshot shows the "Audio MIDI Setup" application with the "Aggregate Device" and as you can see the "Built-in Output" is defined as "Clock Source" and the two USB DAC's will be drift corrected.
 

Attachments

  • Screenshot 2021-03-18 at 21.37.58.png
    Screenshot 2021-03-18 at 21.37.58.png
    373.1 KB · Views: 171
As a prof of concept I have used

2 x AUDIOPHONICS U-Sabre LTE Asynchronous USB DAC 24bit/96kHz
+ MacBook built in headphone output

Mapped like this
Dac 0 -> MacBook integrated to Headphone output -> Sub L + R (Master Sync)
Dac 1 -> Midrange + Tweeter L
Dac 2 -> Midrange + Tweeter R

No measurements done yet - only listened for 2 days and it sounds really good - have not noticed any sync issues.

Next step is buying 3 x Topping D10S DAC's and then I will measure :)
Alright! As I understand it, the aggregate device sends the signal straight to the clock master device, and uses asynchronous resampling to sync the others to the master. In this case the two USB dacs lock to the USB clock, so they will be nicely synced with each other. They will probably drift a little back and forth compared to the headphone output, would be really nice with a measurement of that!
It's a smart move to put the tweeter and midrange of each speaker on the same dac. That means the most critical part gets the best sync. You can live with much larger drifts between the left and right speakers, and to the woofers.
 
No mute function in Webinterface

Hi Henrik,

I think, you implemented a mute function for single Channels, right?

I don't have if I setup a mixer (in section "Mixer" in config.yml, there's the mute statement, but not in the webinterface):

Versions
CamillaDSP: 0.5.0
pyCamillaDSP: 0.5.0
Backend: 0.6.0

Thanks a lot for your nice gift to the community...
 

Attachments

  • mixer.jpg
    mixer.jpg
    96.8 KB · Views: 353
Last edited:
Alright! As I understand it, the aggregate device sends the signal straight to the clock master device, and uses asynchronous resampling to sync the others to the master. In this case the two USB dacs lock to the USB clock, so they will be nicely synced with each other. They will probably drift a little back and forth compared to the headphone output, would be really nice with a measurement of that!
It's a smart move to put the tweeter and midrange of each speaker on the same dac. That means the most critical part gets the best sync. You can live with much larger drifts between the left and right speakers, and to the woofers.

Well tough luck. Prof of concept meets full on reality of a controlled listening environment.

It turns out that the "Aggregate Device" is not capable of keeping USB DAC's in reasonable sync - resulting in a very unstable stereo image.

So I must say that this will probably only work if I get a 4 (or more) channel USB DAC - where the individual channels are all synced to the same internal clock and only takes input from one USB interface / stream.

An Okto Research dac8 Pro will probably work wonders - Okto Research - but that will have to wait :)

So for now it CamillaDSP will act as a two way filter between Subwoofers and MiniDSP 2x4 HD (for mids and tweeters)

Mac Internal Audio Out -> Subs
MiniDSP 2x4 HD -> 2x Hypex -> 2x 2 way speaker
 
Camilla stopped working after windows stop & start

Hej,
I'm getting this error message when I'm starting Camilla was working fine and then it suddenly (after a windows stop & start) ceased working.
Any hints on what might cause this would be appreciated.

Print from command window:

(base) C:\Users\46702\camilladsp>camilladsp -p1234 thomas24filtrerad12.yml
Mar 19 22:48:40.929 ERRO Capture error: A backend-specific error has occurred: Åtkomst nekad. (os error -2147024891), module: camilladsp
Mar 19 22:48:40.969 WARN No data to play, dropping a callback, module: camillalib::cpaldevice
Mar 19 22:48:40.986 WARN No data to play, dropping a callback, module: camillalib::cpaldevice

Configuration:

devices:
capture:
channels: 2
device: "CABLE Output (VB-Audio Virtual Cable)"
format: FLOAT32LE
type: Wasapi
capture_samplerate: 44100
chunksize: 1024
enable_rate_adjust: false
enable_resampling: false
playback:
channels: 8
device: "Högtalare (RME Digiface USB)"
format: FLOAT32LE
type: Wasapi
queuelimit: 100
resampler_type: BalancedAsync
samplerate: 44100
silence_threshold: -90
silence_timeout: 10
target_level: 0
filters:
HP500:
type: Biquad
parameters:
freq: 636
q: 0.577
type: Highpass
LP500:
type: BiquadCombo
parameters:
freq: 500
order: 4
type: ButterworthLowpass

Basarna:
type: Biquad
parameters:
type: Lowshelf
freq: 60
slope: 6
gain: 15
peak_225:
type: Biquad
parameters:
type: Peaking
freq: 175
q: 0.4
gain: -18
peak_250:
type: Biquad
parameters:
type: Peaking
freq: 250
q: 0.8
gain: -1
peak_600:
type: Biquad
parameters:
type: Peaking
freq: 600
q: 3
gain: -6
peak_70:
type: Biquad
parameters:
type: Peaking
freq: 70
q: 0.6
gain: 9
delayems:
type: Delay
parameters:
delay: 1.5
unit: ms
mixers:
Holl egg 90 subs soffa:
channels:
in: 2
out: 8
mapping:
- dest: 0
sources:
- channel: 0
gain: 0
inverted: false
- dest: 1
sources:
- channel: 1
gain: 0
inverted: false
- dest: 2
sources:
- channel: 0
gain: 0
inverted: false
- dest: 3
sources:
- channel: 1
gain: 0
inverted: false
- dest: 4
sources:
- channel: 0
gain: 0
inverted: false
- dest: 5
sources:
- channel: 1
gain: 0
inverted: false

pipeline:
- name: Holl egg 90 subs soffa
type: Mixer
- channel: 0
names:
- HP500
- delayems
type: Filter
- channel: 1
names:
- HP500
- delayems
type: Filter
- channel: 2
names:
- LP500
- Basarna
- peak_225
- peak_250
- peak_70
- peak_600
type: Filter
- channel: 3
names:
- LP500
- Basarna
- peak_225
- peak_250
- peak_70
- peak_600
type: Filter
 
It turns out that the "Aggregate Device" is not capable of keeping USB DAC's in reasonable sync - resulting in a very unstable stereo image.

...

An Okto Research dac8 Pro will probably work wonders - Okto Research - but that will have to wait :)
Ok that's a pity, would have been so convenient if it had worked well enough. An Okto dac8 will definitely work. It's not very cheap, but considering you get 8 channels of very high quality, it's still very good value IMO.

Hej,
I'm getting this error message when I'm starting Camilla was working fine and then it suddenly (after a windows stop & start) ceased working.
Any hints on what might cause this would be appreciated.

Print from command window:

(base) C:\Users\46702\camilladsp>camilladsp -p1234 thomas24filtrerad12.yml
Mar 19 22:48:40.929 ERRO Capture error: A backend-specific error has occurred: Åtkomst nekad. (os error -2147024891), module: camilladsp
The error is just an unspecified permission denied, so we have to guess what it is that it's not allowed to.
Camilladsp uses shared mode. Could it be that some other process holds the device in exclusive mode?
Another thing is to check what sample rate the device is configured to use in shared mode. That needs to match the rate camilladsp uses.
 
I use shared mode since the cpal library I use for Wasapi and CoreAudio only supports that.
I want to support exclusive mode, but that requires getting rid of cpal and using wasapi directly. I'll start on that after I'm done with SSE in RustFFT. The windows apis aren't the easiest to work with so it will take a while.
 
Well tough luck. Prof of concept meets full on reality of a controlled listening environment.

It turns out that the "Aggregate Device" is not capable of keeping USB DAC's in reasonable sync - resulting in a very unstable stereo image.

So I must say that this will probably only work if I get a 4 (or more) channel USB DAC - where the individual channels are all synced to the same internal clock and only takes input from one USB interface / stream.


Your earlier post said it sounded really good over two days of listening yet this sounds like it clearly failed. Can you elaborate a bit more on what didn’t work and how you reached your conclusion.

Bit I’m particularly interested in is whether the USB devices stayed aligned with each other as it would really widen the options if I didn’t need a multichannel dac for my actives.
 
Maybe cpal could be forced to use the exclusive mode. It may be just changing/using some param
I looked at this when I was thinking about adding support for exclusive mode in cpal. Could be fun to just try changing mode, maybe it works.
I never did anything on this because the cpal team doesn't seem interested and I don't want to maintain a fork of cpal.