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