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

Re: [sc-users] Voicer / VoicerProxy / pitchbend



On Jul 23, 2009, at 11:29 AM, Dan Stowell wrote:

Thanks James -

That approach seems to work fine. I have about a dozen possible
synthdefs, I take it there's no big resource issue to keep one
Voicer-instance-per-synthdef in a big list despite only using one at a
time.

No -- they don't use CPU on the server until you ask them to do something. Also no client-side threads running in the background. They're entirely passive.

I do notice a slight oddity which is that after pushing a new choice
of Voicer to the proxy, the very first pitchbend instruction seems to
get ignored, although all subsequent pitch-bends work fine - nice
sensitivity etc. Easy to work around but a bit odd.

I think this is actually desirable for most MIDI controllers. If you move a regular controller to, say, 120, the controller in the first voicer is in sync with it and subsequent changes are gradual. Now suppose you swap a different voicer into the same proxy, and the corresponding controller is at the other end of the scale. Without the sync logic in AbstractMIDIControl, your next move of the controller would produce a large, sudden change in the value -- typically not wanted in performance.

Pitch bend is different because most hardware devices spring load the wheel to return to center. I can't make that assumption globally, though, because you could swap the voicer while holding the pitch bend in a different position -- unlikely but the software has to be prepared for it.

At some point I want to add a flag to disable synchronization per control. I won't be able to get to that quickly, though.

hjh


: H. James Harkins
.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:

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