VST Request - Crest Factor Decreaser
-
- KVRer
- Topic Starter
- 10 posts since 19 Jan, 2017
Good morning everyone,
I am looking for a plugin developer to create a 32-bit VST2 plugin that has one specific purpose.
The goal of this plugin would be reduce the crest factor (that is, DR values closer to "0" on the TT-Dynamic Range Meter) but without modifying the RMS value.
For example - Let's suppose we have a song that has the following:
Crest Factor: DR11
RMS: -12.50db
When a limiter is applied, the DR value wil lower but it will be accompanied by a higher RMS value...For example:
Crest Factor: DR8
RMS: -9.50db
What I am after is a plugin that can modify the audio to achieve something like this:
Crest Factor: DR8
RMS: -12.50db
The idea is to keep the RMS value the same as, or as close to, the original RMS value as possible when the audio is normalized to 0dbfs.
I don't know the best way to accomplish this, nor do I know of a plugin/filter that can do this directly or indirectly. Perhaps this already can be accomplished in an indirect way (and if so, please tell me how).
I am prepared to pay for this project, I do not expect this to be done for free.
Any help with this would be greatly appreciated.
Thanks.
I am looking for a plugin developer to create a 32-bit VST2 plugin that has one specific purpose.
The goal of this plugin would be reduce the crest factor (that is, DR values closer to "0" on the TT-Dynamic Range Meter) but without modifying the RMS value.
For example - Let's suppose we have a song that has the following:
Crest Factor: DR11
RMS: -12.50db
When a limiter is applied, the DR value wil lower but it will be accompanied by a higher RMS value...For example:
Crest Factor: DR8
RMS: -9.50db
What I am after is a plugin that can modify the audio to achieve something like this:
Crest Factor: DR8
RMS: -12.50db
The idea is to keep the RMS value the same as, or as close to, the original RMS value as possible when the audio is normalized to 0dbfs.
I don't know the best way to accomplish this, nor do I know of a plugin/filter that can do this directly or indirectly. Perhaps this already can be accomplished in an indirect way (and if so, please tell me how).
I am prepared to pay for this project, I do not expect this to be done for free.
Any help with this would be greatly appreciated.
Thanks.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
You may want to have a limiter set to -3dB in your case, or a little bit more, and add a small make up gain.
It could be done on the fly (with artefacts) by estimating the power of the signal (with look ahead), and then use a limiter to remove the transients a little bit and then apply a factor of new power / previous power.
Shouldn't be too hard to implement with ATK (at least without trying to limit too much the artefacts).
It could be done on the fly (with artefacts) by estimating the power of the signal (with look ahead), and then use a limiter to remove the transients a little bit and then apply a factor of new power / previous power.
Shouldn't be too hard to implement with ATK (at least without trying to limit too much the artefacts).
-
- KVRer
- Topic Starter
- 10 posts since 19 Jan, 2017
Hi Miles,
What would be the limitations with this approach? Could the crest factor in the aforementioned example be pushed to DR6 or DR5 without changing the RMS?
Also, let me note that this plug-in would not be run in real-time. Look-ahead for precise power calculations does not need to be limited in any way for my purposes.
Would you be able to make this for me?
Any other ideas out there or is Miles' approach best for this?
Thanks.
What would be the limitations with this approach? Could the crest factor in the aforementioned example be pushed to DR6 or DR5 without changing the RMS?
Also, let me note that this plug-in would not be run in real-time. Look-ahead for precise power calculations does not need to be limited in any way for my purposes.
Would you be able to make this for me?
Any other ideas out there or is Miles' approach best for this?
Thanks.
- KVRian
- 1091 posts since 8 Feb, 2012 from South - Africa
Maybe I'm not understanding the request wrong but you can not reduce the Dynamic Range(Crest) without increasing the RMS while normalizing to 0dbfs, the math and physics just don't line up. Crest in a nut-shell is Peak minus RMS. When you change the one, you change the other.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
A plugin means that this is something in a DAW, so in real time. If you want an offline process, then it's not a plugin (or a plugin for something different then a DAW ).
And indeed, forgot about the normalization which would change RMS.
And indeed, forgot about the normalization which would change RMS.
-
- KVRist
- 283 posts since 22 Sep, 2015
This is wrong. Every DAW has offline processing or destructive processes (like reverse, normalize). It can do this with a plugin, too. They are of course not real time.Miles1981 wrote:A plugin means that this is something in a DAW, so in real time. If you want an offline process, then it's not a plugin (or a plugin for something different then a DAW ).
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
But what the plugin sees is not the full track, it is strictly the same without the real time constraints. So what I say still holds: you wan't wait to have the full track before starting processing, so not a DAW plugin, but an external app.
You can't do a reverse track with a plugin with the VST API for instance.
You can't do a reverse track with a plugin with the VST API for instance.
-
- KVRist
- 283 posts since 22 Sep, 2015
I remember a dev saying in offline processing you'll get the whole file/data as 1 big block. So it will set the blocksize inside the plugin to the size of the data block. Then you can do whatever you want to it.
For example ProTools has a "Capture" or "Analyze" button for offline processes, so the plugin can analyze the whole region/track before processing it.
I don't know how different several DAWs are handling this or how limited the different plugin APIs are. But stating the fact that a plugin always is real-time or that it cannot process the whole track is just wrong.
For example ProTools has a "Capture" or "Analyze" button for offline processes, so the plugin can analyze the whole region/track before processing it.
I don't know how different several DAWs are handling this or how limited the different plugin APIs are. But stating the fact that a plugin always is real-time or that it cannot process the whole track is just wrong.
-
- KVRer
- Topic Starter
- 10 posts since 19 Jan, 2017
Let me elaborate a bit more.
A song I have has a DR5 crest value and -9.50db RMS.
When I apply phase rotation from the filter in a btoadcast processor called Stereo Tool, the resulting file, when normalized to full scale has a DR10 crest factor and RMS of -11db.
So, I went from a 4.5db difference between DR and RMS to a 1db difference
My goal is to do the opposite. If I am presented with a track that is DR10 and -11db RMS, I want to get it to DR5 and RMS -9.5db
So the goal, however it can be done, is to increase the difference between the two values.
When I get home tonight, I can post waveform screenshots of the song I justed as an example.
Also, perhaps I mis-wrote the portion about real-time. What I meant is that latency is no issue since the songs will be processed all the way through, and then listened to.
Thanks.
A song I have has a DR5 crest value and -9.50db RMS.
When I apply phase rotation from the filter in a btoadcast processor called Stereo Tool, the resulting file, when normalized to full scale has a DR10 crest factor and RMS of -11db.
So, I went from a 4.5db difference between DR and RMS to a 1db difference
My goal is to do the opposite. If I am presented with a track that is DR10 and -11db RMS, I want to get it to DR5 and RMS -9.5db
So the goal, however it can be done, is to increase the difference between the two values.
When I get home tonight, I can post waveform screenshots of the song I justed as an example.
Also, perhaps I mis-wrote the portion about real-time. What I meant is that latency is no issue since the songs will be processed all the way through, and then listened to.
Thanks.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
So you haven't written a plugin yet.Soundplex wrote:I don't know how different several DAWs are handling this or how limited the different plugin APIs are. But stating the fact that a plugin always is real-time or that it cannot process the whole track is just wrong.
Perhaps some hosts optimize the rendering by giving you a full clip (not the full track, the DAWs are optimized), but even then, if you have a parameter change there, you won't get the full clip, just up to the clip, and there are no indication if you have the full clip or just part of it. What you have is a chunk of data that you need to process. So no, you can't do what you say you can do (in general).
-
- KVRist
- 283 posts since 22 Sep, 2015
You can't have parameter changes in an offline process... I think we're not talking about same thing.Miles1981 wrote:if you have a parameter change there, you won't get the full clip
- KVRist
- 242 posts since 1 Jun, 2011
Crest is there just to give you a very broad understanding of how much of a "leeway" your peaks have above "the body" of a track. So, to decrease it and to leave RMS alone, you can just kill the peaks with any limiter you'd like and don't gain back, or gain back moderately. In super-short, just kill peaks don't normalize.
The whole other question is why.
I feel like you're coming from a very strange place, saying that a Stereo Tool did this and that in terms of numbers. Why? Because (a) they don't describe anything about the quality or purpose of the process, so we don't know if it's good or bad, and (b) doesn't even tell us much about loudness, because RMS is considered a very unreliable metric. You would want to use something like LUFS; TT-DR is considered obsolete even by its developer Ian Shepherd.
So, maybe people could be more of help if we knew what we're aiming for.
The whole other question is why.
I feel like you're coming from a very strange place, saying that a Stereo Tool did this and that in terms of numbers. Why? Because (a) they don't describe anything about the quality or purpose of the process, so we don't know if it's good or bad, and (b) doesn't even tell us much about loudness, because RMS is considered a very unreliable metric. You would want to use something like LUFS; TT-DR is considered obsolete even by its developer Ian Shepherd.
So, maybe people could be more of help if we knew what we're aiming for.
https://soundcloud.com/vospi
I love music, worked with a number of music/rhythm/dance games like Pump It Up, In The Groove, Cytus and Deemo, and teach music production.
I love music, worked with a number of music/rhythm/dance games like Pump It Up, In The Groove, Cytus and Deemo, and teach music production.
-
- KVRian
- 1273 posts since 9 Jan, 2006
Yes you can, it's called automation.Soundplex wrote:You can't have parameter changes in an offline process... I think we're not talking about same thing.Miles1981 wrote:if you have a parameter change there, you won't get the full clip
-
- KVRist
- 283 posts since 22 Sep, 2015
That's why I thought there might be some mis-communication. A traditional offline/destructive process like I mentioned doesn't have automation. You just select a region or a clip and apply a process (normalization, reversing, EQ, another plugin, whatever), done. Like within an audio editor. I never experienced a DAW that can automate parameters within this process and I honestly didn't need it.matt42 wrote:Yes you can, it's called automation.Soundplex wrote:You can't have parameter changes in an offline process... I think we're not talking about same thing.Miles1981 wrote:if you have a parameter change there, you won't get the full clip
Of course there is offline processing with automation, for example when you render a track. But that's not what came first to my mind when I read it doesn't need to run in realtime...
-
- KVRer
- Topic Starter
- 10 posts since 19 Jan, 2017
My apologies.Vospi wrote:Crest is there just to give you a very broad understanding of how much of a "leeway" your peaks have above "the body" of a track. So, to decrease it and to leave RMS alone, you can just kill the peaks with any limiter you'd like and don't gain back, or gain back moderately. In super-short, just kill peaks don't normalize.
The whole other question is why.
I feel like you're coming from a very strange place, saying that a Stereo Tool did this and that in terms of numbers. Why? Because (a) they don't describe anything about the quality or purpose of the process, so we don't know if it's good or bad, and (b) doesn't even tell us much about loudness, because RMS is considered a very unreliable metric. You would want to use something like LUFS; TT-DR is considered obsolete even by its developer Ian Shepherd.
So, maybe people could be more of help if we knew what we're aiming for.
Let me try this in a slightly different way:
In the following picture, we have a waveform of a song that has a crest factor of DR5 and an RMS value of -9.50db.
http://imgur.com/AhQviRO
After being "phase rotated", the song has a DR11 value with an RMS of -12.64db and looks like this:
http://imgur.com/kfeemHM
What I believe has happened to the song after being phase rotated (by looking at the waveform and the numbers) is that the song is hitting 0dbfs less often. Certain "difficult" sounds (in this song that is powerful sub-bass) has been softened/tamed to remove the stress from the clipper in the broadcast processor.
The reason I bring that into the conversation is because is that phase rotation seems to do almost exactly the opposite of what I want to do. I am not quite sure exactly sure the processing needed to accomplish my goal but I understand what it is I want.
If we have a crest factor and RMS value that are within 1db of each other, no sound in the song will sound any more powerful than any other sound beyond 1db of difference. If we have a song with a crest factor and RMS difference of 3db or 4db perhaps, then certain sounds that are meant to be louder and more powerful will be, and sounds that should be quieter will be quieter.
In the example song I used above, the loud bass and drums are noticeably louder and more powerful than the vocals--but after the phase rotation filter is applied, the powerful bass and drums are almost identical in volume/power to the vocals.
If I have an overcompressed song to begin with, I want to increase the difference between the quiet and loud sounds by making those loud sounds hit 0dfs as often as possible. This would, in turn, create a larger difference between the RMS and crest factor.
So if I am given the "phase rotated" example above (DR11 and RMS -12.46), I want to de-phase rotate it so that the sounds that are meant to be loud and powerful (or those that, by being louder, would create a crest factor closer to 0) would be increased as much as possible, without changing the overall RMS power.
I sincerely apologize if my explanation is as abysmal as I believe it to be...I do not want to post samples of this song due to copyright issues--but the numbers I listed above clearly correspond to the power/volume differences within the song that would be quickly recognized if heard (I'd be more than happy to send A/B samples via PM if requested).
Thanks.