Re: [linux-audio-dev] custom GUIs & XML GUIs ...Was: ladspa GUI round 2

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] custom GUIs & XML GUIs ...Was: ladspa GUI round 2
From: David Olofson (david_AT_gardena.net)
Date: Sun Apr 01 2001 - 20:55:18 EEST


On Sunday 01 April 2001 15:31, Paul Davis wrote:
> >> >what if all these plugin GUIs start sending(receiving) tons of
> >> > events to/from host.
> >>
> >> how would they do that ? they're driven by the mouse/keyboard.
> >
> >Hmmm... I could see how the "from" part could happen, though:
> >automation. And visualization plugins, of course.
>
> Read again. "these plugin GUIs start sending(receiving) tons of
> events to/from host".
>
> If automation is in effect, then the plugin GUI's are not sending
> events, but receiving them, and if they are receiving them, there's
> certainly no problem with the GUI of the host stalling, which was
> the original context for the question.

Can't see how that is so certain - or why there should be a
difference. In fact, if we're talking about memory allocation or
blocking, I'd be *more* worried about the *sending* process stalling.

* If a FIFO is used, blocking is the obvious risk. (Which could, and
  should be dealt with, of course.)

* Allocating memory for new events is the potential hazard with event
  based interfaces of the kind that pass structs around. (Like the
  event systems of MAIA, VST 2.0, MIDIShare [IIRC] etc. All of those
  use preallocated LIFO pools, AFAIK.)

* Finally, if the problem is the thread safe sync constructs (user or
  kernel space) involved in all standard IPC, then it doesn't matter
  in which direction you're sending; every time the engine thread
  hits a spinlock or similar construct while it's locked by the
  reader, you risk missing deadlines. (This *may* to some extent be
  solved with a priority inversion hack, but I doubt that will help
  in this kind of situation unless you're running the real time
  thread under something like QNX, RTL or RTAI.)

Anyway, all of the above are moot points with a proper engine design,
as has already been concluded. As long as the DSP engine runs in it's
own thread with proper (lock-free) communication with the GUI, the
latter can stall as much as it likes for whatever reason without
breaking anything. (It might annoy the user if it gets too serious,
though... :-)

//David

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


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Apr 07 2001 - 16:00:19 EEST