public BassPlayerMidiMapper(BassPlayer.BassPlayer bassPlayer, MidiManager midiManager) { _bassPlayer = bassPlayer; var mappingFile = "MidiMapping.json"; if (File.Exists(mappingFile)) { var json = File.ReadAllText(mappingFile); var midiMapping = JsonConvert.DeserializeObject <MidiMapping>(json); _controlMappings = midiMapping.Commands.Select(command => new ControlMapping() { CommandName = command.Key, MidiControlId = midiMapping.Controls.FirstOrDefault(control => control.Key == command.Value).Value }).ToList(); _vstMappings = new List <VstMapping>(); foreach (var vstCommand in midiMapping.VstCommands) { foreach (var parameter in vstCommand.Value) { _vstMappings.Add(new VstMapping { VstPlugin = GetPluginByName(vstCommand.Key), MidiControlId = midiMapping.Controls.FirstOrDefault(control => control.Key == parameter.Value).Value, ParameterIndex = parameter.Key, }); } } } midiManager.OnControlMessageEvent += MidiManager_OnControlMessageEvent; }
public BassPlayerMidiMapper(BassPlayer bassPlayer, MidiManager midiManager) { _bassPlayer = bassPlayer; _controlMappings = new List<ControlMapping> { new ControlMapping {CommandName = "Play", MidiControlId = 45}, new ControlMapping {CommandName = "PowerDownCurrent", MidiControlId = 46}, new ControlMapping {CommandName = "Volume", MidiControlId = 2}, new ControlMapping {CommandName = "PausePrevious", MidiControlId = 23}, new ControlMapping {CommandName = "PowerDownPrevious", MidiControlId = 33}, new ControlMapping {CommandName = "ManualMixVolume", MidiControlId = 14}, new ControlMapping {CommandName = "FadeNow", MidiControlId = 48}, new ControlMapping {CommandName = "TrackSendFx", MidiControlId = 24}, new ControlMapping {CommandName = "TrackSendFxVolume", MidiControlId = 3}, new ControlMapping {CommandName = "SamplerVolume", MidiControlId = 4}, new ControlMapping {CommandName = "ToggleManualMixMode", MidiControlId = 44}, new ControlMapping {CommandName = "LoopFadeInForever", MidiControlId = 49}, new ControlMapping {CommandName = "JumpBack", MidiControlId = 47} }; for (var i = 0; i < 12; i++) { _controlMappings.Add(new ControlMapping { CommandName = "Sample" + (i + 1), MidiControlId = (i < 6) ? i + 26 : i + 36 }); } _vstMappings = new List<VstMapping> { new VstMapping { VstPlugin = _bassPlayer.MainVstPlugin, MidiControlId = 17, ParameterIndex = 4, } }; midiManager.OnControlMessageEvent += MidiManager_OnControlMessageEvent; }
/// <summary> /// Loads the UI settings. /// </summary> private void LoadUiSettings() { var settings = Settings.Default; //if (settings.LeftRightSplit != 0) //{ // try { splLeftRight.SplitterDistance = settings.LeftRightSplit; } // catch { } //} //if (settings.TrackSplit != 0) //{ // try { splTrack.SplitterDistance = settings.TrackSplit; } // catch { } //} if (settings.WaPlugin != "") { try { BassPlayer.LoadWaPlugin(settings.WaPlugin); } catch { // ignored } } if (settings.MainMixerVstPlugin != "") { try { BassPlayer.LoadMainVstPlugin(settings.MainMixerVstPlugin, 0); } catch { // ignored } } if (settings.MainMixerVstPlugin2 != "") { try { BassPlayer.LoadMainVstPlugin(settings.MainMixerVstPlugin2, 1); } catch { // ignored } } if (settings.MainMixerVstPluginParameters != "" && BassPlayer.MainVstPlugin != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.MainVstPlugin, settings.MainMixerVstPluginParameters); } catch { // ignored } } if (settings.MainMixerVstPlugin2Parameters != "" && BassPlayer.MainVstPlugin2 != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.MainVstPlugin2, settings.MainMixerVstPlugin2Parameters); } catch { // ignored } } if (settings.SamplerVstPlugin != "") { try { BassPlayer.LoadSamplerVstPlugin(settings.SamplerVstPlugin, 0); } catch { // ignored } } if (settings.SamplerVstPluginParameters != "" && BassPlayer.SamplerVstPlugin != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.SamplerVstPlugin, settings.SamplerVstPluginParameters); } catch { // ignored } } if (settings.SamplerVstPlugin2 != "") { try { BassPlayer.LoadSamplerVstPlugin(settings.SamplerVstPlugin2, 1); } catch { // ignored } } if (settings.SamplerVstPlugin2Parameters != "" && BassPlayer.SamplerVstPlugin2 != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.SamplerVstPlugin2, settings.SamplerVstPlugin2Parameters); } catch { // ignored } } if (settings.TrackVstPlugin != "") { try { BassPlayer.LoadTracksVstPlugin(settings.TrackVstPlugin, 0); } catch { // ignored } } if (settings.TrackVstPluginParameters != "" && BassPlayer.TrackVstPlugin != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.TrackVstPlugin, settings.TrackVstPluginParameters); } catch { // ignored } } if (settings.TrackFxvstPlugin != "") { try { BassPlayer.LoadTrackSendFxvstPlugin(settings.TrackFxvstPlugin, 0); } catch { // ignored } } if (settings.TrackFxvstPluginParameters != "" && BassPlayer.TrackSendFxvstPlugin != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.TrackSendFxvstPlugin, settings.TrackFxvstPluginParameters); } catch { // ignored } } if (settings.TrackFxvstPlugin2 != "") { try { BassPlayer.LoadTrackSendFxvstPlugin(settings.TrackFxvstPlugin2, 1); } catch { // ignored } } if (settings.TrackFxvstPlugin2Parameters != "" && BassPlayer.TrackSendFxvstPlugin2 != null) { try { PluginHelper.SetVstPluginParameters(BassPlayer.TrackSendFxvstPlugin2, settings.TrackFxvstPlugin2Parameters); } catch { // ignored } } MinimizeToTrayEnabled = (settings.MinimizeToTray); mnuMinimizeToTray.Checked = (settings.MinimizeToTray); mnuShowMixableTracks.Checked = (settings.ShowMixableTracks); playlistControl.ShowMixableTracks = mnuShowMixableTracks.Checked; trackLibraryControl.ShowMixableTracks = mnuShowMixableTracks.Checked; BassPlayer.LimitSongLength = settings.LimitSongLength; mnuConservativeFadeOut.Checked = settings.LimitSongLength; BassPlayer.LimitSongLength = mnuConservativeFadeOut.Checked; BassPlayer.SetMonitorVolume(settings.MonitorVolume); playerDetails.VisualsShown = settings.VisualsShown; mnuViewVisuals.Checked = settings.VisualsShown; playerDetails.AlbumArtShown = settings.AlbumArtShown; mnuViewAlbumArt.Checked = settings.AlbumArtShown; mnuSkipAfterMix.Checked = settings.SkipAfterMix; mixerControl.LoadSettings(); trackLibraryControl.LoadUiSettings(); //this.shufflerControl.CurrentShufflerMode = settings.ShufflerMode; mnuUpdateLibraryOnStartup.Checked = settings.UpdateLibraryOnStartup; fileMenuController.RecentFiles = settings.RecentFiles; _midiManager = new MidiManager(); MidiMapper = new BassPlayerMidiMapper(BassPlayer, _midiManager); }