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).
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 created programmatically at run-time.
This has been a brief introduction to JMSL's use of hierarchies. Now
check out what else JMSL has to offer.
JMSL (c) Nick Didkovsky, Phil Burk. JMSL is based upon HMSL (c) Phil Burk, Larry Polansky and David Rosenboom.