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. Play 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

else, endif, goto, if, igoto, kgoto, tigoto, timout

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

Credits

New in version 4.21