JMSL Tutorial: Hierarchies

Java Music Specification Language (JMSL) is a Java API for making music. At its heart is a polymorphic hierarchical scheduler, which allows software objects to be scheduled over time. Even though they might be very different from one another in function, these objects share a common Java interface. This interface is called “Composable”. JMSL can schedule complex trees of Composables by passing timestamps through a network of parent/child relationships.


A song form provides a simple example of a parent/child hierarchy:

    |       |     |       |
 verse1  chorus verse2 chorus

The example above shows a parent called mySong with four children: verse1, chorus, verse2, chorus. In JMSL, mySong would be a SequentialCollection, which launches its children in sequential "left to right" order. The mySong parent and its children would all be “Composables” in JMSL.

    (C) 1997-2003 Phil Burk and Nick Didkovsky, All Rights Reserved
    JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom.