> With BrutefirDRC I still had dropouts and "clicking" sound both from Touch
> and HRT. Yesterday I was looking at this for the n'th time and noticed
> that 'filter_length:' in the brutefir config from Klaus is set to
> '1024,64;'. I remember Anders Torger discussing partitioned convolution of
> the filter and checked his web site. Yes!
> '1024,64;' gives very low latency, but is very demanding. By changing this
> to 16 partitions of 4096, cpu usage drops from around 20-25% to around 6%
> while playing a 96kHz track. The clicking is also gone (using Touch, not
> checked HRT on USB port yet). Setting 'float_bits: 32' reduced CPU usage
> further to around 2%.
Hi all. Olav, I hope you dont mind me quoting your email on the new list.
Ive been investigating the effect of filter_length and float_bits on performance.
Attached is a python script which tries all combinations. Numbers are elapsed
time in seconds:
32 64
65536,1 5.175813 10.400801
32768,2 4.745253 9.042772
16384,4 4.359495 8.657616
8192,8 3.751281 9.483818
4096,16 3.584298 11.990837
2048,32 4.530481 18.957166
1024,64 5.677914 28.637125
512,128 8.505780 50.300683
Firstly, using 64 bit is obviously a large performance hit, and I'm sure the
difference is inaudible. I wont argue with anyone that wants to use 64 bits,
but I will change the BrutefirDRC sample filter files to use 32 bits.
Secondly, Olav's suggested 4096,16 is optimal of my machine (core2 duo E7200).
Up to now I had been using 16384,4 which is 22% slower. The default in the
sample files are 1024,64 which is 58% slower.
I would appreciate seeing results from other machines. You need an "input.wav"
file in the same directory. Make sure it is not so long that disk IO affects the
timings; I used a 4 minute album track. You might also need to change the name
of baseline_filter at the top of the script, to refer to your normal brutefir
filter configuration file.
--
Toby Dickenson