Such thing as one channel volume VST plugin?
- KVRAF
- 1601 posts since 24 Jun, 2004 from Australia
Hello all.
I have a dilemma. I would dearly like a simple volume VST that works in decibels and allows the volume to go pretty far down (~-75dB or lower) before cutting out. I don't mind if it give the option of an extra +6dB but I think I'd prefer if it started at 0dB so that I may automate from full input volume to nothing, with a dB curve.
I don't really want a mixer. I've tried CMX844 and Petit a Petit (two which are listed on KVR) and while they kind of do what I want, they don't give readouts in dB of what I'm setting the mixer to. I don't really need all those channels either (though perhaps a simple volume mixer would come in handy as well).
I've tried Braindoc's Channeltool, and that's actually great except I only need the gain part, and that it splits left and right and I'd prefer just one stereo fader/knob, and that it only goes down to -48dB.
It's one of the simplest plugins to make .. and is almost unnecessary which is why I figure I'm having problems finding one. Most hosts, I think, have their volume faders in dB meaning a VST version of this is redundant.
I'm using energyXT however, with linear faders, and they're really starting to bug me. I'd code one myself but I don't know how and I don't have time (at least not right now) to learn even something simple like this.
Does anyone know of a simple volume VST that goes from 0dB to -75dB (or something like that)? If there's a simple volume mixer VST with the same features, I'm also interested in that as well.
(This would be unnecessary if Jorgen would edit his faders to be dB .. and display the dB values on the automation envelopes as well :).)
I have a dilemma. I would dearly like a simple volume VST that works in decibels and allows the volume to go pretty far down (~-75dB or lower) before cutting out. I don't mind if it give the option of an extra +6dB but I think I'd prefer if it started at 0dB so that I may automate from full input volume to nothing, with a dB curve.
I don't really want a mixer. I've tried CMX844 and Petit a Petit (two which are listed on KVR) and while they kind of do what I want, they don't give readouts in dB of what I'm setting the mixer to. I don't really need all those channels either (though perhaps a simple volume mixer would come in handy as well).
I've tried Braindoc's Channeltool, and that's actually great except I only need the gain part, and that it splits left and right and I'd prefer just one stereo fader/knob, and that it only goes down to -48dB.
It's one of the simplest plugins to make .. and is almost unnecessary which is why I figure I'm having problems finding one. Most hosts, I think, have their volume faders in dB meaning a VST version of this is redundant.
I'm using energyXT however, with linear faders, and they're really starting to bug me. I'd code one myself but I don't know how and I don't have time (at least not right now) to learn even something simple like this.
Does anyone know of a simple volume VST that goes from 0dB to -75dB (or something like that)? If there's a simple volume mixer VST with the same features, I'm also interested in that as well.
(This would be unnecessary if Jorgen would edit his faders to be dB .. and display the dB values on the automation envelopes as well :).)
- KVRAF
- Topic Starter
- 1601 posts since 24 Jun, 2004 from Australia
Well I had a feeling someone would mention Symthedit.
You're probably right. I don't like how Synthedit VSTs create folders with data in them though... This doesn't stop me from using such VSTs, but if I can avoid it so much the better.
Does one need to program to make Synthedit VSTs or can it be done visually with a software package?
You're probably right. I don't like how Synthedit VSTs create folders with data in them though... This doesn't stop me from using such VSTs, but if I can avoid it so much the better.
Does one need to program to make Synthedit VSTs or can it be done visually with a software package?
- KVRAF
- 12615 posts since 7 Dec, 2004
if (vstparam == 0.0f) scale = 0.0f;
else
{
db = vstparam * db_range; // db_range = -96.0f ?
scale = powf(10.0f,(db / 20.0f));
}
{
*out++ = *in++ * scale;
}
no problem.
do you want this coded for you? should be easy if you have the vst 'sdk'.
offical db are tenths of a bel.
if you prefer the usual analog and/or aproximate method of half/double every six units, you can use;
#define DB_CONST (6.0f / logf(2.0f))
float db(float n) { return DB_CONST * logf(n); }
float ndb(float n) { return expf(n / DB_CONST); }
the only difference you'll notice is things will line up right with analog equipment, and the numbers will match up exactly for *2 = +6db as they are usually stated.
else
{
db = vstparam * db_range; // db_range = -96.0f ?
scale = powf(10.0f,(db / 20.0f));
}
{
*out++ = *in++ * scale;
}
no problem.
do you want this coded for you? should be easy if you have the vst 'sdk'.
offical db are tenths of a bel.
if you prefer the usual analog and/or aproximate method of half/double every six units, you can use;
#define DB_CONST (6.0f / logf(2.0f))
float db(float n) { return DB_CONST * logf(n); }
float ndb(float n) { return expf(n / DB_CONST); }
the only difference you'll notice is things will line up right with analog equipment, and the numbers will match up exactly for *2 = +6db as they are usually stated.
-
- KVRist
- 177 posts since 31 Oct, 2004 from Nærum, Denmark
nevermind, must be blind... 
-
- KVRist
- 188 posts since 13 Jun, 2004 from SW England
I've come up with one if you haven't managed to find anything else. Click on the pic below and look for GFader at the very bottom. Only took a couple of minutes - just a slight change to something I already had.
-
- KVRAF
- 2277 posts since 2 Dec, 2003
I just wanted to say that not every SynthEdit VST creates subfolders, it depends on the modules used. 
- KVRAF
- Topic Starter
- 1601 posts since 24 Jun, 2004 from Australia
JackDark: Yeah I knew that, but most use modules that do this. It annoys me, some even create .dll files in subdirectories so that when I go for VST files, it shows .dll files that aren't VST fx. This seems unnecessary. (As I recall, the Helian Guitar Amp plugins do this.)
Aciddose: That's great, and I doubt it would take me long to learn how to code a simple VST actually. I do have a C++ background, albeit a little unused and rusty. Is there much audible difference between the approximate method and the mathematically accurate method? What do most hosts use, do you know?
gy: ... I love you. That's what I wanted. And I want to make perfectly clear I expect nothing and don't want to sound like a whiny bitch, but it'd be even better if it were a lot smaller and less space was used for anything other than the knob. Why? Because I think I'd be wanting to use an array of these as a replacement simple volume mixer for my work, and at their current size, having lots on the screen is a little inconvenient. :)
What I DO like is the 100dB range... This means that in energyXT it matches like a percentage, I know that if I put the envelope to 0.1 it will be -90dB. If I put it to 0.65 I know it will be -35dB, this means I do not need a readout of dB on the envelope to know what I'm doing.
Did you make this because of this thread, or was that already there? I already went through your plugins and don't remember that one. And for a simple plugin like this, why is it in beta? :D
Was it a slight change to your GGain plugin? I use that if I need a slight boost, again because it's a simple function for a simple plugin that is hard to find.
Aciddose: That's great, and I doubt it would take me long to learn how to code a simple VST actually. I do have a C++ background, albeit a little unused and rusty. Is there much audible difference between the approximate method and the mathematically accurate method? What do most hosts use, do you know?
gy: ... I love you. That's what I wanted. And I want to make perfectly clear I expect nothing and don't want to sound like a whiny bitch, but it'd be even better if it were a lot smaller and less space was used for anything other than the knob. Why? Because I think I'd be wanting to use an array of these as a replacement simple volume mixer for my work, and at their current size, having lots on the screen is a little inconvenient. :)
What I DO like is the 100dB range... This means that in energyXT it matches like a percentage, I know that if I put the envelope to 0.1 it will be -90dB. If I put it to 0.65 I know it will be -35dB, this means I do not need a readout of dB on the envelope to know what I'm doing.
Did you make this because of this thread, or was that already there? I already went through your plugins and don't remember that one. And for a simple plugin like this, why is it in beta? :D
Was it a slight change to your GGain plugin? I use that if I need a slight boost, again because it's a simple function for a simple plugin that is hard to find.
-
- KVRAF
- 13444 posts since 14 Nov, 2000 from Hannover / Germany
http://home.arcor.de/s.franck/4helpers.zip
Inside you'll find some useful things, such as a simple volume plugin (mono and stereo), which I use to route CC 11 (expression = relative volume) messages to it (to replace hardware synth behaviour) and not to lose overall volume fader control when automating fades. It's got a smoothing function, so you won't get any stepping when using CCs to control it.
In addition, there's a synced panner and a synced trem in the zip.
Some kind soul sort of custom coded those for me many moons ago (Merlin Blauw or so, heck I lost him) and allowed me to distribute them as much as I'd like.
Nothing special but very handy. No dB meters though.
Inside you'll find some useful things, such as a simple volume plugin (mono and stereo), which I use to route CC 11 (expression = relative volume) messages to it (to replace hardware synth behaviour) and not to lose overall volume fader control when automating fades. It's got a smoothing function, so you won't get any stepping when using CCs to control it.
In addition, there's a synced panner and a synced trem in the zip.
Some kind soul sort of custom coded those for me many moons ago (Merlin Blauw or so, heck I lost him) and allowed me to distribute them as much as I'd like.
Nothing special but very handy. No dB meters though.
There are 3 kinds of people:
Those who can do maths and those who can't.
Those who can do maths and those who can't.
- KVRAF
- Topic Starter
- 1601 posts since 24 Jun, 2004 from Australia
Thanks for your help everyone.
Sascha, that plugin would be very useful but it seems to go down to -40dB, which is not quite as low as I'd like. It is definitely useful though so I might keep both that and GFader for different resolutions.
It's a little weird how that volume one goes through the dB faster and faster. What I mean is that the first half of the values cover less dB and as you move down dB decrease in size faster and faster. It's not linear, so to me if you were to do a linear fade, it'd be like dB squared or something.
Sascha, that plugin would be very useful but it seems to go down to -40dB, which is not quite as low as I'd like. It is definitely useful though so I might keep both that and GFader for different resolutions.
It's a little weird how that volume one goes through the dB faster and faster. What I mean is that the first half of the values cover less dB and as you move down dB decrease in size faster and faster. It's not linear, so to me if you were to do a linear fade, it'd be like dB squared or something.
- KVRAF
- 12615 posts since 7 Dec, 2004
db is a exponential representation. so it is equal to doing n^volume (not really, but as an example), where negative db are when volume is less than 1.0, and positive db are greater. 0db is equal to 1.0.
for multiple reasons this gives an advantage for audio, we percive the total amplitude in the same way, because it gives a greater range. whe you hear a sound which is twice as loud as another, your brain will compress the signal so it only seems a bit louder, not twice as loud.
if the plugins are not giving you linear representation in db, they coded them wrong. see my source which uses a linear range of db instead of simply printing the value in db. but, did they really do this? come on guys, if you did this, fix it and use my source instead :P
the difference between the real method and aproximate is so tiny it doesnt make a real difference. the only thing is, when you want _exactly_ 2.0, you can dial in _exactly_ +6.0 db. with the real calculation its 6.0205999132796~ db which can be moderately annoying.
the aproximate method is usually used in analog equipment because using the real method would be extremely difficult.
the functions i showed are _NOT_ how analog stuff does it. instead they set up each led to light up when the voltage gets twice as loud. so the first led would be 1, then 2, 4, 8, 16, 32, etc. you can do this with a basic set of resistors or just add one diode extra for every doubling and scale it a bit. to get the actual curve you would need a log convertor and that is temperature dependant, and all kinds of problems. analog stuff tends to use the most simple method possible, which is cheaper.
for multiple reasons this gives an advantage for audio, we percive the total amplitude in the same way, because it gives a greater range. whe you hear a sound which is twice as loud as another, your brain will compress the signal so it only seems a bit louder, not twice as loud.
if the plugins are not giving you linear representation in db, they coded them wrong. see my source which uses a linear range of db instead of simply printing the value in db. but, did they really do this? come on guys, if you did this, fix it and use my source instead :P
the difference between the real method and aproximate is so tiny it doesnt make a real difference. the only thing is, when you want _exactly_ 2.0, you can dial in _exactly_ +6.0 db. with the real calculation its 6.0205999132796~ db which can be moderately annoying.
the aproximate method is usually used in analog equipment because using the real method would be extremely difficult.
the functions i showed are _NOT_ how analog stuff does it. instead they set up each led to light up when the voltage gets twice as loud. so the first led would be 1, then 2, 4, 8, 16, 32, etc. you can do this with a basic set of resistors or just add one diode extra for every doubling and scale it a bit. to get the actual curve you would need a log convertor and that is temperature dependant, and all kinds of problems. analog stuff tends to use the most simple method possible, which is cheaper.
Last edited by aciddose on Thu Nov 17, 2005 1:59 pm, edited 1 time in total.
-
- KVRist
- 188 posts since 13 Jun, 2004 from SW England
Hi druid, I did make the plug after seeing your post. It really was just a case of changing a couple of numbers in the GGain code. I'm sure I can make it a little more compact as well, when I have a couple of minutes spare. And it's only in the beta section because it was the easiest place to stick it.
- KVRAF
- Topic Starter
- 1601 posts since 24 Jun, 2004 from Australia
aciddose: Interesting. I am aware of the 0dB being +1.0 etc. but most of what you discussed I was not aware of. I realised that the plugins that don't have "linear dB" were in fact linear volume after I noticed that when setting the fader halfway, it was -6dB, and then a quarter was -12dB etc. That gave it away. What you wrote also explains why I've seen -6.02dB somewhere (can't remember where though). I always thought it odd that it had an extra .02, now I know why.
gy: After some use, I've noticed that -100dB is incredibly quiet (I knew this theoretically but in practice even +60dB range of that is also quiet and I didn't realise just how much). 100 is such a convenient number but now most volume is near the top and the rest seems irrelevant. Thing is, to me -50dB is a little too little, but any number inbetween just doesn't seem right (since energyXT only shows envelope values of 0.00 to 1.00). This is only an observation, since it's a 32bit control the envelopes will still smoothly automate just fine of course, I just hadn't realised the scope that 100dB encompasses.
I'm not sure if you already do this, but at the bottom volume of the plugin, could I trouble you to just cut the audio out altogether? I've noticed volume faders on other things, even if they only go down to -40dB, cut the volume at the bottom. Presumably this is so one can fade down and then when they need to cut all audio from that path, they can set it to lowest value for true silence.
Or is that not good practice in audio? I could use a gate, but the less clutter the better?
Anyway I'm already happy with what I have so any additions you make will be truly appreciated and are considered a bonus rather than a requirement. :)
gy: After some use, I've noticed that -100dB is incredibly quiet (I knew this theoretically but in practice even +60dB range of that is also quiet and I didn't realise just how much). 100 is such a convenient number but now most volume is near the top and the rest seems irrelevant. Thing is, to me -50dB is a little too little, but any number inbetween just doesn't seem right (since energyXT only shows envelope values of 0.00 to 1.00). This is only an observation, since it's a 32bit control the envelopes will still smoothly automate just fine of course, I just hadn't realised the scope that 100dB encompasses.
I'm not sure if you already do this, but at the bottom volume of the plugin, could I trouble you to just cut the audio out altogether? I've noticed volume faders on other things, even if they only go down to -40dB, cut the volume at the bottom. Presumably this is so one can fade down and then when they need to cut all audio from that path, they can set it to lowest value for true silence.
Or is that not good practice in audio? I could use a gate, but the less clutter the better?
Anyway I'm already happy with what I have so any additions you make will be truly appreciated and are considered a bonus rather than a requirement. :)
