MITSYN

CnfedIcon.gif MITSYN Stream Processing

Configurations (Block Diagrams)

Stream Processing operations may be quickly specified in MITSYN by drawing "configurations" (also called "patches") which are block-diagram representations of the desired processing. In other words, "blocks" are connected ("wired", "patched") together into networks which effect the desired functions.

Configurations are created and edited by drawing block diagrams using the MITSYN Stream Processing Configuration Editor. An example configuration as viewed with the editor is:

Example MITSYN Stream Processing Configuration

The function of a particular configuration is defined by the interconnection topology, and by the operational characteristics of the individual block types used in the configuration. Each block type is in one of three classes — a primitive block, a (user definable) macro-block, or an added-in "extension block" type. The characteristics of the individual primitive block types are defined in the MITSYN Stream Processing Primitive Block Dictionary which is contained in the MITSYN help file. The characteristics of macro-blocks and Extension blocks are determined by their individual implementations.

The Configuration Editor shows the following toolbar for the addition of blocks to configurations.

NewBlock toolbar

The list box is shown displaying some of the primitive (built-in) block types. About 140 primitive block types are currently supported.

"Macro-blocks" may be defined by users and subsequently used in the same manner as primitive blocks. These are used the same way as user defined subroutines are used in procedural languages. Thus users may create libraries of more complex operations which are unique to their particular style of use.

Additional detail on some particular types of stream processing is available by clicking on:

Filtering

Stream Processing Runs

The actual running of stream processing is effected by commands which are said to build (also called compile) a processor from a main configuration and any referenced sub-configurations, and then to run the processor.

A GUI (graphical user interface) may be run concurrently with a stream processing run, and components of the GUI such as slider controls may be used to control parameters of the processing in real time. Audio output may be realized using Play blocks, and audio and other types of time signals may be captured using Sampler blocks. An example of running a GUI while doing audio synthesis and playing with a stream processor is the implementation behind the player mode of the Score Editor which allows the user to listen and adjust parameters such as voice loudness and tempo.

For pure synthesis applications a stream processor may read from a file format called a "MITSYN Score" and use that to control variations in processing parameters.

Implementation

The technically oriented user may be interested in details of the stream processing implementation. Others may best ignore them.