/// <summary> /// Resource clean up. /// </summary> /// <param name="disposing"></param> protected override void Dispose(bool disposing) { if (disposing) { _mmtimer?.Stop(); _mmtimer?.Dispose(); _mmtimer = null; _midiIn?.Dispose(); _midiIn = null; _midiOut?.Dispose(); _midiOut = null; _piano?.Dispose(); _piano = null; components?.Dispose(); } base.Dispose(disposing); }