Stereo Tool https://forums.stereotool.com/ |
|
Low latency secondary input (microphone) https://forums.stereotool.com/viewtopic.php?t=853 |
Page 64 of 75 |
Author: | hvz [ Wed Mar 31, 2010 8:37 pm ] |
Post subject: | Re: Low latency secondary input (microphone) |
I just found back this description of phase rotation: http://www.masterdigital.com/24bit/mastering/radio.htm Which explains why it's really bad to use phase rotation if it's not needed. So whatever method I'm choosing, I *HAVE* to be able to turn it off when it's not needed. I know that that's possible with my own method... |
Author: | hvz [ Thu Apr 01, 2010 1:25 am ] |
Post subject: | Re: Low latency secondary input (microphone) |
Bojcha: In the .wav file that you sent me, the high frequencies are inverted. The result of that is that steep spikes (such as in trumpet sounds) get a gap in the center. I've now built something similar into Stereo Tool, it performs slightly less good (but the difference is very small). I'm not sure yet if I'm going to keep it this way, because I think it's far more difficult to gradually turn this filter on and off. So tomorrow I'll revert to the 90 degrees rotation (which can be switched on and off gradually much more easily) to compare the two, and see if this new version is really worth it. By the way: I did notice that in some cases, the 'vibrating voice' is reduced a lot by this new filter. (But it's also very likely that other cases are made worse). The new filter does the following: - Nothing upto 500 Hz - From 500 to 3000 Hz, the phase shift increases from 0 to 180 degrees - Above 3000 Hz, it remains at 180 degrees |
Author: | hvz [ Thu Apr 01, 2010 2:27 am ] |
Post subject: | Re: Low latency secondary input (microphone) |
Ok, because this is kindof a hack I'm posting it under a different file name: Previous version: Winamp DSP plugin: http://www.stereotool.com/download/dsp_ ... BETA3A.exe Stand alone version: http://www.stereotool.com/download/ster ... BETA3A.exe VST version: http://www.stereotool.com/download/vst_ ... BETA3A.dll To use the new "phase rotation" filter: - Enable 'Stereo Image' processing - Set everything to default, MAKE SURE THAT "CENTER BASS" IS OFF (otherwise you'll get horrible bass artifacts). - Then, set the 'Angle' slider to a non-zero value (doesn't matter which one, just not on 0). (*) If you do this, you'll get a phase rotation behavior that's somewhat like that of this iZotope program (see previous post for more detailed description). Note: iZotope is quite different, because it seems to have jumps in the phase shifts, while Stereo Tool uses a gradual change. But at least for the James Last song, with similar Loudness settings, the result is very close (and clearly better than that of the 90 degrees filter). (*) For this first test, I hacked the existing right channel phase shift filter to perform a phase rotation on both channels. Eventually I'll make a separate filter. |
Author: | Bojcha [ Thu Apr 01, 2010 2:48 am ] |
Post subject: | Re: Low latency secondary input (microphone) |
heh.. Seems you tune it specially for this song James Last song. ![]() On others is just slightly fixed. edit: this is funny what i found... Breakaway does not fixes this James Last song at all! But all others yes. iZotope at 95% all songs fixed.. ST Only James Last song fixed ![]() |
Author: | hvz [ Thu Apr 01, 2010 9:27 am ] |
Post subject: | Re: Low latency secondary input (microphone) |
Then I guess the 90 degrees solution was better than this one? |
Author: | Bojcha [ Thu Apr 01, 2010 4:24 pm ] |
Post subject: | Re: Low latency secondary input (microphone) |
if i understand this ... this is about how many bands and poles is in filter. More bands - better fixed phase but more side-effects Less bands - less phases fixed but less side-effects. This DSP Phase Rotator seems works best (i think) for now.. all songs fixed nice and minimum side-effects |
Author: | hvz [ Thu Apr 01, 2010 5:28 pm ] |
Post subject: | Re: Low latency secondary input (microphone) |
Quote: if i understand this ...
Is the Phase Rotator plugin better than iZotope?
this is about how many bands and poles is in filter. More bands - better fixed phase but more side-effects Less bands - less phases fixed but less side-effects. This DSP Phase Rotator seems works best (i think) for now.. all songs fixed nice and minimum side-effects |
Author: | hvz [ Thu Apr 01, 2010 7:25 pm ] |
Post subject: | Re: Low latency secondary input (microphone) |
Ok, I've done some reading into phase rotation filters now (couldn't find a decent description anywhere at first, but I did now). Basically the idea seems to be extremely simple: Find a frequency in the center frequency (where half of the signal is above that frequency and half is below) of the audio signal, and invert the phase of the frequencies above that frequency. For voice, the example mentions a frequency of 600 Hz. If you use multiple such switches, the chance of catching other sounds with a different center frequency get bigger, so there's less chance that asymmetrical spikes remain. Edit: After reading this explanation, and looking at the waveform that Bojcha sent, I now understand how it works. Basically the idea is: - Cut the signal into a few frequency bands - At the split between two bands, let the next band jump back in time (samplerate / frequency) samples. Example: Band 1: 0 - 1000 Hz Band 2: 1000 - 4000 Hz Band 3: 4000 - ... Hz Band 1 is placed at position 0 Band 2 is placed 44100 Hz / 1000 Hz = 44 samples earlier than band 1 Band 3 is placed 44100 Hz / 4000 Hz = 11 samples earlier than band 2 (I could probably just as well place them later instead of earlier. Hm... Maybe I can even move band 3 in the opposite direction - testing now... --> No, output looks less good). (1000 Hz and 4000 Hz are just some random numbers, if I look at Bojcha's wav file something close to this seems to have been used. Who knows, maybe I should even make them configurable ![]() I've tried doing this with CoolEdit, and the result looks very good (actually even BETTER than Bojcha's waveform). This is great. I just take a bunch of frequencies, and on those frequencies I perform a jump of exactly 1 sinusoid. Which is identical to performing no jump at all! But frequencies after this frequency do change. Now all I need to do is find a formula to calculate the phase shift per frequency, based on this description ![]() And I also think I can make a smooth transition filter from rotating to and from not rotating, with little effect on the sound. Ah, this is getting easier than I expected. At 1000 Hz (44 samples per sinusoid), the phase shift is 0. At 2000 Hz (22 samples per sinusoid), I've moved the thing 44, a multiple of 22, so the phase shift is again 0. Same at 3000, 4000 etc. Then let's look at 50% into a phase shift block (area between to 0-shifts). So I think drawing a straight like between every multiple of 1000 suffices (eg. start at 0, end at 2*π=0) To make things easier, demand that the 2nd frequency is a multiple of the first. Then from there on, do the same thing at a slower pace. (4000 = 0, 8000 = 0, ...) Going to test this now... (Damn. I just realized - this is almost exactly what I tried yesterday. But then I threw it away and used another method because I thought this would change the waveform in a far too extreme way.) Edit: Result: Works very well, if I set Loudness to 4 and increase the bass level, I still don't hear a difference between the iZotope-edited version and my own. I'm now going to test some other sounds. Edit #2: This is actually a very rough way of saying: "If the frequency is 4 times as high, I want the phase shift to occur 4 times slower". Todo: Test what happens if I really make it smooth instead of with huge steps. Edit #3: Smooth does indeed work better. I'm now really outperforming iZotope (at least on this James Last track). Next: I'm going to try to reduce the frequency where I start to filter. (That might help with voices). Edit: That also worked. I'm now building an update (will probably add 2 sliders to control the behavior - start frequency and initial between-0-phase-size later). Will post the update when it's ready (20 minutes from now I expect). Edit: I've found already 2 "vibrating voice" occurrences that are COMPLETELY gone when I enable this new filter! This starts to look very promising! |
Author: | hvz [ Thu Apr 01, 2010 10:33 pm ] |
Post subject: | Re: Low latency secondary input (microphone) |
New version: Winamp DSP plugin: http://www.stereotool.com/download/dsp_ ... BETA3A.exe Stand alone version: http://www.stereotool.com/download/ster ... BETA3A.exe VST version: http://www.stereotool.com/download/vst_ ... BETA3A.dll To use the new "phase rotation" filter (same as in previous BETA3A): - Enable 'Stereo Image' processing - Set everything to default, MAKE SURE THAT "CENTER BASS" IS OFF (otherwise you'll get horrible bass artifacts). - Then, set the 'Angle' slider to a non-zero value (doesn't matter which one, just not on 0). (*) I've tested it with several tracks, and have found improvements for both trumpet sounds and vibrating voice issues. Edit: Uh-oh. Pre-ringing is back... Well, I'll first wait for responses to see if this version is good enough, and if so I'll remove that (shouldn't be that hard, I should be able to combine it with the other pre-ringing removal). Edit #2: Woohoo. I did something really wrong (which is why the pre-ringing is there). Checking now what happens if I do what I intended to do in the first place (in other words, if the waveform stays within bounds as well as it does now). New update expected later tonight. Edit #3: Building an update now. Filtering is slightly less effective than in the previous version, but the difference is small. Pre-ringing still needs to be fixed (but is already a lot less because the bug in the previous version that caused most of it is solved). |
Author: | hvz [ Fri Apr 02, 2010 12:48 am ] |
Post subject: | Re: Low latency secondary input (microphone) |
Uploaded again! (BETA3A, see previous post!) |
Page 64 of 75 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |