Hierarchical Scheduling In JMSL

Java Music Specification Language (JMSL) is based on Hierachical Music Specification Language (HMSL). The notion of structuring compositions and real-time performance environments in hierarchies is one of the key ideas maintained from HMSL.

There are two kinds of parent/child hierarchies in JMSL: ParallelCollection and SequentialCollection.

A song form provides a simple example of a SequentialCollection:
    |       |     |       |
 verse1  chorus verse2 chorus
SequentialCollection can perform in strict order, or can consult a Behavior to choose the next child every time it repeats.

A ParallelCollection plays its children all at once. One verse of our song provides an illustration of a ParallelCollection.

    |       |      |       |
violin1  violin2  viola 'cello