pan — Distribue un signal audio sur quatre canaux.
ifn -- numéro de la table de fonction d'un modèle décrivant l'augmentation d'amplitude dans le canal d'un haut-parleur lorsque le son se déplace vers celui-ci en provenance d'un haut-parleur voisin. Nécessite un point de garde.
imode (facultatif) -- mode des valeurs de position kx, ky. 0 signifie un indice brut, 1 signifie que les entrées sont normalisées (0 - 1). La valeur par défaut est 0.
ioffset (facultatif) -- indicateur de translation pour kx, ky. 0 implique que l'origine se trouve au canal 3 (arrière-gauche) ; 1 indique un glissement des axes au centre de la quadraphonie. La valeur par défaut est 0.
pan distribue son signal d'entrée asig sur quatre sorties (essentiellement des haut-parleurs quadraphoniques) en fonction des contrôles kx et ky. Avec une entrée normalisée (imode=1) et sans translation, les quatre positions de sortie sont dans l'ordre : avant-gauche à (0, 1), avant-droite à (1, 1), arrière-gauche à l'origine (0, 0) et arrière-froite à (1, 0). Dans la notation (kx, ky), les coordonnées kx et ky, chacune variant entre 0 et 1, contrôlent la position du son en largeur et en profondeur.
Le mouvement entre les haut-parleurs se fait par variation d'amplitude, contrôlée par la table de fonction ifn. Comme kx varie entre 0 et 1, la force du signal de droite augmentera de la valeur la plus à gauche dans la table jusqu'à la valeur la plus à droite, tandis que celle du signal de gauche progressera de la valeur de la table la plus à droite jusqu'à la plus à gauche. Pour un simple panoramique linéaire, la table peut contenir la fonction linéaire de 0 à 1. On obtiendra un panoramique plus correct maintenant une puissance constante en mémorisant le premier quadrant d'une sinusoïde. Comme pan pondère et tronque kx et ky lors de la lecture de la table, il vaut mieux utiliser une table de taille moyenne (disons 8193).
Les valeurs kx, ky ne sont pas restreintes à 0 - 1. Un mouvement circulaire passant par les quatre haut-parleurs (à l'intérieur) aura un diamètre de racine de deux, et pourra être défini par un cercle de rayon R = racine 1/2 dont le centre se trouve en (0.5, 0.5). kx, ky seront alors donnés par Rcos(angle), Rsin(angle), avec une origine implicite en (0.5, 0.5) (c'est-à-dire ioffset = 1). Les valeurs brutes non pondérées opèrent de la même manière. Les sons peuvent ainsi être positionnés partout dans le plan polaire ou cartésien ; les points se trouvant hors du carré des haut-parleurs sont projetés correctement sur le périmètre du carré pour un auditeur situé au centre.
Voici un exemple de l'opcode pan. Il utilise le fichier pan.csd.
Exemple 725. Exemple de l'opcode pan.
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 -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if real audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o pan.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 4 0dbfs = 1 instr 1 kcps = p4 k1 phasor kcps ; "fraction" of circle - controls speed of rotation - can be negative k2 tablei k1, 1, 1 ; sin of angle (sinusoid in f1) k3 tablei k1, 1, 1, .25, 1 ; cos of angle (sin offset 1/4 circle) arnd randomi 400, 1000, 50 ; produce random values asig poscil .7, arnd, 1 ; audio signal.. a1,a2,a3,a4 pan asig, k2/2, k3/2, 2, 1, 1 ; sent in a circle (f2=1st quad sin) outq a1, a2, a3, a4 endin </CsInstruments> <CsScore> f1 0 8192 10 1 f2 0 8193 9 .25 1 0 i1 0 10 .2 ;move to the tight i1 11 10 -.2 ;move to the left e </CsScore> </CsoundSynthesizer>