!= — Détermine si une valeur n'est pas égale à une autre.
(a != b ? v1 : v2)
où a, b, v1 et v2 peuvent être des expressions, mais a, b ne sont pas au taux audio.
Dans l'instruction conditionnelle ci-dessus, a et b sont d'abord comparés. Si la relation indiquée est vraie ((a différent de b), alors l'expression conditionnelle prend la valeur de v1 ; si la relation est fausse, l'expression prend la valeur de v2. (Par commodité, un seul signe "=" fonctionnera comme "==".)
Nota bene : Si v1 ou v2 sont des expressions, celles-ci seront évaluées avant que la condition ne soit déterminée.
En termes de précédence, tous les opérateurs conditionnels (c'est-à-dire les opérateurs de relation (<, etc.), et ?, et : ) ont une priorité plus faible que les opérateurs arithmétiques et logiques (+, -, *, /, & et ||).
Ce sont des opérateurs pas des opcodes. C'est pourquoi l'on peut les utiliser dans des instructions de l'orchestre, mais ils ne forment pas eux-mêmes une instruction complète.
Voici un exemple de l'opcode !=. Il utilise le fichier notequal.csd.
Exemple 1. Exemple de l'opcode !=.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o notequal.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 44100 ksmps = 1 nchnls = 1 ; Instrument #1. instr 1 ; Get the 4th p-field from the score. k1 = p4 ; Is it not equal to 3? (1 = true, 0 = false) k2 = (p4 != 3 ? 1 : 0) ; Print the values of k1 and k2. printks "k1 = %f, k2 = %f\\n", 1, k1, k2 endin </CsInstruments> <CsScore> ; Call Instrument #1 with a p4 = 2. i 1 0 0.5 2 ; Call Instrument #1 with a p4 = 3. i 1 1 0.5 3 ; Call Instrument #1 with a p4 = 4. i 1 2 0.5 4 e </CsScore> </CsoundSynthesizer>
Sa sortie devrait présenter des lignes comme celles-ci :
k1 = 2.000000, k2 = 1.000000 k1 = 3.000000, k2 = 0.000000 k1 = 4.000000, k2 = 1.000000