0dbfs
Sets the value of 0 decibels using full scale amplitude.
Syntax
Initialization
iarg -- the value of 0 decibels using full scale amplitude.
Performance
The default is 32767, so all existing orcs should work.
Amplitude values in Csound are always relative to a 0dbfs value representing the peak available amplitude before clipping. In the original Csound, this value was always 32767, corresponding to the bipolar range of a 16bit soundfile or 16bit AD/DA codec. This remains the default peak amplitude for Csound, for backward compatibility. The 0dbfs value enables Csound to produce appropriately scaled values to whatever output format is being used, whether 16bit integer, 24bit integer, 32bit floats, or even 32bit integers.
0dBFS can be defined in the header, to set the amplitude reference Csound will use, but it can also be used as a varible inside instruments like this:
The purpose of the 0dbfs opcode is for people to start to code 0dbfs-relatively (and use the ampdbfs() opcodes a lot more!), rather than use explicit sample values. Using 0dbfs=1 is in accordance to industry practice, as ranges from -1 to 1 are used in most commercial plugin formats and in most other synthesis systems like Pure Data.
Floats written to a file, when 0dbfs = 1, will in effect go through no range translation at all. So the numbers in the file are exactly what the orc says they are.
For more details on amplitude values in Csound, see the section Amplitude values in Csound
Example
Here is an example of the 0dbfs opcode. It uses the file 0dbfs.csd.
See also
Sets the value of 0 decibels using full scale amplitude.
Credits
Author: Richard Dobson
May 2002
New in version 4.10