locsig

locsig — Distribue le signal d'entrée entre 2 ou 4 canaux.

Description

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.

Syntaxe

a1, a2 locsig asig, kdegree, kdistance, kreverbsend
a1, a2,  a3, a4 locsig asig, kdegree, kdistance, kreverbsend

Exécution

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.

Exemples

Voici un exemple de l'opcode locsig. Il utilise le fichier locsig_quad.csd.

Exemple 474. 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

Voir aussi

locsend

Crédits

Auteur : Richard Karpen
Seattle, WA USA
1998

Nouveau dans la version 3.48 de Csound