Hi,
At the moment, I use a Windows 10 PC to perform room correction using Equalizer APO. It applies an FIR filter (generated with DRCDesigner) to all audio on the computer, including an SPDIF input coming from the TV (I simply configure Windows to "listen" to the SPDIF as if it were a microphone). Audio is then sent to a DAC with SPDIF. This works very nicely, as anything hooked up to the TV gets corrected and sounds great.
I'd like to remove the PC from the equation as it feels massively overkill for what is essentially a DSP unit sitting between TV and DAC. I ordered a Raspberry Pi 3 B+ and the Hifiberry Digi+ I/O (this has SPDIF in and out) as I figured there must be a way to do the same but on a smaller, linux-based scale.
However, I don't really know what I'm doing with it! Some software recommendations would be great. I need some way to play any audio received through the digital input, apply an FIR filter, and send to the digital output.
Any help would be greatly appreciated!
At the moment, I use a Windows 10 PC to perform room correction using Equalizer APO. It applies an FIR filter (generated with DRCDesigner) to all audio on the computer, including an SPDIF input coming from the TV (I simply configure Windows to "listen" to the SPDIF as if it were a microphone). Audio is then sent to a DAC with SPDIF. This works very nicely, as anything hooked up to the TV gets corrected and sounds great.
I'd like to remove the PC from the equation as it feels massively overkill for what is essentially a DSP unit sitting between TV and DAC. I ordered a Raspberry Pi 3 B+ and the Hifiberry Digi+ I/O (this has SPDIF in and out) as I figured there must be a way to do the same but on a smaller, linux-based scale.
However, I don't really know what I'm doing with it! Some software recommendations would be great. I need some way to play any audio received through the digital input, apply an FIR filter, and send to the digital output.
Any help would be greatly appreciated!
So it looks like BruteFIR might be the answer for the filter. I'm just looking for some tutorials on that at the moment.
I wrote a little sth. (but in German), maybe google translater will help you:
EasyPi - der MiniDSP Ersatz (Spdif Eingang, BruteFIR Faltung, I2S Ausgang) - aktives-hoeren.de
I did a similar implementation but with a dedicated S/PDIF to USB converter.
I must warn you, that BruteFIR on a RPi is not latent free!
You will have to play around with it really much, to get the sound and picture any synchronised.
The majority of BruteFIR users only do stereo music where 500ms delay are no issue.
EasyPi - der MiniDSP Ersatz (Spdif Eingang, BruteFIR Faltung, I2S Ausgang) - aktives-hoeren.de
I did a similar implementation but with a dedicated S/PDIF to USB converter.
I must warn you, that BruteFIR on a RPi is not latent free!
You will have to play around with it really much, to get the sound and picture any synchronised.
The majority of BruteFIR users only do stereo music where 500ms delay are no issue.
Thanks for the replies!
Thanks for the link, I'll take a look. The latency concerns me though, I didn't imagine that it would be anywhere near 500ms! On my PC I use an impulse response with 65536 samples @ 48 KHz and according to EqualizerAPO the latency is just 5.6ms which is imperceptible to me, and it uses just 0.5% of a single CPU core. Half a second would be too much delay for me, especially as I watch movies and play games on the TV.
Thank you, I'll take a look.
I wrote a little sth. (but in German), maybe google translater will help you:
EasyPi - der MiniDSP Ersatz (Spdif Eingang, BruteFIR Faltung, I2S Ausgang) - aktives-hoeren.de
I did a similar implementation but with a dedicated S/PDIF to USB converter.
I must warn you, that BruteFIR on a RPi is not latent free!
You will have to play around with it really much, to get the sound and picture any synchronised.
The majority of BruteFIR users only do stereo music where 500ms delay are no issue.
Thanks for the link, I'll take a look. The latency concerns me though, I didn't imagine that it would be anywhere near 500ms! On my PC I use an impulse response with 65536 samples @ 48 KHz and according to EqualizerAPO the latency is just 5.6ms which is imperceptible to me, and it uses just 0.5% of a single CPU core. Half a second would be too much delay for me, especially as I watch movies and play games on the TV.
Thank you, I'll take a look.
Well, the 500ms was just an extreme. I don’t think it will be that much! But still, I’m thinking about this problem too at the moment for the same reasons. (Use with a TV) but I think there is no other way than trail and error.
The easiest way to change the delay time in BruteFIR is to change the length ob subsamples.
If the the subsamples get bigger, the delay will be shorter, but more processing power is needed and vice versa. The other solution is of course to change the filter length and still get good enough impulse response with shorter filter length.
Report back if you come to a conclusion!
The easiest way to change the delay time in BruteFIR is to change the length ob subsamples.
If the the subsamples get bigger, the delay will be shorter, but more processing power is needed and vice versa. The other solution is of course to change the filter length and still get good enough impulse response with shorter filter length.
Report back if you come to a conclusion!