tableseg

tableseg — Crée une nouvelle table de fonction en faisant des segments de droite entre les valeurs de tables de fonction en mémoire.

Description

tableseg est comme linseg mais il interpole entre des valeurs stockées dans des tables de fonction. Le résultat est une nouvelle table de fonction passée en interne à tout vpvoc apparaissant avant le tableseg suivant (même fonctionnement que pour les paires lpread/lpreson). Les utilisations possibles sont décrites plus loin dans la notice de vpvoc.

Syntaxe

tableseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]

Initialisation

ifn1, ifn2, ifn3, etc. -- numéros des tables de fonction. ifn1, ifn2, et les suivantes, doivent avoir la même taille.

idur1, idur2, etc. -- durée de l'interpolation d'une table à l'autre.

Exemples

Voici un exemple de l'opcode tableseg. Il utilise le fichier tableseg_tablexseg.

Exemple 1073. Exemple de l'opcode tableseg.

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   -m0   ;;;realtime audio out
; For Non-realtime ouput leave only the line below:
; -o tableseg_tablexseg.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

; 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*.8, asig*.8
endin

instr 2

prints  "\n---***YOU NOW HEAR THE RESULT OF THIS ANALYZED FILE:***---\n"
ktime line 0, p3, gilen     ; timepointer over the entire sample

if p5 == 1 then        ; make a choice
        tablexseg 1, p3, 2	; morph from table 1 to table 2
        prints  "2 tables morph exponentially (tables 1 & 2)\n"
    else 
        tableseg 1, p3, 2	; morph from table 1 to table 2
        prints  "2 tables morph in a linear way (tables 1 & 2)\n"
endif

asig  vpvoc ktime, p4, "fox1.pvx"
      outs asig, asig
endin

</CsInstruments>
<CsScore>
f 1 0 512 9 .5 1 0
f 2 0 512 7 1 512 0

i1  0 2.76          ; original sample

i2  5 2.76  1    0  ; linear morph 
i2  8 2.76  1    1  ; exponential morph of filter

i2  10 10   1    0  ; linear morph
i2  10 10   1.7  0   
i2  20 10   1    1  ; exponential morph
i2  20 10   1.7  1  

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

pvbufread, pvcross, pvinterp, pvread, tablexseg

Crédits

Auteur : Richard Karpen
Seattle, Wash
1997

Nouveau dans la version 3.44