Csound Csound-dev Csound-tekno Search About

[Cs-dev] csoundScoreEventAbsolute

Date2012-03-31 09:55
FromTito Latini
Subject[Cs-dev] csoundScoreEventAbsolute
AttachmentsNone  

Date2012-03-31 10:44
FromVictor
SubjectRe: [Cs-dev] csoundScoreEventAbsolute
Sounds good, Tito. Seems fine to me.

Also, for Csound 6, we might want to think of a clever way to insert events inside a block, if there is one. Michael Gogins had a proposal to make the processing vector size dynamic to allow for this, but when I was thinking about this, the implications of having a variable k rate will need to be assessed carefully.

Steven, will you create the new Csound6 repo? I guess we should start working there now.

Regards

Victor

On 31 Mar 2012, at 09:55, Tito Latini  wrote:

> The events in the score are positioned on a temporal grid that depends
> on the control rate and `csound->icurTime' is increased of ksmps after
> every k-cycle. It means that we could have problems with `csoundScoreEvent'
> during the programming with the Csound API because it uses
> 
>  insert_score_event_at_sample(csound, &evt, csound->icurTime);
> 
> Example:
> 
>  - 1 thread with `csoundPerform' + INF score in RT
>  - 1 thread to send the events with `csoundScoreEvent'
> 
>  No problems with only one event, but we can get a time delay
>  (1/kr + score grid quantize) with more `csoundScoreEvent' that
>  happen among two k-cycles.
> 
> The very simple solution that I would like to apply is a new
> 
>  PUBLIC int csoundScoreEventAbsolute(CSOUND *csound, char type,
>                                      const MYFLT *pfields, long numFields,
>                                      double time_ofs)
> 
>      .... /* like `csoundScoreEvent' */
> 
>      return insert_score_event(csound, &evt, time_ofs);
>  }
> 
> In this way we are sure that
> 
>  time_ofs = csoundGetScoreTime(cs) + LITTLE_LATENCY;
> 
>  for (i=0; i<100; i++)
>    csoundScoreEventAbsolute(cs, 'i', pfseq[i], numFields, time_ofs);
> 
> won't fail (without considering the Murphy's law). Besides, I think that this
> function adds flexibility to the programming of the score from the API. 
> For example it is simple to send the same pfields for a delay effect without
> modifying the p2 values.
> 
> Let me know if I can add it.
> 
> tito
> 
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here 
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2012-03-31 11:21
FromTito Latini
SubjectRe: [Cs-dev] csoundScoreEventAbsolute
AttachmentsNone  

Date2012-03-31 12:15
FromVictor
SubjectRe: [Cs-dev] csoundScoreEventAbsolute
Do they do this in SC? How? Can we adapt the principle here?

Victor

On 31 Mar 2012, at 11:21, Tito Latini  wrote:

> Well, I have applied it. Missing comment in csound.h
> and perhaps CS_APISUBVER is to increment.
> 
>> Also, for Csound 6, we might want to think of a clever way to insert events inside a block, if there is one.
> 
> I agree.
> 
> tito
> 
> On Sat, Mar 31, 2012 at 10:44:09AM +0100, Victor wrote:
>> Sounds good, Tito. Seems fine to me.
>> 
>> Also, for Csound 6, we might want to think of a clever way to insert events inside a block, if there is one. Michael Gogins had a proposal to make the processing vector size dynamic to allow for this, but when I was thinking about this, the implications of having a variable k rate will need to be assessed carefully.
>> 
>> Steven, will you create the new Csound6 repo? I guess we should start working there now.
>> 
>> Regards
>> 
>> Victor
>> 
>> On 31 Mar 2012, at 09:55, Tito Latini  wrote:
>> 
>>> The events in the score are positioned on a temporal grid that depends
>>> on the control rate and `csound->icurTime' is increased of ksmps after
>>> every k-cycle. It means that we could have problems with `csoundScoreEvent'
>>> during the programming with the Csound API because it uses
>>> 
>>> insert_score_event_at_sample(csound, &evt, csound->icurTime);
>>> 
>>> Example:
>>> 
>>> - 1 thread with `csoundPerform' + INF score in RT
>>> - 1 thread to send the events with `csoundScoreEvent'
>>> 
>>> No problems with only one event, but we can get a time delay
>>> (1/kr + score grid quantize) with more `csoundScoreEvent' that
>>> happen among two k-cycles.
>>> 
>>> The very simple solution that I would like to apply is a new
>>> 
>>> PUBLIC int csoundScoreEventAbsolute(CSOUND *csound, char type,
>>>                                     const MYFLT *pfields, long numFields,
>>>                                     double time_ofs)
>>> 
>>>     .... /* like `csoundScoreEvent' */
>>> 
>>>     return insert_score_event(csound, &evt, time_ofs);
>>> }
>>> 
>>> In this way we are sure that
>>> 
>>> time_ofs = csoundGetScoreTime(cs) + LITTLE_LATENCY;
>>> 
>>> for (i=0; i<100; i++)
>>>   csoundScoreEventAbsolute(cs, 'i', pfseq[i], numFields, time_ofs);
>>> 
>>> won't fail (without considering the Murphy's law). Besides, I think that this
>>> function adds flexibility to the programming of the score from the API. 
>>> For example it is simple to send the same pfields for a delay effect without
>>> modifying the p2 values.
>>> 
>>> Let me know if I can add it.
>>> 
>>> tito
>>> 
>>> ------------------------------------------------------------------------------
>>> This SF email is sponsosred by:
>>> Try Windows Azure free for 90 days Click Here 
>>> http://p.sf.net/sfu/sfd2d-msazure
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>> 
>> ------------------------------------------------------------------------------
>> This SF email is sponsosred by:
>> Try Windows Azure free for 90 days Click Here 
>> http://p.sf.net/sfu/sfd2d-msazure
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here 
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2012-03-31 14:28
FromTito Latini
SubjectRe: [Cs-dev] csoundScoreEventAbsolute
AttachmentsNone