Csound Csound-dev Csound-tekno Search About

[Csnd] question to decibel

Date2013-03-14 11:45
FromStefan Thomas
Subject[Csnd] question to decibel
Dear community,
I would like to know the following (very basic) thing
if I define
0dbfs    =    1
in an orchestra header, then the loudest possible dynamic in decibels is 0, am I right?
What is the advantage of using decibel-values?

Date2013-03-14 11:52
Frompeiman khosravi
SubjectRe: [Csnd] question to decibel
No, in the digital domain the highest possible level is always 0dbfs (full scale). This statement means that the linear amplitude of 1 corresponds with 0dbfs. 

Also, the highest amplitude level doesn't necessarily mean the 'loudest'. A sinewave at 1000 Hz will not have the same loudness as 100Hz sinewave, even if they have the same objective amplitude.      

P  

On 14 March 2013 11:45, Stefan Thomas <kontrapunktstefan@gmail.com> wrote:
Dear community,
I would like to know the following (very basic) thing
if I define
0dbfs    =    1
in an orchestra header, then the loudest possible dynamic in decibels is 0, am I right?
What is the advantage of using decibel-values?


Date2013-03-14 12:01
Frompeiman khosravi
SubjectRe: [Csnd] question to decibel
The advantage is that you can scale all your linear amplitude values between zero and one. So the amplitude value of .5 is the same as -6dbfs, .25 is the same as -12dbfs, and 0 value equals -inf in the decibel scale. 

P    

On 14 March 2013 11:52, peiman khosravi <peimankhosravi@gmail.com> wrote:
No, in the digital domain the highest possible level is always 0dbfs (full scale). This statement means that the linear amplitude of 1 corresponds with 0dbfs. 

Also, the highest amplitude level doesn't necessarily mean the 'loudest'. A sinewave at 1000 Hz will not have the same loudness as 100Hz sinewave, even if they have the same objective amplitude.      

P  


On 14 March 2013 11:45, Stefan Thomas <kontrapunktstefan@gmail.com> wrote:
Dear community,
I would like to know the following (very basic) thing
if I define
0dbfs    =    1
in an orchestra header, then the loudest possible dynamic in decibels is 0, am I right?
What is the advantage of using decibel-values?



Date2013-03-14 12:12
FromBernt Isak Wærstad
SubjectRe: [Csnd] question to decibel
Use the amdbfs converter if you want to use dB values in score



On Thu, Mar 14, 2013 at 1:01 PM, peiman khosravi <peimankhosravi@gmail.com> wrote:
The advantage is that you can scale all your linear amplitude values between zero and one. So the amplitude value of .5 is the same as -6dbfs, .25 is the same as -12dbfs, and 0 value equals -inf in the decibel scale. 

P    

On 14 March 2013 11:52, peiman khosravi <peimankhosravi@gmail.com> wrote:
No, in the digital domain the highest possible level is always 0dbfs (full scale). This statement means that the linear amplitude of 1 corresponds with 0dbfs. 

Also, the highest amplitude level doesn't necessarily mean the 'loudest'. A sinewave at 1000 Hz will not have the same loudness as 100Hz sinewave, even if they have the same objective amplitude.      

P  


On 14 March 2013 11:45, Stefan Thomas <kontrapunktstefan@gmail.com> wrote:
Dear community,
I would like to know the following (very basic) thing
if I define
0dbfs    =    1
in an orchestra header, then the loudest possible dynamic in decibels is 0, am I right?
What is the advantage of using decibel-values?





--
Mvh.

Bernt Isak Wærstad



Date2013-03-14 12:32
FromRichard Dobson
SubjectRe: [Csnd] question to decibel
On 14/03/2013 11:45, Stefan Thomas wrote:
> Dear community,
> I would like to know the following (very basic) thing
> if I define
>
>     0dbfs    =    1
>
> in an orchestra header, then the loudest possible dynamic in decibels is
> 0, am I right?
> What is the advantage of using decibel-values?


There are two fundamental aspects of the answer:

1. the ear's response to loudness is approximately logarithmic, just as 
it is for frequency. We use a log scale for the latter (octaves, 
semitones, rather than raw frequencies), and the decibel is the 
equivalent for loudness. Instead of comparing a maximum level of 1 
against a moderately quiet level of 0.0001, we use a "scale" where a 
doubling of amplitude is defined as an increase of approx 6dB. So 6dB 
defines, so to speak, our "loudness octave".

2. We cannot meaningfully define the dB value of silence (amplitude - 
0), the value would be "infinity". So we measure loudness relative to an 
agreed maximum value. For a digital signal that is especially easy - 
amplitude 1 is the normalised full-scale value. By convention we (i.e. 
the whole global audio community) define that to be the value of 0dB 
(recall that raising any number to the power zero gives the value 1), 
and all lower levels are therefore negative numbers. As the precision of 
the sample value increases (e.g. from 16bit to 24 bit to float to 
double), lower and lower negative values become relevant. So while we 
still cannot give a value to digital zero, we can meaningfully refer to 
-96dB, -144dB and so on.

Beyond this, there are many subtleties and difficulties in relating 
arithmetical loudness to subjective (psycho-acoustic) loudness, not 
least the problem Peiman described - we are not equally sensitive to 
loudness over the whole auditory frequency range. We have things 
relatively easy in a digital environment, as most of the time we just 
use dB to indicate the simple numeric level of a signal. Analogue 
engineers have to worry about relative voltage levels, acoustic pressure 
and all sorts of other things. So analogue mixing desks define 0dB to be 
some given voltage level. As engineers like to have a little "headroom " 
to play with, mixer faders offer a range of positive dB levels above 
0dB. A digital desk emulating an analogue one therefore decides that the 
mixer's 0dB mark will correspond to (say ) -24dBFS (i.e. 24dB below 
digital peak). Not all desks necessarily agree about this, so typically 
some degree of calibration or negotiation is involved.

So, one way and another, "0dB" is a matter of convention.

There is a whole extra history relating to the creation (by me0 of the 
"0dbFS" opcode; suffice it to say it was done to reconcile Csound to 
these industry standard representations of level. In its earliest 
incarnation, amplitude values were understood to correspond directly to 
the sample values stored in a file. Thus the "default" matches the 16bit 
sample range. This is no longer either relevant or useful, all sample 
formats are generated appropriatewly accoding to the 0dBFS value.

You can choose any positive value for 0dbfs: 1 is the "standard" value, 
but you can choose any other positive value you like. Needless to say, 
many Csounders have found tweaking the 0dbfs value a quick way of 
hacking/finessing the overall amplitude range of a performance.


Richard Dobson