JMSL Tutorial: Hierarchies

JMSL hierarchies can be embedded within hierarchies. In our previous example, we had a SequentialCollection called mySong, containing ParallelCollections called verse1, verse2, and chorus.

JMSL hierarchies, however, are not particularly concerned with modeling real-world hierarchies. You can build hierarchies with JMSL classes that have no real-world counterparts.

For example, you might design a “MusicJob” (a JMSL Composable that does some user-defined task repeatedly over time), that periodically scans your computer's Recycling Bin for data.This MusicJob could be put in a ParallelCollection with other MusicJobs that sonify the data in various ways (thanks to Christopher Koenigsberg who wrote a non-JMSL piece that did something similar).

Note, too, that hierarchies can be built on-the-fly during the execution of a piece. SequentialCollections can be created, performed, rearranged, embedded within ParallelCollections within ParallelCollections within other SequentialCollections... very complex networks of interrelationships can be managed easily.

This has been a brief introduction to JMSL's use of hierarchies. Now check out what else JMSL has to offer.

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