The issue of synchronization has always been one of the central problems of multimedia applications; it is therefore necessary for the MADE toolkit to offer a consistent solution to this issue.
The fundamental synchronization scheme used in MADE is called reference point synchronization. For each, so called, synchronizable MADE object a series of media specific reference
points may be defined (for example, video frames, audio samples, etc.).
Each reference point contains internal ``instructions'' for
synchronization, references to other synchronizable objects that are to
be synchronized with it, etc. Synchronizable objects are active objects;
when they reach a reference point, synchronization is performed by
exchanging messages with other active objects, waiting for their
replies, etc. The reference point model has been greatly inspired
by [3]; its details in the MADE environment are specified
in [8]. Audio, video, and animation objects are obvious
examples of synchronizable MADE objects. The MADE programmer may
create new, application-specific synchronizable objects, too.
Based on this synchronization model, the MADE toolkit also includes a higher-level mechanism for time-based synchronization. This mechanism defines different types of schedulers which the application may use as building blocks for more complex time-based synchronization scenarios (see [8] for further details). These schedulers all assume the existence of a special synchronizable object within MADE, namely a timer. The approach of building time-based synchronization on the top of a more general mechanism, instead of considering it as a basic feature, allows the MADE library to be used in environments which do not necessarily offer real-time facilities.