tablexseg
Prev | Orchestra Opcodes and Operators | Next

## tablexseg

tablexseg — Creates a new function table by making exponential segments between values in stored function tables.

## Description

tablexseg is like expseg but interpolate between values in a stored function tables. The result is a new function table passed internally to any following vpvoc which occurs before a subsequent tablexseg (much like lpread/lpreson pairs work). The uses of these are described below under vpvoc.

## Syntax

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

## Initialization

ifn1, ifn2, ifn3, etc. -- function table numbers. ifn1, ifn2, and so on, must be the same size.

idur1, idur2, etc. -- durations during which interpolation from one table to the next will take place.

## Examples

Here is an example of the tablexseg opcode. It uses the file tableseg_tablexseg.csd.

Example 1079. Example of the tablexseg opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

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

## See Also

pvbufread, pvcross, pvinterp, pvread, tableseg

## Credits

Author: Richard Karpen
Seattle, WA USA
1997

Prev | Up | Next
tablexkt | Home | tabmorph