pvoc

pvoc — Implémente une reconstruction de signal au moyen d'un vocoder de phase basé sur la TFR.

Description

Implémente une reconstruction de signal au moyen d'un vocoder de phase basé sur la TFR.

Syntaxe

ares pvoc ktimpnt, kfmod, ifilcod [, ispecwp] [, iextractmode] \
      [, ifreqlim] [, igatefn]

Initialisation

ifilcod -- entier ou chaîne de caractères dénotant un fichier de contrôle dérivé de l'analyse d'un signal audio. Un entier dénote le suffixe d'un fichier pvoc.m ; une chaîne de caractères (entre guillemets) donne un nom de fichier, optionnellement un nom de chemin complet. Si ce n'est pas un nom de chemin complet, le fichier est d'abord cherché dans le répertoire courant, ensuite dans celui donné par la variable d'environnement SADIR (si elle est définie). Le contrôle pvoc contient des valeurs d'enveloppes d'amplitude et de fréquence définies par points, organisées pour une resynthèse par TFR. L'utilisation de la mémoire dépend de la taille des fichiers impliqués, qui sont lus et maintenus entièrement dans la mémoire durant les calculs, mais sont partagés par les appels multiples (voir aussi lpread).

ispecwp (facultatif) -- s'il est différent de zéro, l'opcode tente de préserver l'enveloppe spectrale tandis que le contenu fréquentiel est varié par kfmod. Vaut zéro par défaut.

iextractmode (facultatif) -- détermine s'il faut effectuer l'extraction spectrale et, dans ce cas, quels composants ayant des variations de fréquence sous ifreqlim ou au-dessus de ifreqlim seront écartés. Si iextractmode vaut 1, pvoc ne synthétise que les composants pour lesquels la différence de fréquence entre les trames d'analyse est plus grande que ifreqlim. Si iextractmode vaut 2, pvoc ne synthétise que les composants pour lesquels la différence de fréquence entre trames est plus petite que ifreqlim. iextractmode et ifreqlim valent 0 par défaut, ce qui provoque une simple resynthèse. Les exemples de la notice de pvadd montrent comment utiliser l'extraction spectrale.

igatefn (facultatif) -- le numéro d'une fonction stockée à appliquer aux amplitudes des bins de l'analyse avant la resynthèse. Si igatefn est supérieur à 0, les amplitudes de chaque bin seront modifiées par igatefn par un procédé simple de correspondance. D'abord, les amplitudes de tous les bins dans toutes les trames de l'ensemble du fichier d'analyse sont comparées pour déterminer la valeur de l'amplitude maximale. Cette valeur est ensuite utilisée pour créer des amplitudes normalisées comme indices dans la fonction stockée igatefn. L'amplitude maximale correspond au dernier point dans la fonction. Une amplitude nulle correspond au premier point dans la fonction. Les valeurs entre 0 et 1 sont mises en correspondance avec les points tout au long de la table de fonction. Les exemples de la notice de pvadd montrent comment utiliser le mappage d'amplitude.

Exécution

ktimpnt -- l'écoulement du temps en secondes dans le fichier d'analyse. ktimpnt doit toujours être positif, mais il peut avancer ou reculer, rester stationnaire ou être discontinu, comme pointeur dans le fichier d'analyse.

kfmod -- un facteur de transposition au taux-k : une valeur de 1 signifie pas de transposition, 1.5 transpose vers le haut d'une quinte parfaite et 0.5 transpose vers le bas d'une octave.

pvoc implémente une reconstruction de signal au moyen d'un vocoder de phase basé sur la TFR. Les données de contrôle proviennent d'un fichier d'analyse précompilé avec un taux de trame connu.

Cette implémentation de pvoc a été écrite à l'origine par Dan Ellis. Elle est basée en partie sur le système de Mark Dolson, mais le concept de pré-analyse est nouveau. L'extraction spectrale et le mappage d'amplitude (nouveau dans la version 3.56 de Csound) ont été ajoutés par Richard Karpen en se basant sur les fonctions dans SoundHack par Tom Erbe.

Exemples

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

Exemple 733. Exemple de l'opcode pvoc.

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

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

instr 1
; analyze "fox.wav" with PVANAL first
ispec = p4
ktime line 0, p3, 1.55
kfrq  line .8, p3, 2
asig  pvoc ktime, kfrq, "fox.pvx", ispec 
      outs asig, asig

endin
</CsInstruments>
<CsScore>

i 1 0 6 0
i 1 + 6 1	;preserve spectral envelope
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

vpvoc, PVANAL.

Crédits

Auteurs : Dan Ellis et Richard Karpen
Seattle, Wash
1997