// your VST callback - referenced below by BASS_VST_SetCallback() private static int VstProc_CallBack(int vstHandle, BASSVSTAction action, int param1, int param2, IntPtr user) { switch (action) { case BASSVSTAction.BASS_VST_PARAM_CHANGED: // we get notified that the user has changed some sliders in the editor - // do what to do here ... _paramValue = BassVst.BASS_VST_GetParam(_vstBasicStrip, 0); Console.WriteLine(IsDefaultValue); break; case BASSVSTAction.BASS_VST_EDITOR_RESIZED: // the editor window requests a new size, // maybe we should resize the window the editor is embedded in? // the new width/height can be found in param1/param2 break; case BASSVSTAction.BASS_VST_AUDIO_MASTER: // this is only for people familiar with the VST SDK, // param1 is a pointer to a BASS_VST_AUDIO_MASTER_PARAM structure // which contains all information needed break; } return(0); }
public void LoadChannelStrips(Preferences form, Panel prefsPanel, int width = 0, int height = 0) { _paramInfo = new BASS_VST_PARAM_INFO(); int c = BassVst.BASS_VST_GetParamCount(VstEffectHandle); for (int i = 0; i < c; i++) { // get the info about the parameter _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i); BassVst.BASS_VST_GetParamInfo(VstEffectHandle, i, _paramInfo); _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i); Console.WriteLine(_paramInfo.ToString() + " : " + _paramValue.ToString()); } // show the embedded editor _vstInfo = new BASS_VST_INFO(); if (BassVst.BASS_VST_GetInfo(VstEffectHandle, _vstInfo) && _vstInfo.hasEditor) { form.Closing += new CancelEventHandler(f_Closing); //form.Text = _vstInfo.effectName + " " + Effects.GetorSetFx; BassVst.BASS_VST_EmbedEditor(VstEffectHandle, prefsPanel.Handle); _vstEffectHandle = VstEffectHandle; } }
/// <summary> /// Gets the VST plug-in settings. /// </summary> /// <param name="plugin">The plug-in.</param> /// <returns>The settings as a key=value comma delimited list</returns> public static string GetVstPluginParameters(VstPlugin plugin) { var values = new List <string>(); var parameterCount = BassVst.BASS_VST_GetParamCount(plugin.Id); for (var i = 0; i < parameterCount; i++) { var value = BassVst.BASS_VST_GetParam(plugin.Id, i); values.Add(value.ToString(CultureInfo.InvariantCulture)); } return(string.Join(",", values.ToArray())); }
public static void UpdateSettings() { if (m_isEQ1bandSettingChange) { m_isEQ1bandSettingChange = false; // int eq1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ1band); for (int i = 0; i < eq1; i++) { AppSettings.Set("CH1EQ1band" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ1band, i).ToString()); PlayerControl.LoadSaveProgress += i; } } else if (m_isCompressorSettingChange) { m_isCompressorSettingChange = false; // int comp1 = BassVst.BASS_VST_GetParamCount(_vstEffectCompressor); for (int i = 0; i < comp1; i++) { AppSettings.Set("CH1Comp" + i, BassVst.BASS_VST_GetParam(_vstEffectCompressor, i).ToString()); PlayerControl.LoadSaveProgress += i; } } else if (m_isEQ4BandSettingChange) { m_isEQ4BandSettingChange = false; // int eq7 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4Band); for (int i = 0; i < eq7; i++) { AppSettings.Set("CH1EQ4band" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ4Band, i).ToString()); PlayerControl.LoadSaveProgress += i; } } else if (m_isEQ4BandPhoneSettingChange) { m_isEQ4BandPhoneSettingChange = false; for (int i = 0; i < eq7Phone; i++) { AppSettings.Set("CH1EQ4bandPhone" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ4BandPhone, i).ToString()); PlayerControl.LoadSaveProgress += i; } } else if (m_isDeEsserSettingChange) { m_isDeEsserSettingChange = false; // int deEs = BassVst.BASS_VST_GetParamCount(_vstEffectDeEsser); for (int i = 0; i < deEs; i++) { AppSettings.Set("CH1DeEsser" + i, BassVst.BASS_VST_GetParam(_vstEffectDeEsser, i).ToString()); PlayerControl.LoadSaveProgress += i; } } }
public void Show(int width = 0, int height = 0) { // if (_vstEffectHandle != 0) // { // return; // } _paramInfo = new BASS_VST_PARAM_INFO(); int c = BassVst.BASS_VST_GetParamCount(VstEffectHandle); for (int i = 0; i < c; i++) { // get the info about the parameter _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i); BassVst.BASS_VST_GetParamInfo(VstEffectHandle, i, _paramInfo); _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i); Console.WriteLine(_paramInfo.ToString() + " : " + _paramValue.ToString()); } // show the embedded editor _vstInfo = new BASS_VST_INFO(); if (BassVst.BASS_VST_GetInfo(VstEffectHandle, _vstInfo) && _vstInfo.hasEditor) { // create a new System.Windows.Forms.Form Form f = new Form(); if (width != 0 && height != 0) { f.ClientSize = new Size(width, height); } else { f.ClientSize = new Size(_vstInfo.editorWidth, _vstInfo.editorHeight); } f.MaximizeBox = false; f.MinimizeBox = false; f.FormBorderStyle = FormBorderStyle.FixedSingle; f.Closing += new CancelEventHandler(f_Closing); f.Text = _vstInfo.effectName + " " + Effects.GetorSetFx; f.Show(); BassVst.BASS_VST_EmbedEditor(VstEffectHandle, f.Handle); _vstEffectHandle = VstEffectHandle; } }
List <float> VST_GET_PARAM(int vstHandle) { List <float> rez = new List <float>(); try { int vstParams = BassVst.BASS_VST_GetParamCount(vstHandle); // create a paramInfo object BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO(); for (int i = 0; i < vstParams; i++) { // get the info about the parameter float paramValue = BassVst.BASS_VST_GetParam(vstHandle, i); // and get further info about the parameter BassVst.BASS_VST_GetParamInfo(vstHandle, i, paramInfo); rez.Add(paramValue); Trace.WriteLine("GETparam: " + paramInfo.ToString() + " = " + paramValue.ToString()); } } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } return(rez); }
private void mnuParameters_Click(object sender, EventArgs e) { var builder = new StringBuilder(); builder.AppendLine(_plugin.Name); foreach (var parameter in _plugin.Parameters) { var info = BassVst.BASS_VST_GetParamInfo(_plugin.Id, parameter.Id); var value = BassVst.BASS_VST_GetParam(_plugin.Id, parameter.Id); if (info == null) { continue; } var line = $"{info.name} {info.display} {value} {info.unit}"; builder.AppendLine(line); } MessageBoxHelper.Show(builder.ToString()); }
/// <summary> /// This routine is called, whenever a change is done in the VST Editor /// </summary> /// <param name="vstEditor"></param> /// <param name="action"></param> /// <param name="param1"></param> /// <param name="param2"></param> /// <param name="user"></param> /// <returns></returns> private int vstEditorCallBack(int vstEditor, BASSVSTAction action, int param1, int param2, IntPtr user) { switch (action) { case BASSVSTAction.BASS_VST_PARAM_CHANGED: // Some slider has been changed in the editor BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO(); for (int i = BassVst.BASS_VST_GetParamCount(vstEditor) - 1; i >= 0; i--) { BassVst.BASS_VST_SetParam(_vstHandle, i, BassVst.BASS_VST_GetParam(vstEditor, i)); BassVst.BASS_VST_GetParamInfo(_vstHandle, i, paramInfo); } break; case BASSVSTAction.BASS_VST_EDITOR_RESIZED: // the editor window requests a new size, break; case BASSVSTAction.BASS_VST_AUDIO_MASTER: break; } return(0); }
/// <summary> /// Save Effects Settings /// </summary> public override void SaveSettings() { Settings.Instance.MusicDirectory = _initialMusicDirectory; // Settings for BASS DSP/FX Settings.Instance.BassEffects.Clear(); BassEffect basseffect; // Gain if (textBoxGainDBValue.Text != "0") { basseffect = new BassEffect(); basseffect.EffectName = "Gain"; basseffect.Parameter.Add(new BassEffectParm("Gain_dbV", textBoxGainDBValue.Text)); Settings.Instance.BassEffects.Add(basseffect); } // Dynamic Amplification if (checkBoxDAmp.Checked) { basseffect = new BassEffect(); basseffect.EffectName = "DynAmp"; basseffect.Parameter.Add(new BassEffectParm("Preset", comboBoxDynamicAmplification.SelectedIndex.ToString())); Settings.Instance.BassEffects.Add(basseffect); } // Compressor if (checkBoxCompressor.Checked) { basseffect = new BassEffect(); basseffect.EffectName = "Compressor"; basseffect.Parameter.Add(new BassEffectParm("Threshold", trackBarCompressor.Value.ToString())); Settings.Instance.BassEffects.Add(basseffect); } // Settings for VST Plugings Settings.Instance.VSTPlugins.Clear(); VSTPlugin vstplugin; foreach (string plugindll in _vstHandles.Keys) { vstplugin = new VSTPlugin(); vstplugin.PluginDll = plugindll; _vstHandle = _vstHandles[plugindll]; BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO(); for (int i = BassVst.BASS_VST_GetParamCount(_vstHandle) - 1; i >= 0; i--) { BassVst.BASS_VST_GetParamInfo(_vstHandle, i, paramInfo); float value = BassVst.BASS_VST_GetParam(_vstHandle, i); vstplugin.Parameter.Add(new VSTPluginParm(paramInfo.name, i, value.ToString())); } Settings.Instance.VSTPlugins.Add(vstplugin); } // Settings for WinAmpPlugins WinAmpPlugin winampplugin; // Clear all settings first Settings.Instance.WinAmpPlugins.Clear(); foreach (DSPPluginInfo pluginInfo in listBoxSelectedPlugins.Items) { if (pluginInfo.DSPPluginType == DSPPluginInfo.PluginType.Winamp) { winampplugin = new WinAmpPlugin(); winampplugin.PluginDll = pluginInfo.FilePath; Settings.Instance.WinAmpPlugins.Add(winampplugin); } } Settings.SaveSettings(); }
public static void SetEffects(int stream) { string plugin_path = ""; if (EffectsInteface.Is64Bit()) { plugin_path = m_vst_plugin_PathX64; } else { plugin_path = m_vst_plugin_Path; } //EQ 1 Band ----------------- _vstEffectEQ1band = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"TDR Nova_2_0.dll", BASSVSTDsp.BASS_VST_DEFAULT, 10); int eq1_1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ1band); for (int i = 0; i < eq1_1; i++) { // get the info about the parameter BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 0, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 1, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 4, 0.260f); // BassVst.BASS_VST_SetParam(_vstEffectEQ1band[0], 5, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 12, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 13, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 24, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 25, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 36, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 37, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 48, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 49, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 50, 0.260f); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 51, 0.6666667f); BassVst.BASS_VST_SetParam(_vstEffectEQ1band, 69, 0.0f); } //EQ1Band(); //Compressor _vstEffectCompressor = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"MCompressor_2.dll", BASSVSTDsp.BASS_VST_DEFAULT, 11); int comp1_1 = BassVst.BASS_VST_GetParamCount(_vstEffectCompressor); for (int i = 0; i < comp1_1; i++) { // get the info about the parameter /* BassVst.BASS_VST_SetParam(_vstEffectCompressor, 0, 0.520f); * BassVst.BASS_VST_SetParam(_vstEffectCompressor, 1, 0.406f); * BassVst.BASS_VST_SetParam(_vstEffectCompressor, 2, 0.0f); * BassVst.BASS_VST_SetParam(_vstEffectCompressor, 3, 0.017f); * BassVst.BASS_VST_SetParam(_vstEffectCompressor, 4, 0.0745f); * BassVst.BASS_VST_SetParam(_vstEffectCompressor, 5, 0);*/ BassVst.BASS_VST_SetParam(_vstEffectCompressor, 0, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 1, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 2, 0.3162278f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 3, 0.3162278f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 4, 0.1f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 5, 0.3444445f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 6, 0.2357953f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 7, 1); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 8, 0.25f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 9, 1); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 10, 1); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 11, 0); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 12, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 13, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 14, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 15, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 16, 0); BassVst.BASS_VST_SetParam(_vstEffectCompressor, 17, 0); } //Compressor(); //EQ4Band ----- _vstEffectEQ4Band = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"TDR Nova_2_1.dll", BASSVSTDsp.BASS_VST_DEFAULT, 12); int eq7_1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4Band); for (int i = 0; i < eq7_1; i++) { // get the info about the parameter BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 0, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 1, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 3, 0.563f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 4, 0.278f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 5, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 12, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 13, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 15, 0.563f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 16, 0.361f); //Band 2 F BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 24, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 25, 0); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 27, 0.563f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 28, 0.63883f); //Band 3 F BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 36, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 37, 1); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 39, 0.563f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 40, 0.7712674f); //Band 4 F BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 41, 1); //Band 4 T BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 48, 1); //HP Selec BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 49, 1); //HP Activ BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 50, 0.4586f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 51, 0.25f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 52, 1); //LP Selec BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 53, 1); //LP Activ BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 54, 0.7812674f); //LP Frequ BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 55, 0.6666667f); BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 69, 0.0f); } _vstEffectDeEsser = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"MCompressor_2_D-Es.dll", BASSVSTDsp.BASS_VST_DEFAULT, 13); int deEs = BassVst.BASS_VST_GetParamCount(_vstEffectDeEsser); for (int i = 0; i < deEs; i++) { /* BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 0, 0.4724762f); * BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 1, 0.3333333f); * BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 2, 0.3923903f);*/ BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 0, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 1, 0.2288729f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 2, 0.3162278f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 3, 0.4728708f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 4, 0.1f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 5, 0.1713131f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 6, 0.3978892f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 7, 1); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 8, 0.25f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 9, 1); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 10, 0); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 11, 0); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 12, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 13, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 14, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 15, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 16, 0); BassVst.BASS_VST_SetParam(_vstEffectDeEsser, 17, 0); } _vstBasicStrip = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"BasicStrip2.dll", BASSVSTDsp.BASS_VST_DEFAULT, 14); int strip = BassVst.BASS_VST_GetParamCount(_vstBasicStrip); for (int i = 0; i < strip; i++) { BassVst.BASS_VST_SetParam(_vstBasicStrip, 0, 1.0f); BassVst.BASS_VST_SetParam(_vstBasicStrip, 1, 0.5f); } m_stripParamDefaultValue = BassVst.BASS_VST_GetParam(_vstBasicStrip, 0); IsDefaultValue = true; // Channel1Fx.GetStripParamValue = _paramValue; m_VstProc = new VSTPROC(VstProc_CallBack); BassVst.BASS_VST_SetCallback(_vstBasicStrip, m_VstProc, IntPtr.Zero); }