Closed siraaris closed 2 months ago
could we convolve the FIR filters in the pipeline and create one FIR filter automagically?
It would be possible, but the result would be a very inefficient filter. When convolving two impulse responses, you get a longer result. The length is the sum of the two lengths minus one. So convolving those four FIR filters of your config would produce a new IR that is as long as all four filters tacked together. You won't really gain anything by doing this. But the new IR will likely have a lot of very nearly zeros, probably mostly at the end, but could also be at the start. This means it could be truncated and re-windowed to get much shorter, which would make it much lighter to process. To do this, you need to decide how much to cut and from where, and what window to apply afterwards. Doing it automatically isn't really feasible.
Delay-W-BR is a Delay Camilla Filter, the others are FIR.
I can also represent these with Camilla built-in filters
Replacing a single IIR filter with a single FIR filter doesn't give any advantages, it just uses more processing power to give nearly the same result. This only makes sense if you combine many IIR filters into one FIR filter, and truncate and window it down to reasonably short length.
Final question - if FIR filters are not used, does Camilla ensure channel timing alignment (regardless of the filters used per channel?
Other filters than FIR (and obviously Delay) don't give any delay, only the phase shifts from the filter response.
I was thinking windowing and truncation of sequential FIR filters, but the approach is highly dependent on type of each filter, min, linear, max phase.
Probably best to leave the user do that the way they want :)
All good, thanks for expanding, best to close off.
In the 3rd post on DIY Audio, this comment caught my eye:
Given we know the filters (as per the configuration file), and the fact that each filter per channel has to be enacted, for Camilla to create a normalised filter per channel that is the serialisation of each filter in each channel? A bit like compiling a normalised filter for each channel - and that these are utilised in the actual filtering.
I guess what I'm asking is could we convolve the FIR filters in the pipeline and create one FIR filter automagically? This would save so much upstream time when developing the DSP set.
For example I have the following:
- type: Filter
description: "Bedrock Side Woofers"
channels: [16, 17, 20, 21, 24, 25, 28, 29]
bypassed: false
names:
- Delay-W-BR
- XO-W
- CM-W
- CP-W
- LRT-W
- SUBSONIC-W+
Delay-W-BR is a Delay Camilla Filter, the others are FIR.
I can also represent these with Camilla built-in filters:
- type: Filter
description: "Bedrock Side Woofers"
channels: [16, 17, 20, 21, 24, 25, 28, 29]
bypassed: false
names:
- Delay-W-BR
# XO-W
# CM-W
# CP-W
# LRT-W
- XO-W+
- CM-W+
- CP-W-
- CP-W+
- LRT-W+
- SUBSONIC-W+
Where each of the above is a Camilla equivalent to the FIR example above.
Final question - if FIR filters are not used, does Camilla ensure channel timing alignment (regardless of the filters used per channel?