Thread: Re: [Audacity-devel] Smart Normalization
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: <Mar...@ao...> - 2006-06-25 17:33:12
|
Andy I see where you are coming from but I think you need to consider another case: two tracks with 'low' level and one loud peak (which I assume is just below clipping), but where the 'low' levels are different. What you really want is for these 'low' levels to be adjusted to the same listening level, and have the 'flat' tracks to that same listening level as well. This would minimise the manual control of the volume and only invoke only occasional tutting from the passenger seat. I am thinking that what you need to do is compress all the tracks for your CD (a little) then measure the rms level of each one, finding the smallest. Then normalise them all to have this same smallest rms level. Another alternative would be to use more severe compression, but that may not be a good idea (see _http://www.cdmasteringservices.com/dynamicrange.htm_ (http://www.cdmasteringservices.com/dynamicrange.htm) for an opinion about this). Just a thought Martyn In a message dated 24/06/2006 22:02:40 GMT Daylight Time, An...@xe... writes: I would like to start a thread about a possible "Smart Normalization" effect. ----------------------------------------------------------------------------- I am contemplating developing algorithms and creating a simple, stand-alone test program for what I call a Smart Normalization effect. By this I mean an effect that analyzes the overall amount and degree of the louder parts of a WAV file, and selects one value by which to normalize the file. I would first like to collect some thoughts on the subject from the group. After I complete a successful build, if there is sufficient interest, I could make my build available. Background ---------- About a year ago, Martyn Shaw provided a build (1.2.4) that incorporated a greatly improved Compressor Effect. I have made considerable use of this build to provide dynamic range compression (DRC) so as to listen to music that has a particularly wide DR for when I am in a noisy environment. This effect works well. However, the normalization does not work well for me, and the Gain adjustment for the purpose is tedious. Problem ------- For me, there are two CD listening cases: 1) Quiet. I'm in my living room, the house is quiet, and I have plenty of time to sit down and enjoy some classical music. I this case, I am interested in neither DRC nor Normalization. The music level can satisfyingly go from a whisper to a thundering crescendo. => For me, this Quiet case occurs infrequently. 2) Noisy. I'm in the car with my spouse, I've used DRC to boost the whisper, and the crescendo is loud, but brief => no problem. The next track has a long passage that is all at about the same maximum level, and which has been normalized to the same level as the above crescendo. => Even before I can get to the volume control, "CAN'T YOU TURN THAT DOWN?". It's when I cut a CD for the noisy environment that I wish to employ Smart Normalization. Core Issue - Track Setback -------------------------- Lets first consider the core concepts, and to simplify issues, lets initially not consider DRC, and assume there are no spikes to be concerned about. The task is to determine a normalization level (NL) for a track. Define a headroom level (HR <= 0 dB) as that level which one would never want to exceed. I would think that HR would be a constant, valid for all tracks (spikes aside). Further define the Setback for a track as: Setback = HR - NL Defined this way, Setback is >= 0 DB. Consider for now only two extreme cases: Peak: A selection that has only one, very brief peak passage, and the remainder is low. Flat: A selection that has a majority of its material at approximately the same level. For the Peak track, almost by definition, NL = HR, and Setback = 0. For the Flat track, assume that an NL = NL_FT has been determined. For this case Setback = FullSetback = HR - NL_FT. Then, NL for any intermediate case will be constrained by: NL_FT < NL < HR. Consequently, the Setback for any particular track is constrained by: 0 dB <= Setback <= FullSetback *** The first task is then to determine/decide what the value of FullSetback should be. *** The exact value is likely to be somewhat subjective, and will likely need to be a parameter of the Effect. "Throwing a dart", I would say between 6 and 10 dB. Subsequently ------------ In general, the Setback value for a track needs to be determined by an algorithm, yet to be determined. For any particular track there needs to be: 1) Criteria to determine if its Setback should be 0 dB 2) Criteria to determine if its Setback should be FullSetback 3) Formulae to determine the Setback value for intermediate cases. Finally ------- If/when there is a sufficient 'handle' on the above, one can consider other topics, such as: o Spikes (particularly from DRC), and the o Interrelationship with the Compression Effect Have I stirred the pot? AndyB Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Audacity-devel mailing list Aud...@li... https://lists.sourceforge.net/lists/listinfo/audacity-devel |
From: <Mar...@ao...> - 2006-06-30 00:06:45
|
Andy I think we are on the same wavelength here - don't compress each track too much, keep the volume level pretty constant so the wife doesn't keep complaining and reaching for the vol knob, keep the DR to about 20dB (depending on age/price of car/wife), do all this automatically for latest CD purchased/borrowed using same parameters as last CD purchased/borrowed and be able to redo with modified parameters if not satisfactory. And do it better than radio stations. I have additional parameters in the back seats who won't let me play what I want unless I turn up the volume until I can't hear them. Or wife. I still think that a better compressor is required to turn down the sustained loud passages, still make the buggers jump on the sudden loud bits. Where do you intend taking this from here? Martyn In a message dated 25/06/2006 22:45:27 GMT Daylight Time, An...@xe... writes: Hi Martyn, I glad that you are one of the early responders. Mar...@ao... wrote: >Andy >I see where you are coming from but I think you need to consider another >case: two tracks with 'low' level and one loud peak (which I assume is just >below clipping), but where the 'low' levels are different. What you really want >is for these 'low' levels to be adjusted to the same listening level, and >have the 'flat' tracks to that same listening level as well. This would >minimize the manual control of the volume and only invoke only occasional tuting >from the passenger seat. I agree that using only Normalization will not fix your case. It requires Compression. The scope of my original email was to address cases that could be fixed by using only Normalization, and how to fix them. Then to address cases that require both Normalization and Compression. I expect that the final Effect might need to be Compression 'married' with Smart Normalization. I was attempting to Divide and Conquer. >I am thinking that what you need to do is compress all the tracks for your >CD (a little) then measure the rms level of each one, finding the smallest. >Then normalize them all to have this same smallest rms level. My end objective is to do this all automatically, that is to incorporate my judgments of what to do into algorithms. I think that at least two passes will be required: o A statistical analysis pass that will produce both a o Temporal peak level curve, and a o Histogram of levels for the whole track o A compression/normalization pass >Another alternative would be to use more severe compression, >but that may not be a good idea Definitely not good -- some of my CDs were compressed too much. My original testing of the car environment concluded that the compressed DR needed to be about 20 dB. This value however did not explicitly take into account possible Setback. The 20 dB is about correct for the "Flat track" below. Assume that the Flat track is Setback by 8 dB. This would allow the Peak track to have a DR of 8 dB more: 28 dB. > (see http://www.cdmasteringservices.com/dynamicrange.htm >for an opinion about this). They have implicitly assumed a Quiet listening environment (see below). For this case, I completely agree with the article, except that most Classical CDs still have a full dynamic range (DR). I observe that their use of RMS CD level is a valid statistic for their purpose, but it may not be sufficient for my purpose. Additionally, they completely omit the situation of a Noisy listening environment. Not so with some radio stations. Long ago, I had occasion to call the Engineer of a local classical radio station about compression. They employed a 6-stage, programmable compressor. It was programmed to provide a degree of compression that was: o Highest during commuting hours (cars) o Lower during daytime hours o Lowest during evening hours => More noise, more compression. >In a message dated 24/06/2006 22:02:40 GMT Daylight Time, An...@xe... >writes: >I would like to start a thread about a possible "Smart Normalization" effect. >----------------------------------------------------------------------------- >I am contemplating developing algorithms and creating a simple, >stand-alone test program for what I call a Smart Normalization effect. >By this I mean an effect that analyzes the overall amount and degree of >the louder parts of a WAV file, and selects one value by which to >normalize the file. > >I would first like to collect some thoughts on the subject from the >group. After I complete a successful build, if there is sufficient >interest, I could make my build available. > >Background >------------ >About a year ago, Martyn Shaw provided a build (1.2.4) that incorporated >a greatly improved Compressor Effect. I have made considerable use of >this build to provide dynamic range compression (DRC) so as to listen to >music that has a particularly wide DR for when I am in a noisy environment. > >This effect works well. However, the normalization does not work well >for me, and the Gain adjustment for the purpose is tedious. > >Problem >------- >For me, there are two CD listening cases: >1) Quiet. I'm in my living room, the house is quiet, and I have plenty >of time to sit down and enjoy some classical music. I this case, >I am interested in >neither DRC nor Normalization. >The music level can satisfyingly go from a whisper to a thundering >crescendo. For me, this Quiet case occurs infrequently. > >2) Noisy. I'm in the car with my spouse, I've used DRC to boost the >whisper, and the crescendo is loud, but brief => no problem. >The next track has a long passage that is all at about the same > maximum level, and which has been normalized to the same level >as the above crescendo. >=> Even before I can get to the volume control, > "CAN'T YOU TURN THAT DOWN?". > >It's when I cut a CD for the noisy environment that I wish to employ >Smart Normalization. > >Core Issue - Track Setback >-------------------------- >Lets first consider the core concepts, and to simplify issues, lets >initially not consider DRC, and assume there are no spikes to be >concerned about. > >The task is to determine a normalization level (NL) for a track. >Define a headroom level (HR <= 0 dB) as that level which one would never >want to exceed. I would think that HR would be a constant, valid for all tracks > (spikes aside). > >Further define the Setback for a track as: Setback = HR - NL >Defined this way, Setback is >= 0 DB. > >Consider for now only two extreme cases: >Peak: A selection that has only one, very brief peak passage, and the > remainder is low. >Flat: A selection that has a majority of its material at > approximately the same level. > >For the Peak track, almost by definition, NL = HR, and Setback = 0. >For the Flat track, assume that an NL = NL_FT has been determined. >For this case Setback = FullSetback = HR - NL_FT. >Then, NL for any intermediate case will be constrained by: >NL_FT < NL < HR. > >Consequently, the Setback for any particular track is constrained by: >0 dB <= Setback <= FullSetback > >*** The first task is then to determine/decide what the value of >FullSetback should be. *** >The exact value is likely to be somewhat subjective, and will likely >need to be a parameter of the Effect. "Throwing a dart", I would say >between 6 and 10 dB. > >Subsequently >------------ >In general, the Setback value for a track needs to be determined by an >algorithm, yet to be determined. For any particular track there needs >to be: >1) Criteria to determine if its Setback should be 0 dB >2) Criteria to determine if its Setback should be FullSetback >3) Formulae to determine the Setback value for intermediate cases. > >Finally >------- >If/when there is a sufficient 'handle' on the above, one can consider >other topics, such as: >o Spikes (particularly from DRC), and the >o Interrelationship with the Compression Effect Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Audacity-devel mailing list Aud...@li... https://lists.sourceforge.net/lists/listinfo/audacity-devel |
From: <An...@xe...> - 2006-06-25 19:31:34
|
Hi Martyn, I glad that you are one of the early responders. Mar...@ao... wrote: >Andy >I see where you are coming from but I think you need to consider another >case: two tracks with 'low' level and one loud peak (which I assume is just >below clipping), but where the 'low' levels are different. What you really want >is for these 'low' levels to be adjusted to the same listening level, and >have the 'flat' tracks to that same listening level as well. This would >minimize the manual control of the volume and only invoke only occasional tuting >from the passenger seat. I agree that using only Normalization will not fix your case. It requires Compression. The scope of my original email was to address cases that could be fixed by using only Normalization, and how to fix them. Then to address cases that require both Normalization and Compression. I expect that the final Effect might need to be Compression 'married' with Smart Normalization. I was attempting to Divide and Conquer. >I am thinking that what you need to do is compress all the tracks for your >CD (a little) then measure the rms level of each one, finding the smallest. >Then normalize them all to have this same smallest rms level. My end objective is to do this all automatically, that is to incorporate my judgments of what to do into algorithms. I think that at least two passes will be required: o A statistical analysis pass that will produce both a o Temporal peak level curve, and a o Histogram of levels for the whole track o A compression/normalization pass >Another alternative would be to use more severe compression, >but that may not be a good idea Definitely not good -- some of my CDs were compressed too much. My original testing of the car environment concluded that the compressed DR needed to be about 20 dB. This value however did not explicitly take into account possible Setback. The 20 dB is about correct for the "Flat track" below. Assume that the Flat track is Setback by 8 dB. This would allow the Peak track to have a DR of 8 dB more: 28 dB. > (see http://www.cdmasteringservices.com/dynamicrange.htm >for an opinion about this). They have implicitly assumed a Quiet listening environment (see below). For this case, I completely agree with the article, except that most Classical CDs still have a full dynamic range (DR). I observe that their use of RMS CD level is a valid statistic for their purpose, but it may not be sufficient for my purpose. Additionally, they completely omit the situation of a Noisy listening environment. Not so with some radio stations. Long ago, I had occasion to call the Engineer of a local classical radio station about compression. They employed a 6-stage, programmable compressor. It was programmed to provide a degree of compression that was: o Highest during commuting hours (cars) o Lower during daytime hours o Lowest during evening hours => More noise, more compression. >In a message dated 24/06/2006 22:02:40 GMT Daylight Time, An...@xe... >writes: >I would like to start a thread about a possible "Smart Normalization" effect. >----------------------------------------------------------------------------- >I am contemplating developing algorithms and creating a simple, >stand-alone test program for what I call a Smart Normalization effect. >By this I mean an effect that analyzes the overall amount and degree of >the louder parts of a WAV file, and selects one value by which to >normalize the file. > >I would first like to collect some thoughts on the subject from the >group. After I complete a successful build, if there is sufficient >interest, I could make my build available. > >Background >------------ >About a year ago, Martyn Shaw provided a build (1.2.4) that incorporated >a greatly improved Compressor Effect. I have made considerable use of >this build to provide dynamic range compression (DRC) so as to listen to >music that has a particularly wide DR for when I am in a noisy environment. > >This effect works well. However, the normalization does not work well >for me, and the Gain adjustment for the purpose is tedious. > >Problem >------- >For me, there are two CD listening cases: >1) Quiet. I'm in my living room, the house is quiet, and I have plenty >of time to sit down and enjoy some classical music. I this case, >I am interested in >neither DRC nor Normalization. >The music level can satisfyingly go from a whisper to a thundering >crescendo. For me, this Quiet case occurs infrequently. > >2) Noisy. I'm in the car with my spouse, I've used DRC to boost the >whisper, and the crescendo is loud, but brief => no problem. >The next track has a long passage that is all at about the same > maximum level, and which has been normalized to the same level >as the above crescendo. >=> Even before I can get to the volume control, > "CAN'T YOU TURN THAT DOWN?". > >It's when I cut a CD for the noisy environment that I wish to employ >Smart Normalization. > >Core Issue - Track Setback >-------------------------- >Lets first consider the core concepts, and to simplify issues, lets >initially not consider DRC, and assume there are no spikes to be >concerned about. > >The task is to determine a normalization level (NL) for a track. >Define a headroom level (HR <= 0 dB) as that level which one would never >want to exceed. I would think that HR would be a constant, valid for all tracks > (spikes aside). > >Further define the Setback for a track as: Setback = HR - NL >Defined this way, Setback is >= 0 DB. > >Consider for now only two extreme cases: >Peak: A selection that has only one, very brief peak passage, and the > remainder is low. >Flat: A selection that has a majority of its material at > approximately the same level. > >For the Peak track, almost by definition, NL = HR, and Setback = 0. >For the Flat track, assume that an NL = NL_FT has been determined. >For this case Setback = FullSetback = HR - NL_FT. >Then, NL for any intermediate case will be constrained by: >NL_FT < NL < HR. > >Consequently, the Setback for any particular track is constrained by: >0 dB <= Setback <= FullSetback > >*** The first task is then to determine/decide what the value of >FullSetback should be. *** >The exact value is likely to be somewhat subjective, and will likely >need to be a parameter of the Effect. "Throwing a dart", I would say >between 6 and 10 dB. > >Subsequently >------------ >In general, the Setback value for a track needs to be determined by an >algorithm, yet to be determined. For any particular track there needs >to be: >1) Criteria to determine if its Setback should be 0 dB >2) Criteria to determine if its Setback should be FullSetback >3) Formulae to determine the Setback value for intermediate cases. > >Finally >------- >If/when there is a sufficient 'handle' on the above, one can consider >other topics, such as: >o Spikes (particularly from DRC), and the >o Interrelationship with the Compression Effect |