Low latency room correction + xover in mini-itx

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I'm looking to use a mini-itx linux box to run brutefir. How much processing power do I need to get low latency throughput?


Ideally this box will
  • play flac from hard disk
  • take SPDIF input
  • Process 2ch room convolution
  • 3-4 way FIR xover, delay, etc
  • Pass to ouput
Lowest possible latency is required as I'll be putting my DAW output through this, though I could possibly run the convolution on the DAW when I'm using that.
 
I'm using ubuntu studio (RT kernel) -- just at standard settings so not sure what latency it runs at normally. Did a test a while back on 16/44.1 & 16/48 flac playback with audacity and recall getting down to around 10ms without problems. Can always check later. Not an expert at this but sure someone on the linux audio thread would be able to help you out. :)
 
A VIA EPIA 12000EN is a good choice for a first start because it allows a fanless PC. Good enough for 4-way BruteFIR in single float precision.

But:
the latency depends on the filter size and its partitioning. With BruteFIR and this CPU you may luckily get down to a partition size of 1024 samples. This means you get a delay of 1024/samplerate. This is e.g. for 44.1 kHz a delay of 23 ms at least. I believe you may get even more delay.

Please also note that this is valid only for minphase filters. Linear phase filters will lead to better results but they are not possible for realtime applications.

Instead of BruteFIR you should also study JConv. With a better CPU (Core2Duo) you can get down to 64 samples partition size.

Of course Linux also has its influence. You may use a version with a realtime patch anyway.

Good luck :)
 
Thanks for the replies...

Uli, could you please clarify about the linear phase filters - do you mean it is not possible to use these to pass audio through, or is their fixed latency too high? I see there are some VST linear EQ plugins available that have low latency.
 
I prefer using linear phase filter (or more exactly combined minimum and excess phase filters) with my audio system. As the size of my filters is 65536 taps this means a delay of e.g. 32768/44100 = 0.743 seconds.

Of course short linphase filters have a shorter delay (1/2 filterlength/samplerate). But short filters do not have a good frequency resolution.

In case you listen only to music a big delay is no problem, the music simply starts a bit later.

In combination with video or realtime applications (live sound) this is not possible. Then it is necessary to switch to minimum phase filters. Typically commercial systems only use minimum phase correction (amplitude correction). But you need an excess phase correction (phase/time correction) included to get the best result, it is another big step forward to good sound.

Please note that for the delay consideration you have to add always the latency caused by FFT convolution partitioning and soundcard latency ...
 
If the intended use is playing MIDI in realtime (from a keyboard), I do not think a sharp filter along with all the other latencies will produce an acceptable delay. In my experience realtime midi is very latency sensitive and playing with the sound delayed is no fun at all :)

On the other hand, if the digital xover is to replace an analogue one, a comparable-performance filter would be rather short and its delay perhaps acceptable.
 
Passive crossovers are typically minimum phase filters. They are typically also not very sharp (1st, 2nd, maybe 4th order). A digital FIR filter replacing such passive crossovers has the same properties and does not need to be very long.

As already written with JConv a convolution with partition size 64 samples is possible. This means e.g. for samplerate 48 kHz a delay of 1.3 ms which corresponds to a sound travel of 45 cm. I doubt this will cause a problem for realtime MIDI.

Room correction is in opposite another kind of application. At least if you also like to correct for excess phase.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.