On Wednesday 12 June 2002 11.17, Vincent Touquet wrote:
> I have never done any GUI programming before.
>
> Writing these comprehensive widgets
> with cool knobs, smooth slides,
> graphical equalizers etc. seems
> difficult though.

GUI programming is not really difficult IMHO, but the difference 
between the first estimation of development time and the time it 
actually takes to hack is probably the bigger than for any other kind 
of programming. It looks like it would be a fast and easy hack, as 
everything's so visually "obvious" and intuitive, but that's just an 
illusion...


> I think an effort should be undertaken to
> get a group of people to write these damn things :)

Yes, but how about motivation, and getting the right people to do 
their best?


> I fear model-view-controller separation
> doesn't apply here, as we are entirely
> in the view realm.

I don't agree there. The major difference is probably that there's 
much more "logic" inside the GUI part - not that there all of a 
sudden is a good reason to mix things that don't belong together. 

In fact, the separation between engine and UI is an absolute 
*requirement* for real time audio/MIDI applications, as you simply 
cannot make them work reliably if there are too many places where the 
UI may interfere with the timing of the engine.

"Monolith GUI + modular engine" is a basic design idea that makes 
sense here, IMHO. (A modular/plugin based GUI might work as well, but 
then we're back in this "different toolkits won't mix" mess again...)


> So we are stuck basicly to implement
> these things for *all* the major toolkits,
> GTK, QT, etc.

Yes, but perhaps we can do something about that, as a part of 
creating a VSTGUI style toolkit, more suitable for the kind of highly 
interactive GUIs we need.

The design I have in mind could be implemented inside any toolkit 
that provides access to the underlying "drawing toolkit" - or 
directly on top of the rendering target or API (SDL, X, fbdev, 
svgalib, GDI, DirectDraw, Direct3D/Graphics, OpenGL...), for that 
matter.

The only truly required feature is a way of rendering rectangular 
images into windows. All higher level stuff is just to allow certain 
targets to use hardware acceleration for specific features - ie 
performance hacks. (That is, stuff that optimization freaks can play 
around with after the toolkit is implemented and working. :-)

If one can get away with designing such a toolkit that's actually 
usable, any code that uses it will happily interact with any toolkit, 
and it could also serve as a highly portable stand-alone toolkit. 

[...]

Either way, the major issue here is not *how* we should go about 
getting proper GUIs for more and larger Linux music application, but 
how we should get anyone to do any serious GUI hacking *at all*. 

There are a few exceptions, but the fact remains: The LAD community 
consists mostly of *audio* hackers. (Makes sense, sorta'... ;-)


//David

.- M A I A -------------------------------------------------.
|      Multimedia Application Integration Architecture      |
| A Free/Open Source Plugin API for Professional Multimedia |
`---------------------------> http://www.linuxdj.com/maia/ -'
.- David Olofson -------------------------------------------.
| Audio Hacker - Open Source Advocate - Singer - Songwriter |
`-------------------------------------> http://olofson.net -'

Reply via email to