- ... chapters0.1
- The different parts that make up this summary are also included with
minor modifications and adding conclusions in the ``Summary and
Conclusions'' section at the end of each chapter.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... hierarchy1.1
- This rule may be broken if multiple inheritance is used at an intermediate
level of the hierarchy but it is beyond the scope of this summary
to detail this special case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... following1.2
- See a more exhaustive report on C++ performance issues at [O'Riordan, 2002].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... example1.3
- Abridged version from the MetriXML instrument definition presented
in section 6.4.4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Networks1.4
- Other graphical MoC's including Component Interaction (CI), Communicating
Sequential Processes (CSP), Continuous Time (CT), Discrete Events
(DE), Distributed Discrete Events (DDE), Discrete Time (DT), Synchronous
Reactive (SR), and Timed Multitasking (TM) can be found in the context
of the Ptolemy project (see [Hylands et al., 2003]).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... environments2.1
- Other environments such as AudioMulch [Bencina, 1998,www-AudioMulch, ],
JSyn[Burk, 1998], Cmix[Lanski, 1990,Riddell and Bencina, 1996,Helmuth, 1990],
Sonic Flow[Seppänen and Kananoja, 1998a,Seppänen and Kananoja, 1998b], or SPKit[Lassfolk, 1995]
have been reviewed and could also be included in the previous list.
Nevertheless they have been discarded either because their particular
approach is very similar to one already included or because they do
not offer enough reliable information.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...2.2
- At the time of this writing the ones marked with * have still not
been integrated into Ptolemy II.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... support2.3
- Thanks to the fact that MET++ was distributed as Free Software the
source code is still available for download. This means that although
support and development are currently discontinued, anyone can take
it and develop it further. For this reason, and unlike other discontinued
environments, we have chosen not to write this description in past
tense.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... diagram3.1
- Please refer to Figure 1.1 for a basic explanation
of the UML notation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... appropriate3.2
- The ``Dynamic Type'' name has been kept in the CLAM framework
for historical reasons nevertheless, and as it will be seen later,
we are not dealing here with classes with a dynamic type behavior
but rather with dynamic attributes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... DT3.3
- This example is not of the Note class available in the CLAM repository.
It is a fictitious class created in order to illustrate the different
services and behaviors of Dynamic Types.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... framework3.4
- Although CLAM is clearly an ``application framework'' it could
also in many senses classify as a ``domain framework''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... synthesis3.5
- Note that in the original figure the size of the bounding box is not
used as an indication of how broad the scope is. Nevertheless we have
used this parameter now to highlight which of the existing environments
CLAM could substitute, scope-wise.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... model3.6
- For the purpose of our discussion we will here highlight differences
and similarities in respect to environments in different categories
than CLAM's. In next paragraphs we will point out how similar is CLAM's
MoC to the one that other environments in its category present.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... approach3.7
- Note that we are here referring to the underlying models of computation,
not the way that they are actually represented in the graphical interface.
In the particular case of Kyma, its complex and sometimes fundamentalist
object-oriented conceptual model, which was defended as its main feature
in past years is nowadays usually hidden to the user which has access
to different views of the system that include temporal and graph-based
representations.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...3.8
- By this we mean that the author has been too traditional applying
the OO model, which originally did not recommend a separation between
data and operations or processes. This already deprecated idea may
lead to quite artificial domain models. In section 4.2
we will comment more on this idea and justify why our model is truly
object-oriented.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... framework4.1
- Remember that, as already commented in different occasions, we believe
that ``frameworks generate metamodels''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
objects4.2
- Note that the concept of ``generating'' or ``sink'' can also
be applied to Composite Processing objects and Processing Networks
(see 4.1.3).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... run-time4.3
- As a matter of fact we may use the control mechanism in order to change
internal connections or bypass particular Processing objects in a
Composite. But this is rather a side effect of the flexibility of
the metamodel rather than an important inherent feature.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...4.4
- A particular implementation of such a scheme was already given in
the context of the CLAM framework in section 3.2.2.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...invertible5.1
- Non-invertible descriptions result in special applications that only
instantiate a subset of the complete OOCTM metamodel. On the one hand
encodable but not synthesizable representations fall in the category
of signal analysis and understanding. On the other hand, synthesizable
but not encodable formats are simply called synthesis languages.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...5.2
- Note that in no way this example is trying to build a generic model
of a sound stream and it is just being used to illustrate the methodology.
As a matter of fact, as already highlighted in section 1.2,
a single concept or system may be modeled differently according to
the purpose of the model itself.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Scene5.3
- Note that the word ``object'' is here used in the sense defined
in MPEG-7 and already commented in the introduction to this chapter.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... XSLT5.4
- XSLT is a language for transforming XML documents into other XML documents
(see [W3C, 1999])
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...sec:Content-based-transformations)5.5
- Different examples of how to accomplish this with a transformation
or an interpolation will be seen in the next chapter.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... compressed5.6
- Although the term ``noisy'' is sometimes used by the authors as
a synonym of ``unstructured'' we think this term is very misleading.
As a matter of fact, a white noise signal is very structured , according
to the Kolmogorov complexity theory it can be sent as structured audio
with no perceptual loss in a very compact synthesis algorithm with
almost no control parameters.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Loudness6.1
- This refers to the regular use of the timbre space. More ``creative''
or exploratory strategies may also be followed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... ProcessingA.1
- Note: the Processing class was called at that time ProcessingObject.
This name reinforced the adjective usage of the word ``processing''.
Nevertheless it was later shown to be an ambiguous name especially
due to the fact that the word ``object'' was being used to name
a class. Furthermore, if a Processing was to be a ``ProcessingObject''
then a Processing Data must have become a ``ProcessingDataObject''
and so on. The word ``process'' that was then discussed but not
approved.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... CodeWarriorA.2
- Most of the framework was compiled and tested under Mac OS but the
lack of some system services like multithreading made it really difficult
to port some real-time applications with guarantees.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.