GEN43

GEN43 — Charge un fichier PVOCEX contenant une analyse VP.

Description

Ce sous-programme charge un fichier PVOCEX contenant l'analyse VP (amp-fréq) d'un fichier son et calcule les magnitudes moyennes de toutes les trames d'analyse d'un ou de tous les canaux audio. Il crée ensuite une table avec ces magnitudes pour chaque bin VP.

Syntaxe

f # date taille 43 codfic canal

Initialisation

taille -- nombre de points dans la table, puissance de deux ou puissance-de-deux plus 1. GEN43 ne fait aucune distinction entre ces deux tailles, mais la table doit avoir pour taille au moins la moitié de celle de la tfr. Les bins VP couvrent le spectre positif de 0 Hz (index 0 de la table) à la fréquence de Nyquist (index tailletfr/2+1 de la table) par incréments réguliers (de taille sr/tailletfr).

codfic -- un fichier pvocex (qui peut être généré par pvanal).

canal -- numéro du canal audio duquel les magnitudes seront extraites ; un 0 donnera la moyenne des magnitudes de tous les canaux.

La lecture s'arrête à la fin du fichier.

[Note] Note

Si p4 est positif, la table sera post-normalisée. Un p4 négatif empêchera la post-normalisation.

Exemples

C'est une sélection de réverb et de bruit du fichier son. La sélection a une durée de 0.8 secondes. Il faut cette durée pour que pvanal analyse et crée le fichier pvocex.

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

Exemple 1301. Exemple de l'opcode GEN43.

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

; by Menno Knevel 2021

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

; Audacity shows the selection of reverb and noise- see image above

instr 1 ; analyze this selection and output result to pvx file
ires system_i 1,{{     
    pvanal -b1.04 -d0.8 finneganswake1.flac reverbnoise.pvx
        }}
endin

instr 2 ; untreated signal, contains some reverb and noise
asig    diskin2   "finneganswake1.flac", 1
outs    asig, asig
endin

instr 3 ; use .pvx file from instr. 1 to remove reverb and noise
; pvanal created 1 frame of size 1024, so size of table for GEN 43 = 512 (fftsize/2)
ipvx    ftgen 1, 0, 512, -43, "reverbnoise.pvx", 0    ; can be found in examples folder
asig    diskin2   "finneganswake1.flac", 1  
fsig    pvsanal   asig, 1024, 256, 1024, 1
fclean  pvstencil fsig, 0, 1, ipvx ; maximum cleaning
aclean  pvsynth   fclean
outs    aclean, aclean
endin

</CsInstruments>
<CsScore>
i1 0   2       ; first analyze
i2 5  12.7     ; untreated signal
i3 20 12.7     ; denoised gignal
e
</CsScore>
</CsoundSynthesizer>


On peut utiliser cette table comme table de masquage pour pvstencil et pvsmaska.

f1 0   512  43 "viola.pvx" 1
f1 0 -1024 -43 "noiseprint.pvx" 0

Le premier exemple utilise un fichier d'analyse de vocodeur de phase par TFR à 1024 points duquel on utilise le premier canal. Le second utilise tous les canaux d'un fichier de 2048 points, sans post-normalisation. Pour les applications à la réduction de bruit avec pvstencil, il est mieux de ne pas normaliser la table (code GEN négatif).

Crédits

Auteur : Victor Lazzarini