static public void SfOptim(List <PatchOptim> filters) { try { if (MidiPlayerGlobal.ImSFCurrent != null) { for (int b = 0; b < MidiPlayerGlobal.ImSFCurrent.Banks.Length; b++) { ImBank bank = MidiPlayerGlobal.ImSFCurrent.Banks[b]; if (bank != null) { for (int p = 0; p < bank.Presets.Length; p++) { ImPreset preset = bank.Presets[p]; if (preset != null) { bool found = false; foreach (PatchOptim optim in filters) { if (b == optim.Bank && p == optim.Patch && optim.Selected) { found = true; break; } } if (!found) { bank.Presets[p] = null; } } } } } } } catch (System.Exception ex) { MidiPlayerGlobal.ErrorDetail(ex); } }