pvscale — Met à l'échelle les composantes de fréquence d'un flot pv.
Met à l'échelle les composantes de fréquence d'un flot pv, ce qui provoque une transposition de hauteur. Les amplitudes peuvent être modifiées afin de préserver les formants.
fsig -- flot pv de sortie
fsigin -- flot pv d'entrée
kscal -- facteur de mise à l'échelle.
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).
La qualité de la transposition de hauteur sera améliorée par l'utilisation d'une fenêtre de Hanning dans l'analyse pvoc. La méthode 1 de préservation de formants est moins intensive que la méthode 2, qui, elle, pourrait ne pas convenir à une utilisation en temps réel.
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. |
Exemple 817. Exemples
asig in ; get the signal in fsig pvsanal asig, 1024, 256, 1024, 1 ; analyse it ftps pvscale fsig, 1.5, 1, 1 ; transpose it keeping formants atps pvsynth ftps ; synthesise it adp delayr 0.1 ; delay original signal adel deltapn 1024 ; by 1024 samples delayw asig out atps + adel ; add tranposed and original
L'exemple ci-dessus montre un harmoniseur vocal. Le délai est nécessaire pour aligner les signaux temporellement, car le traitement d'analyse-synthèse implique un délai de 1024 échantillons entre l'entrée d'analyse et la sortie de synthèse.
Voici un exemple de l'opcode pvscale. Il utilise le fichier pvscale.csd.
Exemple 818. Exemple de l'opcode pvscale.
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 I/O ; For Non-realtime ouput leave only the line below: ; -o pvscale.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 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 the audio-signal fftblur pvscale fftin, p4, p5, p6; scale aout pvsynth fftblur; resynthesis outs aout*.5, aout*.5 endin </CsInstruments> <CsScore> i 1 0 3 1 0 1 ; original sound i 1 3 3 1.5 0 2 ; fifth higher without ... i 1 6 3 1.5 1 2 ; ... and with different ... i 1 9 3 1.5 2 5 ; ... kinds of formant preservation e </CsScore> </CsoundSynthesizer>