Custom Csound user-defined opcode randcubic to generate cubic interpolated lines. Example above uses randcubic for achieving time-varying glissandi with multiple voices.
Based on code from http://paulbourke.net/miscellaneous/interpolation/.
Code for UDO is as follows:
opcode randcubic, a,kk
kamp, kfreq xin
ky0 init random:i(-1, 1)
ky1 init random:i(-1, 1)
ky2 init random:i(-1, 1)
ky3 init random:i(-1, 1)
kcount init 0
asig init 0
kperiod = sr / kfreq
kndx = 0
while (kndx < ksmps) do
ka0 = ky3 - ky2 - ky0 + ky1
ka1 = ky0 - ky1 - ka0
ka2 = ky2 - ky0
ka3 = ky1
kmu = kcount / kperiod
kmu2 = kmu * kmu
asig[kndx] = ka0 * kmu * kmu2 + ka1 * kmu2 + ka2 * kmu + ka3
kcount += 1
if(kcount > kperiod) then
ky0 = ky1
ky1 = ky2
ky2 = ky3
ky3 = random:k(-1, 1)
kcount -= kperiod
endif
kndx += 1
od
asig *= kamp
xout asig
endop