//import a midi file public void ImportMidi() { if (AlertIfUnsavedChanges()) { NSUrl loadPath = null; using (var openDialog = new NSOpenPanel()) { openDialog.AllowedFileTypes = new string[] { "mid", "midi" }; var result = openDialog.RunModal(); if (result == 1) { loadPath = openDialog.Url; } } if (loadPath != null) { try { var midi = new Midi(loadPath.RelativePath); if (midi.TrackCount > 1) { TrackChooserWindow trackChooser; using (var temp = new TrackChooserWindowController()) { trackChooser = temp.Window; trackChooser.SetTrackList(midi.GetTrackNames()); } NSApplication.SharedApplication.RunModalForWindow(trackChooser); if (trackChooser.Track != -1) { song.ImportFromMidiTrack(midi, trackChooser.Track); currentFile = null; UpdateOutput(true); } } else { song.ImportFromMidiTrack(midi, 0); currentFile = null; UpdateOutput(true); } } catch (Exception ex) { Alert.CreateAlert(ex.Message, AlertType.Caution); } } } }