All the TickedDropEvents that occur during this program. They must be in ascending order by tick.
Information about this program. It can be distinct from a performance's metadata.
This is the "working" state of the machine, outside of a performance. When a user is modifying the program, this is how we store what settings they use. Whenever the user saves, this field gets updated, and whether they load, this gets read. It has almost no relevance when editing a performance since the performance events will cause it to be updated dynamically.
let prog: Program;
// invert the muted state of the snare
prog.state.machine.mute.snare = !prog.state.machine.mute.snare;
Generated using TypeDoc
The program represents the MMX's programming wheel, which can/will have multiple rotations throughout the Performance. It can also have its tempo changed or stopped completely. Other musician actions such as manually dropping marbles is done outside of the Program in the Performance.