samphold — Performs a sample-and-hold operation on its input.
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.
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 779. 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>