[gmpi] Re: 3.11 topic: Inter-parameter linkages

  • From: "Jeff McClintock" <jeffmcc@xxxxxxxxxx>
  • To: <gmpi@xxxxxxxxxxxxx>
  • Date: Wed, 14 Apr 2004 14:18:57 +1200

Hi Tim,

> GUI:
> user twists a knob 1.0
> GUI calls the actor
> actor modifies 1.0 to 0.75
> GUI draws 0.75
> - no (perceivable) latency

The way SynthEdit does it
- Knob gets "mouse moving" message
- GUI calls the actor
- actor modifies 1.0 to 0.75, sets parameter
- Parameter broadcasts to all listeners "update yourself"
- GUI re-draws
- no latency (no visible 'jittering')

So the mouse movement has no direct link to the knob position, redraw is
triggered by the parameter change.  This might be completely non-practical
for other windowing systems, But I thought it might be interesting.  The
resulting knob code is very minimal, mouse movement and knob drawing are
completely decoupled.  The knob dosn't need extra code to ignore
parameter-change broadcasts triggered by itself.

What's really interesting: In the same situation, will a motorised control
surface fight back?

Sorry, digressing a bit.

Jeff

----- Original Message ----- 
From: "Tim Hockin" <thockin@xxxxxxxxxx>
To: <gmpi@xxxxxxxxxxxxx>
Sent: Wednesday, April 14, 2004 1:46 PM
Subject: [gmpi] Re: 3.11 topic: Inter-parameter linkages


> On Wed, Apr 14, 2004 at 12:42:21PM +1200, Jeff McClintock wrote:
> > > I don't see a clean way to do parameter clipping without making
another
> > > level of dynamism on top of parameters.  The ideal would be that the
GUI
> > > knob would just stop rotating at a certain point, until the clip was
> > > resolved.  Making it go past the clip then come back after some
latency
> > > DOES suck.
> >
> > That's why the Actor is in the MVC notification loop.  No latency. All
> > values are clipped *before* being broadcast to the GUIs.
>
> It works for GUI, but there is physical latency with some UIs:
>
> GUI:
> user twists a knob 1.0
> GUI calls the actor
> actor modifies 1.0 to 0.75
> GUI draws 0.75
> - no (perceivable) latency
>
> Motorized fader:
> user pushed fader to 1.0 (127)
> control-surface interface receives MIDI event (or whatever)
> control-surface interface calls actor
> actor modifies 1.0 to 0.75 (95)
> control-surface interface sends MIDI feedback (or whatever) of 95
> - probably negligible latency?
>
> So maybe it is negligible.. Still recovering from bad flu, brain not 100%
> yet.  Trying to not get buried here.  I *think* we're really close.  What
I
> am looking for now is a way to characterize this into reqs..
>
>
> ----------------------------------------------------------------------
> Generalized Music Plugin Interface (GMPI) public discussion list
> Participation in this list is contingent upon your abiding by the
> following rules:  Please stay on topic.  You are responsible for your own
> words.  Please respect your fellow subscribers.  Please do not
> redistribute anyone else's words without their permission.
>
> Archive: //www.freelists.org/archives/gmpi
> Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
>
>
>



----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: