deltapn — Lit une ligne à retard avec des délais variables.
xnumsamps -- 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.
deltapn est identique à deltapi, sauf que la durée du retard est exprimée en échantillons plutôt qu'en secondes (Hans Mikelson).
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.
Voici un exemple de l'opcode deltapn. Il utilise le fichier deltapn.csd.
Exemple 229. Exemple de l'opcode deltapn.
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 deltap3.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 deltapn 4000 ;first tap (on left channel) adelM deltapn 44100 ;second tap (on middle channel) delayw gasig + (adelL * ifeedback) abuf3 delayr gidel kdel line 100, p3, 1 ;vary delay time adelR deltapn 100 * 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>