The default is 32767, so all existing orcs should work.
These calls should all work:
and so on.As for documentation: the usage should be obvious - the main thing is for people to start to code 0dbfs-relatively (and use the ampdb() opcodes a lot more!), rather than use explicit sample values.
Floats written to a file, when 0dbfs = 1, will in effect go through no range translation at all. So the nunbers in the file are exactly what the orc says they are.
![]() | BIG NB |
---|---|
All the main sample formats are supported, but I haven't got around to dealing with the char formats. Probably it's straight-forward... I have tried to cover the main utils - adsyn,lpanal etc. But there are bound to be things missing, sorry. Some of the parsing code is a bit grungy because I have a variable with a leading digit! |
Here is an example of the 0dbfs opcode. It uses the files 0dbfs.orc and 0dbfs.sco.
Example 1. Example of the 0dbfs opcode.
/* 0dbfs.orc */
/* Written by Kevin Conder */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Set the 0dbfs to the 16-bit maximum.
0dbfs = 32767
; Instrument #1.
instr 1
; Linearly increase the amplitude value "kamp" from
; 0 to 1 over the duration defined by p3.
kamp line 0, p3, 1
; Generate a basic tone using our amplitude value.
a1 oscil kamp, 440, 1
; Multiply the basic tone (with its amplitude between
; 0 and 1) by the full-scale 0dbfs value.
out a1 * 0dbfs
endin
/* 0dbfs.orc */
/* 0dbfs.sco */
/* Written by Kevin Conder */
; Table #1, a sine wave.
f 1 0 16384 10 1
; Play Instrument #1 for three seconds.
i 1 0 3
e
/* 0dbfs.sco */