[linux-audio-dev] Re: [ardour-dev] saving plugin state

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

Subject: [linux-audio-dev] Re: [ardour-dev] saving plugin state
From: Paul Barton-Davis (pbd_AT_Op.Net)
Date: Wed Jan 10 2001 - 19:14:06 EET


[ yes, this needs to move to linux-audio-dev. see the Cc: line ]

>Remeber also that in other applications, plugins won't be mono in mono
>out. Therefore there is probably a number of ways to describe the
>connectivity. For instance, spice modeling wise, you could use nodes and
>have inputs/output connect to a named node. Or you could have direct
>reference to the ports ie, plugin1:port1 -> plugin4:port2.

right, and even in ardour, it will soon be possible to use stereo
plugins "correctly". you need to think of a set of plugins' state as a
network, not a chain.

the elements in the DTD should make no reference to GUI concepts like
"slider". you're merely saving the port state, nothing to do with the
GUI at all. so something more like:

<plugin name="Really neat plugin v1.3">
        <port name="length" value="13.456">
        <port name="depth" value="13.456">
        <port name="breadth" value="13.456">
</plugin>

you don't need preset names for each plugin - the preset name is the
name of the entire state of all plugins described.

interconnects could be done like this:

<plugin name="Really neat plugin v1.3" tag="plugA">
        <control-port name="length" value="13.456">
        <control-port name="depth" value="13.456">
        <control-port name="breadth" value="13.456">
        <audio-port name="left_input" connect="plugB:right_output">
        <audio-port name="right_input" connect="plugB:left_output">
</plugin>

<plugin name="Really neat plugin v1.3" tag="plugB">
        <control-port name="length" value="13.456">
        <control-port name="depth" value="13.456">
        <control-port name="breadth" value="13.456">
        <audio-port name="left_input" connect="host">
        <audio-port name="right_input" connect="host">
</plugin>

the tag names "plugA", "plugB" are entirely local to the saved state,
and are used only to make the interconnections. they mean nothing. a
connect string of "host" means that the host will connect it up when
it loads the plugin network (e.g. to the track audio stream, some
channels, or whatever).

its not clear to me whether you need to save both sides of a
connection (e.g. plugA:foo -> plugB:bar as well as plugB:bar -> plugA:foo).

i also don't know how to identify the ports that the host needs to
connect input and output to when the network is loaded.

something like that. how does that seem ?

--p

ps. the ladspa docs say give guidance on what should and should not
    be used to unambigously identify plugins. its definitely not the
    "name" field of the plugin descriptor.


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

This archive was generated by hypermail 2b28 : Wed Jan 10 2001 - 19:55:48 EET