[linux-audio-dev] Midi/OSC help - Continuous controllers
Olivier Guilyardi
ml at xung.org
Thu Jun 30 10:20:06 UTC 2005
Alfons Adriaensen wrote:
> On Wed, Jun 29, 2005 at 10:46:55AM -0400, Paul Coccoli wrote:
>
>
>>On 6/28/05, Olivier Guilyardi <ml at xung.org> wrote:
>>
>>
>>>I believe there could exist a library with which :
>>>1 - you instantiate a core object (providing the alsa midi port as an arg)
>>>2 - you "attach" to some widgets : sliders, spin buttons, etc.. (note that this
>>>is different from extending (bloating) widgets)
>>>3 - you may call a function to enter the capture-mode
>>>4 - 100 % of this capture-mode is encapsulated by the library : knobs-to-widgets
>>>assignations are handled transparently
>>>5 - there is some way to retrieve these assignations to recall them later
>>>
>>
>>You seem to really like this idea. Why don't you just do it and see
>>if it works well? I have an unfounded hunch that it won't, since you
>>usually want your GUI running in a lower priority thread.
Needs checking indeed... Spawning an additionnal thread may be required. The
reason why I don't "just do it" is because discussing implementations ideas
before coding has been of great benefit to me in the past, especially here in
LAD...
> Yes, and you'd force the widgets to update for each message sent by
> a knob, even if there are 1000 such messages per second, which is absurd
> and could easily freeze the entire application.
Why ? I can cache/compare values before asking the widget to update.
> It's also not a general model. What if you want to link to GUIs, or
> two HW controllers ?
Two controllers (mtk: midi toolkit) :
c1 = midibind_new();
c2 = midibind_new();
That would open two input midi ports (and maybe create two threads).
Then you could attach to whatever widget you like :
mtk_attach_gtk_hscale (c1, gui1->hscale);
mtk_attach_gtk_vscale (c2, gui1->vscale);
mtk_attach_gtk_hscale (c2, gui2->hscale);
...
> The association should be done in the 'server' part of the model, i.e.
> that part which provides the interface to all controllers and viewers.
> In the MVC structure, a GUI is just a controller/viewer as any other.
> It does not play any central role.
I know what you mean. But I tend to keep my distances with such academic
considerations.
Thanks for your input and criticism.
--
og
More information about the Linux-audio-dev
mailing list