[LAD] Fw: Re: "bleeding edge html5" has interesting Audio APIs

Fons Adriaensen fons at linuxaudio.org
Tue Nov 22 21:12:02 UTC 2011


On Tue, Nov 22, 2011 at 09:13:37PM +0100, Nick Copeland wrote:
 
> If you are using a toolkit that has a data flow of the following:
> 
>       pointer motion->graphical display->values->application->output
> 
> Well, basically that is broken as you have a flow that is
> 
>       input->output->input->application->output
> 
> invariably that is going to lead to issues. The tail (the toolkit) is wagging the dog 
> (the application) as it imposes restrictions on the values the application is allowed
> to see.
> 
> In my opinion (ok, it is only opinion) is that the correct flow is 
> 
>      input->application->output

Yes, I see your point, and it makes a lot of sense. So what would be
required is 

* compute the new parameter value from

  - a stored state in 'paramater space' rather than 'widget space'
  - and pointer (mouse) gestures,

* update the widget according to that value.

This is more or less what I do in the rotary controls used
in e.g. zita-at1 and zita-rev1. It's possible because the
mouse movement and the visual representation of the value
(the angle of the line on the rotary knob) are not directly
related anyway.

But this is not how most (all) toolkits work.
You could probably use them in the way you suggest with some
extra effort. But in many cases (e.g. linear sliders) the
pointer and widget would have to remain in sync visually,
which then means that your resolution in paramater space
can't be better than the visual one. Unless you allow the
pointer to move faster than the visual object it is controlling
(which is what I do in the 2-D panner, but it's possible only
because the widget is so small).

Ciao,

-- 
FA

Vor uns liegt ein weites Tal, die Sonne scheint - ein Glitzerstrahl.




More information about the Linux-audio-dev mailing list