==
Prev | Orchestra Opcodes and Operators | Next

## ==

== — Compares two values for equality.

## Description

Compares two values for equality.

## Syntax

    (a == b ? v1 : v2)

where a, b, v1 and v2 may be expressions, but a, b not audio-rate.

## Performance

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.

## Examples

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>

## See also

Conditional Values

Prev | Up | Next
+= | Home | ^