Subject: Re: [linux-audio-dev] Re: [l Re: Plug-in API progress?
From: P.J.Leonard (P.J.Leonard_AT_bath.ac.uk)
Date: ti syys 28 1999 - 05:30:39 EDT
David Olofson wrote:
+
> > In short, I wat that my own process is able to get parameter-changes
> > notifications from the engine, and is allowed to send parameter-changes to any
> > plugin. (with immediate reflection on the GUI sliders, other
> > automation-recorders etc).
>
> Yes, that's basic. That's what the client/server/plug-in architecture is all
> about in this case, IMO.
> > what about the following scenario:
> > sequencer1 continuously changes the cutoff frequency of a LP filter-plugin,
> > the GUI slider moves reflecting the changes.
>
> Ok. Sequencer 1 somehow (directly or indirectly) sends events to both the
> filter plug-in, and the GUI element (which is in fact a plug-in as well).
>
> > sequencer2 records the automation parameters.
>
> It could request to become another recipient of all events sent to the filter
> plug-in. That is, another port to recieve a pointer to the same event buffer.
There are 3 options here.
1. server sends events to notify GUI of changes.
2. GUI asks the server it's current state.
3. Mixture of 1 and 2
(1) Is conceptually more attractive but you run the risk of clogging
the system up
with event messages if you have fine grain controllers changing fast.
Here I speak from
my own experience (I have Qt widgets for adjusting midi parameters I
also map midi controllers
onto parameters and monitor the state with the sliders). The pitch
change wheel generates
quiet a lot of events !!!)
(2) requires the GUI to poll the server on a timer which is a bit ugly
but reduces the
time spent doing X11 stuff. I update widgets every 1/10 of a second. You
can change
the pitch wheel from min to max in this time.
I think any system should allow both schemes (1) and (2).
-- Cheers Paul (P.J.Leonard)Tel: +44 (0)1225 826108 Applied Electromagnetic Research Centre, Fax: +44 (0)1225 826305 University of Bath, BATH. BA2 7AY UK
This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:27:12 EST