Next: Dataflow model, Up: Architecture overview

The basic idea behind the design of Marsyas is that any audio analysis/synthesis computation can be expressed as some type of processing object, which we call MarSystem, that reads data from an input slice of floating point numbers, performs some computation/transformation based on data, and writes the results to another slice of floating point numbers. Networks of MarSystems can be combined and encapsulated as one MarSystem.

For example consider an audio processing series of computations consisting of reading samples from a soundfile, performing an short-time fourier transform (STFT) to calculate the complex spectrum, performing an inverse STFT to convert back from the frequency domain to time domain, then applying a gain to the amplitude of the samples and writing the result to a soundfile.

As is very frequently the case with audio processing networks objects the input of each stage is the output of the previous stage. This way of assembling MarSystems is called a Series composite. Once a Series Composite is formed it can basically be used as one MarSystem that does the whole thing. A figure showing a block diagram-like presentation of this network is shown in the next section.