Hell Cafe is an interactive JMSL piece that was written for the music theatre production The Technophobe and the Madman.
It uses JMSL's ParallelCollection class to perform multiple tracks of techno beats in synch with each other.
The tracks are implemented as JMSL
MusicShapes. The ParallelCollection changes its contents dynamically
during the piece, as the performer adds and removes MusicShapes from it. The MusicShapes can change
themselves dynamically as well, using the MusicShape.scramble() method to reorder their contents.
HellCollection starts as an empty collection
hellCollection
__________|____________
As the performer "unmutes" tracks, MusicShapes are added to hellCollection. Newly added Composables are launched
at the beginning of the next repeat of their parent Composable. So adding "toms" in the middle of a rhythmic cycle
will wait until the cycle is complete before launching "toms".
hellCollection
__________|____________
| | | |
snare kick tyrone toms
If the performer chooses to "mute" a track, a MusicShape is removed from hellCollection. Again, this change is heard on the next repeat of the parent Composable.
hellCollection
__________|____
| | |
snare kick tyrone
(Hell Cafe Demo)