% — Opérateur modulo.
Les opérateurs arithmétiques réalisent les opérations de changement de signe (négation), de signe inchangé, ET logique, OU logique, addition, soustraction, multiplication et division. Notez qu'une valeur ou une expression peut être placée entre deux de ces opérateurs, lesquels peuvent la prendre comme opérande de gauche ou de droite, comme dans
a + b * c.
Trois règles s'appliquent dans de tels cas :
1. * et / s'appliquent à leurs voisins plus fortement que + et −. Ainsi l'expression ci-dessus s'interprète comme
a + (b * c)
avec * prenant b et c puis + prenant a et b * c.
2. + et − sont prioritaires sur &&, qui devance lui-même || :
a && b - c || d
est interprété comme
(a && (b - c)) || d
3. Quand deux opérateurs sont d'égale importance, les opérations ont lieu de gauche à droite :
a - b - c
est interprété comme
(a - b) - c
On peut utiliser des parenthèses pour forcer un groupement particulier.
L'opérateur % retourne la valeur de la réduction de a par b, de telle façon que le résultat, en valeur absolue, est inférieur à la valeur absolue de b, par soustraction répétée. C'est l'équivalent de la fonction modulo pour les entiers. Nouveau dans la version 3.50 de Csound.
Voici un exemple de l'opérateur %. Il utilise le fichier modulus.csd.
Exemple 14. Exemple de l'opérateur %.
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 modulus.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 i1 = 5 % 3 print i1 endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. i 1 0 1 e </CsScore> </CsoundSynthesizer>
Sa sortie présentera une ligne comme celle-ci :
instr 1: i1 = 2.000