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 837. 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 838. 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>
; Select audio/midi flags here according to platform
-odac  ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvshift.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
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
		outs	aout, 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.