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

I have been working on the controller script for getting sample rate switching working. The first version is actually working!
It uses the next30 branch of CamillaDSP, that can stop immediately when the loopback goes inactive. Then a separate controller script restarts it with a new config once the loopback becomes active again.

Using this, it's possible to run this through camilladsp (that captures from hw:Loopback,0), with automatic config reload when the rate is changed by the second aplay command:
aplay -D hw:Loopback,1 random.raw -r 44100 -f S32_LE -c 4 && aplay -D hw:Loopback,1 random.raw -r 48000 -f S32_LE -c 4

Anyone who wants to play with a very early, poorly documented, and probably quite buggy version can grab it here: https://github.com/HEnquist/camilladsp-controller
On Linux it requires the official Alsa Python binding that should be available in the repositories for most linux distributions.

It also works on Mac, just using the existing capture device rate change notifications there.
 
  • Like
Reactions: 1 users
Usually, a larger chunksize is more efficient. But for convolution it's a little trickier. For long filters, with length > chunksize, it's the same as usual. But if it's the other way around, that filter length < chunksize, then a smaller chunksize is likely a bit faster (I have not checked this though). That's probably quite unusual, so it should be pretty safe to assume that larger chunksize gives better performance.
Thanks for the explanation. IIUC it means determining optimal chunksize is a complex procedure which would require analyzing the pipeline somehow.

IIUC large chunksize => large latency => probably enough CPU time for the increased load for convolution. For time-critical cases (tiny latency) the chunksize will have to be small anyway.
I must admin I'm still a bit skeptical, but it could be worth giving it a shot to see how bad it would actually be.
OK, will do. Please would you push your new PI+ramp code to some branch from next30 so that I could base it on those changes? Thanks.
 
Hi everyone,

I'm considering a project using the HiFiBerry DAC8X, which features four DACs and eight outputs. My goal is to achieve a balanced output configuration, effectively turning the DAC8X into a 4-channel balanced output setup.

Specifically, I'm curious if CamillaDSP supports reversing signals to create this balanced output on a stereo DAC. I want to ensure that the signals can be properly managed to achieve the balanced configuration without any issues.

Has anyone here attempted a similar setup with the DAC8X or another multi-channel DAC? Any insights or guidance on configuring CamillaDSP for this purpose would be greatly appreciated.

Thanks in advance!

Best,Matthew
 
Specifically, I'm curious if CamillaDSP supports reversing signals to create this balanced output on a stereo DAC
Yes this will work just fine. Good idea btw! I would suggest to build a pipeline where you first prepare the four channels you want, and then add a mixer to add the additional ones. You can invert the copies directly in the mixer.

It can revers a channel but I think you will have a delay in this channel
There won't be any delay!
 
  • Like
Reactions: 2 users
Specifically, I'm curious if CamillaDSP supports reversing signals to create this balanced output on a stereo DAC. I want to ensure that the signals can be properly managed to achieve the balanced configuration without any issues.

I do something similar in CamillaDSP. I use bridged Hypex NC252MP amplifiers for my subs, this two input channels to each amplifier, one of which must be inverted. As I have enough DAC channels to do it, rather than use an inverted splitter cable I invert one channel in CamillaDSP, it works great.

Michael
 
  • Like
Reactions: 1 user
Thank you for your replies! I actually figured it out last night 😁, but I haven't had the amplifier modules to test it yet. My goal is to build two-way speakers (clones of Buchardt S400) where each driver gets amplified from one channel of a stereo amp module (3e-audio TPA3255). This setup is similar to bi-amping/active but involves signal splitting using CamillaDSP.

The first amp will handle the highs (left/right tweeter) and the second will handle the lows (same left/right). I’ve been waiting a long time to get a proper 4-channel sound card. Initially, I started with two USB stereo cards, combining them into one four-channel output with ALSA. Then I switched to the Sound Blaster X3 but was still not satisfied with the sound quality (my reference was the RPi3 + Allo Boss).

Currently, I've been testing all the solutions on a cheap Wondom BDM8-A TPA3255, which has a single-ended input. Since I’m waiting for the new amps (3e-audio), I’ve been figuring out how to connect my new setup (RPI5 + DAC8X) to the new amp boards, which have balanced inputs. Now, my mystery is solved!

Thanks again for the help!

TPA3255DAC8x.png
 
  • Like
Reactions: 1 user
These things all depend on how Fusiondsp is implemented. I don't know the details here, can you ask the fusiondsp author?


There have been a few rare reports of this issue, but I have never managed to reproduce it. Can you attach a complete config file where it happens?
Hello @HenrikEnquist. My apologies for the delay I was on a business trip. I attach a simple config where the failure occurs, and a more comprehensive one where the failure occurs as well.
 
Here are two configs that have failed with mute. I have set mute on destination and it works. Same for source. Today it's all working. Frustrating. Maybe its related to the fact I have to press the config twice in shortcuts to load the config properly. I'm grasping at straws.
Hopefully you see something in the config files. I will try to proceed to complete mesurement sweeps for L and R for each of low pass and high pass components and see if I can get through that.
 

Attachments

  • Mute_L.zip
    1.4 KB · Views: 5
Here are two configs that have failed with mute. I have set mute on destination and it works. Same for source. Today it's all working. Frustrating. Maybe its related to the fact I have to press the config twice in shortcuts to load the config properly. I'm grasping at straws.
Hopefully you see something in the config files. I will try to proceed to complete mesurement sweeps for L and R for each of low pass and high pass components and see if I can get through that.
I have provided the list of issues to @balbuze author of Fusiondsp.