GEN43 — Charge un fichier PVOCEX contenant une analyse VP.
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.
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 |
---|---|
Si p4 est positif, la table sera post-normalisée. Un p4 négatif empêchera la post-normalisation. |
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).