[chuck-users] Converting dB to chuck .gain
Ge Wang
gewang at CS.Princeton.EDU
Thu Mar 9 00:25:39 EST 2006
I think the relationship is:
fun float dbtogain( float db )
{ return math.pow( 2, db/3 ); }
fun float gaintodb( float gain )
{ return 3 * math.log(gain) / math.log(2); }
This is using 1.0 gain as reference (0 dB down).
* You may have to normalize your input data.
(offset all dB values by constant amount)
* Both functions probably could be optimized.
* gaintodb prefers positive values.
* feel free to call me an idiot as always.
Best,
Ge!
On Wed, 8 Mar 2006, Perry R Cook wrote:
> I think gain is just linear amplitude multiplication,
> like 0.0 is nothing, and 1.0 is nominal amplitude,
> and 0.5 is halfway between in amplitude space, thus
> -3dB from 1.0.
>
> PRc
>
> On Wed, 8 Mar 2006, Graham Percival wrote:
>
>> What is chuck's .gain measured in? Neither std.dbtorms() nor std.dbtopow()
>> seem to work...
>>
>> I have a bunch of data about a sound, (frequency, dB):
>> 86.132812, 9.996495,
>> 172.265625, 6.996109,
>> 258.398438, -0.955794,
>> 344.531250, -11.900859,
>> ...
>>
>> and I'd like to try some additive synthesis in chuck. The first value
>> (frequency) is obvious, but I'm at a loss as to what to do with the second
>> value (dB). What's the conversion factor between dB and .gain ?
>>
>> Cheers,
>> - Graham
>>
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users at lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
More information about the chuck-users
mailing list