Why is HarBal 3 slow at updating filters?

We are currently looking for beta testers around the world to help test our forthcoming application Har-Bal 3.0
To apply to be a Har-Bal 3.0 beta tester all you need is to be a current/registered owner of Har-Bal and contact us with your request via email from our contact page.
Currently there is no manual provided. Registered users will have no problem navigating around the new version
Post Reply
HarBal
Site Admin
Posts: 761
Joined: Mon Apr 19, 2004 8:18 pm
Contact:

Why is HarBal 3 slow at updating filters?

Post by HarBal »

If you are a Har-Bal 2.3 user used to playing a track real-time and making and hearing Har-Bal filter changes in near real time you'll probably be wondering why Har-Bal 3 is so slow at updating. Well, it isn't because the code is slower but rather what it has to realise is much greater. The detailed answer is as follows.

Har-Bal 2.3 realises only left and right filters with a common response (ie ganged). In the basic Har-Bal 3 filter block Har-Bal realises four filters. It has two extra responses to realise : the new Haas zone ambiance derived "air" which uses cross-couple filters. That is the first two fold factor difference but there is more.

To keep CPU usage during playback to a minimum HB3 uses an equivalent filter to realise the independent left, right, mid, side and air filters. By doing so, I reduce the complexity by half but it means that all those responses are lumped together, which consequently also means that if you want to have real-time switchable air and eq (toggle air, toggle eq) then I have to calculate four different combination's of filter responses, three that are non-trivial. That is,

no air + no eq, trivial
air + no eq
no air + eq
air + eq

So now we have a 6 fold increase in the amount of calculation to realise Har-Bal 3 filters over Har-Bal 2.3.

In the future that will increase further because a proposed feature is additional room compensation equalisation in Har-Bal 3. It's already coded for but there is no front end to add or indeed design the responses. With room eq it then becomes,

no air + no eq + no room eq, trivial
air + no eq + no room eq
no air + eq + no room eq
air + eq + no room eq
no air + no eq + room eq
air + no eq + room eq
no air + eq + room eq
air + eq + room eq

So with that version it will grow to be a 14 fold increase in the amount of calculation required.

I'm sure the realisation code is not optimal by any means but however optimal I get it, it will almost certainly require considerably more processing to calculate the required responses.

Given the added amount of calculation you'll probably be asking what's the point. The point is that with the more powerful analysis and the more powerful filtering Har-Bal 3 can improve on tracks with relative ease that Har-Bal 2.3 can never make headway on. I know that with certainty from experience with using it. There is so much stuff around today that Har-Bal 2.3 just can't help with much especially when hyper-compression is involved.

For me personally, despite the slower speed at realising filters I feel absolutely no desire to go back and use version 2.3 and if I'm forced to 2.3 I'm always looking for the Har-Bal 3 features it can't do and despairing. The near real time filter update in Har-Bal 2.3 is neither here or there to me. It is entirely in-consequential. If it is critical to you I can't offer a solution because there isn't one, bar not offering all the added processing power of Har-Bal 3 which is something retro-grade and of no value to me.

Real-time filter updates isn't even in the design use case as far as I'm concerned so the lack of it doesn't rate as a fault because "real-time" filter update is not a design goal. If that is what you need and can't live without you'll either have to stick with Har-Bal 2.3 for as long as it will continue to work on current generation machines, or go with the myriad of other EQ tools you can find in plugin format or as dedicated H/W units.

What is important in the Har-Bal design is the mid /side filtering capability, the track splitting and near instantaneous update to spectrum averages based on whatever your filters do, the dynamics processing and the predictive average level estimates, real-time spectrum, complex time selection and filtering to control rogue resonances (when that feature is implemented), room eq compensation (when that feature is implemented), improved air that even works on mono sources, playable track referencing to allow you to easily bring consistent sound to compilations and all the other aids Har-Bal provides.

I don't use Har-Bal in a realtime fashion, not even Har-Bal 2.3. Rarely have and I dare say, rarely will. That mode of operation has no value to me. If it were that important to me I can do what I pretty much always do, which is do spectrum editing with nothing playing, then play and toggle EQ to hear the difference. Sound better, keep it, sound worse, undo it. It isn't a usability issue for me. Not having the power to do everything else that Har-Bal 3 offers is.

There are a few other points that should be mentioned regarding this version and it's speed. It is not compatible with older machines and by older machines I mean ones more that four years old. The reason being that current generation intel processors do floating point faster than fixed point so all the signal processing in Har-Bal 3 is now in floating point. Older machines are slower on floating point than fixed point so run on an older machine Har-Bal 3 will seem very slow. Fast disk access is a necessity for Har-Bal 3 because it needs to read and write a lot of information to files to support the real-time spectrum and track splitting. As such you should never open a file on an external drive, be that a network drive or a thumb drive. Doing so will almost certainly result in very slow response.

cheers,


Paavo.
Post Reply