async destroy() {
    this.removeListener();
    this.channels.forEach(ch => ch.destroy());
    this.channels = [];
    this._forwarders = [];
    if (this._midiInput) {
      this._midiInput.onstatechange = null;
      this._midiInput.onmidimessage = null;
    }
    await this.close();
    this._midiInput = null;
  }
Destroys the `Input` by removing all listeners, emptying the [`channels`](#channels) array and
unlinking the MIDI subsystem. This is mostly for internal use.

@returns {Promise<void>}