Csound Csound-dev Csound-tekno Search About

[Csnd] Easiest time-controlled switching

Date2021-03-20 08:11
From"Jeanette C."
Subject[Csnd] Easiest time-controlled switching
Hey hey,
I was wondering if my code could be more elegant.

I have a switch (kSwitch), which can have two states. Now I need to change it 
over time. At the moment I'm doing this:
kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
Is there a better, nicer, easier way?

Best wishes and TIA,

Jeanette

-- 
  * Website: http://juliencoder.de - for summer is a state of sound
  * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
  * Audiobombs: https://www.audiobombs.com/users/jeanette_c
  * GitHub: https://github.com/jeanette-c

Can't you see I'm a fool in so many ways <3
(Britney Spears)

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

Date2021-03-20 09:21
FromRory Walsh
SubjectRe: [Csnd] Easiest time-controlled switching
You should also used a small table with 0 and 1 in it? 

On Sat 20 Mar 2021, 8:11 a.m. Jeanette C., <julien@mail.upb.de> wrote:
Hey hey,
I was wondering if my code could be more elegant.

I have a switch (kSwitch), which can have two states. Now I need to change it
over time. At the moment I'm doing this:
kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
Is there a better, nicer, easier way?

Best wishes and TIA,

Jeanette

--
  * Website: http://juliencoder.de - for summer is a state of sound
  * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
  * Audiobombs: https://www.audiobombs.com/users/jeanette_c
  * GitHub: https://github.com/jeanette-c

Can't you see I'm a fool in so many ways <3
(Britney Spears)

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

Date2021-03-20 10:04
From"Jeanette C."
SubjectRe: [Csnd] Easiest time-controlled switching
Mar 20 2021, Rory Walsh has written:

> You should also used a small table with 0 and 1 in it?
Could you perhaps elaborate a little, please?

Best wishes,

Jeanette
>
> On Sat 20 Mar 2021, 8:11 a.m. Jeanette C.,  wrote:
>
>> Hey hey,
>> I was wondering if my code could be more elegant.
>>
>> I have a switch (kSwitch), which can have two states. Now I need to change
>> it
>> over time. At the moment I'm doing this:
>> kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
>> Is there a better, nicer, easier way?
>>
>> Best wishes and TIA,
>>
>> Jeanette
>>
>> --
>>   * Website: http://juliencoder.de - for summer is a state of sound
>>   * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
>>   * Audiobombs: https://www.audiobombs.com/users/jeanette_c
>>   * GitHub: https://github.com/jeanette-c
>>
>> Can't you see I'm a fool in so many ways <3
>> (Britney Spears)
>>
>> 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
>

-- 
  * Website: http://juliencoder.de - for summer is a state of sound
  * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
  * Audiobombs: https://www.audiobombs.com/users/jeanette_c
  * GitHub: https://github.com/jeanette-c

Can't you see I'm a fool in so many ways <3
(Britney Spears)

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

Date2021-03-20 12:09
FromRory Walsh
SubjectRe: [Csnd] Easiest time-controlled switching
You could also use an array and just switch between the two states? Or am I missing something?

On Sat, 20 Mar 2021 at 10:04, Jeanette C. <julien@mail.upb.de> wrote:
Mar 20 2021, Rory Walsh has written:

> You should also used a small table with 0 and 1 in it?
Could you perhaps elaborate a little, please?

Best wishes,

Jeanette
>
> On Sat 20 Mar 2021, 8:11 a.m. Jeanette C., <julien@mail.upb.de> wrote:
>
>> Hey hey,
>> I was wondering if my code could be more elegant.
>>
>> I have a switch (kSwitch), which can have two states. Now I need to change
>> it
>> over time. At the moment I'm doing this:
>> kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
>> Is there a better, nicer, easier way?
>>
>> Best wishes and TIA,
>>
>> Jeanette
>>
>> --
>>   * Website: http://juliencoder.de - for summer is a state of sound
>>   * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
>>   * Audiobombs: https://www.audiobombs.com/users/jeanette_c
>>   * GitHub: https://github.com/jeanette-c
>>
>> Can't you see I'm a fool in so many ways <3
>> (Britney Spears)
>>
>> 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
>

--
  * Website: http://juliencoder.de - for summer is a state of sound
  * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
  * Audiobombs: https://www.audiobombs.com/users/jeanette_c
  * GitHub: https://github.com/jeanette-c

Can't you see I'm a fool in so many ways <3
(Britney Spears)

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

Date2021-03-20 12:24
Fromjoachim heintz
SubjectRe: [Csnd] Easiest time-controlled switching
you mean the durations are not the same, so it is an aperiodic switch?

i have a udo which is:

opcode Switch, k, k[]
  kDurs[] xin
  kndx init 0
  kOut init 0
  if metro(1/kDurs[kndx])==1 then
   kOut = (kOut==0) ? 1 : 0
   kndx = (kndx+1) % lenarray(kDurs)
  endif
  xout kOut
endop

you can feed it with an array of the durations, e.g.

instr 1
  kOut Switch fillarray(1, .5, 1, .5, 2)
  printk2 kOut
endin
schedule(1,0,10)

it will read the array in a loop, but it could also stop at last value, 
or whatever behaviour you wish for your case.

best -
	joachim


On 20/03/2021 09:11, Jeanette C. wrote:
> Hey hey,
> I was wondering if my code could be more elegant.
> 
> I have a switch (kSwitch), which can have two states. Now I need to 
> change it over time. At the moment I'm doing this:
> kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
> Is there a better, nicer, easier way?
> 
> Best wishes and TIA,
> 
> Jeanette
> 

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

Date2021-03-20 12:55
From"Jeanette C."
SubjectRe: [Csnd] Easiest time-controlled switching
Many thanks, Joachim! This is neat! That's why I love this list! <3

Mar 20 2021, joachim heintz has written:

> you mean the durations are not the same, so it is an aperiodic switch?
>
> i have a udo which is:
>
> opcode Switch, k, k[]
> kDurs[] xin
> kndx init 0
> kOut init 0
> if metro(1/kDurs[kndx])==1 then
>  kOut = (kOut==0) ? 1 : 0
>  kndx = (kndx+1) % lenarray(kDurs)
> endif
> xout kOut
> endop
>
> you can feed it with an array of the durations, e.g.
>
> instr 1
> kOut Switch fillarray(1, .5, 1, .5, 2)
> printk2 kOut
> endin
> schedule(1,0,10)
>
> it will read the array in a loop, but it could also stop at last value, or 
> whatever behaviour you wish for your case.
>
> best -
> 	joachim
>
>
> On 20/03/2021 09:11, Jeanette C. wrote:
>> Hey hey,
>> I was wondering if my code could be more elegant.
>> 
>> I have a switch (kSwitch), which can have two states. Now I need to change 
>> it over time. At the moment I'm doing this:
>> kSwitch = linseg(0, iDur1, 0, 0, 1, iDur2, 1, 0, 0, iDur3 0)
>> Is there a better, nicer, easier way?
>> 
>> Best wishes and TIA,
>> 
>> Jeanette
>> 
>
> 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
>

-- 
  * Website: http://juliencoder.de - for summer is a state of sound
  * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
  * Audiobombs: https://www.audiobombs.com/users/jeanette_c
  * GitHub: https://github.com/jeanette-c

You might think that I won't make it on my own,
But now I'm Stronger <3
(Britney Spears)

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