clip

clip — Rogne un signal à une limite prédéfinie.

Description

Coupe un signal de taux-a à une limite prédéfinie, de manière « douce », en utilisant une méthode choisie parmi les trois possibles.

Syntaxe

ares clip asig, imeth, ilimit [, iarg]

Initialisation

imeth -- choisit la méthode de coupure. La valeur par défaut est 0. Les méthodes sont :

  • 0 = méthode de Bram de Jong (par défaut)

  • 1 = coupure par sinus

  • 2 = coupure par tanh

ilimit -- valeur limite

iarg (facultatif, 0.5 par défaut) -- lorsque imeth = 0, indique le point, compris entre 0 et 1, où la coupure commence. N'est pas utilisé si imeth = 1 ou 2. Sa valeur par défaut est 0.5.

Exécution

asig -- signal de taux-a en entrée

La méthode de Bram de Jong (imeth = 0) applique l'algorithme (en notant ilimit comme limit et iarg comme a :

|x| >= 0 and |x| <= (limit*a):  f(x) = f(x)
|x| > (limit*a) and |x| <= limit:  f(x) = sign(x) * (limit*a+(x-limit*a)/(1+((x-limit*a)/(limit*(1-a)))2))
|x| > limit:  f(x) = sign(x) * (limit*(1+a))/2

La seconde méthode (imeth = 1) est la coupure par sinus :

|x| < limit:  f(x) = limit * sin(π*x/(2*limit)),   |x| >= limit:  f(x) = limit * sign(x)

La troisème méthode (imeth = 2) est la coupure par tanh :

|x| < limit:  f(x) = limit * tanh(x/limit)/tanh(1),   |x| >= limit:  f(x) = limit * sign(x)

[Note] Note

Il semble que la méthode 1 n'était pas fonctionnelle dans la version 4.07 de Csound.

Exemples

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

Exemple 146. Exemple de l'opcode clip.

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 clip.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1	; white noise

arnd rand 1	; full amlitude
; Clip the noisy waveform's amplitude to 0.5
a1 clip arnd, p4, 0.5
   outs a1, a1

endin

instr 2	; white noise

arnd rand 1	; full amlitude
; Clip the noisy waveform's amplitude to 0.1
a1 clip arnd, p4, 0.1
   outs a1, a1

endin

</CsInstruments>
<CsScore>

; Play Instrument #1 for one second.
i 1 0 1 2
; Play Instrument #2 for one second.
i 2 1 1 2
s 3
; Play Instrument #1 for one second.
i 1 0 1 0
; Play Instrument #2 for one second.
i 2 1 1 0
s 3
; Play Instrument #1 for one second.
i 1 0 1 1
; Play Instrument #2 for one second.
i 2 1 1 1
e

</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : John ffitch
Université de Bath, Codemist Ltd.
Bath, UK
Août, 2000

Nouveau dans la version 4.07 de Csound

Septembre 2009 : grâce à une note de Paolo Dell'Osso, les formules ont été corrigées.