|
Rockbox mail archiveSubject: Dynamic Range Compressor revisitedDynamic Range Compressor revisited
From: Ryan Billing <ryjobil_at_gmail.com>
Date: Tue, 24 Sep 2013 22:38:44 -0700 All, I left a forum post generally outlining what I have in mind, but have finally brought the idea to reality and have done some initial testing to show myself it generally does what I expect. Find below a summary of what I have been hacking at. The change to the compressor revolves around making the compressor sound more natural. The point of a good compressor is to achieve an overall perception of loudness on dynamic music without making it sound unnaturally processed. My initial observation of the compressor as implemented is a sound that is distorted on the transients and mechanical on the release -- for me completely unusable except for voice recordings. For most users, I think they are just happy there IS a compressor, and that they can make dynamic music LOUD in noisy environments (such as a car). Probably some people will need to be sold on the idea that there is any need for improvement. The changes of note (to the average user) is this: Attack Time -- The goal is to preserve some dynamic life, particularly at sudden dynamic onsets. Exponential attack/release -- benefit from the natural-sounding characteristic found in analog compressors. To my own ears, the response is "alive", natural sounding. Percussive instruments become more bright, real. More details are in my commit message, and the most detail in the code, and comments in the code. There is one kludge I need to clean up, and that is the bit format. I just happened to hard-code the gain for the limiter, but I really need to have that final bit shift informed by the DSP format struct or it will be broken in any case where the bit format differs from my test case (Sansa Fuze V2, ogg vorbis format music). I mention that because if any of you try this, and it sounds either really quiet, or horribly distorted, it's because the format is different than how it is hard-coded, and for that I apologize. I will fix it in the next push if anybody shows interest in my added features. Otherwise I will probably abstain from fixing it unless I personally get into trouble with this kludge. For now, I want to stick my probes out and find out whether there is enough interest in this to make it worth my time to clean up the details (memory usage, efficiency optimizations, code formatting, etc). Thank you to any who give this a try. Best Regards, Ryan Received on 2013-09-25 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |