Types, constantes et variables

Les constantes sont des nombres en virgule flottante tels que 1, 3.14159 ou -73.45. Elles sont constamment disponibles et leur valeur ne change pas.

Les variables sont des cellules nommées contenant des nombres. Elle sont constamment disponibles et peuvent être mises à jour à l'un des quatre taux de mise à jour (initialisation seulement, taux-i, taux-k, taux-a). Les variables de taux-i et de taux-k sont scalaires (c'est-à-dire qu'elle ne peuvent prendre qu'une valeur à la fois) et sont utilisées principalement pour stocker et rappeler des données de contrôle, données qui changent au rythme des notes (pour les variables de taux-i) ou au taux de contrôle (pour les variables de taux-k). Les i- et les k-variables sont ainsi utiles pour stocker les valeurs des paramètres de note, hauteurs, durées, fréquences variant lentement, vibratos, etc. D'un autre côté, les variables de taux-a sont des tableaux ou vecteurs d'information. Bien que rafraichies pendant le même passage de contrôle de la période d'exécution que les variables de taux-k, ces cellules de tableau représentent une résolution temporelle plus fine en divisant la période de contrôle en durées d'échantillons (voir ksmps). Les variables de taux-a sont utilisées pour stocker et rappeler des données qui changent au taux d'échantillonnage audio (par exemple les signaux de sortie des oscillateurs, des filtres, etc.).

Certains types de variables peuvent être considérés comme des signaux. Par exemple les variables de taux-a et de taux-k sont des signaux qui ont une fréquence de mise à jour constante (voir kr et sr). Cette abstraction est en général assez utile, mais il faut être conscient que les signaux de taux-a sont en fait des vecteurs qui sont traités au taux-k, c'est-à-dire que Csound travaille en interne au taux-k mais qu'il traite ksmps échantillons numériques pour chaque variable de taux-a à chaque cycle de contrôle.

Il y a d'autres types de signaux qui nécessitent des taux qui ne concordent pas avec kr ou sr. Les signaux de taux-f et de taux-w sont utilisés pour le traitement spectral et leur taux est déterminé par la taille de fenêtre et le facteur de recouvrement.

On distingue également les variables locales des variables globales. Les variables locales sont privées dans un instrument, et un autre instrument ne peut y accéder ni en lecture ni en écriture. Leurs valeurs sont conservées, et leur information est reportée de passage en passage (par exemple de la période d'initialisation à la période d'exécution) à l'intérieur d'un instrument. Les noms de variable locale commencent par la lettre p, i, k, ou a. Le même nom de variable locale peut apparaître dans plusieurs blocs d'instrument différents sans conflit.

Les variables globales sont des cellules qui sont accessibles par tous les instruments. Leurs noms sont formés soit comme les noms locaux précédés de la lettre g, soit de symboles réservés spéciaux. Les variables globales sont utilisées pour diffuser des valeurs générales, pour la communication entre instruments (sémaphores), ou pour envoyer un son d'un instrument à l'autre (par exemple un mixage avant une réverbération).

Etant données ces distinctions, il y a neuf formes de variables locales et globales :

Tableau 3. Types de variables

Type Renouvellement Local Global
symboles réservés permanent -- rsymbole
p-champs de partition temps-i p nombre --
variables d'initialisation temps-i i nom gi nom
signaux de contrôle temps-p, taux-k k nom gk nom
signaux audio temps-p, taux-k (tous les échantillons audio dans une passe-k) a nom ga nom
types de données spectrales taux-k w nom --
flots de données spectrales taux-k f nom gf nom
variables chaînes temps-i et optionnellement temps-k S nom gS nom
variables vecteur taux-k t nom --


rsymbole est un symbole réservé spécial (par exemple sr, kr), nombre est un entier positif faisant référence à un p-champ de partition ou à un numéro de séquence, et nom est une chaîne composée de lettres, du caractère de soulignement, et/ou de chiffres, avec une signification locale ou globale. Comme on peut le voir, les paramètres de partition sont des variables de taux-i dont les valeurs sont copiées à partir de l'instruction de partition appelante juste avant la passe d'initialisation d'un instrument, tandis que les contrôleurs MIDI sont des variables que l'on peut mettre à jour de manière asynchrone depuis un fichier MIDI ou un périphérique MIDI.

Initialisation de variable

Les opcodes qui permettent l'initialisation de variable sont :

Macros de constantes mathématiques prédéfinies

Csound définit plusieurs constantes mathématiques importantes par des macros. On peut consulter la liste complète ici.