Stereo Tool
https://forums.stereotool.com/

Stereo Tool 6.00
https://forums.stereotool.com/viewtopic.php?t=2811
Page 44 of 72

Author:  Bojcha [ Sat Jan 29, 2011 4:10 pm ]
Post subject:  Re: Stereo Tool 6.00

I just instaled at transmitter site beta28. To compare it with v6.00.

I have buffer size 18ms there, with beta28 i can lower a bit but not much 15.5-16.5ms.
But..
Same thing hapens when i move ST window around, even with High Priority in b28.
CPU goes almost to 100% and Clicks, pops starts. (Intel DualCore E5300@3GHz)

bypass is OK again and 4096 mode.

Author:  eldoradofm [ Sat Jan 29, 2011 5:24 pm ]
Post subject:  Re: Stereo Tool 6.00

Testing latest version now. I noticed when moving the window around i get clicks. But when i press restart the CPU load changes from core. And then clicks are almost gone when moving around. Even with buffer size 5000 ms i get clicks when moving the sound cards configuration window around. But that's because the CPU gets very high when i do that. I'll do some more tests.

edit: Strange thing happens when i select Real-time or High and move the window around i get clicks. When i select Normal and move the window around there are no clicks. Tested with buffer size 5000 ms.

edit: Did some testing with BA Asio @ 256 sample. I also opened stereotool and moved the taskmanager over the stereotool screen. CPU load is 100% but no clicks with BA. BA uses 2 processes. One process is using about 28% and the other 0%. When i move the taskbar over the stereotool window and the CPU goes to 100% the other process gets higher than 0% to about 8%.

Author:  hvz [ Sat Jan 29, 2011 10:13 pm ]
Post subject:  Re: Stereo Tool 6.00

Brian: Is that with all the other filters disabled? And you're sure that you're using non phase linear? I've done another check, and I do see that at 35 Hz it's less effective than at 150 Hz, but still the bass level after filtering peaks at about 70 dB below the original bass level.

However, if I enable Bass Boost (latency 512), it's suddenly only about 30 dB lower. Adding Multiband as well lowers it to about 20 dB.

Author:  hvz [ Sat Jan 29, 2011 11:53 pm ]
Post subject:  Re: Stereo Tool 6.00

I've moved screen updates to a lower (IDLE) latency thread, and if a full screen redraw is requested I'm only allowing one request every 16 ms. At the very least the window behavior 'feels' more responsive now (actions are performed immediately, without waiting for a bunch of screen redraws every time).

I've tried what happens if I set the priority of this new thread very high - and that does seem to impact the ASIO output a lot.

Now I just hope that doing the opposite (setting it to IDLE) will also have the opposite effect.

Note: If it doesn't seem to work, please also try running the executable at REALTIME priority - that turns off some Windows mechanism that make sure that every thread, regardless how low its priority is, gets some time to execute...

Author:  hvz [ Sun Jan 30, 2011 1:06 am ]
Post subject:  Re: Stereo Tool 6.00

BETA601-029:
- GUI updates on IDLE priority thread
NO CHANGES TO ANYTHING ELSE!

Winamp DSP plugin: http://www.stereotool.com/download/dsp_ ... 01-029.exe
Stand alone version: http://www.stereotool.com/download/ster ... 01-029.exe
VST version: http://www.stereotool.com/download/vst_ ... 01-029.dll
VST version (No SSE2): http://www.stereotool.com/download/vst_ ... 01-029.dll
Command line version: http://www.stereotool.com/download/ster ... 01-029.exe
Linux command line version: http://www.stereotool.com/download/ster ... ETA601-029 [not available]
Linux GUI version: http://www.stereotool.com/download/ster ... ETA601-029 [not available]


What remains for 6.01:
- Multiband: Adjust band 3 (and others?) 'soft limit' behavior at very low latencies. Maybe: Also check clipping (also for band 3, might be re-enabled!). DONE! - 1 hour
- Multiband: Adjust extreme EQ settings before processing to avoid issues caused by steepness. - 1 hour
- Multiband: Add 'Enable' button for steepness. 1 hour
- Performance: Multiband steepness: Moving UP can be done inside current loop, no separate loop needed. Maybe down too. Currently Multiband is FAR more expensive than before. - DONE, solved in a different way. - 1 day
- MAYBE: Make Steepness smarter. That would much better preserve the audio, especially at very low latencies! How: Instead of setting all the levels at AT MOST the level of neighboring bands + a bit, combine adjacent bands, determine total output level, and then fix it such that this combined output level is approached more. (So one very low, one very high --> one a bit less low, one a bit less high instead of both low).
- Fix NOISE GATE behavior in VST plugin
- Fix 'red output bar' issue. DONE - 1 day?
- Fix Highpass filter for higher input frequencies.
- Dynamic audio processing window: I've tested this at latency 512, and there it helps. But I don't have a clue what the effect is on higher latencies. They might also sound better, but they could just as well sound worse. - 2 hours. Result: 512 and 1024 got better, 2048 and 4096 got worse. So only turned on for the first two.
- Dynamic audio processing window: CPU load is probably a lot higher (haven't measured it yet) due to the dynamic adjustment of the behavior. The dynamic code was originally intended to be executed only once when a latency was selected, and it's not optimized at all. Fixed, CPU load reduced, and for latency 2048 and 4096 there's no difference. - Optimize, 1 day
- Reduce downsampling frequency because currently very high frequencies (21-22 kHz @ 176.4 kHz input sampling rate) in the input can cause spikes even if Hard Limit is used. DONE - 1 hour
- Vibrations caused by Very deep bass distortion protection at latency 1024. Also (but far less noticeable) in higher latency modes. No issue at latency 512 because there it's turned off. - Fixed, turned it on for latency 512, and turned other bass filter OFF for 512 because it caused distortion.
- Check difference in behavior between 44.1 and 48 kHz input for multiband! This could potentially result in really big differences. - No
- Performance: Multiband: Remove sqrt(sqrt(cos())), pow(x, .75) etc. - too expensive, replace by lookup table. - NOT FOR NOW, would increase memory usage and hence risk more page faults, so it's not sure that this would improve the performance. - 2 hours
- Performance: Move chain variables to a single Struct DONE - 1 hour
- Latency: Attempt to reduce Composite Limiter sampling latency - there is no audio anywhere near the filter frequency, so a much shorter delay might still work very well - DONE, composite limiter latency is now 0.9 ms at latencies 512 and 1024 (~1.7-2 ms at higher latencies)! It can be reduced a step further (to 0.5 ms) if I allow a bit more distortion - don't know if that's useful.
- Chris: "I still hear diff on Bass and kick between Beta 16 vs Beta 08 on 2048 latency. I hear more bass and kick on Beta 08. Pls check!" - No longer true, apparently fixed in BETA020... (Which does not make sense at all, but anyway)
- And I need to check how much the performance is impacted by the latency improvements, in the case where no upsampling and downsampling is needed. This seems to be impacted way more than I expected (could also be Multiband steepness --> Not anymore, fixed). Ah, got part of it: 1% is steepness. Which leaves about 3% to be explained. Het is NIET de FM Hard Limit - ook al bereken ik daar nu meer van. Wellicht chain2 calls? - No, wrong again. Decreased Steepness grain match from every 4 to every 16 samples, extra CPU load is now only 2% - acceptable.
- Fix BYPASS mode in stand alone version DONE
- Fix 4096 in stand alone version
- ASIO latency: Add configurable ASIO granularity
- ASIO latency: Add active output push instead of reactive. - No longer needed - I think. Data is now sent to output BEFORE processing. And there's always some processing delay. Might become more interesting when CPU load goes down.
- Check/fix Bass Boost ringing reported by Bojcha for higher 'upto' frequencies. REDUCED it a bit, hope that suffices... Less steep filtering (ie. bigger difference between first 2 frequencies) helps.
- Attempt to set GAUSS back to 0 - gives MUCH better processing of most filters (no high frequency noise). BUT: Loudness effect in Bjork - It's Oh So Quiet - can that be resolved in another way? - WAIT FOR FEEDBACK 1 day?
- Frequencies between 60 and 75 Hz are not handled properly yet, and can still cause vibration effects at soft high frequencies in latency 512 mode. (But FAR less than in version 6.00). Fixing this will probably increase artifacts for bass in this frequency range. - WAIT FOR FEEDBACK
- Bojcha: "There is strange "tone" at LEFT channel (tested ST dsp), caused by Bass Boost, but not always!" - Seems gone now - WAITING FOR FEEDBACK
- ASIO latency: Make option to increase ST priority. BUSY
- Change ASIO latency interface (lower values, more fine-grained; display actual latency after rounding)
- Check ASIO on single core behavior...


Questions:
* Multiband: Question: Is Steepness behavior ok?
* Loudness: QUESTION: The changed Punch behavior, is that good or bad? Should I attempt to let Punch behave as it did in the past as much as possible, or not?

At latency 512, Steepness can now be set a bit higher than before because there are far less artifacts.


For 6.02:
- It's possible to send data to an audio buffer AFTER I've returned control to the driver if I call ASIOOutputReady() when I'm ready
- Add non-phase linear Multiband stage between AGC and incoming_copy_needed.

Author:  eldoradofm [ Sun Jan 30, 2011 2:31 am ]
Post subject:  Re: Stereo Tool 6.00

Is there a difference between selecting Realtime priority in taskbar and in stereotool? If there is no difference i still get some click after some time and when moving the window around. Also when selecting Use multiple CPU core for processing. Now buffer at 6.5 ms but it's probably the same as before and has to be set even higher. There must be some special thing why BA can work without clicks with CPU load of 100%. When moving the taskbar around i get around 60% cpu load now. But still clicks so it must be set higher than 6.5 ms. Will test some more tomorrow.

Author:  hvz [ Sun Jan 30, 2011 2:47 am ]
Post subject:  Re: Stereo Tool 6.00

@eldoradofm: It _should_ be the same, but I've seen that on my Vista system it's not. So you could try setting it in Stereo Tool to 'High' and then additionally in task manager to REALTIME.

Don't bother about more testing (except what I said above!) - if it's not perfect, something is still wrong. I guess I'll need to ask on some Windows expert forum what I should do about this - it must be possible to solve it, if everything else fails by using 2 separate processes as Bojcha said BA uses. Other processes don't seem to interfere, it's only the GUI display in Stereo Tool itself. So either I need to find a way to make that thread stop when processing is busy, or I need to move it to a separate process. That would definitely solve everything, but it's more work - so I'd like to avoid that if possible...

Author:  hvz [ Sun Jan 30, 2011 4:27 am ]
Post subject:  Re: Stereo Tool 6.00

If you're getting hiccups (clicks) when moving the ST windows, and not when moving anything else, I would be interested in the following:

Run 2 ST windows, use one for playback (you can set the other to an invalid sound card or something to disable it); then let the 2nd (non-playback) window be redrawn the whole time.

I'm curious if that still causes clicks. If so, my drawing method is wrong. Because I'm getting the impression that it could very well be that - despite the fact that my own drawing routines are ran at the lowest possible priority - this is not the case when the images are displayed on the ST window by Windows.

Especially on multicore systems it doesn't make a lot of sense that a (lower priority) stops the processing, UNLESS there's something in Windows that blocks everything when images are displayed on the screen. And that is actually very well possible... In ST, some of the images that are displayed are pretty big, especially when the window is maximized.


I did some tests myself, and here I see that, even if I set the priority of the ST process that is actually processing audio to REALTIME, screen updates (actually ANY screen updates, also of other windows) do affect the displayed buffer filling in Stereo Tool's sound card window. And that's not what I would expect based on the description of threads and processes on Windows.

Author:  hvz [ Sun Jan 30, 2011 4:31 am ]
Post subject:  Re: Stereo Tool 6.00

BETA601-030:
- Finally an audio processing change again: There was an issue with loud deep bass sounds and soft highs, where the highs started to vibrate at the lowest latency. This problem was present in version 6.00, then got removed in one of the early 6.01 BETA's, but it was re-introduced when I optimized the audio processing window shape for less bass artifacts. That's solved now, unfortunately at the cost of some more artifacts for very deep bass sounds (mainly for 20-65 Hz, and a bit for 110-160 Hz) - still far less artifacts than before though. This change affects latency 512 and (slightly) latency 1024. Best song to test: Bjork - It's Oh So Quiet.

Winamp DSP plugin: http://www.stereotool.com/download/dsp_ ... 01-030.exe
Stand alone version: http://www.stereotool.com/download/ster ... 01-030.exe
VST version: http://www.stereotool.com/download/vst_ ... 01-030.dll
VST version (No SSE2): http://www.stereotool.com/download/vst_ ... 01-030.dll
Command line version: http://www.stereotool.com/download/ster ... 01-030.exe
Linux command line version: http://www.stereotool.com/download/ster ... ETA601-030 [not available]
Linux GUI version: http://www.stereotool.com/download/ster ... ETA601-030 [not available]


What remains for 6.01:
- Multiband: Adjust band 3 (and others?) 'soft limit' behavior at very low latencies. Maybe: Also check clipping (also for band 3, might be re-enabled!). DONE! - 1 hour
- Multiband: Adjust extreme EQ settings before processing to avoid issues caused by steepness. - 1 hour
- Multiband: Add 'Enable' button for steepness. 1 hour
- Performance: Multiband steepness: Moving UP can be done inside current loop, no separate loop needed. Maybe down too. Currently Multiband is FAR more expensive than before. - DONE, solved in a different way. - 1 day
- MAYBE: Make Steepness smarter. That would much better preserve the audio, especially at very low latencies! How: Instead of setting all the levels at AT MOST the level of neighboring bands + a bit, combine adjacent bands, determine total output level, and then fix it such that this combined output level is approached more. (So one very low, one very high --> one a bit less low, one a bit less high instead of both low).
- Fix NOISE GATE behavior in VST plugin
- Fix 'red output bar' issue. DONE - 1 day?
- Fix Highpass filter for higher input frequencies.
- Dynamic audio processing window: I've tested this at latency 512, and there it helps. But I don't have a clue what the effect is on higher latencies. They might also sound better, but they could just as well sound worse. - 2 hours. Result: 512 and 1024 got better, 2048 and 4096 got worse. So only turned on for the first two.
- Dynamic audio processing window: CPU load is probably a lot higher (haven't measured it yet) due to the dynamic adjustment of the behavior. The dynamic code was originally intended to be executed only once when a latency was selected, and it's not optimized at all. Fixed, CPU load reduced, and for latency 2048 and 4096 there's no difference. - Optimize, 1 day
- Reduce downsampling frequency because currently very high frequencies (21-22 kHz @ 176.4 kHz input sampling rate) in the input can cause spikes even if Hard Limit is used. DONE - 1 hour
- Vibrations caused by Very deep bass distortion protection at latency 1024. Also (but far less noticeable) in higher latency modes. No issue at latency 512 because there it's turned off. - Fixed, turned it on for latency 512, and turned other bass filter OFF for 512 because it caused distortion.
- Check difference in behavior between 44.1 and 48 kHz input for multiband! This could potentially result in really big differences. - No
- Performance: Multiband: Remove sqrt(sqrt(cos())), pow(x, .75) etc. - too expensive, replace by lookup table. - NOT FOR NOW, would increase memory usage and hence risk more page faults, so it's not sure that this would improve the performance. - 2 hours
- Performance: Move chain variables to a single Struct DONE - 1 hour
- Latency: Attempt to reduce Composite Limiter sampling latency - there is no audio anywhere near the filter frequency, so a much shorter delay might still work very well - DONE, composite limiter latency is now 0.9 ms at latencies 512 and 1024 (~1.7-2 ms at higher latencies)! It can be reduced a step further (to 0.5 ms) if I allow a bit more distortion - don't know if that's useful.
- Chris: "I still hear diff on Bass and kick between Beta 16 vs Beta 08 on 2048 latency. I hear more bass and kick on Beta 08. Pls check!" - No longer true, apparently fixed in BETA020... (Which does not make sense at all, but anyway)
- And I need to check how much the performance is impacted by the latency improvements, in the case where no upsampling and downsampling is needed. This seems to be impacted way more than I expected (could also be Multiband steepness --> Not anymore, fixed). Ah, got part of it: 1% is steepness. Which leaves about 3% to be explained. Het is NIET de FM Hard Limit - ook al bereken ik daar nu meer van. Wellicht chain2 calls? - No, wrong again. Decreased Steepness grain match from every 4 to every 16 samples, extra CPU load is now only 2% - acceptable.
- Fix BYPASS mode in stand alone version DONE
- Fix 4096 in stand alone version
- ASIO latency: Add configurable ASIO granularity
- ASIO latency: Add active output push instead of reactive. - No longer needed - I think. Data is now sent to output BEFORE processing. And there's always some processing delay. Might become more interesting when CPU load goes down.
- ASIO latency: Make option to increase ST priority. DONE
- Check ASIO on single core behavior... DONE, option available
- Change ASIO latency interface (lower values, more fine-grained; display actual latency after rounding)
- Check/fix Bass Boost ringing reported by Bojcha for higher 'upto' frequencies. REDUCED it a bit, hope that suffices... Less steep filtering (ie. bigger difference between first 2 frequencies) helps.
- Attempt to set GAUSS back to 0 - gives MUCH better processing of most filters (no high frequency noise). BUT: Loudness effect in Bjork - It's Oh So Quiet - can that be resolved in another way? - WAIT FOR FEEDBACK 1 day?
- Frequencies between 60 and 75 Hz are not handled properly yet, and can still cause vibration effects at soft high frequencies in latency 512 mode. (But FAR less than in version 6.00). Fixing this will probably increase artifacts for bass in this frequency range. - WAIT FOR FEEDBACK - Make this level depend on the input level (gives less artifacts when not needed)
- Bojcha: "There is strange "tone" at LEFT channel (tested ST dsp), caused by Bass Boost, but not always!" - Seems gone now - WAITING FOR FEEDBACK
- Something is wrong with ASIO if there's only one channel instead of 2.
- Hangups during closing of stand alone version. (hThread)

Questions:
* Multiband: Question: Is Steepness behavior ok?
* Loudness: QUESTION: The changed Punch behavior, is that good or bad? Should I attempt to let Punch behave as it did in the past as much as possible, or not?

At latency 512, Steepness can now be set a bit higher than before because there are far less artifacts.


For 6.02:
- It's possible to send data to an audio buffer AFTER I've returned control to the driver if I call ASIOOutputReady() when I'm ready
- Add non-phase linear Multiband stage between AGC and incoming_copy_needed.
- Use double overlap (allow quality levels > 100%) to strongly reduce artifacts
- Introduce extra latency between 512 and 1024 by upsampling or downsampling

Author:  hvz [ Sun Jan 30, 2011 5:16 am ]
Post subject:  Re: Stereo Tool 6.00

Here's another interesting version:
http://www.stereotool.com/download/radi ... TA030A.exe

It does everything EXCEPT actually sending the image to the window. But it does draw everything in memory. If this version can run without any clicks when "redrawing" (invisible!) the window, it must be in the screen updates - if that's indeed the case, I can solve it by displaying big areas in parts.

Note: This is not an installer, you can run it directly. The windows displays NOTHING, so to go to the ASIO setting you'll have to "guess" where the "Configure audio" button is... :shock:

Page 44 of 72 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/