Skip to content

samphold

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

1
2
3
4
5
6
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 of the samphold opcode.
<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