pvsfread

pvsfread — Lit un canal sélectionné d'un fichier d'analyse PVOC-EX.

Description

Crée un flot fsig en lisant un canal sélectionné d'un fichier d'analyse PVOC-EX chargé en mémoire, avec interpolation de trame. Seuls les fichiers au format 0 (amplitude + fréquence) sont actuellement supportés. L'opération de cet opcode reflète celle de pvoc, mais en restituant un fsig au lieu d'un signal resynthétisé.

Syntaxe

fsig pvsfread ktimpt, ifn [, ichan]

Initialisation

ifn -- Nom du fichier d'analyse. Il doit avoir l'extension de fichier .pvx.

On peut générer un fichier PVOC-EX multi-canaux avec l'pvanal utility étendue.

ichan -- (facultatif) Le canal à lire (en comptant à partir de 0). Vaut 0 par défaut.

Exécution

ktimpt -- pointeur temporel dans le fichier d'analyse, en secondes. Voir la description du même paramètre de pvoc pour son utilisation.

Noter que les fichiers d'analyse peuvent être très grands, surtout s'ils sont multi-canaux. La lecture de tels fichiers en mémoire provoquera probablement des coupures audio durant une exécution en temps réel. Comme le fichier n'est lu qu'une fois, étant ensuite disponible pour tous les opcodes intéressés, il peut être opportun de disposer d'un intrument dédié au préchargement de ces fichiers d'analyse au démarrage.

Exemples

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

Exemple 829. Exemple de l'opcode pvsfread.

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

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

; analyze sound file, creating a PVOC-EX file
ires1 system_i 1,{{ pvanal stereoJungle.wav stereoJungle.pvx }} ; default settings

instr 1
; create a PVOC-EX (*.pvx) file with PVANAL first
idur  filelen   "stereoJungle.pvx"      ;find duration of (stereo) analysis file
kpos  line      0,p3,idur               ;to ensure we process whole file
fsigr pvsfread  kpos,"stereoJungle.pvx", 1  ;create fsig from right channel
aout  pvsynth   fsigr                   ;resynthesise it
      outs  aout, aout

endin
</CsInstruments>
<CsScore>

i 1 0 20    ; slow down
i 1 21 1    ; speed up
e
</CsScore>
</CsoundSynthesizer>


Voici un autre exemple de l'opcode pvsfread. Il utilise le fichier pvsfread-2.csd.

Exemple 830. Autre exemple de l'opcode pvsfread.

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

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

instr 1 ; play and analyze sound file, but one channel only

idur    filelen   "stereoJungle.wav"        ; check duration of sample  
prints  "\nsound file duration = %f\n", idur
ichn    filenchnls  "stereoJungle.wav"      ; check channels- a stereo sound!
prints  "number of channels = %f\n\n", ichn

asigL, asigR diskin2 "stereoJungle.wav"     ; stereo sound file
fss pvsanal  asigR, 1024, 256, 1024, 0      ; choose which channel- here the Right channel
pvsfwrite fss, "stereoJungle.pvx"           ; write that analyzed channel to pvocex file
ase pvsynth fss                             ; lets hear it
outs ase, ase

endin

instr 2 ; must be called after instr 1 finishes

prints  "\n--**analyzed file is played back**--\n\n"
idur    filelen   "stereoJungle.pvx"        ; find duration of (stereo) analysis file
kpos  line      0,p3,idur                   ; to ensure we process whole file
fsigr pvsfread  kpos,"stereoJungle.pvx", 0  ; read the fsig from this (= Right) channel
aout  pvsynth   fsigr                       ; resynthesise it
outs    aout, aout

endin
</CsInstruments>
<CsScore>
s
i 1 0 7
s
i 2 0 7
i 2 8 4     ; faster
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Richard Dobson
Août 2001

Nouveau dans la version 4.13