[Impromptu] callback to schedule

Ben Swift benjamin.j.swift at gmail.com
Thu Jan 7 02:11:36 GMT 2010


+1 for 'schedule'.

Cheers,
Ben

On 03/01/2010, at 4:08 PM, David Smith wrote:

> Hi Andrew,
> 
> It might be better to provide means for a scheduler based on a linked  
> list rather than just changing "callback" to "schedule".
> I'm sure I am not the only one who may benefit from this structure  
> type and that you are familiar with this, but I will describe it for  
> general perusal:
> 
> A linked list is a list wherein each element consists of a pointer to  
> the previous element, the content, and a pointer to the next element.
> Respective pointers in the first and last elements are null.
> 
> An example using vectors as content:
> (define event-list
>              (llist #(rtime channel pitch volume)
>                       #(rtime channel pitch volume)
>                       #(rtime channel pitch volume)))
> or maybe:
> (define event-list
>              (llist #(rtime channel pitch volume duration)
>                       #(rtime channel pitch volume duration)
>                       #(rtime channel pitch volume duration)))
> 
> The indexes could be hidden as they are not really human readable and  
> change with memory allocation.
> The advantage, besides access speed, is that contiguous groups of  
> elements can be handled more or less wholesale.
> 
> It's much like a Touring machine in that elements  are accessed  
> through four functions:
>          (event-list first) (event-list next) (event-list previous) 
> (event-list last) (event-list current).
> "Previous" and "next" change the "current" pointer and are used to  
> traverse the llist in addition to returning the contents.
> The llist is edited through four more functions (insert-after)  
> (insert-before) and (delete-next) and (delete-previous).
> 
> (event-list first) (event-list current) and (event-list last) would  
> need to be state variables set when the llist is defined
> and changed automatically when the list is appended or truncated at  
> either end.
> 
> The delete functions reference (event-current) which is set to (event- 
> first) when the llist is defined.
> There is no (delete current) function since it would void the current  
> pointer, a state variable.
> I suppose any delete function would need to return an error if the  
> element is "current" .
> 
> I realize implementing this would be non-trivial  :  )
> but it  would facilitate large flexible schedules, and allow writing  
> a really nice midi editor for example.
> 
> Happy solstice everyone!
> Dave
> 
> 
> 
> On Dec 28, 2009, at 11:32 PM, Andrew Sorensen wrote:
> 
>> I'm thinking of changing the symbol name callback to schedule?
>> 
>> callback will still work as an alias but documentation would start
>> using schedule
>> 
>> Any thoughts?
>> Got a better name?
>> Good idea, bad idea, don't care?
>> _______________________________________________
>> Impromptu mailing list
>> Impromptu at lists.moso.com.au
>> http://lists.moso.com.au/mailman/listinfo/impromptu
> 
> _______________________________________________
> Impromptu mailing list
> Impromptu at lists.moso.com.au
> http://lists.moso.com.au/mailman/listinfo/impromptu



More information about the Impromptu mailing list