GEN43
Précédent | Instructions de partition et routines GEN | Suivant

## 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
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

Précédent | Niveau supérieur | Suivant
GEN42 | Sommaire | GEN44