Skip to content

gainslider

An implementation of a logarithmic gain curve which is similar to the gainslider~ object from Cycling 74 Max / MSP.

This opcode is intended for use to multiply by an audio signal to give a console mixer like feel. There is no bounds in the source code so you can for example give higher than 127 values for extra amplitude but possibly clipped audio.

Syntax

kout gainslider kindex

Performance

kindex -- Index value. Nominal range from 0-127. For example a range of 0-152 will give you a range from -∞ to +18.0 dB.

kout -- Scaled output.

Examples

Here is an example of the gainslider opcode. It uses the file gainslider.csd.

Example of the gainslider opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    Silent
-odac           -iadc     -d    ;;;realtime output
</CsOptions>
<CsInstruments>

sr      =  48000
ksmps   =  100
nchnls  =  2

            instr   1       ; gainslider test

; uncomment for realtime midi
;kmod   ctrl7   1, 1, 0, 127

; uncomment for non realtime
km0d phasor 1/10
kmod scale km0d, 127, 0

kout    gainslider      kmod
        printks "kmod = %f  kout = %f\\n", 0.1, kmod, kout
aout    diskin2 "fox.wav", 1, 0, 1
aout    =       aout*kout
        outs    aout, aout

            endin

</CsInstruments>
<CsScore>
i1      0       30
e
</CsScore>
</CsoundSynthesizer>

See also

Linear and Exponential Generators

Credits

Author: David Akbari
October
2006