Hi !
Some news and teasing, and request for potential help:
Since the release of v1.61, I m still working hard on the AVDSP compiler (dspcreate utility) and the XMOS runtime to increase capabilities and improve performances with DAC8PRO.
A lot has been done and I beleive I could release something this summer.
For the dspcreate utility I have added the possibility to write expressions with parenthesis and it is now possible to have cascaded included files. Also printing comments and value of labels in the console is possible.
It is also possible to change the cpu precision for the biquad coefficients or gain values and for the headroom of the 64 bit accumulator. (in fact I wanted to find optimal values and then I decided to open this to the user)
Also there is now a code highlight support for vscode editor which can be downloaded already in the avdsp_dac8 github, folder avdsptools/vscode.
the XMOS runtime has been optimized further: the number of instructions per keyword is reduced. At 192k it is possible to have 10 biquads for each of the 8 channels. The unused cores do not take any cpu at all and spreading the load across cores is better managed. The number of instructions displayed in the dacstatus command is also more accurate. So it is possible to push the beast to the limits.
Regarding the new functions supported by dspcreate and in the XMOS runtime, I have put emphasis on moving average filters and FIR filters and
Warped FIR filters !
For FIR filters, each taps requires 3 cpu instructions and for Warped FIR only 5,25 per taps which really brings a key capability to correct loudspeaker or room response including magnitude and phase.
I recently heard about Warped FIR when reading the documentation of the Outline Newton DSP and someone mention this on asr:
post
They did something good here. Then googling a little bit I found this document which I recommend reading :
link
The problem with FIR is that you need tons of TAPs at low frequencies (so very demanding cpu), and this also brings too much delay. By Warping the frequency on a semi-logarithmic scale, you can divide the number of taps by 5 to 10 ! then this become compatible with XMOS device !
a picture taken with REW this morning while testing this in DAC8PRO with a small 21 taps low pass filter at pi/4 and various Lambda factors. Amazing.
same picture with a 101 taps low pass filter: we can see that changing the lambda factor gives the possibility to shift the area where the filter is applied, without compromising the quality.
But unfortunatelly I cannot provide any help for creating these special Warped FIR impulse and this is where I m looking for help, so that this capability inside DAC8PRO could be used really. Ok for today. If you are interrested by this capability, or if you could help with some Python toolbox, please let us know!