deltapi

deltapi — Lit une ligne à retard avec des délais variables et interpolation.

Description

Lit une ligne à retard avec des délais variables et interpolation.

Syntaxe

ares deltapi xdlt

Exécution

xdlt -- spécifie le délai de lecture en secondes. Chaque valeur est comprise entre 1 période de contrôle et le délai total de la paire lecture/écriture ; cependant, comme il n'y a pas de vérification interne du respect de cet intervalle, l'utilisateur est entièrement responsable. Chaque argument peut être une constante, une variable ou un signal variant dans le temps ; l'argument xdlt de deltapi implique qu'une valeur de délai variant au taux audio est autorisée ici.

deltapi extrait le son par lecture interpolée. En interpolant entre deux échantillons voisins stockés deltapi restitue un délai particulier avec plus de précision, mais nécessite deux fois plus de temps de calcul.

Cet opcode peut lire directement dans une paire delayr/delayw en extrayant les données audio retardées des idlt secondes de son stocké. Il peut y avoir n'importe quel nombre d'unités deltap et/ou deltapi entre une paire lecture/écriture. Chacune reçoit un extrait audio sans changement de l'amplitude originale.

Ces opcodes peuvent fournir de multiples lectures de délai pour des lignes à retard arbitraires et des réseaux à rétroaction. Ils peuvent délivrer des délais constants ou variables, et sont utiles pour construire des effets de chorus, harmonizer et Doppler. Les délais constants (et certains de ceux qui varient lentement) ne nécessitent pas d'interpolation ; deltap leur convient très bien. Les délais variant à moyenne vitesse ou rapidement nécessiteront cependant les services supplémentaires de deltapi.

Les paires delayr/delayw peuvent être entrelacées. Pour associer une unité de lecture de délai à une unité delayr, elle doit non seulement être située entre ce delayr et le delayw approprié, mais aussi précéder tous les delayr suivants. Voir l'exemple 2. (Cette possibilité fut ajoutée dans la version 3.57 de Csound par Jens Groh et John ffitch).

N.B. Les délais de taux-k ne sont pas interpolés en interne, mais déroulent plutôt des décalages temporels d'échantillons audios ; c'est adéquat pour des délais changeant lentement. Cependant, pour les changements à vitesse moyenne ou rapides, il faut fournir en entrée des valeurs de délai avec une plus grande résolution de taux audio.

Exemples

Exemple 226. Exemple n°1 de deltap

  asource  buzz      1, 440, 20, 1
  atime    linseg    1, p3/2,.01, p3/2,1   ; trace a distance in secs
  ampfac   =         1/atime/atime         ; and calc an amp factor
  adump    delayr    1                     ; set maximum distance
  amove    deltapi   atime                 ; move sound source past
           delayw    asource               ; the listener
           out       amove * ampfac


Exemple 227. Exemple n°2 de deltap

  ainput1 =	..... 
  ainput2 =	..... 
  kdlyt1  =	..... 
  kdlyt2  =	..... 

;Read delayed signal, first delayr instance:
  adump   delayr  4.0 
  adly1   deltap  kdlyt1       ; associated with first delayr instance

;Read delayed signal, second delayr instance:
  adump   delayr  4.0 
  adly2   deltap  kdlyt2       ; associated with second delayr instance

;Do some cross-coupled manipulation:
  afdbk1  =       0.7 * adly1 + 0.7 * adly2 + ainput1 
  afdbk2  =       -0.7 * adly1 + 0.7 * adly2 + ainput2 

;Feed back signal, associated with first delayr instance:
          delayw  afdbk1 

;Feed back signal, associated with second delayr instance:
          delayw  afdbk2
          outs    adly1, adly2


Voici un autre exemple de l'opcode deltapi. Il utilise le fichier deltapi.csd.

Exemple 228. Exemple de l'opcode deltapi.

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     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o deltapi.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1   

gasig  init 0   
gidel  = 1		;delay time in seconds
                                                             
instr 1
	
ain  pluck .7, 440, 1000, 0, 1
     outs ain, ain

vincr gasig, ain	;send to global delay
endin

instr 2	

ifeedback = p4	

abuf2	delayr	gidel
adelL 	deltapi	.4		;first tap (on left channel)
adelM 	deltapi	1		;second tap (on middle channel)
	delayw	gasig + (adelL * ifeedback)

abuf3	delayr	gidel
kdel	line    1, p3, .01	;vary delay time
adelR 	deltapi .65 * kdel	;one pitch changing tap (on the right chn.)
	delayw	gasig + (adelR * ifeedback)
;make a mix of all deayed signals	
	outs	adelL + adelM, adelR + adelM

clear	gasig
endin

</CsInstruments>
<CsScore>

i 1 0 1
i 1 3 1
i 2 0 3  0	;no feedback
i 2 3 8 .8	;lots of feedback
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

deltap, deltap3, deltapn