GENsone
Prev | Score Statements and GEN Routines | Next

## GENsone

"sone" — Generate a table with values of the sone function.

## Description

Creates an ftable with values of the sone function for equal power.

## Syntax

    f # time size "sone" start end equalpoint rescale

## Initialization

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.

## Examples

Here is an example of the GENsone routine. It uses the files gensone.csd.

Example 1269. An example of the GENsone routine.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac  ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o gensone.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    instr 1	; simple oscillator with loudness correction.

    kcps = cpspch(p4)
    kenv linseg 0, p3*0.25, 1, p3*0.75, 0	;amplitude envelope
    kamp tablei 16384 *kenv, 2
    asig oscil kamp, kcps, 1
         outs asig, asig

    endin

    instr 2	;neutral oscillator to compare with

    kcps = cpspch(p4)
    kenv linseg 0, p3*0.25, 1, p3*0.75, 0	;amplitude envelope
    asig oscil kenv, kcps, 1
         outs asig, asig

    endin

    </CsInstruments>
    <CsScore>
    f 1 0 16384 10 1 	;sine wave
    f 2 0 16385 "sone" 0 32000 32000 0

    s
    f 0 1	;1 second of silence before we start...
    s
    i 1 0 2 7.00
    i 1 + . 7.01
    i 1 + . 8.02
    i 1 + . 8.03
    s
    i 2 0 2 7.00
    i 2 + . 7.01
    i 2 + . 8.02
    i 2 + . 8.03
    e
    </CsScore>
    </CsoundSynthesizer>

This is the diagram of the waveforms of the GENsone routine, as used in the example:

f 2 0 16385 "sone" 0 32000 32000 0

## See Also

More information on Sone: http://en.wikipedia.org/wiki/Sone

## Credits

Written by John ffitch

Prev | Up | Next
GENexp | Home | GENquadbezier