pvscale
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## pvscale

pvscale — Met à l'échelle les composantes de fréquence d'un flot pv.

## Description

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.

## Syntaxe

    fsig pvscale fsigin, kscal[, kkeepform, kgain, kcoefs]

## Exécution

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.

## Exemples

Exemple 711. 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 712. 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>
    -odac
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 16
    nchnls = 1
    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
    		out		aout
    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>

## Voir aussi

pvsanal, pvsynth, pvsadsyn

## Crédits

Auteur : Victor Lazzarini
Novembre 2004

Nouveau greffon dans la version 5

Novembre 2004.

Précédent | Niveau supérieur | Suivant
pvsbufread2 | Sommaire | pvscent