pvshift

pvshift — Décale les composantes de fréquence d'un flot pv, étirant/compressant son spectre.

Description

Décale les composantes de fréquence d'un flot pv, étirant/compressant son spectre.

Syntaxe

fsig pvshift fsigin, kshift, klowest[, kkeepform, igain, kcoefs]

Exécution

fsig -- flot pv de sortie

fsigin -- flot pv d'entrée

kshift -- quantité de décalage (en Hz, positive ou négative).

klowest -- fréquence la plus basse à décaler.

kkeepform -- tente de préserver les formants du signal d'entrée ; 0 : ne pas garder les formants ; 1 : conserve les formants en utilisant une méthode de cepstre décalé ; 2 : conserve les formants en utilisant une méthode avec une véritable enveloppe (vaut 0 par défaut).

kgain -- modification d'amplitude (1 par défaut).

kcoefs -- nombre de coefficients du cepstre utilisés pour la préservation des formants (vaut 80 par défaut).

Cet opcode décale les composantes d'un flot pv à partir d'une certaine fréquence, vers le haut ou vers le bas, d'une quantité fixe (en Hz). On peut l'utiliser pour transformer un spectre harmonique en un spectre inharmonique. L'indicateur kkeepform peut être utilisé pour essayer de préserver les formants pour des modifications du spectre intéressantes et inhabituelles.

[Avertissement] Avertissement

Il est dangereux d'utiliser la même variable-f à la fois comme entrée et comme sortie des opcodes pvs. Ceci peut produire un comportement indéfini de certains de ces opcodes. Utilisez une variable différente à gauche et à droite de l'opcode.

Exemples

Exemple 676. Exemples

asig  in                                 ; get the signal in

fsig  pvsanal   asig, 1024, 256, 1024, 1 ; analyse it
ftps  pvshift   fsig, 100, 0             ; add 100 Hz to each component
atps  pvsynth   ftps                     ; synthesise it


En fonction de l'entrée, ceci transformera un son à hauteur définie en un son inharmonique comme celui d'une cloche.

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

Exemple 677. Exemple de l'opcode pvshift.

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>
-odac
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 16
nchnls = 1
0dbfs = 1

;; example written by joachim heintz 2009

instr 1
ishift		=		p4; shift amount in Hz
ilowest	=		p5; lowest frequency to be shifted
ikeepform	=		p6; 0=no formant keeping, 1=keep by amps, 2=keep by spectral envelope
ifftsize	=		1024
ioverlap	=		ifftsize / 4
iwinsize	=		ifftsize
iwinshape	=		1; von-Hann window
Sfile		=		"fox.wav"
ain		soundin	Sfile
fftin		pvsanal	ain, ifftsize, ioverlap, iwinsize, iwinshape; fft-analysis of file
fshift		pvshift  	fftin, ishift, ilowest, ikeepform; shift frequencies
aout		pvsynth	fshift; resynthesize
		out		aout
endin

</CsInstruments>
<CsScore>
i 1 0 2.757 0 0 0; no shift at all
i 1 3 2.757 100 0 0; shift all frequencies by 100 Hz
i 1 6 2.757 200 0 0; by 200 Hz
i 1 9 2.757 200 0 1; keep formants by method 1
i 1 12 2.757 200 0 2; by method 2
i 1 15 2.757 200 1000 0; shift by 200 Hz but just above 1000 Hz
i 1 18 2.757 1000 500 0; shift by 1000 Hz above 500 Hz
i 1 21 2.757 1000 300 0; above 300 Hz
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

pvsanal, pvsynth, pvsadsyn

Crédits

Auteur : Victor Lazzarini
Novembre 2004

Nouveau greffon dans la version 5

Novembre 2004.