Stereo Tool https://forums.stereotool.com/ |
|
Stereo Tool 6.10 https://forums.stereotool.com/viewtopic.php?t=3065 |
Page 203 of 213 |
Author: | hvz [ Wed Oct 05, 2011 1:38 am ] |
Post subject: | Re: Stereo Tool 6.10 |
BETA127: - Slight performance improvement. But it's so small I can hardly measure it (actually I'm measuring a slight decrease, but given the changes it HAS to be faster so that must be a measuring error). This does not seem the way to go to improve the performance further. - VST version is building again (was missing in BETA126). - Francis reported that the SSE version is working again, so I removed that issue from the todo list. Winamp DSP plugin: http://www.stereotool.com/download/dsp_ ... 20-127.exe Stand alone version: http://www.stereotool.com/download/ster ... 20-127.exe VST version: http://www.stereotool.com/download/vst_ ... 20-127.dll VST version (No SSE2): http://www.stereotool.com/download/vst_ ... 20-127.dll Command line version: http://www.stereotool.com/download/ster ... 20-127.exe Linux command line version: http://www.stereotool.com/download/ster ... ETA620-127 NOT AVAILABLE Linux GUI version: http://www.stereotool.com/download/ster ... ETA620-127 NOT AVAILABLE TODO: - Fix loading changed multiband frequencies - Add buffer and filter for SCA output (SCA1 ok, SCA2 ok) - Finish AGC improvement - make mono value configurable (replace checkbox by slider) 1 hour --> NO, not needed - anything else needed? -> NO - Fix Punch - Check what to do with new filters (such as bass AGC) - keep them, remove them, change them? --> KEEP - Save new BASS_AGC setting in VST mode - Loudness: Annoying cracking sound in bass. Slightly present in 5.00, worse in 6.00, maybe even worse in 6.10. Only when bass is too loud. Much worse than in Final Limiter (at same input level!) - so this clearly indicates a bug. Most likely cause: The filter that was added to remove bass artifacts....... ![]() - Fix crash at program close - Fix VST plugin version (does not run) - Dynamically drop 'Allow louder highs, even if it causes vibrations' to 0 when bass filter suspects noticeable voice vibrations. - Reduce Loudness CPU load - Check and remove static variables - Finish new de-essing filter (check what to do with the settings, remove at least some!) - Convert Multiband input to MONO, then use arrays [2][4096] --> should give speedup. - FAILED - Natural Dynamics: Fix or remove transient boost - Natural Dynamics: Add expected + strength slider per band - Finish declipping filter (clipping level detection + level reduction in dB). 1. Figure out why removal of unwanted frequencies causes flat lines at high quality setting with small overlap. This causes distortion, with this fixed repairs are MUCH better. 2. Fix MP3 correction, automatically scale down when this deteriorates the sound. --> TOP part fails! - Declipping filter: Fix low latency behavior - Always oversample clipping (configurable) - Declipping filter: Change detection at lower input levels. - "Test Right Channel" in "FM Transmitter Calibration" does not work since v6.10 (standalone) (bojcha) - Declipper window close function - check! - Seems ok - Scopes black background? - Add AGC start level - Declipping filter: Add comparting of sample history to make sure loud bursts are still detected properly (now, with 16 blocks of history, 65 samples are removed even when ignoring just 0.1%). I should also check the current block (probably with a margin of a factor 2). - Declipping filter: Use reliability of tilt detection to determine movement speed; slowly move to default tilt (configurable!) - Declipping filter: Far too many samples are marked as 'maybe/probably' clipped. Histogram not used or not cleared? - Declipping filter: Optimize tilt detection for performance. SSE2 for maximum. And keep separate smaller histograms to determine the maximum (should perform much better). - Declipping filter: Cleaned histogram must be mirrorred. After cleanup, mirror center is place where SIGMA above == SIGMA below! Only use on the lower end. Then run cleanup again! The result should contain approximately the same amount of data above and below. If not, that indicates incorrect detection. - Declipping filter: Add a long term histogram, and use maximum of short term and long term start clipping level detection. - Declipping filter: Check if 'No declipping when tilt cannot be determined' can safely be turned on. - Declipping filter: Add setting and saving of new sliders (history size, percentage of highest samples to drop, tilt detection range start, end and precision) - Declipping filter: Check why higher Quality settings causes cracking sounds. Answer: Rounding error, and too low filtering values to remove it. - Move pre-emphasis to end of processing - AGC: Separate 'Remove remaining peaks' settings for band 1 and 2 - Channels L/R swap in stand alone version when changing filtering/quality (eldoradofm) - Declipping filter: Optimize peak matching for performance: Move determination to extra preprocessing step DONE; try to change if statements to min/max or something IMPOSSIBLE. - Fix changing value of 'final limit' in Multiband when changing Loudness settings. - Save bandpass filter order - Save all new settings, also through VST interface - Declipping filter: Change default values for Maximum distortion and Step size (see Bojcha's post) - Try to improve reconstruction match (should remove artifacts for low bass + soft highs) ■ FAILED - Declipper: Fix loud bass with soft higher frequencies issue. Do something with loudest frequency vs. peak level - if it cannot fit (Madonna, Metallica) there must be clipping, otherwise there might not be. On top of this I should somehow try to preserve deformed bass sounds (if they are not hard clipped). Maybe this will work: Find loudest frequency, if it's very low. Than assume that it's clipped at the maximum restoration level (?); generate a new tone (using lowpass filter) of the same frequency and clip that at some margin below the maximum peak level. Then filter the input signal based on the FFT of the clipped signal. Finally analyze this new signal; if it is indeed clipped the filtered output will resemble a clipped waveform (visible in sample histogram; no tilt issues!) instead of a sine wave. Use the output of this as input to determine how strict the clipping detection for the input waveform should be (eg. based on normal or sinusoid signals). This is all way too difficult and it just won't work. Here's the real solution: Detect if a loud bass sound is present, if so make sure that symmetrical clipping detection is used, possibly with automatic 'maybe clipped' level adjustment. This should only slightly affect Metallica (which still sounds very reasonable with symmetrical enabled), but has a big effect on DBN - Jack is Back (which is far less affected with symmetrical enabled; auto likely/maybe adjustment based on symmetrical should help even more). Using veil solution now - Move veil processing to detilted signal - Switch to symmetrical detection if very loud very low frequencies are present NO, not needed anymore because artifacts are fixed using another mechanism - Fix veil and detilting display (in declipper window; separate windows for separate channels; no change in DrawWave code needed!) - Fix declipper display cleanup - If the reconstructed samples are close to the original samples, and there are a lot of 'clipped' samples OR there are very loud low frequencies present, don't declip. Also add texture based filtering, and use a slider to set the sensitivity. Also increase the effect of bass and reduce overall level. - Save veil settings and 'not reconstruct if like original' (STS + VST) - Fix clipper (idea: Clip, filter, filter diff against clip diff, apply). - Can I combine 2 FFT windows into 1? That would give half of the improvement of the smooth window, without CPU load increase. - Old clipper seems to sound better. (New with less steps also sounds good). Use new clipper AFTER old clipper, and use already clipped and cleaned signal as 'clean_input'. Or try a bunch of short clips, than a long one to clean up, then some short (but not very short) ones to clean up pre/post ringing. - Declipper EXTREMELY slow when feeding DC input. - Big window output is smaller than normal one - no it's not. - Bass AGC RMS display does not work (always displays 0.00) - Longer history for maximum level? - In FM calibration 38 kHz is NOT working. EDIT: And more bugs: 23 kHz is not at 23 kHz 28 kHz is not at 28 kHz 33 kHz is not at 33 kHz 43 kHz is not at 43 kHz 48 kHz is not at 48 kHz 53 kHz is not at 53 kHz. - not true, tested and all seems to work fine. There is another issue though: This filter still uses the very old windowing method and sounds crappy (artifacts). To be looked into for the next Stereo Tool version. - Remove Natural Dynamics - Partially done, does the crash come from here? No, for some reason ANY call on my system to InternetOpenUrl in a Winamp plugin causes crashes. But this happens even with version 3.03, so it's not something new - it's only something new on my system... - When "Enable FM transmitter calibration" is OFF and you click "Calibrate FM transmitter ..." and then close calibration screen again, then "Enable FM transmitter calibration" is turned ON automatically. - Use DLL name in INI file name (requested by Jazler) - Add registration to command line versions - AGC: Added 'Force level below' slider for improved peak control. If the 'down speed' causes the volume to be much higher than the calculated 'target' volume, with this slider you can force the volume to go down anyway if the difference gets too big. - Registration key must be written to DEFAULT ini file. And for stand alone version, ini file StereoTool.ini should automatically be converted to stereo_tool.ini to match existing ini files. - FM Calibration beep tones are still not corrected. - Stand alone: Check box to FM Calibration on/off missing in the FM transmitter calibration window. - Declipper artifacts ( viewtopic.php?f=14&t=3065&p=12527#p12527 ): Adjust defaults or increase bass sensitivity. - No, replaced MORE switch by slider. - Add extra bass clipping step to clipper. - Fix Loudness display - Smarter lows volume drop against highs protection: First clip using reduced highs (highs protection filter), then do it again but do NOT lower the lows below the level found in the 1st step. - NO! No longer needed. - VST: Bass AGC up/down speeds setting problem. - Optimize clipper code: Reflection, smaller overlap (stronger reflection possible?); optimize RMS search filter; optimize voice vibration removal - HPF bad since BETA080, especially with declipper enabled - Highs vs bass distortion protection: Fix window edges. - Add highs distortion sensitivity slider(s)? - AGC hangups - DC caused by clipper - Fix pre-ringing artifacts - Checkbox to combine bands 1+2 of Multiband - Phase linear highpass filter if non-phase-linear is selected to avoid DC offset. - Non phase linear highpass filter: Make steeper - Strict bass clipping - Channel swap in normal output: ASIO enabled and Use multiple CPU cores enabled - see viewtopic.php?f=14&t=3065&start=1861 - RDS: Filter out trailing spaces in word wrap mode - Protection for vocals (Dutch pirate music) - Remove or simplify 'Advanced highs protection', look at other protection mechanisms. Use smaller measurement intervals - allows lower 'maximum drop' values (hence has less impact on 'good' highs) and will catch more problematic transients. Add masking to ignore very brief drops. - Save new clipper, bandpass, multiband options (STS+VST) - Extra HPF step either just before Singleband or - if that's not used - after the bass protections for Loudness. Maybe also for phase linear HPF! - SSE version crashes (reported in email by Francis) - Robot effect when changing to lower latency. Caused by Phase Rotation at lower Quality settings. - Finish blind interface WAITING FOR FEEDBACK TODO: TEST: Only display this window when needed. - RDS issue reported here: viewtopic.php?f=15&t=3703&p=11524#p11524 partially solved - Check performance, especially of Multiband. - Update presets? (BASS_AGC etc.) 1 day BUSY - Change version number 1 hour - Release 1 hour - Add composite clipper - Hiss in low latency output from high frequency content due to no lowpass filter - NOT NEW, and will be solved by redesign anyway. - Add lowpass filter for stereo signal (will cause a lot of extra latency!) - it might be possible to avoid this latency using a Hilbert transform - Add smarter clipping detection. Maybe something much simpler suffices: Current clipping detection with threshold + flat line detection - Declipping filter: Automatically override the 3 clipping level sliders if the clipping level is detected very clearly (clear thin spike in sample value histogram). - NONSENSE, this is already done by the histogram function. But it can be made a BIT better - I think - by automatically LOWERING the 'always clipped' slider if a lot of data is present at the highest few bins (but care is needed for DBN - Jack is Back like tracks) - Declipping filter: Create a new histogram after declipping, clean up and subtract from original. - Change stand alone version to 32 bits. - Optimization: Reduce CPU usage when input is silence. - Natural Dynamics: Attempt to reduce number of bands by 2 (memory + cpu DIV 2), using bands with sloppy slopes (no interaction between bands -> memory usage DIV 2, out-of-cache reads gone, hopefull final filter gone too -> CPU DIV 2 again). - Natural Dynamics: Voices, especially in chorus, still sound weird. - Natural Dynamics: Smooth out different bands more to reduce low-bitrate-MP3-like sounds. - Natural Dynamics: Optimize situation with no interaction between bands for performance. - Natural Dynamics: Save settings in VST version - AGC: Sudden loud kicks (32:40) - much faster drop! IDEA: IGNORE FAST 2ND STAGE DROP IF THE EFFECT IS LOW. - AGC: Try frequency separator implementation (2 or 3 different volume measurements, take lowest). Should protect loud voices much better. - FM Calibration causes artifacts and latency. - Highpass before Multiband etc? Not for now. |
Author: | Brian [ Wed Oct 05, 2011 8:39 am ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: BETA127:
Preliminary and very informal testing shows no statistically meaningful change. I had to adjust settings to make the comparison "the same" (I prefer calling it "similar") due to the addition of the slider. I have also had crashes with Internet Explorer 8 and various wiki pages (not your issue, but...), so I probably need a restart, since Winamp uses IE for its' built-in browser, so there could be some memory funkiness going on.- Slight performance improvement. But it's so small I can hardly measure it (actually I'm measuring a slight decrease, but given the changes it HAS to be faster so that must be a measuring error). This does not seem the way to go to improve the performance further. Also, in other Winamp-related testing possibilities, I'm using the Bento skin, which, from what I gather, has the potential for using more CPU than some of the "classic" skins. This is kind of like how C and C++ will allow you to make serious errors (aka "provide you the noose to hang yourself"), but I may not have it configured to use a lot of CPU. More to come... Edit: You know, I've got this tickling in the cobweb-filled corner of my brain that you said you were looking into getting an i7 or you have an i7 AND that there was some support in the i7 to monitor the amount of cache used. I'm too much of a slacker right now (need to go to bed) to look further, but since you're in a time zone ahead of me, maybe you could check to see if I'm remembering correctly... ![]() |
Author: | Bojcha [ Wed Oct 05, 2011 3:45 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: Finishing up 6.20 now.
I wonder. Will you redesign filters, meaning, will whole thing be capable to better support multicore cpu-s, so and threading... After that, when I'm finished at my current job I'll have lots of time to implement loads of new things, including a composite clipper. And I really want to add Stokkemask and BS-412 support. And a dynamics expander. And a new Multiband. And a new GUI. Also one of main filters, Loudness, will it be splitted to 2-bads? Since it's much better/easier to control mix-outs (for e.g. protection) then in current workaround... etc |
Author: | hvz [ Wed Oct 05, 2011 4:51 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Hi Bojcha, 1. Yes I want to make more use of multiple cores. For the current declipper and clipper that should actually be really easy as they are both already calling the same code twice for each block of data, once for each channel. For the clipper the drawback is that I won't be able to use multiple cores if I want to make a composite clipper. About 2 bands for Loudness: Depending on what you mean, that's either not possible (at least not as far as I understand things. Lows, mids and highs each must be able to reach peak levels), or already implemented. I don't really see the current 'workaround' as you call it as a workaround - and as far as I could see on the Omnia 9 Leif is actually doing roughly the same things that I do. (Of course there might be things that are not visible). If the multiband section does a better job though, with less bands, there will be less pressure on the clipper. |
Author: | Bojcha [ Wed Oct 05, 2011 8:30 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: As far as I could see on the Omnia 9 Leif is actually doing roughly the same things that I do. (Of course there might be things that are not visible).
i'm not agree, totally.Here is ST (with Loudness at almost end, to get some bass clip strict=10, stict clip bass to= -0.7dB) ![]() Here's same sound-kick with bbp clipper only (static clip to ~-0.5) ![]() Quote: If the multiband section does a better job though, with less bands, there will be less pressure on the clipper.
With this i agree. But remember that Clipper for lows are in MB! That would be like you add "bass strict" to first two bands in MB and like that to go into loudness. And it's maybe to much to say that there is compressor between two.
|
Author: | Brian [ Wed Oct 05, 2011 8:35 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: Edit: You know, I've got this tickling in the cobweb-filled corner of my brain that you said you were looking into getting an i7 or you have an i7 AND that there was some support in the i7 to monitor the amount of cache used. I'm too much of a slacker right now (need to go to bed) to look further, but since you're in a time zone ahead of me, maybe you could check to see if I'm remembering correctly...
My "spidey sense" tingling was correct, at least with respect to the performance monitoring capabilities of the i7:![]() http://software.intel.com/sites/product ... _guide.pdf Perhaps some of that monitoring could tell you the level of L1 and L2 cache misses and other things. I think processors with an abundance of L3 are not all that negatively impacted, but if another memory I'm having about you (Hans) stating that you were noticing slowdowns on an i7, then L3 would also be something to monitor. At this point, at least for AMD processors limited to 1MB of L2 cache, unless there is an AMD penalty going on, it may be as good as it's going to get without some low-level data that you might could glean from an i7, try to reduce the impact on i7, and then see if that translates down to older processors. As for the AMD penalty, you are using an old IPP library that when linked can cause the performance issues, even though your compiler itself is newer and supposedly no longer has the penalty. |
Author: | hvz [ Wed Oct 05, 2011 9:14 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
@bojcha: is there a difference in sound? My clipped regions look wider, so I would expect the bass to be louder... @Brian: which version of ipp has this penalty??? |
Author: | Bojcha [ Wed Oct 05, 2011 9:24 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: is there a difference in sound? My clipped regions look wider, so I would expect the bass to be louder...
Yes ofcourse. As i said.. i needed to set loudness to ~x4 to get some clipping. Louder harmonics but too much bass itself.If i set loudness less, there is almost no clipping (lows) meaning it's not louder. for bbp only clipepr ON with 6dB threshold and scope shows exactly that, 6dB bass clip. and it still sound good. |
Author: | Brian [ Wed Oct 05, 2011 9:57 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
Quote: @Brian: which version of ipp has this penalty???
The older version you're using, at least that's what my feeble brain is remembering. You said that SSE2 support was being dropped with newer versions and you hadn't found any advantage to using more than SSE2, so that, and some other reasons, were why you stuck with the older version of IPP. I checked into it at the time, which was some time ago, but I believe I confirmed that whatever version you have does have the dispatch issue. I think what I had figured at the time, which still could be wrong, as who knows what I have been thinking over the past several months (???), is that your version of the compiler is clean, but when you link the IPP code, the AMD performance hit can creep in that way.If you list the versions of what you've got, I can try to reconfirm that (or you could)... |
Author: | hvz [ Wed Oct 05, 2011 10:30 pm ] |
Post subject: | Re: Stereo Tool 6.10 |
@Brian: I'm only linking the SSE2 version, the generic version is not even available in my library. I'm also not including the dispatcher...... The IPP version that I'm using is 6.1.2.041; compiler is 10.1. (Also not dispatching in the SSE2 version). |
Page 203 of 213 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |