pvsvoc

pvsvoc — Combine l'enveloppe spectrale d'un fsig avec l'excitation (les fréquences) d'un autre fsig.

Description

Cet opcode fournit un support pour la synthèse croisée des amplitudes et des fréquences. Il prend les amplitudes d'un fsig en entrée et les combine avec les fréquences d'un autre fsig. C'est une version spectrale du célèbre vocodeur.

Syntaxe

fsig pvsvoc famp, fexc, kdepth, kgain [,kcoefs]

Exécution

fsig -- flot pv de sortie

famp -- flot pv d'entrée duquel sont extraites les amplitudes

fexc -- flot pv d'entrée duquel sont prises les fréquences

kdepth -- importance de l'effet, affectant la quantité de fréquences prélevées sur le second fsig : 0, la sortie est le signal famp, 1 la sortie combine les amplitudes de famp avec les fréquences de fexc.

kgain -- gain de renforcement/atténuation appliqué à la sortie.

kcoefs -- nombre de coefficients du cepstre utilisés dans l'estimation de l'enveloppe spectrale (vaut 80 par défaut).

[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

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

Exemple 781. Exemple de l'opcode pvsvoc.

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

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

gisaw	ftgen	1, 0, 2048, 10, 1, 0.5, 0.3, 0.25, 0.2	;sawtooth-like

instr 1

asig in					;get the signal in
asyn poscil .6, 150, gisaw		;excitation signal of 150 Hz

famp pvsanal asig, 1024, 256, 1024, 1	;analyse in signal
fexc pvsanal asyn, 1024, 256, 1024, 1	;analyse excitation signal
ftps pvsvoc  famp, fexc, 1, 1		;cross it
atps pvsynth ftps			;synthesise it                      
     outs atps, atps

endin
</CsInstruments>
<CsScore>

i 1 0 10
e
</CsScore>
</CsoundSynthesizer>


L'exemple ci-dessus montre une opération typique de synthèse croisée. Le signal d'entrée (disons un signal vocal) est utilisé pour son spectre d'amplitude. Un oscillateur avec une forme d'onde complexe arbitraire produit le signal d'excitation, donnant au son vocal sa hauteur.

Crédits

Auteur : Victor Lazzarini
Avril 2005

Nouveau greffon dans la version 5

Avril 2005.