locsig — Distribue le signal d'entrée entre 2 ou 4 canaux.
locsig distribue le signal d'entrée entre 2 ou 4 canaux en utilisant des valeurs en degrés pour calculer la balance entre les canaux adjacents. Il y a aussi des arguments pour la distance (pour atténuer les signaux qui doivent être perçus comme s'ils étaient plus éloignés que les haut-parleurs) et pour la quantité de signal qui sera envoyée aux unités de réverbération. Basé sur l'exemple du livre de Charles Dodge/Thomas Jerse, Computer Music, page 320.
a1, a2 locsig asig, kdegree, kdistance, kreverbsend
a1, a2, a3, a4 locsig asig, kdegree, kdistance, kreverbsend
kdegree -- valeur entre 0 et 360 pour le placement du signal dans un espace à 2 ou 4 canaux configuré comme ceci : a1=0, a2=90, a3=180, a4=270 (kdegree=45 répartirera également le signal entre a1 et a2). locsig applique kdegree à des fonctions sin et cos pour obtenir les balances du signal (par exemple asig=1, kdegree=45, a1=a2=0.707).
kdistance -- valeur >= 1 pour atténuer le signal et calculer le niveau de réverbération pour simuler l'éloignement. Plus kdistance est important et plus le son sera adouci et quelque peu réverbéré (assumant l'utilisation de locsend dans ce cas).
kreverbsend -- le pourcentage de signal direct qui sera combiné avec les valeurs de distance et de degrés pour obtenir la quantité de signal qui sera envoyée à une unité de réverbération telle que reverb ou reverb2.
Voici un exemple de l'opcode locsig. Il utilise le fichier locsig_quad.csd.
Exemple 523. Exemple de l'opcode locsig.
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 realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o locsig_quad.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 4 0dbfs = 1 ga1 init 0 ga2 init 0 ga3 init 0 ga4 init 0 instr 1 krevsend = p4 aout diskin2 "beats.wav", 1, 0, 1 kdegree line 0, p3, 360 ;full circle kdistance line 1, p3 , 1 a1, a2, a3, a4 locsig aout, kdegree, kdistance, krevsend ar1, ar2, ar3, ar4 locsend ga1 = ga1+ar1 ga2 = ga2+ar2 ga3 = ga3+ar3 ga4 = ga4+ar4 outq a1, a2, a3, a4 endin instr 99 ; reverb instrument a1 reverb2 ga1, 3.5, .5 a2 reverb2 ga2, 3.5, .5 a3 reverb2 ga3, 3.5, .5 a4 reverb2 ga4, 3.5, .5 outq a1, a2, a3, a4 ga1 = 0 ga2 = 0 ga3 = 0 ga4 = 0 endin </CsInstruments> <CsScore> ; sine wave. f 1 0 16384 10 1 i 1 0 14 .1 ;with reverb i 1 14 14 0 ;no reverb i99 0 36 e </CsScore> </CsoundSynthesizer>
Dans l'exemple ci-dessus, le signal aout fait un tour complet sur un cercle pendant la durée de la note tout en « s'éloignant » de la position de l'auditeur. locsig envoie en interne à locsend la quantité de signal appropriée. Les sorties de locsend sont ajoutées à des accumulateurs globaux selon la manière habituelle dans Csound et les signaux globaux servent d'entrée aux unités de réverbération dans un instrument séparé.
locsig est utile pour les panoramiques quadro et stéréo ainsi que pour le placement fixe des sons n'importe où entre deux haut-parleurs. Ci-dessous un exemple de placement fixe de sons dans un champ stéréo.
instr 1 a1, a2 locsig asig, p4, p5, .1 ar1, ar2 locsend ga1 = ga1+ar1 ga2 = ga2+ar2 outs a1, a endin instr 99 ; reverb.... endin
A few notes:
; place le son dans le haut-parleur gauche et au premier plan : i1 0 1 0 1 ; place le son dans le haut-parleur droit et à l'arrière plan : i1 1 1 90 25 ; place le son au milieu gauche-droite et à mi-distance en profondeur : i1 2 1 45 12 e
L'exemple suivant montre une utilisation intuitive simple de la valeur de distance pour simuler un effet Doppler. La même valeur est utilisée comme diviseur pour la fréquence et comme paramètre de distance pour locsig.
kdistance line 1, p3, 10 kfreq = (ifreq * 340) / (340 + kdistance) asig oscili iamp, kfreq, 1 kdegree line 0, p3, 360 a1, a2, a3, a4 locsig asig, kdegree, kdistance, .1 ar1, ar2, ar3, ar4 locsend