Hi James,
Sorry, I should have had a shout out to SC. Indeed the paper that I referenced at the top of the post includes a temporal recursion written in sc-lang - although the example I wrote will look a little strange to SC users as the 'style' was attempting to match Impromptu rather than idiomatic SC code. However, I wasn't aware of the SC 1 usage, so thanks for digging around in the archives for that one.
I think you are in the majority in relation to a preference for declarative approaches to timing. Personally I'm of the opposite persuasion, but as the saying goes, let a thousand paradigms bloom!
sc-lang certainly seems to belong to the perl school of syntactic abundance. Possibly a little terse for my tastes, but I do have some sympathy for that approach. However, syntax aside, the redundancy you mentioned seems to be more related to the abstraction level, rather than to anything inherently closure related. I guess again we are back at a difference of opinion on the merits of a more or less declarative approach.
Cheers,
Andrew.
-----Original Message-----
From: "James McCartney" <asynth_at_gmail.com>
Sent: Sunday, 26 May, 2013 3:24am
To: "livecode_at_toplap.org" <livecode_at_toplap.org>
Cc: "livecode_at_toplap.org" <livecode_at_toplap.org>, "extemporelang_at_googlegroups.com" <extemporelang_at_googlegroups.com>
Subject: Re: [livecode] The Many Faces of a Temporal Recursion
I just checked SuperCollider version 1 and see that it used temporal recursion as well. So that was 1996.
player1 {
instr1;
[0.2 + 0.2.rand, thisFunc].sched;
}
player1 calls instr1 and then schedules itself .2 to .4 seconds into the future.
James McCartney --- iPhone
On May 25, 2013, at 9:54 AM, James McCartney <asynth_at_gmail.com> wrote:
> in response to your request for other uses of temporal recursion..
>
> SuperCollider version 2 used this method of scheduling in the Spawn object. I have since found I prefer more declarative ways of dealing with time.
>
> Also, SuperCollider version 1 modeled unit generators as closures resulting in code that looks nearly the same as Extempore. I found the pattern of having to separately create and then call the unit generator to be tedious and redundant, so I switched to encapsulating them in objects in SuperCollider version 2. Unit generators then need only appear once in an expression.
>
>
> James McCartney --- iPhone
>
>
> On May 25, 2013, at 2:12 AM, andrew_at_moso.com.au wrote:
>
>> I've had a few questions recently about temporal recursions and so put together a blog post by way of responding. I thought some people here might also be interested.
>>
>>
http://extempore.moso.com.au/temporal_recursion.html
>>
>> Cheers,
>> Andrew.
>>
>>
Received on Sun May 26 2013 - 11:34:54 BST