lpsholdp — Control signals based on held segments.
Generate control signal consisiting of held segments delimited by two or more specified points. The entire envelope can be looped at time-variant rate. Each segment coordinate can also be varied at k-rate.
ksig - output signal
kphase -- point of the sequence read, expressed as a fraction of a cycle (0 to 1)
kvalue0...kvalueN -- Values of points
ktime0...ktimeN -- Times between points; expressed in fractions of a cycle (see below). The final time designates a ramp between the final value and the first value.
lpsholdp opcode is similar to lpshold; the only difference is that, instead of frequency, a time-variant phase is required. If you use a phasor to get the phase value, you will have a behaviour identical to lpshold, but interesting results can be achieved when using phases having non-linear motions, making lpsholdp more powerful and general than lpshold.
Here is an example of the lpsholdp opcode. It uses the file lpsholdp.csd.
Example 562. Example of the lpsholdp 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 ; For Non-realtime ouput leave only the line below: ; -o lpsholdp.wav -W ;;; for file output any platform ; by Stefano Cucchi 2020 </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kphase1 phasor 3 kmodulation oscil 0.5, 0.01, 2 kphase2 phasor 3+kmodulation kamp linseg 0, 0.2, 1, p3-0.4, 1, 0.2, 0 kfreq1 lpsholdp kphase1, cpspch(p4), 6, cpspch(p5), 10, cpspch(p6), 12 kfreq2 lpsholdp kphase2, cpspch(p4), 6, cpspch(p5), 10, cpspch(p6), 12 a1 = poscil(kamp, kfreq1, 1) a2 = poscil(kamp, kfreq2, 1) outch 1, a1 outch 2, a2 endin </CsInstruments> <CsScore> f1 0 8192 10 1 0 1 0 1 0 1 0 1 0 1 f2 0 4096 10 1 0 1 1 1 i1 0 10 6.09 6.02 7.03 e </CsScore> </CsoundSynthesizer>