Dans les anciennes versions de Csound les nombres présents dans une partition étaient utilisés tels quels. Dans certains cas, une évaluation simple serait plus facile. Ce besoin est accru s'il y a des macros. Pour y arriver, on a introduit la syntaxe des expressions arithmétiques entre crochets [ ]. On peut utiliser des expressions avec les opérations +, -, *, /, % ("modulo"), et ^ ("élévation à une puissance"), les groupements se faisant par parenthèses ( ). Les signes unaires plus et moins sont aussi supportés. Les expressions peuvent inclure des nombres et, naturellement, des macros dont la valeur est une chaîne numérique ou arithmétique. Tous les calculs sont faits en nombres en virgule flottante. Les règles de précédence usuelles sont suivies lors de l'évaluation : les expressions entre parenthèse () sont évaluées en premier et ^ est évalué avant *, /, et % qui sont évalués avant + et -.
En plus des opérations arithmétiques, les opérateurs logiques bit à bit suivants sont aussi disponibles : & (ET), | (OU), et # (OU exclusif). Ces opérateurs arrondissent leurs opérandes à l'entier (long) le plus proche avant l'évaluation. Les opérateurs logiques ont la même précédence que les opérateurs arithmétiques *, /, et %.
Finalement, on peut utiliser le symbole tilde ˜ dans une expression chaque fois qu'un nombre est permis. Chaque ˜ sera remplacé par un nombre aléatoire compris entre zéro (0) et un (1).
r3 CNT i1 0 [0.3*$CNT.] i1 + [($CNT./3)+0.2] e
Comme les trois copies de la section comprennent la macro $CNT. avec les valeurs successives 1, 2 et 3, le développement est
s i1 0 0.3 i1 0.3 0.533333 s i1 0 0.6 i1 0.6 0.866667 s i1 0 0.9 i1 0.9 1.2 e
C'est une forme extrême, mais on peut aussi utiliser le système d'évaluation pour répéter des sections avec des différences subtiles.
Voici quelques exemples simples de chaque opérateur :
i1 0 1 [ 110 + 220 ] ; evaluates to 330 i1 + . [ 330 - 55 ] ; 275 i1 + . [ 44 * 10 ] ; 440 i1 + . [ 1100 / 2 ] ; 550 i1 + . [ 5 ^ 4 ] ; 625 i1 + . [ 5660 % 1000 ] ; 660 i1 + . [ 110 & 220 ] ; 76 i1 + . [ 110 | 220 ] ; 254 i1 + . [ 110 # 220 ] ; 178 i1 + . [~] ; random between 0-1 i1 + . [~ * 4 + 1] ; random between 1-5 i1 + . [~ * 95 + 5] ; random between 5-100 i1 + . [ 8 / 2 * 3 ] ; 12 i1 + . [ 4 + 3 - 2 + 1 ] ; 6 i1 + . [ 4 + 3 * 2 + 1 ] ; 11 i1 + . [(4 + 3)*(2 + 1)] ; 21 i1 + . [ 2 * 2 & 3 ] ; 4 i1 + . [ 3 & 2 * 2 ] ; 0 i1 + . [ 4 | 3 * 3 ] ; 13