... 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.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.