deltapi
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## 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 196. 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 197. 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 198. 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

Précédent | Niveau supérieur | Suivant
deltap3 | Sommaire | deltapn