lpsholdp

lpsholdp — Control signals based on held segments.

Description

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.

Syntax

ksig lpsholdp  kphase, kvalue0, ktime0  [, kvalue1] [, ktime1] \
      [, kvalue2] [, ktime2] [...]

Performance

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.

Examples

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>


See also

Linear and Exponential Generators

Credits

Written by Gabriel Maldonado.

New in Csound 5 (Previously available only on CsoundAV)