use new dictionary literals
move audio output events to their own class

More efficient. Allows us to create and store only the blocks we
actually need at any given time. Also easier to add. Instead of
altering code in QSBasicEventTriggers, just add a new class and refer
to it in the property list.