elseif
Prev | Orchestra Opcodes and Operators | Next

## elseif

elseif — Defines another "if...then" condition when a "if...then" condition is false.

## Description

Defines another "if...then" condition when a "if...then" condition is false.

## Syntax

    elseif xa R xb then

where label is in the same instrument block and is not an expression, and where R is one of the Relational operators (<, =, <=, ==, !=) (and = for convenience, see also under Conditional Values).

## Performance

elseif is used inside of a block of code between the "if...then" and endif opcodes. When a "if...then" condition is false, it defines another "if...then" condition to be met. Any number of elseif statements are allowed.

## Examples

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

Example 262. Example of the elseif 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 elseif.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    instr 1

    ipch = cpspch(p4)
    ienv = p5

    if (ienv == 0) then
    	;ADSR
    	kenv adsr 0.05, 0.05, .95, .05
    elseif (ienv == 1) then
    	;Linear Triangular Envelope
    	kenv linseg 0, p3 * .5, 1, p3 * .5, 0
    elseif (ienv == 2) then
    	;Ramp Up
    	kenv	linseg 0, p3 - .01, 1, .01, 0
    endif

    aout	vco2 	.8, ipch, 10
    aout	moogvcf	aout, ipch + (kenv * 5 * ipch) , .5

    aout = aout * kenv

    outs aout, aout
    endin
    </CsInstruments>
    <CsScore>

    i 1 0 2 8.00 0
    i 1 3 2 8.00 1
    i 1 6 2 8.00 2
    e
    </CsScore>
    </CsoundSynthesizer>

## See also

Program Flow Control

More information on this opcode: http://www.csoundjournal.com/2006spring/controlFlow.html , written by Steven Yi

## Credits

New in version 4.21

Prev | Up | Next
else | Home | endif