     var runningStatus: AKMIDIStatus?
     private var timeOffset: Int //accumulated time from previous events
 
-    init(data: [MIDIByte], timeFormat: MIDITimeFormat, timeDivision: Int, timeOffset: Int) {
+    init(data: [MIDIByte], timeFormat: MIDITimeFormat, timeDivision: Int, timeOffset: Int,
+         runningStatus: AKMIDIStatus? = nil) {
         self.data = data
         self.timeFormat = timeFormat
         self.timeDivision = timeDivision
         self.timeOffset = timeOffset
+        self.runningStatus = runningStatus
     }
 
     var computedData: [MIDIByte] {


    var position: Double {
        return Double(absoluteTime) / Double(timeDivision)
    }

    var timeLength: Int {
        return (data.firstIndex(where: { $0 < 0x80 }) ?? 0) + 1
    }

    var typeByte: MIDIByte? {

        return Array(data.suffix(from: timeLength))
    }

    var vlq: MIDIVariableLengthQuantity? {
        return MIDIVariableLengthQuantity(fromBytes: data)
    }

    var timeLength: Int {
        return vlq?.length ?? 0
    }

    var deltaTime: Int {
        return Int(vlq?.quantity ?? 0)
    }

    var absoluteTime: Int {
