[linux-audio-dev] XAP: Strings and Raw Data Controls

David Olofson david at olofson.net
Wed Dec 18 17:28:01 UTC 2002


On Wednesday 18 December 2002 19.39, Tim Hockin wrote:
> > > OK, I thought that the host was responsible for mashalling the
> > > queues.
> >
> > Only when you send events from different contexts to the same
> > Queue. There's normally no need for it otherwise.
>
> If the host expects to draw a UI that corresponds to an actual knob
> moving, it needs to snoop events.

Well, you're bringing up an interesting set of problems.

First, note that a Control is either an input or an output - so you 
can't drive a knob that way from a single Control. You need an output 
control to move the knob, and an input control to get user input from 
the knob. For an input widget, the plugin will normally have only an 
input Control, so the output must come from somewhere else: The 
sequencer.

So, the actual connections don't have much to do with snooping at 
all, but rather look something like this:

       |-----------|               |-------|
       |           |--+----------->| Synth |
       |           |  |  |-----|   |-------|
       | Sequencer |  +->|     |
       |           |     | GUI |
       |           |<----|     |
       |-----------|     |-----|

That is, the sequencer sends data to the synth *and* the synth's GUI. 
This is what makes the GUI track the automation.

When automation is on "record", the sequencer takes input from the 
GUI as well, and basically records it and forwards it to the Synth at 
the same time.

Display widgets in GUIs would be the same, although without control 
output. Obviously, all widgets must have inputs.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the Linux-audio-dev mailing list