All times are UTC+02:00




Post new topic  Reply to topic  [ 180 posts ]  Go to page Previous 15 6 7 8 918 Next
Author Message
PostPosted: Sun May 20, 2012 4:59 pm 

Joined: Sun Dec 12, 2010 2:26 pm
Posts: 885
OK. Tested.

Question:

If I use 6.30, the "Always clip bass below" slider actually scales all the way down to 0%, and does what it claims to do, which is clip bass to 0% (remove).

When I try the same with 6.31 BETA006, setting to 0% makes it to where no clipping happens, and in fact, it seems to end up making it equivalent to marking "Bypass All", or pressing "Reset".

Further, there appears to be an absolute floor, somewhere in the vicinity of -12, as going all the way down to -39.8 (1%) seems very similar to -12 (25%).

So, are we sure that the "fix" isn't bugged?


Top
   
PostPosted: Sun May 20, 2012 9:47 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
@Brian: Cause found, thinking about solution...


Top
   
PostPosted: Sun May 20, 2012 10:19 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
Volume problem at low clipping levels seems to be solved now, although the output seems slightly less constant now. (That might be correct though, not really sure; there is slightly more bass now). The CPU load issue is still there...


Top
   
PostPosted: Sun May 20, 2012 11:44 pm 

Joined: Sun Dec 12, 2010 2:26 pm
Posts: 885
Quote:
Volume problem at low clipping levels seems to be solved now, although the output seems slightly less constant now. (That might be correct though, not really sure; there is slightly more bass now). The CPU load issue is still there...
Honestly, to me it seems that the change essentially makes the -6 dB setting in the beta perform roughly equivalent to -1.5 to -2.0 db in 6.30, thus my confusion about the necessity of the change. This seems to be another "volume to 11" issue, where high loudness levels are leading to a "need" to clip at significantly lower levels so as to be able to fit mids and highs in, but I know I'm on the losing side of that argument...

As for the load issue, you said you computed a value 100 times. Are 100 calculations really needed, could fewer calculations still give the same basic result (thinking of sampling, oversampling, and Integrals)? Does the calculation have a dependency and/or is the calculation blocking in any way? C++ app still? I'm starting to (slowly) read about C#...since it's all the rage now (never mind how Java was all the rage 3-5 years ago)...


Top
   
PostPosted: Sun May 20, 2012 11:52 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
Actually this problem already occurs (as Bojcha wrote) when even VERY mild clipping takes place. And with the fix that I just made it should behave closer to 6.30 again - but without the artifacts.

C#... Really? If you want it to run 5 times slower than it already is...

The problem with the calculation is that there's no "simple" way to change it into something else. I actually tried by making a histogram and doing calculations based on that (meaning 1 step instead of 100), but the end result is too much different. There still might be a solution, just still thinking about it.


Top
   
PostPosted: Mon May 21, 2012 1:13 am 

Joined: Sun Dec 12, 2010 2:26 pm
Posts: 885
Quote:
Actually this problem already occurs (as Bojcha wrote) when even VERY mild clipping takes place. And with the fix that I just made it should behave closer to 6.30 again - but without the artifacts.
To be honest, I really don't hear much of an issue, especially with the AGC settings that I have, which actually allow Band 2 (and 3) to go ABOVE Band 1, unlike nearly everything out there, which has them so tightly bound that if someone is using "2 Band", it really is 1 Band.

In part of my testing the track, I also noticed that it was worse with a high AGC startup input level, which causes the spike protection to kick in fairly aggressively.

I guess the part I keep trying to bring up is that a lot of these issues are "Loudness War" issues. If you overdrive something, it's going to distort. You may want to consider whether you can build in separate modules for 1770 and 128 compatibility, and a "legacy" section for extreme loudness diehards...
Quote:
C#... Really? If you want it to run 5 times slower than it already is...
I do not have enough knowledge to debate this. What I can say is that I've done a little bit of Google-fu and have found a few articles that slammed C# performance that had rebuttals from C# developers saying that the source code used for the tests were poorly written for C#, and that they rewrote the code and reran the tests and got significantly better results.
Quote:
The problem with the calculation is that there's no "simple" way to change it into something else. I actually tried by making a histogram and doing calculations based on that (meaning 1 step instead of 100), but the end result is too much different. There still might be a solution, just still thinking about it.
Beyond the realm of my math knowledge. I stopped doing more than "business math" in 1993, and what you don't use, you lose...


Top
   
PostPosted: Mon May 21, 2012 5:42 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
Well, for one, in C# you cannot use SSE2 - which allows performing 4 calculations with 1 CPU instruction. Also, it needs to compile things on-the-fly. It *could* of course do this and optimize the crap out of it, but if I tell you that my C++ compiler needs 5 minutes to optimize everything, you can imagine that with C# - where the compilation occurs on-the-fly on the machine where the software is running - this just isn't possible.

In the mean time I've updated the mechanism that I was using to find the correct bass clipping level, it now works downto 0% again (well it stops near 1%) and the calculation now takes 7 steps instead of 100. This change also allowed me to remove some other steps. So I hope that the CPU load is lower again now - haven't tested it yet (I'm still waiting for the compilation to finish).

This new version also contains a BS412 bug fix (occasional volume drops occured about once or twice a day, they should be gone - or very very brief and almost not noticeable - now).


Top
   
PostPosted: Mon May 21, 2012 8:16 pm 

Joined: Sun Dec 12, 2010 2:26 pm
Posts: 885
Quote:
Well, for one, in C# you cannot use SSE2 - which allows performing 4 calculations with 1 CPU instruction. Also, it needs to compile things on-the-fly. It *could* of course do this and optimize the crap out of it, but if I tell you that my C++ compiler needs 5 minutes to optimize everything, you can imagine that with C# - where the compilation occurs on-the-fly on the machine where the software is running - this just isn't possible.
The more I read about things, the more I've come to the conclusion that for math-heavy code (Science-related projects, gaming, realtime processing), C# is just the wrong tool to use for that job. To compare with real world examples, a wrench won't do a good job raking up leaves, and a rake wouldn't do a good job in tightening a pipe/bolt/whatever. That, however, does not mean that either the wrench or the rake is a "bad tool". You just have to use the right tool for the task that you're trying to get done.

It's been 4 years since I last did anything much with Java, and while reading the C# book last night, so much of it reminded me of Java. The part I'm currently on is about properties. Java has this too, and the concept is the same. You allow private data members to only be modified using a public set method, and the private members are read through a public get method. C# allows single inheritance, multiple interfaces. C++ programmers seem to get hung up on not having multiple inheritance, and don't seem to understand what multiple interfaces allow (you implement the functionality of the additional interface in your class, so you technically do have "multiple inheritance", just differently done). There are also Extensions, which also help with this...
Quote:
In the mean time I've updated the mechanism that I was using to find the correct bass clipping level, it now works downto 0% again (well it stops near 1%) and the calculation now takes 7 steps instead of 100. This change also allowed me to remove some other steps. So I hope that the CPU load is lower again now - haven't tested it yet (I'm still waiting for the compilation to finish).
In theory, the CPU load should be less...


Top
   
PostPosted: Mon May 21, 2012 11:14 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
I love those properties - I really miss them in C++... For developing things, C# is much faster than C++ - a few years ago I wrote an application to be able to use the web browser from my pc on my tv with the tv's remote, and it took me one day to get it working - including entering URL's in SMS-style, mouse cursor control with arrow keys etc. Try that in C++ :(


Top
   
PostPosted: Mon May 21, 2012 11:29 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11425
- BS412 fix
- Bass clipping fix (see earlier posts); CPU load *should* be down again...
- New Loudness settings are saved to disk (AGC not yet, because I'm not completely happy with it yet).

Stand alone: http://www.stereotool.com/download/ster ... 31-007.exe
DSP: http://www.stereotool.com/download/dsp_ ... 31-007.exe
VST: http://www.stereotool.com/download/vst_ ... 31-007.dll


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 180 posts ]  Go to page Previous 15 6 7 8 918 Next

All times are UTC+02:00


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited