Csound Csound-dev Csound-tekno Search About

Re: [Csnd] Tied filters

Date2023-06-24 15:50
FromMenno Knevel
SubjectRe: [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)
;




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 && p3 < 0) ithen                                                  ; this is an initial note within a group of tied notes
    itiestatus = 0   
elseif (p3 < 0 && itie == 1) ithen                                              ; this is a middle note within a group of tied notes
    itiestatus = 1
elseif (p3 > 0 && itie == 1) ithen                                              ; this is an end note out of a group of tied notes
    itiestatus = 2
elseif (p3 > 0 && 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



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




Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2023-06-24 22:17
FromST Music
SubjectRe: [Csnd] Tied filters
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. 

On Sat, Jun 24, 2023, 10:50 a.m. Menno Knevel <magknevel@gmail.com> wrote:
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
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here