On Dec 18, 2007, at 9:57 PM, Julian Rohrhuber wrote:
While we're on the subject then... say you have a bass pattern and a chord pattern. A new chord *might* trigger at the same time as a bass note, but it might not be synchronized. If they are not synchronized, the chord should use the previous bass note to determine the root to conform to. If they do happen at the same time, the new bass note *must* calculate first. Keeping in mind that you have no control over the order in which threads wake up if scheduled for the same logical time, how do you do this?
My solution... erm, hack?... was stated earlier :) -- I tried once upon a time to create a structure where one process would be the driver but its children could maintain independent timing. It was really convoluted and breakable so I gave up on it. Maybe I'll refactor it someday. For now, using different latency values in beats is actually easier to understand and more reliable.
That's what I like about SC. It doesn't force you to do things only one way. In that spirit, I wouldn't say latency *is* a property of the connection. It is a tool. You *can* use it that way but that isn't the only way, or even the "right" way.
: H. James Harkins
"Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal." -- Whitman