"sone" — Generate a table with values of the sone function.
size -- number of points in the table. Must be a power of 2 or power-of-2 plus 1 (see f statement).
start, end -- first and last value to be stored. The points stored are uniformly spaced between these to the table size.
equalpoint -- the point on the curve when the input and output values are equal.
rescale -- if not zero the table is not rescaled
The table is filled with the function x*POWER(x/eqlp, FL(33.0)/FL(78.0)) for x between the start and end points. This is the Sone loudness curve.
Here is a simple example of the GENsone routine. It uses the file gensone.csd. It will generate a simple sone shaped output wave.
Example 752. A simple example of the GENsone routine.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o linseg.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1 Simple oscillator with loudness correction. instr 1 ; p4 = frequency in pitch-class notation. kcps = cpspch(p4) ; Create an amplitude envelope. kenv linseg 0, p3*0.25, 1, p3*0.75, 0 kamp tablei 16384*kenv, 2 a1 oscil 30000*kamp, kcps, 1 out a1 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 f 2 0 16384 "sone" 1 32000 32000 0 ; Play Instrument #1 for a half-second, p4=8.00 i 1 0 0.5 8.00 ; Play Instrument #1 for a half-second, p4=8.01 i 1 1 0.5 8.01 ; Play Instrument #1 for a half-second, p4=8.02 i 1 2 0.5 8.02 ; Play Instrument #1 for a half-second, p4=8.03 i 1 3 0.5 8.03 e </CsScore> </CsoundSynthesizer>