/// <summary> /// Stop Playing the active Music File /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btStop_Click(object sender, EventArgs e) { btPlay.Enabled = true; btStop.Enabled = false; // Stop the DSP Gain if (_gain != null) { _gain.Stop(); } foreach (DSPPluginInfo dsp in listBoxSelectedPlugins.Items) { // Save the VST plugin parameters before freeing the stream if (dsp.DSPPluginType == DSPPluginInfo.PluginType.VST) { _vstHandle = BassVst.BASS_VST_ChannelSetDSP(0, dsp.FilePath, BASSVSTDsp.BASS_VST_DEFAULT, 1); // Copy the parameters of the old handle int vstold = _vstHandles[dsp.Name]; BassVst.BASS_VST_SetParamCopyParams(vstold, _vstHandle); _vstHandles[dsp.Name] = _vstHandle; } else { // Stop the WinAmp DSP _waDspPlugin = _waDspPlugins[dsp.FilePath]; BassWaDsp.BASS_WADSP_Stop(_waDspPlugin); } } Bass.BASS_ChannelStop(_stream); }
/// <summary> /// 设置VST信道 /// </summary> /// <param name="stream">音频流句柄</param> public void SetVSTChannel(int stream) { this.stream = stream; BassVst.BASS_VST_ChannelFree(vstHandle); vstHandle = BassVst.BASS_VST_ChannelSetDSP(stream, fileName, BASSVSTDsp.BASS_VST_DEFAULT, 1); VSTEditorCallback(vstDummy, BASSVSTAction.BASS_VST_PARAM_CHANGED, 0, 0, IntPtr.Zero); }
public static void InitializeVSTsForStream() { try { if (MainWindow.KMCStatus.VSTMode == true) { MainWindow.VSTs._LoudMaxHan = BassVst.BASS_VST_ChannelSetDSP((MainWindow.VSTs.VSTInfo[0].isInstrument ? MainWindow.VSTs._VSTiHandle : MainWindow.KMCGlobals._recHandle), String.Format("{0}\\LoudMax.dll", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)), BASSVSTDsp.BASS_VST_KEEP_CHANS, 9); BassVst.BASS_VST_SetParamCopyParams(MainWindow.VSTs._DummyLoudMaxHan, MainWindow.VSTs._LoudMaxHan); for (int i = 0; i <= 7; i++) { if (MainWindow.VSTs._DummyVSTHandles[i] != 0) { MainWindow.VSTs._VSTHandles[i] = BassVst.BASS_VST_ChannelSetDSP((MainWindow.VSTs.VSTInfo[0].isInstrument ? MainWindow.VSTs._VSTiHandle : MainWindow.KMCGlobals._recHandle), MainWindow.VSTs.VSTDLLs[i], BASSVSTDsp.BASS_VST_DEFAULT, i); if (MainWindow.VSTs._VSTHandles[i] != 0) { BassVst.BASS_VST_SetParamCopyParams(MainWindow.VSTs._DummyVSTHandles[i], MainWindow.VSTs._VSTHandles[i]); } } } } } catch (Exception ex) { BASSCloseStreamCrash(ex); } }
/// <summary> /// Loads a VST plug-in and applies it to the mixer /// </summary> /// <param name="location">The file location of the VST DLL</param> /// <param name="priority">The priority.</param> /// <returns>The VST plug-in</returns> private VstPlugin LoadAndApplyVstPlugin(string location, int priority) { if (location == "") { return(null); } if (!File.Exists(location)) { return(null); } var plugin = new VstPlugin { Id = BassVst.BASS_VST_ChannelSetDSP(ChannelId, location, BASSVSTDsp.BASS_VST_DEFAULT, priority) }; if (plugin.Id == 0) { throw new Exception("Cannot load plug-in " + Path.GetFileNameWithoutExtension(location)); } var info = BassVst.BASS_VST_GetInfo(plugin.Id); if (info != null) { plugin.Name = info.effectName; plugin.EditorWidth = info.editorWidth; plugin.EditorHeight = info.editorHeight; } else { var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(location); if (fileNameWithoutExtension != null) { plugin.Name = StringHelper.TitleCase(fileNameWithoutExtension.Replace("_", " ")); } } if (plugin.EditorWidth == 0) { plugin.EditorWidth = 400; } if (plugin.EditorHeight == 0) { plugin.EditorHeight = 600; } plugin.Location = location; LoadPluginParameters(plugin); SetPluginBpm(plugin); return(plugin); }
public bool VST_ENABLE(string path) { var handle = BassVst.BASS_VST_ChannelSetDSP(_Stream, path, BASSVSTDsp.BASS_VST_DEFAULT, 1); if (handle < 1) { System.Windows.MessageBox.Show("Ошибка подключения " + get_nameVTS(path)); return(false); } work_list_vst.Add(new WORKVST(handle, path)); Trace.WriteLine("ENABLE header=" + handle.ToString() + " " + path); return(true); }
public static void SetEffects(int stream) { //EQ 1 Band ----------------- _vstEffectReverb = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"OrilRiver.dll", BASSVSTDsp.BASS_VST_DEFAULT, 15); int rev = BassVst.BASS_VST_GetParamCount(_vstEffectReverb); for (int i = 0; i < rev; i++) { // BassVst.BASS_VST_SetParam(_vstEffectReverb, 0, 0.2540541f); // BassVst.BASS_VST_SetParam(_vstEffectReverb, 17, 0.8810811f); // BassVst.BASS_VST_SetParam(_vstEffectReverb, 18, 0.4432433f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 0, 0.4972973f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 1, 0.03f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 2, 1); BassVst.BASS_VST_SetParam(_vstEffectReverb, 3, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 4, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 5, 0.3574602f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 6, 0.83f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 7, 0.2f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 8, 0.38f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 9, 0.4676717f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 10, 0.5414235f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 11, 0.4f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 12, 0.7827124f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 13, 0.585f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 14, 0.863937f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 15, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 16, 0.9354057f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 17, 0.835603f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 18, 0.4120975f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 19, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 20, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 21, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 22, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 23, 0.1765174f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 24, 1); } _vstBasicStrip = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"BasicStrip3.dll", BASSVSTDsp.BASS_VST_DEFAULT, 16); int strip = BassVst.BASS_VST_GetParamCount(_vstBasicStrip); for (int i = 0; i < strip; i++) { BassVst.BASS_VST_SetParam(_vstBasicStrip, 0, 0.81f); BassVst.BASS_VST_SetParam(_vstBasicStrip, 1, 0.5f); } }
/// <summary> /// Load BASS DSP Plugins specified setup in the Configuration /// </summary> public static void LoadDSPPlugins() { Log.Debug("BASS: Loading DSP plugins ..."); _dspActive = false; // VST Plugins string vstPluginDir = Path.Combine(Application.StartupPath, @"musicplayer\plugins\dsp"); int vstHandle = 0; foreach (VSTPlugin plugins in Player.DSP.Settings.Instance.VSTPlugins) { // Get the vst handle and enable it string plugin = String.Format(@"{0}\{1}", vstPluginDir, plugins.PluginDll); vstHandle = BassVst.BASS_VST_ChannelSetDSP(0, plugin, BASSVSTDsp.BASS_VST_DEFAULT, 1); if (vstHandle > 0) { _dspActive = true; _vstPlugins.Add(plugins.PluginDll); // Store the handle in the dictionary for later reference _vstHandles[plugins.PluginDll] = vstHandle; // Set all parameters for the plugin foreach (VSTPluginParm paramter in plugins.Parameter) { NumberFormatInfo format = new NumberFormatInfo(); format.NumberDecimalSeparator = "."; try { BassVst.BASS_VST_SetParam(vstHandle, paramter.Index, float.Parse(paramter.Value)); } catch (Exception ex) { Log.Error("Config: LoadDSPPlugins {0}", ex.Message); } } } else { Log.Debug("Couldn't load VST Plugin {0}. Error code: {1}", plugin, Bass.BASS_ErrorGetCode()); } } // Winamp Plugins can only be loaded on play to prevent Crashes if (Player.DSP.Settings.Instance.WinAmpPlugins.Count > 0) { _dspActive = true; } Log.Debug("BASS: Finished loading DSP plugins ..."); }
private void AddDSP() { if (this.FChannel != null) { double dpriority; this.FPinInPriority.GetValue(0, out dpriority); double denabled; this.FPinInEnabled.GetValue(0, out denabled); if (this.FChannel.BassHandle.HasValue && denabled >= 0.5) { this.FDSPHandle = BassVst.BASS_VST_ChannelSetDSP(this.FChannel.BassHandle.Value, this.FFilename, BASSVSTDsp.BASS_VST_DEFAULT, Convert.ToInt32(dpriority)); this.FPinOutFxHandle.SliceCount = 1; this.FPinOutFxHandle.SetValue(0, this.FDSPHandle); } } }
/// <summary> /// Add the selected VST plugin(s) to the Selected Plugin Listbox /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonPluginAdd_Click(object sender, EventArgs e) { DSPPluginInfo pluginInfo = (DSPPluginInfo)listBoxFoundPlugins.SelectedItem; if (pluginInfo == null) { return; } if (pluginInfo.DSPPluginType == DSPPluginInfo.PluginType.VST) { // Get the VST handle and enable it _vstHandle = BassVst.BASS_VST_ChannelSetDSP(0, pluginInfo.FilePath, BASSVSTDsp.BASS_VST_DEFAULT, 1); if (_vstHandle > 0) { _vstHandles[pluginInfo.Name] = _vstHandle; listBoxSelectedPlugins.Items.Add(listBoxFoundPlugins.SelectedItem); listBoxFoundPlugins.Items.RemoveAt(listBoxFoundPlugins.SelectedIndex); } else { MessageBox.Show("Error loading VST Plugin. Probably not valid", "VST Plugin", MessageBoxButtons.OK); Log.Debug("Couldn't load VST Plugin {0}. Error code: {1}", pluginInfo.Name, Bass.BASS_ErrorGetCode()); } } else { // Get the winamp handle and enable it _waDspPlugin = BassWaDsp.BASS_WADSP_Load(pluginInfo.FilePath, 5, 5, 100, 100, null); if (_waDspPlugin > 0) { _waDspPlugins[pluginInfo.FilePath] = _waDspPlugin; listBoxSelectedPlugins.Items.Add(listBoxFoundPlugins.SelectedItem); listBoxFoundPlugins.Items.RemoveAt(listBoxFoundPlugins.SelectedIndex); } else { MessageBox.Show("Error loading WinAmp Plugin. Probably not valid", "WinAmp Plugin", MessageBoxButtons.OK); Log.Debug("Couldn't load WinAmp Plugin {0}. Error code: {1}", pluginInfo.FilePath, Bass.BASS_ErrorGetCode()); } } }
public static void InitializeDummyVSTs() { try { if (MainWindow.KMCStatus.VSTMode == true) { if (Properties.Settings.Default.LoudMaxEnabled == true && MainWindow.KMCStatus.RenderingMode == true) { BASS_VST_INFO LMInfo = new BASS_VST_INFO(); MainWindow.VSTs._DummyLoudMaxHan = BassVst.BASS_VST_ChannelSetDSP(0, String.Format("{0}\\LoudMax.dll", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)), BASSVSTDsp.BASS_VST_KEEP_CHANS, 0); BassVst.BASS_VST_GetInfo(MainWindow.VSTs._LoudMaxHan, LMInfo); BASSVSTShowDialog(false, 0, MainWindow.VSTs._DummyLoudMaxHan, LMInfo); } for (int i = 0; i <= 7; i++) { if (!MainWindow.VSTs.VSTInfo[i].isInstrument) // VSTi check { MainWindow.VSTs._DummyVSTHandles[i] = BassVst.BASS_VST_ChannelSetDSP(0, MainWindow.VSTs.VSTDLLs[i], BASSVSTDsp.BASS_VST_DEFAULT, 0); if (MainWindow.VSTs._DummyVSTHandles[i] != 0) { int vstParams = BassVst.BASS_VST_GetParamCount(MainWindow.VSTs._DummyVSTHandles[i]); if (BassVst.BASS_VST_GetInfo(MainWindow.VSTs._DummyVSTHandles[i], MainWindow.VSTs.VSTInfo[i]) && MainWindow.VSTs.VSTInfo[i].hasEditor) { BASSVSTShowDialog(false, 0, MainWindow.VSTs._DummyVSTHandles[i], MainWindow.VSTs.VSTInfo[i]); } } } } } } catch (Exception ex) { BASSCloseStreamCrash(ex); } }
/// <summary> /// 设置VST信道,启动VST插件 /// </summary> /// <param name="stream">音频流句柄</param> public void StartVST(int stream) { this.stream = stream; //先释放原来的VST BassVst.BASS_VST_ChannelFree(vstHandle); BassVst.BASS_VST_ChannelFree(vstDummy); vstHandle = BassVst.BASS_VST_ChannelSetDSP(stream, fileName, BASSVSTDsp.BASS_VST_DEFAULT, 1); vstDummy = BassVst.BASS_VST_ChannelSetDSP(0, fileName, BASSVSTDsp.BASS_VST_DEFAULT, 1); //设置回调函数 myVstProc = new VSTPROC(VSTEditorCallback); BassVst.BASS_VST_SetCallback(vstDummy, myVstProc, IntPtr.Zero); BassVst.BASS_VST_GetInfo(vstDummy, vstInfo); Text = vstInfo.effectName; isActive = true; BassVst.BASS_VST_EmbedEditor(vstDummy, this.Handle); Width = vstInfo.editorWidth + 10; Height = vstInfo.editorHeight + 35; }
/// <summary> /// Attach the various DSP Plugins and effects to the stream /// </summary> private void AttachDspToStream() { bool dspActive = Config.DSPActive; // BASS DSP/FX foreach (BassEffect basseffect in Player.DSP.Settings.Instance.BassEffects) { dspActive = true; foreach (BassEffectParm parameter in basseffect.Parameter) { setBassDSP(basseffect.EffectName, parameter.Name, parameter.Value); } } // Attach active DSP effects to the Stream if (dspActive) { // BASS effects if (_gain != null) { Log.Debug("BASS: Enabling Gain Effect."); _gain.ChannelHandle = _stream; _gain.Start(); } if (_damp != null) { Log.Debug("BASS: Enabling Dynamic Amplifier Effect."); int dampHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_DAMP, _dampPrio); Bass.BASS_FXSetParameters(dampHandle, _damp); } if (_comp != null) { Log.Debug("BASS: Enabling Compressor Effect."); int compHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_COMPRESSOR, _compPrio); Bass.BASS_FXSetParameters(compHandle, _comp); } // VST Plugins foreach (string plugin in Config.VstPlugins) { Log.Debug("BASS: Enabling VST Plugin: {0}", plugin); int vstHandle = BassVst.BASS_VST_ChannelSetDSP(_stream, plugin, BASSVSTDsp.BASS_VST_DEFAULT, 1); // Copy the parameters of the plugin as loaded on from the settings int vstParm = Config.VstHandles[plugin]; BassVst.BASS_VST_SetParamCopyParams(vstParm, vstHandle); } // Init Winamp DSP only if we got a winamp plugin actiavtes int waDspPluginHandle = 0; if (Player.DSP.Settings.Instance.WinAmpPlugins.Count > 0) { foreach (WinAmpPlugin plugins in Player.DSP.Settings.Instance.WinAmpPlugins) { Log.Debug("BASS: Enabling Winamp DSP Plugin: {0}", plugins.PluginDll); waDspPluginHandle = BassWaDsp.BASS_WADSP_Load(plugins.PluginDll, 5, 5, 100, 100, null); if (waDspPluginHandle > 0) { _waDspPlugins[plugins.PluginDll] = waDspPluginHandle; BassWaDsp.BASS_WADSP_Start(waDspPluginHandle, 0, 0); } else { Log.Debug("Couldn't load WinAmp Plugin {0}. Error code: {1}", plugins.PluginDll, Enum.GetName(typeof(BASSError), Bass.BASS_ErrorGetCode())); } } } foreach (int waPluginHandle in _waDspPlugins.Values) { BassWaDsp.BASS_WADSP_ChannelSetDSP(waPluginHandle, _stream, 1); } } }
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; } m_VstProc = new VSTPROC(VstProc_CallBack); //EQ 1 Band ----------------- _vstEffectEQ1band = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"TDR Nova_0_0.dll", BASSVSTDsp.BASS_VST_DEFAULT, 0); eq1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ1band); for (int i = 0; i < eq1; i++) { BassVst.BASS_VST_SetParam(_vstEffectEQ1band, i, AppSettings.Get <float>("CH1EQ1band" + i)); } BassVst.BASS_VST_SetCallback(_vstEffectEQ1band, m_VstProc, IntPtr.Zero); /* for (int i = 0; i < eq1; 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(); try { //Compressor _vstEffectCompressor = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"MCompressor_0.dll", BASSVSTDsp.BASS_VST_DEFAULT, 1); comp1 = BassVst.BASS_VST_GetParamCount(_vstEffectCompressor); for (int i = 0; i < comp1; i++) { BassVst.BASS_VST_SetParam(_vstEffectCompressor, i, AppSettings.Get <float>("CH1Comp" + i)); } BassVst.BASS_VST_SetCallback(_vstEffectCompressor, m_VstProc, IntPtr.Zero); /* for (int i = 0; i < comp1; i++) * { * // get the info about the parameter * 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(); } catch (Exception ex) { MessageBox.Show(ex.Message); } //EQ4Band ----- _vstEffectEQ4Band = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"TDR Nova_0_1.dll", BASSVSTDsp.BASS_VST_DEFAULT, 2); eq7 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4Band); for (int i = 0; i < eq7; i++) { BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, i, AppSettings.Get <float>("CH1EQ4band" + i)); } BassVst.BASS_VST_SetCallback(_vstEffectEQ4Band, m_VstProc, IntPtr.Zero); /* for (int i = 0; i < eq7; 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, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 13, 1); * 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, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 25, 1); * 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, 69, 0.0f); * }*/ _vstEffectEQ4BandPhone = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"TDR Nova_0_2.dll", BASSVSTDsp.BASS_VST_DEFAULT, 2); eq7Phone = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4BandPhone); for (int i = 0; i < eq7Phone; i++) { BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, i, AppSettings.Get <float>("CH1EQ4bandPhone" + i)); } BassVst.BASS_VST_SetCallback(_vstEffectEQ4BandPhone, m_VstProc, IntPtr.Zero); /* for (int i = 0; i < eq7Phone; i++) * { * // get the info about the parameter * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 0, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 1, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 3, 0.563f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 4, 0.278f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 5, 0); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 12, 0); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 13, 0); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 15, 0.563f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 16, 0.361f); //Band 2 F * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 24, 0); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 25, 0); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 27, 0.563f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 28, 0.63883f); //Band 3 F * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 36, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 37, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 39, 0.563f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 40, 0.7712674f); //Band 4 F * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 41, 1); //Band 4 T * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 48, 1); //HP Selec * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 49, 1); //HP Activ * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 50, 0.4586f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 51, 0.25f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 52, 1); //LP Selec * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 53, 1); //LP Activ * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 54, 0.7812674f); //LP Frequ * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 55, 0.6666667f); * BassVst.BASS_VST_SetParam(_vstEffectEQ4BandPhone, 69, 0.0f); * }*/ _vstEffectDeEsser = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"MCompressor_0_D-Es.dll", BASSVSTDsp.BASS_VST_DEFAULT, 3); deEs = BassVst.BASS_VST_GetParamCount(_vstEffectDeEsser); for (int i = 0; i < deEs; i++) { BassVst.BASS_VST_SetParam(_vstEffectDeEsser, i, AppSettings.Get <float>("CH1DeEsser" + i)); } BassVst.BASS_VST_SetCallback(_vstEffectDeEsser, m_VstProc, IntPtr.Zero); /* for (int i = 0; i < deEs; i++) * { * 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); * }*/ _vstEffectReverb = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"OrilRiver.dll", BASSVSTDsp.BASS_VST_DEFAULT, 15); int rev = BassVst.BASS_VST_GetParamCount(_vstEffectReverb); for (int i = 0; i < rev; i++) { // BassVst.BASS_VST_SetParam(_vstEffectReverb, 0, 0.2540541f); // BassVst.BASS_VST_SetParam(_vstEffectReverb, 17, 0.8810811f); // BassVst.BASS_VST_SetParam(_vstEffectReverb, 18, 0.4432433f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 0, 0.8128305f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 1, 0.03f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 2, 1); BassVst.BASS_VST_SetParam(_vstEffectReverb, 3, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 4, 0.5f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 5, 0.3574602f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 6, 0.83f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 7, 0.2f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 8, 0.38f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 9, 0.4676717f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 10, 0.5414235f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 11, 0.4f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 12, 0.7827124f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 13, 0.585f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 14, 0.863937f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 15, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 16, 0.9354057f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 17, 0.835603f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 18, 0.4120975f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 19, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 20, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 21, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 22, 0); BassVst.BASS_VST_SetParam(_vstEffectReverb, 23, 0.1765174f); BassVst.BASS_VST_SetParam(_vstEffectReverb, 24, 1); } _vstBasicStrip = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"BasicStrip0.dll", BASSVSTDsp.BASS_VST_DEFAULT, 4); 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); } BassVst.BASS_VST_SetCallback(_vstBasicStrip, m_VstProc, IntPtr.Zero); }
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); }
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_1_0.dll", BASSVSTDsp.BASS_VST_DEFAULT, 5); int eq1_1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ1band); for (int i = 0; i < eq1_1; i++) { BassVst.BASS_VST_SetParam(_vstEffectEQ1band, i, AppSettings.Get <float>("CH2EQ1band" + i)); } /* 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_1.dll", BASSVSTDsp.BASS_VST_DEFAULT, 6); int comp1_1 = BassVst.BASS_VST_GetParamCount(_vstEffectCompressor); for (int i = 0; i < comp1_1; i++) { BassVst.BASS_VST_SetParam(_vstEffectCompressor, i, AppSettings.Get <float>("CH2Comp" + i)); } /* for (int i = 0; i < comp1_1; i++) * { * // get the info about the parameter * * 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_1_1.dll", BASSVSTDsp.BASS_VST_DEFAULT, 7); int eq7_1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4Band); for (int i = 0; i < eq7_1; i++) { BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, i, AppSettings.Get <float>("CH2EQ4band" + i)); } /* 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, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 13, 1); * 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, 1); * BassVst.BASS_VST_SetParam(_vstEffectEQ4Band, 25, 1); * 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, 69, 0.0f); * }*/ _vstEffectDeEsser = BassVst.BASS_VST_ChannelSetDSP(stream, m_vst_plugin_Path + @"MCompressor_1_D-Es.dll", BASSVSTDsp.BASS_VST_DEFAULT, 8); int deEs = BassVst.BASS_VST_GetParamCount(_vstEffectDeEsser); for (int i = 0; i < deEs; i++) { BassVst.BASS_VST_SetParam(_vstEffectDeEsser, i, AppSettings.Get <float>("CH2DeEsser" + i)); } /* for (int i = 0; i < deEs; i++) * { * 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 + @"BasicStrip1.dll", BASSVSTDsp.BASS_VST_DEFAULT, 9); 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_VstProc = new VSTPROC(VstProc_CallBack); BassVst.BASS_VST_SetCallback(_vstBasicStrip, m_VstProc, IntPtr.Zero); }
/// <summary> /// Play the selected Music File /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btPlay_Click(object sender, EventArgs e) { if (File.Exists(textBoxMusicFile.Text)) { // Init BASS BassAudioEngine bassEngine = BassMusicPlayer.Player; if (bassEngine.BassFreed) { bassEngine.InitBass(); } _stream = Bass.BASS_StreamCreateFile(textBoxMusicFile.Text, 0, 0, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_AUTOFREE | BASSFlag.BASS_SAMPLE_SOFTWARE); if (_stream != 0) { // Attach the BASS DSP Effects to the stream if (_gain != null) { _gain.ChannelHandle = _stream; _gain.Start(); } if (checkBoxDAmp.Checked) { _dampHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_DAMP, _dampPrio); Bass.BASS_FXSetParameters(_dampHandle, _damp); } if (checkBoxCompressor.Checked) { _compHandle = Bass.BASS_ChannelSetFX(_stream, BASSFXType.BASS_FX_BFX_COMPRESSOR, _compPrio); Bass.BASS_FXSetParameters(_compHandle, _comp); } // Attach the plugins to the stream foreach (DSPPluginInfo dsp in listBoxSelectedPlugins.Items) { if (dsp.DSPPluginType == DSPPluginInfo.PluginType.VST) { _vstHandle = BassVst.BASS_VST_ChannelSetDSP(_stream, dsp.FilePath, BASSVSTDsp.BASS_VST_DEFAULT, 1); // Copy the parameters of the old handle int vstold = _vstHandles[dsp.Name]; BassVst.BASS_VST_SetParamCopyParams(vstold, _vstHandle); // Now find out to which stream the old handle was assigned and free it BASS_VST_INFO bassvstinfo = new BASS_VST_INFO(); BassVst.BASS_VST_GetInfo(vstold, bassvstinfo); BassVst.BASS_VST_ChannelRemoveDSP(bassvstinfo.channelHandle, vstold); _vstHandles[dsp.Name] = _vstHandle; } else { _waDspPlugin = _waDspPlugins[dsp.FilePath]; BassWaDsp.BASS_WADSP_Start(_waDspPlugin, 0, 0); BassWaDsp.BASS_WADSP_ChannelSetDSP(_waDspPlugin, _stream, 1); } } btPlay.Enabled = false; btStop.Enabled = true; Bass.BASS_ChannelPlay(_stream, false); } else { MessageBox.Show("Can't play file. Probably not a valid music file"); } } else { MessageBox.Show("File specified does not exist"); } }
private void LoadVST(ref String VSTDLL, ref String VSTDLLDesc, ref Label Desc, ref Button Unload, ref Button Load, Int32 NumVST) { try { int status = 0; if (ModifierKeys == Keys.Shift) { status = 1; } else if (ModifierKeys == Keys.Control) { if (NumVST == 1) { if (Properties.Settings.Default.VSTiDisclaimer) { DialogResult dialogResult = MessageBox.Show(Languages.Parse("LegalWarningVSTi"), String.Format("{0} {1} - {2}", Program.Who, Program.Title, Languages.Parse("Warning")), MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dialogResult == DialogResult.Yes) { Properties.Settings.Default.VSTiDisclaimer = false; Properties.Settings.Default.Save(); status = 2; MessageBox.Show(Languages.Parse("VSTiModeOnLegal"), String.Format("{0} {1} - {2}", Program.Who, Program.Title, Languages.Parse("Warning")), MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (dialogResult == DialogResult.No) { Properties.Settings.Default.VSTiDisclaimer = true; Properties.Settings.Default.Save(); return; } } else { status = 2; MessageBox.Show(Languages.Parse("VSTiModeOn"), String.Format("{0} {1} - {2}", Program.Who, Program.Title, Languages.Parse("Warning")), MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { status = 0; } } InitStartDirectory(); if (VSTImportDialog.ShowDialog() == DialogResult.OK) { if (status == 1) { VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = String.Format("{0} - ({1})", VSTImportDialog.FileName, Languages.Parse("NotVerified")); Desc.Text = String.Format("{0} - ({1})", VSTImportDialog.FileName, Languages.Parse("NotVerified")); Bass.BASS_Free(); Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); } else if (status == 2) { Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_NOSPEAKER, IntPtr.Zero); int VSTiTester = BassVst.BASS_VST_ChannelCreate(44100, 2, VSTImportDialog.FileName, BASSFlag.BASS_STREAM_DECODE); MainWindow.VSTs.VSTInfo[NumVST - 1] = new BASS_VST_INFO(); bool Success = BassVst.BASS_VST_GetInfo(VSTiTester, MainWindow.VSTs.VSTInfo[NumVST - 1]); Bass.BASS_Free(); if (Success) { String Lab = String.Format(Languages.Parse("VSTNameAndVersion"), MainWindow.VSTs.VSTInfo[NumVST - 1].productName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorVersion); VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = Lab; Desc.Text = Lab; Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); } else { MessageBox.Show(String.Format(Languages.Parse("InvalidVSTLoaded"), Path.GetFileNameWithoutExtension(VSTImportDialog.FileName), bitreq, bitnow), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); } } else { Un4seen.Bass.Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_NOSPEAKER, IntPtr.Zero); int Test = Bass.BASS_StreamCreateDummy(44100, 2, BASSFlag.BASS_STREAM_DECODE, IntPtr.Zero); int VSTTester = BassVst.BASS_VST_ChannelSetDSP(Test, VSTImportDialog.FileName, BASSVSTDsp.BASS_VST_DEFAULT, 1); bool Success = BassVst.BASS_VST_GetInfo(VSTTester, MainWindow.VSTs.VSTInfo[NumVST - 1]); if (Success) { VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = String.Format(Languages.Parse("VSTNameAndVersion"), MainWindow.VSTs.VSTInfo[NumVST - 1].productName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorVersion); Desc.Text = String.Format(Languages.Parse("VSTNameAndVersion"), MainWindow.VSTs.VSTInfo[NumVST - 1].productName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorName, MainWindow.VSTs.VSTInfo[NumVST - 1].vendorVersion); Bass.BASS_Free(); Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); } else { MessageBox.Show(String.Format(Languages.Parse("InvalidVSTLoaded"), Path.GetFileNameWithoutExtension(VSTImportDialog.FileName), bitreq, bitnow), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); } BassVst.BASS_VST_ChannelRemoveDSP(Test, VSTTester); Bass.BASS_StreamFree(Test); Bass.BASS_Free(); } } } catch (Exception ex) { KeppyMIDIConverter.ErrorHandler errordialog = new KeppyMIDIConverter.ErrorHandler(Languages.Parse("Error"), ex.ToString(), 0, 1); errordialog.ShowDialog(); } }
private void LoadVST(ref String VSTDLL, ref String VSTDLLDesc, Label Desc, Button Unload, Button Load, Int32 NumVST) { try { int status = 0; if (ModifierKeys == Keys.Shift) { status = 1; } else if (ModifierKeys == Keys.Control) { if (NumVST == 1) { if (Properties.Settings.Default.VSTiDisclaimer) { DialogResult dialogResult = MessageBox.Show("By clicking 'Yes', you agree not to abuse the 'VST instrument' feature to create, disseminate, or make accessible anything exploiting the copyrighted/protected samples or files included within a VST (\"Visual Studio Technology\" plugin).\n\nSuch resultant files could include (but are not limited to):\nSoundFonts, VSTs, or any other usable tool that commits copyright infringement.\n\nSimply put it, you may not use this tool to commit piracy on a copyrighted/trademarked/protected VST, free or paid, unless you have permission from the developer.\nYou may create audio at will from the VST, but DO NOT use this export feature to extract/\"rip\" samples from the VST.\n\nThe author assumes no legal responsibility from the use of this tool.", "Keppy's MIDI Converter - Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dialogResult == DialogResult.Yes) { Properties.Settings.Default.VSTiDisclaimer = false; Properties.Settings.Default.Save(); status = 2; MessageBox.Show("VSTi mode activated.", "Keppy's MIDI Converter - Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (dialogResult == DialogResult.No) { Properties.Settings.Default.VSTiDisclaimer = true; Properties.Settings.Default.Save(); return; } } else { status = 2; MessageBox.Show("VSTi mode activated.", "Keppy's MIDI Converter - Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { status = 0; } } InitStartDirectory(); if (VSTImportDialog.ShowDialog() == DialogResult.OK) { BASS_VST_INFO VSTInfo = new BASS_VST_INFO(); if (status == 1) { VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = VSTImportDialog.FileName + " (Not verified)"; Desc.Text = VSTImportDialog.FileName + " (Not verified)"; Bass.BASS_Free(); Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); } else if (status == 2) { Un4seen.Bass.Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_NOSPEAKER, IntPtr.Zero); int VSTiTester = BassVst.BASS_VST_ChannelCreate(44100, 2, VSTImportDialog.FileName, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT); MainWindow.KMCGlobals.vstIInfo = new BASS_VST_INFO(); bool Success = BassVst.BASS_VST_GetInfo(VSTiTester, MainWindow.KMCGlobals.vstIInfo); if (Success) { String Lab = String.Format("{0} by {1} (Version number: {2}", MainWindow.KMCGlobals.vstIInfo.productName, MainWindow.KMCGlobals.vstIInfo.vendorName, MainWindow.KMCGlobals.vstIInfo.vendorVersion); VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = MainWindow.KMCGlobals.vstIInfo.productName + " by " + MainWindow.KMCGlobals.vstIInfo.vendorName + " (Version: " + MainWindow.KMCGlobals.vstIInfo.vendorVersion + ")"; Desc.Text = MainWindow.KMCGlobals.vstIInfo.productName + " by " + MainWindow.KMCGlobals.vstIInfo.vendorName + " (Version: " + MainWindow.KMCGlobals.vstIInfo.vendorVersion + ")"; Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); BassVst.BASS_VST_ChannelFree(VSTiTester); Bass.BASS_Free(); } else { MessageBox.Show(String.Format(MainWindow.res_man.GetString("InvalidVSTLoaded", MainWindow.cul), Path.GetFileNameWithoutExtension(VSTImportDialog.FileName), bitreq, bitnow), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); BassVst.BASS_VST_ChannelFree(VSTiTester); Bass.BASS_Free(); } } else { Un4seen.Bass.Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_NOSPEAKER, IntPtr.Zero); int Test = Bass.BASS_StreamCreateDummy(44100, 2, BASSFlag.BASS_STREAM_DECODE, IntPtr.Zero); int VSTTester = BassVst.BASS_VST_ChannelSetDSP(Test, VSTImportDialog.FileName, BASSVSTDsp.BASS_VST_DEFAULT, 1); bool Success = BassVst.BASS_VST_GetInfo(VSTTester, VSTInfo); if (Success) { VSTDLL = VSTImportDialog.FileName; VSTDLLDesc = VSTInfo.productName + " by " + VSTInfo.vendorName + " (Version: " + VSTInfo.vendorVersion + ")"; Desc.Text = VSTInfo.productName + " by " + VSTInfo.vendorName + " (Version: " + VSTInfo.vendorVersion + ")"; Bass.BASS_Free(); Unload.Enabled = true; Load.Enabled = false; SaveDirectory(VSTImportDialog.FileName); BassVst.BASS_VST_ChannelRemoveDSP(Test, VSTTester); Bass.BASS_StreamFree(Test); Bass.BASS_Free(); } else { MessageBox.Show(String.Format(MainWindow.res_man.GetString("InvalidVSTLoaded", MainWindow.cul), Path.GetFileNameWithoutExtension(VSTImportDialog.FileName), bitreq, bitnow), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); BassVst.BASS_VST_ChannelRemoveDSP(Test, VSTTester); Bass.BASS_StreamFree(Test); Bass.BASS_Free(); } } } } catch (Exception ex) { KeppyMIDIConverter.ErrorHandler errordialog = new KeppyMIDIConverter.ErrorHandler(MainWindow.res_man.GetString("Error", MainWindow.cul), ex.ToString(), 0, 1); errordialog.ShowDialog(); } }
/// <summary> /// Load Effects Settings /// </summary> public override void LoadSettings() { _initialMusicDirectory = Settings.Instance.MusicDirectory; // BASS DSP/FX foreach (BassEffect basseffect in Settings.Instance.BassEffects) { foreach (BassEffectParm parameter in basseffect.Parameter) { setBassDSP(basseffect.EffectName, parameter.Name, parameter.Value); } } DirectoryInfo di = new DirectoryInfo(pluginPath); FileInfo[] fi = di.GetFiles("*.dll", SearchOption.AllDirectories); foreach (FileInfo vstplugin in fi) { try { BASS_VST_INFO vstInfo = new BASS_VST_INFO(); _vstHandle = BassVst.BASS_VST_ChannelSetDSP(0, vstplugin.FullName, BASSVSTDsp.BASS_VST_DEFAULT, 1); // When Handle > 0 this Vst Plugin is a DSP Plugin if (_vstHandle > 0) { DSPPluginInfo pluginInfo = new DSPPluginInfo(DSPPluginInfo.PluginType.VST, vstplugin.FullName, vstplugin.Name); if (pluginInfo.IsBlackListed) { Log.Info("DSP Plugin {0} may not be used, as it is known for causing problems.", vstplugin.Name); } else { listBoxFoundPlugins.Items.Add(pluginInfo); } } BassVst.BASS_VST_ChannelRemoveDSP(0, _vstHandle); } catch (Exception ex) { Log.Error("Error reading VST Plugin Information: {0}", ex.Message); } } // VST Plugins foreach (VSTPlugin plugins in Settings.Instance.VSTPlugins) { // Get the vst handle and enable it string plugin = String.Format(@"{0}\{1}", pluginPath, plugins.PluginDll); _vstHandle = BassVst.BASS_VST_ChannelSetDSP(0, plugin, BASSVSTDsp.BASS_VST_DEFAULT, 1); if (_vstHandle > 0) { DSPPluginInfo pluginInfo = new DSPPluginInfo(DSPPluginInfo.PluginType.VST, plugin, plugins.PluginDll); listBoxSelectedPlugins.Items.Add(pluginInfo); _vstHandles[plugins.PluginDll] = _vstHandle; // Set all parameters for the plugin foreach (VSTPluginParm paramter in plugins.Parameter) { NumberFormatInfo format = new NumberFormatInfo(); format.NumberDecimalSeparator = "."; try { BassVst.BASS_VST_SetParam(_vstHandle, paramter.Index, float.Parse(paramter.Value)); } catch (Exception) {} } } else { Log.Debug("Couldn't load VST Plugin {0}. Error code: {1}", plugin, Bass.BASS_ErrorGetCode()); } } // Now remove those already selected from the found listbox foreach (VSTPlugin plugins in Settings.Instance.VSTPlugins) { for (int i = 0; i < listBoxFoundPlugins.Items.Count; i++) { DSPPluginInfo dsp = (DSPPluginInfo)listBoxFoundPlugins.Items[i]; if (dsp.DSPPluginType == DSPPluginInfo.PluginType.VST && dsp.Name == plugins.PluginDll) { listBoxFoundPlugins.Items.RemoveAt(i); } } } // WinAmp Plugins // Get the available plugins in the directory and fill the found listbox WINAMP_DSP.FindPlugins(pluginPath); foreach (WINAMP_DSP winampPlugin in WINAMP_DSP.PlugIns) { DSPPluginInfo pluginInfo = new DSPPluginInfo(DSPPluginInfo.PluginType.Winamp, winampPlugin.File, winampPlugin.Description); if (pluginInfo.IsBlackListed) { Log.Info("DSP Plugin {0} may not be used, as it is known for causing problems.", pluginInfo.FilePath); } else { listBoxFoundPlugins.Items.Add(pluginInfo); } } // Now remove those already selected from the found listbox foreach (WinAmpPlugin plugins in Settings.Instance.WinAmpPlugins) { for (int i = 0; i < listBoxFoundPlugins.Items.Count; i++) { DSPPluginInfo dsp = (DSPPluginInfo)listBoxFoundPlugins.Items[i]; if (dsp.DSPPluginType == DSPPluginInfo.PluginType.Winamp && dsp.FilePath == plugins.PluginDll) { listBoxFoundPlugins.Items.RemoveAt(i); _waDspPlugin = BassWaDsp.BASS_WADSP_Load(plugins.PluginDll, 5, 5, 100, 100, null); if (_waDspPlugin > 0) { listBoxSelectedPlugins.Items.Add(dsp); _waDspPlugins[plugins.PluginDll] = _waDspPlugin; break; } else { Log.Debug("Couldn't load WinAmp Plugin {0}. Error code: {1}", plugins.PluginDll, Bass.BASS_ErrorGetCode()); } } } } }