Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <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);
 }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #7
0
        /// <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 ...");
        }
Beispiel #8
0
        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);
                }
            }
        }
Beispiel #9
0
        /// <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());
                }
            }
        }
Beispiel #10
0
        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);
            }
        }
Beispiel #11
0
        /// <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;
        }
Beispiel #12
0
        /// <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);
                }
            }
        }
Beispiel #13
0
        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);
        }
Beispiel #16
0
        /// <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");
            }
        }
Beispiel #17
0
        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();
            }
        }
Beispiel #19
0
        /// <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());
                        }
                    }
                }
            }
        }