_parseEventForParameterNumber(event) {

    // To make it more legible
    const controller = event.message.dataBytes[0];
    const value = event.message.dataBytes[1];

    // A. Check if the message is the start of an RPN (101) or NRPN (99) parameter declaration.
    if (controller === 99 || controller === 101) {

      this._nrpnBuffer = [];
      this._rpnBuffer = [];

      if (controller === 99) {                          // 99
        this._nrpnBuffer = [event.message];
      } else {                                          // 101
        // 127 is a reset so we ignore it
        if (value !== 127) this._rpnBuffer = [event.message];
      }

    // B. Check if the message is the end of an RPN (100) or NRPN (98) parameter declaration.
    } else if (controller === 98 || controller === 100) {

      if (controller === 98) {                          // 98

        // Flush the other buffer (they are mutually exclusive)
        this._rpnBuffer = [];

        // Check if we are in sequence
        if (this._nrpnBuffer.length === 1) {
          this._nrpnBuffer.push(event.message);
        } else {
          this._nrpnBuffer = []; // out of sequence
        }

      } else {                                          // 100

        // Flush the other buffer (they are mutually exclusive)
        this._nrpnBuffer = [];

        // 127 is a reset so we ignore it
        if (this._rpnBuffer.length === 1 && value !== 127) {
          this._rpnBuffer.push(event.message);
        } else {
          this._rpnBuffer = []; // out of sequence or reset
        }

      }

    // C. Check if the message is for data entry (6, 38, 96 or 97). Those messages trigger events.
    } else if (
      controller === 6 ||
      controller === 38 ||
      controller === 96 ||
      controller === 97
    ) {

      if (this._rpnBuffer.length === 2) {
        this._dispatchParameterNumberEvent(
          "rpn",
          this._rpnBuffer[0].dataBytes[1],
          this._rpnBuffer[1].dataBytes[1],
          event
        );
      } else if (this._nrpnBuffer.length === 2) {
        this._dispatchParameterNumberEvent(
          "nrpn",
          this._nrpnBuffer[0].dataBytes[1],
          this._nrpnBuffer[1].dataBytes[1],
          event
        );
      } else {
        this._nrpnBuffer = [];
        this._rpnBuffer = [];
      }

    }

  }
Parses inbound events to identify RPN/NRPN sequences.
@param e Event
@private