samphold
Prev | Orchestra Opcodes and Operators | Next

## samphold

samphold — Performs a sample-and-hold operation on its input.

## Description

Performs a sample-and-hold operation on its input.

## Syntax

    ares samphold asig, agate [, ival] [, ivstor]

    kres samphold ksig, kgate [, ival] [, ivstor]

## Initialization

ival, ivstor (optional) -- controls initial disposition of internal save space. If ivstor is zero the internal “hold” value is set to ival ; else it retains its previous value. Defaults are 0,0 (i.e. init to zero)

## Performance

kgate, xgate -- controls whether to hold the signal.

samphold performs a sample-and-hold operation on its input according to the value of gate. If gate != 0, the input samples are passed to the output; if gate = 0, the last output value is repeated. The controlling gate can be a constant, a control signal, or an audio signal.

## Examples

    asrc  buzz      10000, 440, 20, 1     ; band-limited pulse train
    adif  diff      asrc                  ; emphasize the highs
    anew  balance   adif, asrc            ;   but retain the power
    agate reson     asrc, 0, 440          ; use a lowpass of the original
    asamp samphold  anew, agate           ;   to gate the new audiosig
    aout  tone      asamp, 100            ; smooth out the rough edges

Here is another example of the samphold opcode. It uses the file samphold.csd.

Example 923. Example of the samphold 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     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o samphold.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    instr 1

    kx	line -1, p3, 1   	; between -1 and +1
    ktrig	metro 1	 		; triggers 1 time per second
    kval	samphold kx, ktrig	; change value whenever ktrig = 1
            printk2 kval		; will print every time kval changes
    asig	diskin2	"flute.aiff", 1+kval, 0, 1
    	outs asig, asig

    endin
    </CsInstruments>
    <CsScore>

    i 1 0 11
    e
    </CsScore>
    </CsoundSynthesizer>

## See also

Sample Level Operators

Prev | Up | Next
s32b14 | Home | sandpaper