[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] Re: will there ever be real multiprocessor support?



On Mar 6, 2009, at 5:34 AM, Tim Blechmann wrote:

one could think of a supercollider-style pseudocode like:
~rec = Synth.new('record', recargs); // record buffer
~fx  = Synth.new('fx', fxargs);      // effect engine
~players = Array.fill(20, {
    Synth.new('player', playerargs,
              [~rec, \addAfter, ~fx, \addBefore])
    });                              // 20 parallel players


~rec = Synth(\record, ...);
~parallelGroup = ParGroup(target: ~rec, addAction: \addAfter);
~fx = Synth(\fx, [...], target: ~parallelGroup, addAction: \addAfter);

~players = Array.fill(20, {
    Synth('player', playerargs,
              target: ~parallelGroup)
    });                              // 20 parallel players

To me, [~rec, \addAfter, ~fx, \addBefore] is confusing. The alternative I'm suggesting is pretty well in keeping with what we already have -- easy to understand -- and would allow the same level of control.

It wouldn't even be necessary to \addAfter a specific node. If ~rec, ~parallelGroup and ~fx are added successively, in that order, to the tail of the same *serial* group, it would evaluate exactly the same. ~rec precedes the parallel block, and the whole parallel group has to finish before ~fx can do anything.

hjh


.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:

"Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal."  -- Whitman