[Clam-devel] Embedded Networks
Zach Welch
zach-clam-devel at splitstring.com
Tue Apr 3 03:45:15 PDT 2007
Hi all,
I have begun working on adding "Embedded Networks" to CLAM at both the core
processing level as well as in the NetworkEditor*. I wanted to make this
announcement to make everyone aware of this strategic goal. At the moment, I
am making strong headway on a rough working prototype, and I have attached a
working initial patch and networks that demonstrate the concept.
Cheers,
Zach
* For those who are unclear, "embedding" a CLAM network into another will
amount to dropping a EmbeddedNetwork processing component, configuring it with
the file name of a .clamnetwork (much like an AudioFile source), and then
connecting the various inputs and outputs that magically appear on the
periphery of the new component. Thus, the processing component encapsulates
the functionality of a user-defined network, allowing decomposition of common
network patterns into libraries of re-usable components.
Such re-usable networks would necessarily have been designed with "parameter"
and "return value" components, which shuttle various types of data and control
signals in and out of the network. These would function much like existing
Source/Sink components, but the EmbeddedNetwork processing component would
use these exclusively to work its connection magic. These extensions
preserve all existing network semantics by introducing new components, rather
than overloading behaviors in components that are already being used.
In the GUI, I am working to make the custom widget display an image of the
sub-network inside of the processing component. Ideally, this rendering
should include added flow edges connecting the embedded parameter and return
value components to their associated data (or control) inputs and outputs on
the container component. At present, the embedded network is editable, but
that is probably not a desirable feature in the long term.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: embedded-networks.patch
Type: text/x-diff
Size: 22739 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20070403/4f768afb/attachment-0004.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test2.clamnetwork.pos
Type: application/octet-stream
Size: 58 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20070403/4f768afb/attachment-0008.obj>
-------------- next part --------------
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<network id="Unnamed">
<processing id="EmbeddedNetwork_0" type="EmbeddedNetwork">
<SourceFile>
<URI>/home/zwelch/src/museick/clam/test.clamnetwork</URI>
</SourceFile>
</processing>
</network>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.clamnetwork.pos
Type: application/octet-stream
Size: 166 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20070403/4f768afb/attachment-0009.obj>
-------------- next part --------------
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<network id="Unnamed">
<processing id="AudioSink_0" type="AudioSink"/>
<processing id="AudioSink_1" type="AudioSink"/>
<processing id="MultiChannelAudioFileReader_0" type="MultiChannelAudioFileReader">
<SourceFile>
<URI>/home/zwelch/billy.wav</URI>
<Header>
<SampleRate>44100</SampleRate>
<Samples>1851495</Samples>
<Channels>2</Channels>
<Length>41984</Length>
<Format>WAV</Format>
<Encoding>signed 16-bit</Encoding>
<Endianess>Format Default</Endianess>
</Header>
<TextualDescriptors/>
</SourceFile>
</processing>
<port_connection>
<out>MultiChannelAudioFileReader_0.Channel #0</out>
<in>AudioSink_0.AudioIn</in>
</port_connection>
<port_connection>
<out>MultiChannelAudioFileReader_0.Channel #1</out>
<in>AudioSink_1.AudioIn</in>
</port_connection>
</network>
More information about the clam-devel
mailing list