private async Task OnLoadPluginCommandExecute()
        {
            _remotePluginInstance =
                _remoteVstService.GetInteractivePluginInstance(Plugin);

            if (!_remotePluginInstance.IsLoaded)
            {
                await _remotePluginInstance.LoadPlugin();
            }


            _remotePluginInstance.PatchPluginToAudioOutput(_globalService.RuntimeConfiguration.AudioOutputDevice,
                                                           _globalService.RuntimeConfiguration.AudioLatency);

            foreach (var dev in _globalService.RuntimeConfiguration.MidiInputDevices)
            {
                try
                {
                    _remotePluginInstance.PatchPluginToMidiInput(dev);
                }
                catch (Exception e)
                {
                    LogTo.Error(e.Message);
                }
            }

            ShowEditorCommand.RaiseCanExecuteChanged();
            LoadPresetCommand.RaiseCanExecuteChanged();
        }
        protected override void OnPropertyChanged(AdvancedPropertyChangedEventArgs e)
        {
            if (e.PropertyName == nameof(SelectedTreeNode))
            {
                ExternalFilter = o => PresetFilter(o as Preset);

                RenameBankCommand.RaiseCanExecuteChanged();
                AddBankCommand.RaiseCanExecuteChanged();
                DeleteBankCommand.RaiseCanExecuteChanged();
            }

            if (e.PropertyName == nameof(SelectedPreset))
            {
                HasSelectedPreset = SelectedPreset != null;
                LoadPresetCommand.RaiseCanExecuteChanged();
            }
        }