|
Post by jin167 on Jan 2, 2019 17:13:07 GMT -6
This is just crazy. All analogue EQs ever have been minimum/analogue phase, and they are STILL the most sought after EQs, so why would you want to rectify that anyway? Not to mention the dude isn't even talking about phase but time aligning. It's rubbish and detracts from the real issue, fake news, I say. Well, he did video tutorials for fabfilter and I really like that series so thought this video might be worth watching (and it was, for me at least). If you have watched any of his fabfilter eq tutorial you'll know that he has this thing about linear eq and this video is only an extension of that. I think this video was useful. It may not be practical but it's a cool trick to have up your sleeve nonetheless and allowed me to refresh my memory on several related topics.
|
|
|
Post by cowboycoalminer on Jan 2, 2019 18:48:12 GMT -6
For me, what's attractive about this technique is that it allows me to use my outboard EQs without having to worry about the phase shifts. Don't overthink that. No one much is worrying about phase shifts in analog eq's, and it can be argued it's one of the reasons people use them. Agree with that 100%. Same reason people still want to use consoles. Phase was in everything we cut our teeth listening to. Nothing wrong with it at all in moderation. Matter of fact, I'd argue our ears are drawn to it.
|
|
|
Post by jin167 on Jan 4, 2019 3:17:54 GMT -6
"The latency is compensated automatically by the Reainsert plugin. This is about phase shifts at specific frequencies, not just an overall time delay."
Quick update from Dan FYI.
|
|
|
Post by pope on Jan 4, 2019 4:20:04 GMT -6
Don't overthink that. No one much is worrying about phase shifts in analog eq's, and it can be argued it's one of the reasons people use them. Agree with that 100%. Same reason people still want to use consoles. Phase was in everything we cut our teeth listening to. Nothing wrong with it at all in moderation. Matter of fact, I'd argue our ears are drawn to it. True but I believe the video refers to parallel processing where phase can be an issue?
|
|
|
Post by danworrall on Jan 4, 2019 6:18:31 GMT -6
The nice thing about uploading a video to my own channel for a change is I can see where the traffic is coming from... Hi all. This idea isn't really mine. DSP gurus won't be surprised by it: its well known that you can turn a minimum phase EQ into a linear phase EQ by processing in blocks, and processing each block both forwards and backwards. I guess the tricky part here is how you window the blocks and recombine them. But I'm not a DSP guru, and I don't know how often the technique is used in practice. (Incidentally you could also do variable phase EQ, like ddmf LP10: if you split the EQ duties 50/50 between the forward and reverse pass you get linear phase. But if you do all the EQing on the forward pass you're back to minimum phase. Balancing how much of the EQ is forward and how much backwards gives you a continuum from linear to minimum phase or anywhere in between. I've no idea if this is how LP10 does it; probably he has a cleverer more elegant solution!) My only insights were to realize that the trick should also work with analogue EQ, and that you could set the block size to *the whole song* to avoid all the windowing issues. This isn't about latency or time delay at all. Latency is compensated automatically by the Reainsert plugin, and I double checked this with a manual ping before making the video. Its important to remember that, while time delays always mean phase shifts, phase shifts don't always mean time delays. Proof: hit the "phase" button to reverse the polarity. You've just phase shifted all frequencies by 180 deg, with no time delay at all. The technique I show flattens out the *phase shifts* from the analogue filters and the DA/AD conversion. Its not the same as simple time alignment.
|
|
|
Post by pope on Jan 4, 2019 6:21:42 GMT -6
Thanks for chiming in danworrall
|
|
|
Post by jcoutu1 on Jan 4, 2019 6:35:00 GMT -6
|
|
|
Post by svart on Jan 4, 2019 7:26:05 GMT -6
The nice thing about uploading a video to my own channel for a change is I can see where the traffic is coming from... Hi all. This idea isn't really mine. DSP gurus won't be surprised by it: its well known that you can turn a minimum phase EQ into a linear phase EQ by processing in blocks, and processing each block both forwards and backwards. I guess the tricky part here is how you window the blocks and recombine them. But I'm not a DSP guru, and I don't know how often the technique is used in practice. (Incidentally you could also do variable phase EQ, like ddmf LP10: if you split the EQ duties 50/50 between the forward and reverse pass you get linear phase. But if you do all the EQing on the forward pass you're back to minimum phase. Balancing how much of the EQ is forward and how much backwards gives you a continuum from linear to minimum phase or anywhere in between. I've no idea if this is how LP10 does it; probably he has a cleverer more elegant solution!) My only insights were to realize that the trick should also work with analogue EQ, and that you could set the block size to *the whole song* to avoid all the windowing issues. This isn't about latency or time delay at all. Latency is compensated automatically by the Reainsert plugin, and I double checked this with a manual ping before making the video. Its important to remember that, while time delays always mean phase shifts, phase shifts don't always mean time delays. Proof: hit the "phase" button to reverse the polarity. You've just phase shifted all frequencies by 180 deg, with no time delay at all.The technique I show flattens out the *phase shifts* from the analogue filters and the DA/AD conversion. Its not the same as simple time alignment. Which is what I explained earlier.. Anyway, yes, the short story is that in DSP you can do this easily, simply by using FIR filters that account for the change in wavelength (time) over frequency. It's relatively easy but very processor intensive, which equates to large latencies. However, no, you can't do it in analog. Applying a phase shift to a backwards track and then flipping/muxing it with an unshifted track does not "correct" a phase shift. At best you're getting something like a mix of the two, at worst you're simply nulling the EQ since "frequency" does not know time. Try flipping polarity on your processed track and see what the null output provides once you peak match it.. I'd be interested in your result. I'd try applying your processed return signal to a normal (not backwards) track and then nudging backwards and forwards by 10ms in 1ms increments. I guarantee you'll find that within a few ms of either direction you'll get the same tone as your approach. Flip the polarity here too and see what happens. I'd be interested in this result as well.
|
|
|
Post by javamad on Jan 5, 2019 7:43:41 GMT -6
Interesting video!
One thing that I am not sure about and would, for me, determine if the two passes add up to a different result than just moving a single pass around on the timeline .. and that is:
If I eq a boost at 100 Hz, does the phase shift happen within the Q area of the boost around 100 Hz or does it happen to the whole signal? If the answer is that the phase shift happens around the boost/cut frequencies then this double/reverse pass makes total sense to me.
|
|
|
Post by jin167 on Jan 5, 2019 8:24:00 GMT -6
Interesting video! One thing that I am not sure about and would, for me, determine if the two passes add up to a different result than just moving a single pass around on the timeline .. and that is: If I eq a boost at 100 Hz, does the phase shift happen within the Q area of the boost around 100 Hz or does it happen to the whole signal? If the answer is that the phase shift happens around the boost/cut frequencies then this double/reverse pass makes total sense to me. I believe you're correct. (assuming a bell curve) If you're applying a gain of say 3 dB with 100Hz as your centre frequency with some Q value then you will have a phase shift around the centre frequency (0 degree shift at the centre frequency (100 Hz) and regions where the level is at unity). I think you have to learn Hilbert transformation to understand this topic. There are a number of professional engineers on this forum so they might be able to give us a brief lecture on this topic if we're lucky?
|
|
|
Post by danworrall on Jan 5, 2019 8:29:15 GMT -6
If I eq a boost at 100 Hz, does the phase shift happen within the Q area of the boost around 100 Hz or does it happen to the whole signal? If the answer is that the phase shift happens around the boost/cut frequencies then this double/reverse pass makes total sense to me. If you boost at 100Hz the phase shift at 100Hz will be zero. You'll actually get positive phase shift below the boost and negative phase shift above, with the greatest phase shift happening where the gradient is steepest on the frequency response graph. Here's a ReaEQ with the "show phase" option ticked, boosting 1KHz by 12dB. Phase shown in orange. Notice the phase shift is also pretty subtle: typically you need to use HP or LP filters to run into any serious phase issues.
|
|
|
Post by EmRR on Jan 5, 2019 9:20:54 GMT -6
Here's some real life HPF phase plots. All 12dB/oct except the green 6dB/oct and purple 18dB/oct. Notice the 18dB/oct example goes past 180º one octave lower. Most of us use this stuff all the time.
|
|
|
Post by javamad on Jan 5, 2019 10:31:56 GMT -6
OK ... so it seems clear that at any given frequency point there is a certain, different phase shift.
Therefore applying the same eq again on the reverse audio would in fact reverse the phase shift
That is of course if the phase shift introduced by the boost/cut is not affected by the amplitude of the signal ... bear in mind that the reverse audio has been eq’d and so is not the same as the original.
|
|
|
Post by danworrall on Jan 5, 2019 17:55:44 GMT -6
Try flipping polarity on your processed track and see what the null output provides once you peak match it.. I'd be interested in your result. I'd try applying your processed return signal to a normal (not backwards) track and then nudging backwards and forwards by 10ms in 1ms increments. I guarantee you'll find that within a few ms of either direction you'll get the same tone as your approach. Flip the polarity here too and see what happens. I'd be interested in this result as well. These are valid points. I should definitely have flipped polarity in that video, you're right. So I made a little follow up:
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Jan 6, 2019 9:34:42 GMT -6
Just watched both vids much more carefully, along with your earlier vid on Pre-emphasis/De-Emphasis EQ, brilliant stuff Dan, thank you. I am gonna have to try this now with my mastering chain!
|
|
|
Post by svart on Jan 6, 2019 9:54:13 GMT -6
Try flipping polarity on your processed track and see what the null output provides once you peak match it.. I'd be interested in your result. I'd try applying your processed return signal to a normal (not backwards) track and then nudging backwards and forwards by 10ms in 1ms increments. I guarantee you'll find that within a few ms of either direction you'll get the same tone as your approach. Flip the polarity here too and see what happens. I'd be interested in this result as well. These are valid points. I should definitely have flipped polarity in that video, you're right. So I made a little follow up: Wanted to say thank you for doing this. Most people wouldn't have. I never intended for my suggestions to "disprove" anything directly, but they did shed some light on what's happening. The fact that this stuff needs to be on sample timescales was a bit of a surprise and I didn't expect it to be that selective at all. However, what I did notice is that your original summation seemed to produce a nulling at highs and lows, while the subsequent tests with nulling produced outputs with no lows and no mids, respectively. This still aligns (pun intended) with the notion of a time-based phase relationship, and the nullification you hear changing in frequency is due to sample alignment inaccuracies and analog latency that had been digitized.. I also don't think using a plugin to nudge time is a valid test due to the unknown nature of how it processes, and how the underlying audio systems (stream handling, driver interrupts, etc) can cause issues themselves. I had intended for you to nudge manually using reaper's nudge function which simply offsets the track in time, but I did not make myself clear and I apologise for that. However, now knowing that this needs to be on sample timescales, the nudge function might not be enough. Reaper will allow you to zoom down to samples directly, and grabbing/moving tracks will suffice. So, apparently these videos have made it to Facebook land and have gotten back to me with folks goading me on to retort.. So I'll be thinking of a better way to verify your claims, because I still don't believe what you're seeing is what your say it is. Unfortunately, it'll take a lot of work on my part to disprove it, as it's much harder to disprove something when it's already being misapplied, which means I'll have to prove the original concept, then disprove the application.
|
|
|
Post by danworrall on Jan 6, 2019 12:11:50 GMT -6
However, what I did notice is that your original summation seemed to produce a nulling at highs and lows, while the subsequent tests with nulling produced outputs with no lows and no mids, respectively. Phase shifts from bell and shelf filters tend to be pretty subtle and benign. You need HP or LP filters to really screw things up! My example had a HPF at 120Hz and a LPF at 5 or 6K, can't remember exactly. So I would totally expect the biggest problems to happen around those frequencies. Seems to me that the -2 sample delay from auto align was able to correct the phase shift from the LPF, but not the HPF. Perhaps if I had tried any of Auto Align's alternative suggestions I might have found a delay setting that corrected the phase shift from the HPF while further messing up the high mids. But I don't believe there's a delay setting that could correct both filters at once. I look forward to being proved wrong
|
|
|
Post by svart on Jan 6, 2019 12:26:32 GMT -6
However, what I did notice is that your original summation seemed to produce a nulling at highs and lows, while the subsequent tests with nulling produced outputs with no lows and no mids, respectively. Phase shifts from bell and shelf filters tend to be pretty subtle and benign. You need HP or LP filters to really screw things up! My example had a HPF at 120Hz and a LPF at 5 or 6K, can't remember exactly. So I would totally expect the biggest problems to happen around those frequencies. Seems to me that the -2 sample delay from auto align was able to correct the phase shift from the LPF, but not the HPF. Perhaps if I had tried any of Auto Align's alternative suggestions I might have found a delay setting that corrected the phase shift from the HPF while further messing up the high mids. But I don't believe there's a delay setting that could correct both filters at once. I look forward to being proved wrong Well you did just admit that you were. If it were a linear phase correction, there would be no difference at multiple frequencies. Since there are, and you can't correct for all frequencies when adjusting time, that proves it's not a linear phase nullification.
|
|
|
Post by danworrall on Jan 6, 2019 12:40:28 GMT -6
It wasn't linear phase because I was processing the first bounce not the second. At your suggestion.
|
|
|
Post by svart on Jan 6, 2019 12:57:37 GMT -6
It wasn't linear phase because I was processing the first bounce not the second. At your suggestion. Ok, process the second and see what happens..
|
|
|
Post by danworrall on Jan 6, 2019 13:03:57 GMT -6
The second is already in phase. What would I be trying to achieve?
|
|
|
Post by svart on Jan 6, 2019 13:55:13 GMT -6
The second is already in phase. What would I be trying to achieve? I thought the whole discussion was about whether or not you're creating linear phase correction, which I disbelieve you can do how you're doing it. This would be attempting to distill down to the differences, and eventually working out whether those spectral differences are phase alone as you surmise, or whether they're phase differences due to time (sample) alignment differences.
|
|