Re: [Csnd] Tied filters

I found that expon produced a click when the end note out of the group of tied notes was reached.
With transeg, this issue was gone.

Would you consider sharing the csd of your tied note-instrument so i can steal...i mean borrow... some code and learn from it?
For now i am exploring how to use tied notes of the monosynth, based on the article from Steven Yi you mention.

Now that samples and filters are "under control" and can be used, this is getting better and better:
;
; ""
; by Menno Knevel
;
;
;
; Generated by blue 2.8.2 (http://blue.kunstmusik.com)
;

<CsoundSynthesizer>

<CsInstruments>
sr=44100
ksmps=1
nchnls=2
0dbfs = 1

gk_blue_auto0 init 0.0745625819
gk_blue_auto1 init 0.2625765878
gk_blue_auto2 init 2

  opcode tieStatus,i,0

itie tival
if (itie == 0 &&amp; p3 < 0) ithen ; this is an initial note within a group of tied notes
    itiestatus = 0
elseif (p3 < 0 &&amp; itie == 1) ithen ; this is a middle note within a group of tied notes
    itiestatus = 1
elseif (p3 > 0 &&amp; itie == 1) ithen ; this is an end note out of a group of tied notes
    itiestatus = 2
elseif (p3 > 0 &&amp; itie == 0) ithen ; this note is a standalone note
    itiestatus = -1
endif
  xout itiestatus
  endop

  instr 1 ;untitled
event "e", 0, 0, 0.1
  endin

  instr 2 ;Type 1 Instrument (Monosynth)
idur = abs(p3) ; idur is always positive
ipch = p4
iamp = p5

itiestatus tieStatus
iskip tival

tigoto skipInit

ioldpch init ipch ; copy pitch
ioldamp init iamp ; copy amplitude

skipInit:
inewpch = ipch
kpchline linseg ioldpch, i(gk_blue_auto1), inewpch, idur - i(gk_blue_auto1), inewpch ; takes care of pitch jumps
ioldpch = inewpch

kamp port iamp, i(gk_blue_auto0), ioldamp ; takes care of amplitude jumps
ioldamp = -1

if (itiestatus == -1) then ; envelope for normal notes
    kenv adsr .001, .05, .9, .05
elseif (itiestatus == 0) then ; envelope for first tied note
    kenv linseg 0, .05, 1, .2, 1
elseif (itiestatus == 1) then ; envelope for tied middle notes
    kenv init 1
elseif (itiestatus == 2) then ; release for last tied note
    kenv linseg 1, idur - .05, 1, .05, 0
endif

aout flooper2 1, kpchline, .18, .25, 0.05, 1, 0, 0, 0, iskip

kfrq transeg p6, idur, i(gk_blue_auto2), p7
aout buthp aout, kfrq, iskip
aout = aout * kamp * kenv
        outs aout, aout
prints "\nstatus of TIE = %d\n", itiestatus ; report tieStatus
prints "status of SKIP = %d\n", iskip ; 1 if this note has been “tied” onto a previously held note, 0 if no tie
printk .1, kfrq
  endin

</CsInstruments>
<CsScore>
f 1 0 0 1 "fox.wav" 0 0 0

i2.1 0.0 0.8727272727 1.0 .80 14000 500
i2.1 1.0909090909090908 0.8727272727 0.7 .83 14000 500
i2.1 2.1818181818181817 0.8727272727 2.7 .76 14000 500
i2.1 3.2727272727272725 0.8727272727 1.5 .70 14000 500
i2 5.454545454545453 -1.6363636364 1.0 .80 14000 500
i2 7.636363636363637 -1.6363636364 0.7 .83 500 500
i2 9.818181818181817 -1.6363636364 2.7 .76 500 500
i2 12.0 1.6363636364 1.5 .70 500 50
i2 13.909090909090907 1.0909090909 1.5 1 5 5500
i1 18.0 0.1
e

</CsScore>
</CsoundSynthesizer>

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

Hi Menno,
not sure which instr you are referring to (“tied-note” instr). I only experimented a little with tied notes but gave that up in favor of a gated instr pair - seperate trigger and osc instr. The idea there was to try and mimic a mono instr that could create legato lines when the gate is “open”, but I just wasn’t crazy about using tied notes, it seemed a little convoluted to me. I’m still in that newbie zone so always looking for simpler solutions.

But if you’re referring to the instr in the audio example I linked let me know, I can send you a csd.