The MusicalEvent Type

This is the base trait and highest level type for all musical events. There are two main subtypes of MusicalEvent:

sealed trait MusicalEvent:
    enum AtomicMusicalEvent(duration: Duration, velocity: Velocity) extends MusicalEvent
    final case class Sequence(head: AtomicMusicalEvent, tail: MusicalEvent) extends MusicalEvent

Types of AtomicMusicalEvents

Next Step: Building Drum Beats