Sample application

In the previous sections we have presented examples of applications that represent the implementation of a particular subset of the Object-Oriented Content Transmission Metamodel or some of its components. We have also a number of content-based transformations that in fact represent a minor variation over the basic scheme. But in [Amatriain and Herrera, 2001b] we presented a system to illustrate the whole OOCTM transmission chain.

The system was based on two already existing CLAM applications: SMSTools and Salto (see section 3.2.3). The basic idea of the system is to transmit monophonic musical phrases by simply transmitting an XML melody description. Figure 5.25 illustrates the main components of the system and the basic data flow.

Figure 5.25: OOCTM Sample Application

Note how this block diagram represents the complete OOCTM chain. In our demo system the transmitter is basically the SMSTools application with added melody description capabilities. The receiver is the Salto saxophone synthesizer which was until then a real-time MIDI-controlled synthesizer but to which we added the capability of understanding XML melodies.

Just as it usually happens in these kinds of applications in our system we can distinguish two different phases: initialization phase and transmission phase.

In the initialization phase we have to construct and set up the receiver. For doing so we have to take audio samples of isolated notes, analyze them at the receiver and send them to the transmitter as SMS spectral samples. The receiver will then organize them in a local database and finally become ready to listen to incoming messages. Note that in this sample system this initialization phase is rather limited because the synthesizer that we have at the receiver is not general enough. In this case we aimed at having a reasonable quality and fidelity to the original encoded sound and that is still very difficult to achieve with a generic synthesizer. Nevertheless, and as a future line of work, it would in theory be possible to actually transmit the complete description of the instrument using an instrument description language such as MetriX's MIDL (see section 6.4.2). Then the idea would be to transmit both the spectral (or whatever other kind) samples together with an XML description of how they should be organized at the receiver.

In the transmission phase the transmitter receives incoming monophonic phrases and extracts the melodic description. For doing so it uses a basic segmentation algorithm for identifying note boundaries and assigns the analyzed energy and fundamental frequency to that particular region (see [Gómez et al., 2003b] or [Gómez et al., 2003a] for more details on the algorithm being used and its implementation). The melodic description is then encoded into XML, in an MPEG-7 like manner and transmitted. The receiver then reads the XML melodic description, decodes it and translates it into internal synthesis control data. It finally synthesizes the output sound.