limit
Prev | Orchestra Opcodes and Operators | Next

## limit

limit — Sets the lower and upper limits of the value it processes.

## Description

Sets the lower and upper limits of the value it processes.

## Syntax

    ares limit asig, klow, khigh

    ires limit isig, ilow, ihigh

    kres limit ksig, klow, khigh

    ires[] limit isig[], ilow, ihigh

    kres[] limit ksig[], klow, khigh

## Initialization

isig -- input signal

ilow -- low threshold

ihigh -- high threshold

## Performance

xsig -- input signal

klow -- low threshold

khigh -- high threshold

limit sets the lower and upper limits on the xsig value it processes. If xhigh is lower than xlow, then the output will be the average of the two - it will not be affected by xsig.

This opcode is useful in several situations, such as table indexing or for clipping and modeling a-rate, i-rate or k-rate signals.

## Examples

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

Example 500. Example of the limit opcode.

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
    -odac   ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o limit.wav -W  ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    instr    1 ; Limit / Mirror / Wrap

    igain    = p4				;gain
    ilevl1   = p5				; + level
    ilevl2   = p6				; - level
    imode    = p7				;1 = limit, 2 = mirror, 3 = wrap

    ain   soundin  "fox.wav"
    ain   = ain*igain

    if    imode = 1 goto limit
    if    imode = 2 goto mirror

    asig  wrap  ain, ilevl2, ilevl1
    goto  outsignal

    limit:
    asig  limit  ain, ilevl2, ilevl1
    goto  outsignal

    mirror:
    asig  mirror  ain, ilevl2, ilevl1
    outsignal:

    outs  asig*.5, asig*.5			;mind your speakers

    endin

    </CsInstruments>
    <CsScore>

    ;           Gain  +Levl -Levl Mode
    i1  0  3    4.00  .25  -1.00   1	;limit
    i1  4  3    4.00  .25  -1.00   2	;mirror
    i1  8  3    4.00  .25  -1.00   3	;wrap
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

mirror, wrap

## Credits

Author: Robin Whittle
Australia

New in Csound version 3.46

Prev | Up | Next
lfsr | Home | limit1