elseif — Defines another "if...then" condition when a "if...then" condition is false.
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).
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.
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>
More information on this opcode: http://www.csoundjournal.com/2006spring/controlFlow.html , written by Steven Yi