Csound Csound-dev Csound-tekno Search About

turnoff2 scheduled instruments

Date2016-01-12 05:23
FromGuillermo Senna
Subjectturnoff2 scheduled instruments
Hi,

Is there a way to turn off (like when you use turnoff2) instruments that:
* Have been scheduled using event_i
* Have a delayed (not 0) p2.
* Have not started yet when you intend to do the turnoff2 from another 
instrument.

If I use turnoff2 from another instrument, before the instrument I want 
to turn off starts, it doesn't kill it. If I do an event_i with negative 
p1 it says it could not find a running instance of that instrument.

Thanks.

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

Date2016-01-12 09:09
FromTarmo Johannes
SubjectRe: turnoff2 scheduled instruments

Hi!

 

so you want to turn off an insrument at some moment in future?

 

Obviously you cannot stop an instrument that is not currently playing with turnoff2.

 

You could try calling an event (either event(_i) or scoreline(_i) or schedule) with negative instrument number but p2 icontaining the time when it will be executed. To stop instr 1 after 2 seconds you coud do:

 

scoreline_i " i -1 2 0"

 

The problem is - it works only when instr 1 was started for indetermined time (ie negative p3), otherwise csound complains:

'couldn't find playing instr 1.000000'

 

Then I think you need to have another instrument that you start when you need:

 

instr _turnoff

instrno = p4

turnoff2 instrno,0,1

turnoff ; turn itself off as well

endin

 

and call it:

 

schedule "_turnoff",2,1

 

There are definitely also other ways to solve it - as always in Csound.

 

Best!

tarmo

 

 

On Tuesday 12 January 2016 02:23:18 you wrote:

> Hi,

>

> Is there a way to turn off (like when you use turnoff2) instruments that:

> * Have been scheduled using event_i

> * Have a delayed (not 0) p2.

> * Have not started yet when you intend to do the turnoff2 from another

> instrument.

>

> If I use turnoff2 from another instrument, before the instrument I want

> to turn off starts, it doesn't kill it. If I do an event_i with negative

> p1 it says it could not find a running instance of that instrument.

>

> Thanks.

>

> 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

 


Date2016-01-12 09:23
FromKevin Welsh
SubjectRe: turnoff2 scheduled instruments
If I were working on this issue, I think my first approach would be
instead of scheduling the notes in the future, I would try to have a
basic "waiting" instrument that starts immediately, waits the amount
of time you would have supplied to p2, and then calls the actual
sounding instrument at the end of the wait with a new p2 of 0.  This
should allow you to cancel the waiting instrument pretty easily.

Hope that made sense, good luck!

On Tue, Jan 12, 2016 at 12:23 AM, Guillermo Senna  wrote:
> Hi,
>
> Is there a way to turn off (like when you use turnoff2) instruments that:
> * Have been scheduled using event_i
> * Have a delayed (not 0) p2.
> * Have not started yet when you intend to do the turnoff2 from another
> instrument.
>
> If I use turnoff2 from another instrument, before the instrument I want to
> turn off starts, it doesn't kill it. If I do an event_i with negative p1 it
> says it could not find a running instance of that instrument.
>
> Thanks.
>
> 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

Date2016-01-12 20:01
FromGuillermo Senna
SubjectRe: turnoff2 scheduled instruments
Hi Kevin, Hi Tarmo,

Finally, I think I've solved it. I am using p2 = 0, so that turnoff2 
will work. But the secret was realizing about perf-time and using k(0). 
Otherwise the conditional branch doesn't wait.

Now my instrument looks like this:

instr 100 ;  This is the instr I'd like to turnoff2
     if release() == 1 then
         chnset k(0), "btn1"
     endif
endin

This is for resetting a Start/Stop Button in Cabbage. So I'm going to 
keep testing it like it was real human interaction, but I think with 
your help it's now done. Thank you!

On 12/01/16 06:23, Kevin Welsh wrote:
> If I were working on this issue, I think my first approach would be
> instead of scheduling the notes in the future, I would try to have a
> basic "waiting" instrument that starts immediately, waits the amount
> of time you would have supplied to p2, and then calls the actual
> sounding instrument at the end of the wait with a new p2 of 0.  This
> should allow you to cancel the waiting instrument pretty easily.
>
> Hope that made sense, good luck!
>
> On Tue, Jan 12, 2016 at 12:23 AM, Guillermo Senna  wrote:
>> Hi,
>>
>> Is there a way to turn off (like when you use turnoff2) instruments that:
>> * Have been scheduled using event_i
>> * Have a delayed (not 0) p2.
>> * Have not started yet when you intend to do the turnoff2 from another
>> instrument.
>>
>> If I use turnoff2 from another instrument, before the instrument I want to
>> turn off starts, it doesn't kill it. If I do an event_i with negative p1 it
>> says it could not find a running instance of that instrument.
>>
>> Thanks.
>>
>> 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

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

Date2016-01-12 20:25
FromTarmo Johannes
SubjectRe: turnoff2 scheduled instruments
Another possible syntax:

cnhset:k(0,"btn1")

to force action on k-time

tarmo

On Tuesday 12 January 2016 17:01:47 you wrote:
>  chnset k(0), "btn1"

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

Date2016-01-12 21:04
FromGuillermo Senna
SubjectRe: turnoff2 scheduled instruments
Right. So now I have another problem. I've just realized that my 
oscillators will suffer from the same thing.  I have a loop that 
schedules them. The problem is that now I can't use release() because p2 
of those oscillators does not equal to the last k-cycle. I really need a 
way to unschedule events, because timing/triggering inside a loop 
doesn't make sense.

Is there some door I could knock where all the scheduled events go and 
drink beer until they're called?

On 12/01/16 17:25, Tarmo Johannes wrote:
> Another possible syntax:
>
> cnhset:k(0,"btn1")
>
> to force action on k-time
>
> tarmo
>
> On Tuesday 12 January 2016 17:01:47 you wrote:
>>   chnset k(0), "btn1"
> 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