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. Play samphold.csd

Example 927. 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

diff, downsamp, integ, interp, upsamp