delay1

delay1 — Retarde un signal d'entrée d'un échantillon.

Description

Retarde un signal d'entrée d'un échantillon.

Syntaxe

ares delay1 asig [, iskip]

Initialisation

iskip (facultatif, 0 par défaut) -- disposition initiale de l'espace des données de la boucle de retard (voir reson). La valeur par défaut est 0.

Exécution

delay1 est une forme spéciale de délai qui sert à retarder le signal audio asig d'un seul échantillon. Il est ainsi fonctionnellement équivalent à l'opcode delay mais il est plus efficace à la fois en temps et en espace. Cette unité est particulièrement utile dans le fabrication de filtres non récursifs généralisés.

Exemples

Voici un exemple des opcodes delay et delay1. Il utilise le fichier delay1.csd.

Exemple 216. Exemple de l'opcode delay1.

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
; Audio out   Audio in
-odac             ;;;RT audio out
; For Non-realtime ouput leave only the line below:
; -o delay1.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; by Menno Knevel 2021, after Russel Pinkston

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


instr 1                             ; original sounds

ichoice =   p4
if ichoice == 0 then
        prints  "\n--**original beats**--\n\n"
    aout    diskin2 "beats.wav"
else
        prints  "\n--**original noise**--\n\n"
    aout    rand .2
endif
outs    aout, aout

endin

instr 2                             ; Finite Impulse Response (FIR) Filter
                                    
ichoice =   p4
if ichoice == 0 then
    prints  "\n--**FIRST-ORDER LOW-PASS on the beats**--\n\n"
    aout    diskin2 "beats.wav"
else
    prints  "\n--**FIRST-ORDER LOW-PASS on the noise**--\n\n"
    aout    rand .2
endif

adel1   delay1  aout                ; delay 1 sample        			
asig    =   (.5* aout)+(.5* adel1)	; average 2 succesive inputs
outs    asig, asig

endin


instr 3                             ; Finite Impulse Response (FIR) Filter        
                                    
ichoice =   p4
if ichoice == 0 then
    prints  "\n--**FIRST-ORDER HIGH-PASS on the beats**--\n\n"
    aout    diskin2 "beats.wav"
else
    prints  "\n--**FIRST-ORDER HIGH-PASS on the noise**--\n\n"
    aout    rand .2
endif

adel1   delay1  aout                ; delay 1 sample
asig    =   (.5*aout)-(.5*adel1)   	; difference of 2 inputs
outs    asig, asig

endin

instr 4                             ; Finite Impulse Response (FIR) Filter        
                                    
ichoice =   p4
if ichoice == 0 then
    prints  "\n--**SECOND-ORDER NOTCH on the beats**--\n\n"
    aout    diskin2 "beats.wav"
else
    prints  "\n--**SECOND-ORDER NOTCH on the noise**--\n\n"
    aout    rand .2
endif

adel1   delay1  aout                ; x(n - 1)
adel2   delay1  adel1               ; x(n - 2)
asig   	=   (.5*aout)+(.5*adel2)  	; y(n) = .5x(n) + .5x(n - 2)
outs    asig, asig

endin

instr 5                             ; Finite Impulse Response (FIR) Filter        
                                    
ichoice =   p4
if ichoice == 0 then
    prints  "\n--**SECOND-ORDER BAND-PASS on the beats**--\n\n"
    aout    diskin2 "beats.wav"
else
    prints  "\n--**SECOND-ORDER BAND-PASS on the noise**--\n\n"
    aout    rand .2
endif

adel1   delay1  aout                ; x(n - 1)
adel2   delay1  adel1               ; x(n - 2)
asig   	=   (.5*aout)-(.5*adel2)  	; y(n) = .5x(n) - .5x(n - 2)
outs    asig, asig

endin

</CsInstruments>
<CsScore>

i1   0     2    0   
i1   3     2    1 
s
i2   1     2    0 
i2   4     2    1   
s
i3   1     2    0 
i3   4     2    1 
s
i4   1     2    0 
i4   4     2    1 
s
i5   1     2    0 
i5   4     2    1 
e
</CsScore>
</CsoundSynthesizer>


Voici le résultat de l'exemple : 5 fois les pulsations et le bruit. 1. Echantillons originaux, 2. passe-bas du premier ordre, 3. passe-haut du premier ordre, 4. réjection du second ordre et 5. passe-bande du second ordre.

Voir aussi

delay, delayr, delayw

Crédits

Auteur : Barry Vercoe