On Dec 19, 2007, at 6:50 AM, ronald kuivila wrote:
Basically, but it doesn't have to be a whole beat. A tenth or twentieth of a beat is enough.
That's part of why my suggestion in the other e-mail is important to me. So far I've been able to get by with this because it looks like nobody else is using chucklib. But if it's going to be published in the book, you need to be able to use the default event prototype with chucklib. Which means, either I have to strip useful functionality out of chucklib (what reason do I have to do that?), or the default event should be written in a way that does not get in the way of treating latency differently (where the current code is coercive in this regard). Testing the patch from the other e-mail, this is all I have to do to have a default event prototype that is compatible with chucklib. Without the patch, I would have to copy the entire event prototype, which is an ugly solution for an object-oriented environment. Event.default.copy => ProtoEvent(\default); ProtoEvent(\default).parent.putAll(( getLatencyInSeconds: { ~getLagInSeconds.value + ((~latency ? 0) / (thisThread.clock.tryPerform(\tempo) ? 1.0)) }, getLagInSeconds: { (~lag ? 0) / (thisThread.clock.tryPerform(\tempo) ? 1.0) } )); If somebody does Pbind(...).play, it uses the normal, unchanged Event.default - if they stick the Pbind in a chucklib BP object, it uses ProtoEvent(\default). The user doesn't even have to be aware of it.
Really the driver should be silent and just pass information into the other processes :) hjh : H. James Harkins : jamshark70@xxxxxxxxxxxxxxxxx : http://www.dewdrop-world.net .::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..: "Come said the Muse, Sing me a song no poet has yet chanted, Sing me the universal." -- Whitman |