pvread

pvread — Lit un fichier d'analyse par vocodeur de phase et retourne la fréquence et l'amplitude d'un canal d'analyse ou bin.

Description

pvread lit depuis un fichier pvoc et retourne la fréquence et l'amplitude d'un canal d'analyse ou bin. Les valeurs retournées peuvent être utilisée à n'importe quel autre endroit de l'instrument de Csound. Par exemple, on peut les utiliser comme arguments d'un oscillateur pour synthétiser une composante d'un signal analysé ou on peut utiliser un banc de pvreads pour resynthétiser le son analysé en synthèse additive en passant les valeurs de fréquence et de magnitude à un banc d'oscillateurs.

Syntaxe

kfreq, kamp pvread ktimpnt, ifile, ibin

Initialisation

ifile -- le numéro pvoc (n dans pvoc.n) ou le nom entre guillemets du fichier d'analyse créé avec pvanal. (Voir pvoc.)

ibin -- le numéro du canal d'analyse duquel seront retournées la fréquence en Hz et la magnitude.

Exécution

kfreq, kamp -- sorties de l'unité pvread. Ces valeurs, récupérées d'un fichier d'analyse par vocodeur de phase, représentent les valeurs de fréquence et d'amplitude d'un canal d'analyse spécifié par l'argument ibin. Une interpolation a lieu entre les trames d'analyse avec une résolution au taux-k et elle dépent bien sûr de la vitesse et de la direction de ktimpnt.

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

Exemples

L'exemple ci-dessous montre l'utilisation de pvread pour synthétiser un seul composant à la fois à partir d'un fichier d'analyse de vocodeur de phase. Il faut noter que l'on peut utiliser les sorties kfreq et kamp pour n'importe quel type de synthèse, de filtrage, de traitement, etc.

Exemple 803. Exemple de l'opcode pvread.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac   -m0  --limiter=.95 ;;;realtime audio out, with limiter protection
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o pvread.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

; by Menno Knevel 2021

gilen  filelen "fox.wav"	    ; get length of impulse soundfile

; analyze sound file and output result to pvoc-ex file
ires system_i 1,{{ pvanal fox.wav fox1.pvx }}          ; default settings

instr 1 ; untreated signal
asig    diskin2   "fox.wav", 1
prints  "\n---***YOU NOW HEAR THE UNTREATED SOUND SAMPLE***---\n"
outs    asig, asig
endin

instr 2

prints  "\n---***YOU NOW HEAR THE RESULT OF THIS ANALYZED FILE:***---\n"
ibin  = p4
ktime line 0, p3, 2.8
kfreq, kamp pvread ktime, "fox1.pvx", ibin	;read data from 7th analysis bin.
asig  poscil kamp, kfreq
      outs asig*5, asig*5			        ;compensate loss of volume

endin
</CsInstruments>
<CsScore>

i1 0 2.76           ; original sample
s
i2 0 2.76   7       ; 3 different bins
i2 + 2.76   15
i2 + 2.76   25
s
i2 2 6      7       ; slow chord
i2 2 6      50
i2 2 2      75
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

pvbufread, pvcross, pvinterp, tableseg, tablexseg

Crédits

Auteur : Richard Karpen
Seattle, Wash
1997

Nouveau dans la version 3.44