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

I'm not planning on implementing any kind of measurement and filter generation features. But I'm hoping that maybe some day some existing (or new) room correction app learns to control camilladsp. Then it could measure, create filters, apply them directly to camilladsp, measure again and if needed do more iterations.
 
  • Like
Reactions: 3 users
One option would be the measurement app controlling CDSP, another way could be some supervisor app (e.g. in python) communicating with a measurement app and CDSP, controlling and co-ordinating the process.
I personally like the way DRC-FIR is structured, where one set of tools is only concerned only with producing a high quality impulse response and the other tool takes the impulse response to generate filters. Only a filter generating tool would have to communicate with CDSP, getting an impulse response could be decoupled entirely.

Maybe the tools included with DRC could serve as a starting point for something more user friendly. DRC's 'glsweep' generates log sweeps in raw PCM format, 'lsconv' can generate an impulse response from the log sweep and a corresponding recording. These two can be automated in a script, as long as all needed parameters are known: Input device, output device, gain settings...

Filter generation is a different matter as everyone has different tastes. Some want FIR filters, others want IIR. Some want to correct individual drivers, others want to correct an existing speaker. I doubt that there is a one-size-fits-all solution.

So far I've found the hard part to be getting a high quality impulse response in an automated and repeatable manner. I've yet to find a solution that I really like.

Automating filter generation has been comparatively smooth sailing as I can just take the impulse response and feed it into DRC to generate the FIR filters that I prefer. Easily done with a bash script. I don't know about generating IIR filters in an automated way, though
 
Last edited:
Seen this in the latest version of REW (beta) ?
Screenshot 2022-11-24 at 09.55.16.png
 
Seen this in the latest version of REW (beta) ?
Yes I have. It's very cool, it's just not what I'm looking for. What I'm after is something that
  • can run headless, on a computer without a screen
  • is not resource intensive so it can run on something like a raspberry pi
  • can be automated
My goal here is to make room correction filters. When something in the room changes (e.g. new coffee table or couch) I want to just connect my microphone, push a button and upload my new filter. I had something like that set up in a script before, it was just not user friendly as it had to be started from the command line.
 

TNT

Member
Joined 2003
Paid Member
I'm not planning on implementing any kind of measurement and filter generation features. But I'm hoping that maybe some day some existing (or new) room correction app learns to control camilladsp. Then it could measure, create filters, apply them directly to camilladsp, measure again and if needed do more iterations.
OK!

A more interactive way via GUI perhaps? I envision a (one?) spline representing the correction curve where a constant pink noise is played and at the same time observing the system with a RTA FFT (both by e.g. REW) - and in CDSP being able to add points and handles to interactivly manipulate the "curve" - in the background Camilla creates the necessary IIR (FIR?) filters and adds them to the processing as soon as finished indicating with progressive feedback.

spline2.png


After a more scientific approach to fixing the room curve this "tuning tool" could be a very nice way of finishing off the job via a combo of "by ear" and measurement.

//
 
Last edited:
I envision a (one?) spline representing the correction curve where a constant pink noise is played and at the same time observing the system with a RTA FFT (both by e.g. REW) - and in CDSP being able to add points and handles to interactivly manipulate the "curve" - in the background Camilla creates the necessary IIR (FIR?) filters and adds them to the processing as soon as finished indicating with progressive feedback.
There's no need to do this interactively. If you have a system's impulse response saved to a file, you can simulate all kinds of processing with very high accuracy without exposing yourself to constant white or pink noise. The constant noise gets really annoying really fast ;)
 
"By ear" could also, or more probably, mean music. And then again, a mic isn't the ear-brain... ;-)
Right. I was thinking of what you wrote in your earlier post:
Now, we all know what we want to do... place a mic in favourite position, enter room curve and watch the system slowly come into submission within +/- 1 dB :) (using pink noise!?) - is this something for CDSP in the future? 🙃
So what would a complete workflow look like? Something like this?
  • Measure system
  • Generate filter
  • Apply filter - CamillaDSP goes here
  • Optionally tweak by ear
  • Profit?
I think where things stand now, the first one is the hard part. Especially doing the measurements in a repeatable, reliable way, at the touch of a button.
 
I recently used Open Sound Meter on one laptop while I used a second laptop to make Rephase phase adjustments and apply them to the CamillaDSP config. Open Sound Meter realtime display eliminated the taking of measurements for each change. Open Sound Meter uses pink noise but thankfully it is one click to turn it off while going through the 'Rephase adjust / copy to CamillaDSP config / apply config to DSP' cycle.
A similar technique could be used to adjust the room curve, but good luck automating it.

https://opensoundmeter.com/ and how to set it up
 
  • Like
Reactions: 1 user
A more interactive way via GUI perhaps? I envision a (one?) spline representing the correction curve where a constant pink noise is played and at the same time observing the system with a RTA FFT (both by e.g. REW) - and in CDSP being able to add points and handles to interactivly manipulate the "curve" - in the background Camilla creates the necessary IIR (FIR?) filters and adds them to the processing as soon as finished indicating with progressive feedback.
Creating filters that fit a spline (or any other free-form curve) like that is quite a big project, not likely something I would ever find the time to implement. But in practice, wouldn't a graphic equaliser give you nearly the same functionality? That's something I have been thinking about adding, a normal graphic equaliser where you just tell how many bands it should have. In the background it gets built from Peaking filters with suitable q-values.
 
Creating filters that fit a spline (or any other free-form curve) like that is quite a big project, not likely something I would ever find the time to implement.
There's the AutoEQ project that does just that. Its purpose is mainly to equalise headphones, but there's no reason why it couldn't be used for speakers.

https://github.com/jaakkopasanen/AutoEq

It takes a frequency response measurement, a target frequency response and the type of EQ you want to use (FIR, IIR, static multiband EQ) and returns the EQ settings needed to reach the target response.

There is also a trimmed down python library available:
https://github.com/jaakkopasanen/autoeq-pkg/tree/master/autoeq
 
  • Like
Reactions: 1 user
Hi all, i tried to search for answer, but did not find anything.
How long is Camila DSP latency if IIR filters only are used?
Does somebody used Camila for live production? Here you need latency less than 4ms at least - otherwise is almost impossible for musicians to play.
Standalone DSPs such as behringer DCX have latency ca. 1ms
I would very like use Camila but low latency is crucial for me.

Many thanks for answer.

Tomas
 
Hi all, i tried to search for answer, but did not find anything.
How long is Camila DSP latency if IIR filters only are used?
Does somebody used Camila for live production? Here you need latency less than 4ms at least - otherwise is almost impossible for musicians to play.
Standalone DSPs such as behringer DCX have latency ca. 1ms
I would very like use Camila but low latency is crucial for me.

Many thanks for answer.

Tomas

https://www.diyaudio.com/community/search/612187/?q=Latency&t=post&c[thread]=349818&o=relevance

Michael