 
 extension MIDIDevice: MIDIEventReceiver {
     
-    public func receive(_ event: MIDIEvent) {
+    public func receive(_ packet: MIDIPacket) {
         for entity in entities {
-            entity.receive(event)
+            entity.receive(packet)
         }
     }
     


extension MIDIEntity: MIDIEventSender {
    
    public func send(_ event: MIDIEvent, via output: MIDIOutput) {
        for destination in destinations {
            destination.send(event, via: output)
        }
    }
    


public protocol MIDIEventSender {
    
    func send(_ packet: MIDIPacket, via output: MIDIOutput)
    
}

extension MIDIEventSender {
    
    public func send(_ packets: [MIDIPacket], via output: MIDIOutput) {
        for packet in packets {
            send(packet, via: output)
        }
    }
    
    public func send(_ event: MIDIEvent, via output: MIDIOutput) {
        send(event.packets, via: output)
    }
    
    public func send(_ events: [MIDIEvent], via output: MIDIOutput) {
        for event in events {
