Site Admin |
 |
Joined: Mon Mar 17, 2008 1:40 am Posts: 11425
|
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
|
|