== — Compares two values for equality.
In the above conditional, a and b are first compared. If the indicated relation is true (a is equal to b), then the conditional expression has the value of v1; if the relation is false, the expression has the value of v2. (For convenience, a sole "=" will function as "= =".)
NB.: If v1 or v2 are expressions, these will be evaluated before the conditional is determined.
In terms of binding strength, all conditional operators (i.e. the relational operators (<, etc.), and ?, and : ) are weaker than the arithmetic and logical operators (+, -, *, /, && and ||).
These are operators not opcodes. Therefore, they can be used within orchestra statements, but do not form complete statements themselves.
Here is an example of the == operator. It uses the file equals.csd.
Example 29. Example of the == operator.
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 equals.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ienv = p4 ;choose envelope in score if (ienv == 0) kthen kenv adsr 0.05, 0.05, 0.95, 0.05 ;sustained envelope elseif (ienv == 1) kthen kenv adsr 0.5, 1, 0.5, 0.5 ;triangular envelope elseif (ienv == 2) kthen kenv adsr 1, 1, 1, 0 ;ramp up endif aout vco2 .1, 110, 10 aout = aout * kenv outs aout, aout endin </CsInstruments> <CsScore> i1 0 2 0 i1 3 2 1 i1 6 2 2 e </CsScore> </CsoundSynthesizer>