Hi Will,
first of all -- your birthday zoom session was cool, very much enjoyed the
conversation and the opportunity to meet some of the friends of yoshimi...
Today finally I was able to follow up with a working setup how to establish
connections to the Effect-UI. So the basic approach seems to be tenable;
while it was a challenge of sorts to find my way through the setup
of the effect components.
Effectively, we have (at maximum) three distinct instances of the EffUI
at any time, and I settled down to attach the connections to these instances,
i.e. there are three distinct connection(s), and my intention is to handle
the switch-over to the various effect modules /in the core/. This is possible,
since the current effect number (and effect type) is sent down via the
command system. This setup seems especially well suited to replace
the existing direct access, without changing much of the internal structures.
Currently, the effect-Nr is used as index by the GUI to directly grab into
the various arrays in the core and pull out the parameters. My plan is to
replace those array indexed accesses (which are littered all over the code)
by corresponding direct access into the new MirrorData block. This implies that,
whenever the user changes the current effect module, we'll trigger a push-update
from the core with the data block for the new effect. And if the new module
is especially an EQ, then we'll render the graph and push it up with a second
message.
Using this setup however implies that we'll also have to trigger an update
after parameter changes. If this is has any tangible effect remains to be seen.
Based on my experience I'd expect those exchanges to be fast enough to seem
instantaneous for the user. The most notable change would be that the
update happens on the next "UI duty cycle", which can be 33ms later,
followed by a re-draw. We'll just have to try that out to see if it
leads to any noticeable flicker in the UI.
To make the current state clear:
* implemented: have MirrorData blocks in the UI connected properly
* unimplemented: trigger push update + use the data from the MirrorData block
-- Hermann
_______________________________________________
Yoshimi-devel mailing list
Yoshimi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel