pvsbufread2 — Lit un tampon circulaire de signaux-f (signaux PV en flot), avec des retards de bin additionnels.
Cet opcode lit à partir d'un tampon circulaire de longueur ilen (secondes), prenant un identificateur pour le tampon et un pointeur temporel qui conserve la position de lecture courante (aussi en secondes). Il est utilisé en conjonction avec un opcode pvsbuffer. La lecture est circulaire avec repliement à la fin du tampon. Des retards temporels supplémentaires proviennent d'une table de fonction, chaque point définissant un retard temporel en secondes affectant le bin correspondant.
ift1 -- table de fonction d'au moins (taille de TFR)/2+1 points dans laquelle les délais (en secondes) pour les amplitudes de bin sont fixés (les positions dans la table de fonction sont équivalentes aux numéros de bin).
ift2 -- table de fonction d'au moins (taille de TFR)/2+1 points dans laquelle les délais (en secondes) pour les fréquences de bin sont fixés (les positions dans la table de fonction sont équivalentes aux numéros de bin).
fsig -- flot pv en sortie.
ktime -- position temporelle du pointeur de lecture (en secondes).
khandle -- identifiant du tampon à lire. Lorsque l'on utilise des identifiants de taux-k, il est important d'initialiser la variable de taux-k avec un identifiant existant. Lorsque l'on change de tampon, les différents tampons de fsig doivent être compatibles (même format de fsig).
Avec cet opcode et pvsbuffer, il est possible entre autres de:
Note | |
---|---|
Il est important que la valeur de l'identifant passé à pvsbufread2 soit celle d'un identifiant valide créé par pvsbuffer. Avec des identifiants non valides, Csound plantera. |
Voici un exemple de l'opcode pvsbufread2. Il utilise le fichier pvsbufread2.csd.
Exemple 816. Exemple de l'opcode pvsbufread2.
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 ; Audio out Audio in -odac ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o pvsbufread2.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kcnt init 0 ifftsize = 2048 ihop = ifftsize/4 a1 diskin2 "beats.wav", 1, 0, 1 fsig1 pvsanal a1*.5, ifftsize, ihop, ifftsize, 1 ih, kt pvsbuffer fsig1, 2 fsig2 pvsbufread2 kt, ih, 1, 1 fsig3 pvsbufread2 kt, ih, 2, 2 a2 pvsynth fsig3 a3 pvsynth fsig2 outs a2, a3 endin </CsInstruments> <CsScore> f1 0 2048 -7 0 128 1.1 128 0.5 256 1.8 512 1.1 1024 0.1 f2 0 2048 -7 1 128 0.2 128 0.05 256 0.5 512 0.9 1024 0.1 i1 0 30 </CsScore> </CsoundSynthesizer>