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:
mySong
__________|____________
| | | |
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.
verse1
__________|_____________
| | | |
violin1 violin2 viola 'cello