thanks for this!
I found an example from your hand that does just this:
<CsoundSynthesizer>
<CsOptions>
-d -odac
</CsOptions>
<CsInstruments>
nchnls = 2
sr = 48000
ksmps = 128
0dbfs = 1
instr 1
iamp = ampdbfs(p5)
ipch = cps2pch(p4,12)
ipan = 0.5
xtratim 4
tigoto skipInit
kpch = port(ipch, 0.05, ipch)
asig = vco2(iamp, kpch)
;asig = zdf_2pole(asig, min:k(10000, kpch * 16), 4)
asig *= linsegr(0, 1, 1, 4, 0)
al, ar pan2 asig, ipan
out(al, ar)
skipInit:
endin
</CsInstruments>
<CsScore>
i1 0 -.5 8.00 -12
i1 + -.5 9.00 -12
i1 + 2 6.00 -12
i1.1 .25 -.5 9.00 -12
i1.1 + -.5 10.00 -12
i1.1 + 2 7.00 -12
i1.2 1 -.25 7.00 .
i1.2 + 2 8.00 .
</CsScore>
</CsoundSynthesizer>
I And this one works very good. I also tried it with poscil2 without setting the skip parameter, and ksmps = 1; there were absolutely no clicks or pops.
But i do not fully understand the code. But i would like to so i can implement the code for pvsynth or partikkel etc.
For example the score block:
i1.1 .25 -.5 9.00 -12
i1.1 + -.5 10.00 -12
i1.1 + 2 7.00 -12
2 notes are held forever until they meet the 3rd note. 2 times the initialization is skipped.
I look at the score as one note that is molded in amplitude by linsegr. Also the filter moves over this note-block as one entity.
Any sudden pitch changes are prevented by the port opcode.
Is this a correct understanding?
And perhaps my main question:
tigoto skipInit
.....
skipInit:
There is no code after this skipInit:
Why does this code even work?
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
Issues · csound/csound · GitHub
Discussions of bugs and features can be posted here