Пример #1
0
        // your VST callback - referenced below by BASS_VST_SetCallback()
        private static int VstProc_CallBack(int vstHandle, BASSVSTAction action, int param1, int param2, IntPtr user)
        {
            switch (action)
            {
            case BASSVSTAction.BASS_VST_PARAM_CHANGED:
                // we get notified that the user has changed some sliders in the editor -
                // do what to do here ...
                _paramValue = BassVst.BASS_VST_GetParam(_vstBasicStrip, 0);
                Console.WriteLine(IsDefaultValue);
                break;

            case BASSVSTAction.BASS_VST_EDITOR_RESIZED:
                // the editor window requests a new size,
                // maybe we should resize the window the editor is embedded in?
                // the new width/height can be found in param1/param2
                break;

            case BASSVSTAction.BASS_VST_AUDIO_MASTER:
                // this is only for people familiar with the VST SDK,
                // param1 is a pointer to a BASS_VST_AUDIO_MASTER_PARAM structure
                // which contains all information needed
                break;
            }
            return(0);
        }
Пример #2
0
        public void LoadChannelStrips(Preferences form, Panel prefsPanel, int width = 0, int height = 0)
        {
            _paramInfo = new BASS_VST_PARAM_INFO();
            int c = BassVst.BASS_VST_GetParamCount(VstEffectHandle);

            for (int i = 0; i < c; i++)
            {
                // get the info about the parameter
                _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i);
                BassVst.BASS_VST_GetParamInfo(VstEffectHandle, i, _paramInfo);
                _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i);
                Console.WriteLine(_paramInfo.ToString() + " : " + _paramValue.ToString());
            }

            // show the embedded editor
            _vstInfo = new BASS_VST_INFO();
            if (BassVst.BASS_VST_GetInfo(VstEffectHandle, _vstInfo) && _vstInfo.hasEditor)
            {
                form.Closing += new CancelEventHandler(f_Closing);
                //form.Text = _vstInfo.effectName + " " + Effects.GetorSetFx;

                BassVst.BASS_VST_EmbedEditor(VstEffectHandle, prefsPanel.Handle);

                _vstEffectHandle = VstEffectHandle;
            }
        }
Пример #3
0
        /// <summary>
        ///     Gets the VST plug-in settings.
        /// </summary>
        /// <param name="plugin">The plug-in.</param>
        /// <returns>The settings as a key=value comma delimited list</returns>
        public static string GetVstPluginParameters(VstPlugin plugin)
        {
            var values         = new List <string>();
            var parameterCount = BassVst.BASS_VST_GetParamCount(plugin.Id);

            for (var i = 0; i < parameterCount; i++)
            {
                var value = BassVst.BASS_VST_GetParam(plugin.Id, i);
                values.Add(value.ToString(CultureInfo.InvariantCulture));
            }
            return(string.Join(",", values.ToArray()));
        }
Пример #4
0
 public static void UpdateSettings()
 {
     if (m_isEQ1bandSettingChange)
     {
         m_isEQ1bandSettingChange = false;
         // int eq1 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ1band);
         for (int i = 0; i < eq1; i++)
         {
             AppSettings.Set("CH1EQ1band" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ1band, i).ToString());
             PlayerControl.LoadSaveProgress += i;
         }
     }
     else if (m_isCompressorSettingChange)
     {
         m_isCompressorSettingChange = false;
         // int comp1 = BassVst.BASS_VST_GetParamCount(_vstEffectCompressor);
         for (int i = 0; i < comp1; i++)
         {
             AppSettings.Set("CH1Comp" + i, BassVst.BASS_VST_GetParam(_vstEffectCompressor, i).ToString());
             PlayerControl.LoadSaveProgress += i;
         }
     }
     else if (m_isEQ4BandSettingChange)
     {
         m_isEQ4BandSettingChange = false;
         // int eq7 = BassVst.BASS_VST_GetParamCount(_vstEffectEQ4Band);
         for (int i = 0; i < eq7; i++)
         {
             AppSettings.Set("CH1EQ4band" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ4Band, i).ToString());
             PlayerControl.LoadSaveProgress += i;
         }
     }
     else if (m_isEQ4BandPhoneSettingChange)
     {
         m_isEQ4BandPhoneSettingChange = false;
         for (int i = 0; i < eq7Phone; i++)
         {
             AppSettings.Set("CH1EQ4bandPhone" + i, BassVst.BASS_VST_GetParam(_vstEffectEQ4BandPhone, i).ToString());
             PlayerControl.LoadSaveProgress += i;
         }
     }
     else if (m_isDeEsserSettingChange)
     {
         m_isDeEsserSettingChange = false;
         // int deEs = BassVst.BASS_VST_GetParamCount(_vstEffectDeEsser);
         for (int i = 0; i < deEs; i++)
         {
             AppSettings.Set("CH1DeEsser" + i, BassVst.BASS_VST_GetParam(_vstEffectDeEsser, i).ToString());
             PlayerControl.LoadSaveProgress += i;
         }
     }
 }
Пример #5
0
        public void Show(int width = 0, int height = 0)
        {
            // if (_vstEffectHandle != 0)
            // {
            //      return;
            // }

            _paramInfo = new BASS_VST_PARAM_INFO();
            int c = BassVst.BASS_VST_GetParamCount(VstEffectHandle);

            for (int i = 0; i < c; i++)
            {
                // get the info about the parameter
                _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i);
                BassVst.BASS_VST_GetParamInfo(VstEffectHandle, i, _paramInfo);
                _paramValue = BassVst.BASS_VST_GetParam(VstEffectHandle, i);
                Console.WriteLine(_paramInfo.ToString() + " : " + _paramValue.ToString());
            }

            // show the embedded editor
            _vstInfo = new BASS_VST_INFO();
            if (BassVst.BASS_VST_GetInfo(VstEffectHandle, _vstInfo) && _vstInfo.hasEditor)
            {
                // create a new System.Windows.Forms.Form
                Form f = new Form();
                if (width != 0 && height != 0)
                {
                    f.ClientSize = new Size(width, height);
                }
                else
                {
                    f.ClientSize = new Size(_vstInfo.editorWidth, _vstInfo.editorHeight);
                }

                f.MaximizeBox     = false;
                f.MinimizeBox     = false;
                f.FormBorderStyle = FormBorderStyle.FixedSingle;
                f.Closing        += new CancelEventHandler(f_Closing);
                f.Text            = _vstInfo.effectName + " " + Effects.GetorSetFx;
                f.Show();

                BassVst.BASS_VST_EmbedEditor(VstEffectHandle, f.Handle);

                _vstEffectHandle = VstEffectHandle;
            }
        }
Пример #6
0
        List <float> VST_GET_PARAM(int vstHandle)
        {
            List <float> rez = new List <float>();

            try
            {
                int vstParams = BassVst.BASS_VST_GetParamCount(vstHandle);
                // create a paramInfo object
                BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO();
                for (int i = 0; i < vstParams; i++)
                {
                    // get the info about the parameter
                    float paramValue = BassVst.BASS_VST_GetParam(vstHandle, i);
                    // and get further info about the parameter
                    BassVst.BASS_VST_GetParamInfo(vstHandle, i, paramInfo);
                    rez.Add(paramValue);
                    Trace.WriteLine("GETparam: " + paramInfo.ToString() + " = " + paramValue.ToString());
                }
            }
            catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); }
            return(rez);
        }
Пример #7
0
        private void mnuParameters_Click(object sender, EventArgs e)
        {
            var builder = new StringBuilder();

            builder.AppendLine(_plugin.Name);

            foreach (var parameter in _plugin.Parameters)
            {
                var info  = BassVst.BASS_VST_GetParamInfo(_plugin.Id, parameter.Id);
                var value = BassVst.BASS_VST_GetParam(_plugin.Id, parameter.Id);

                if (info == null)
                {
                    continue;
                }

                var line = $"{info.name}  {info.display}  {value}  {info.unit}";
                builder.AppendLine(line);
            }

            MessageBoxHelper.Show(builder.ToString());
        }
Пример #8
0
        /// <summary>
        /// This routine is called, whenever a change is done in the VST Editor
        /// </summary>
        /// <param name="vstEditor"></param>
        /// <param name="action"></param>
        /// <param name="param1"></param>
        /// <param name="param2"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        private int vstEditorCallBack(int vstEditor, BASSVSTAction action, int param1, int param2, IntPtr user)
        {
            switch (action)
            {
            case BASSVSTAction.BASS_VST_PARAM_CHANGED:
                // Some slider has been changed in the editor
                BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO();
                for (int i = BassVst.BASS_VST_GetParamCount(vstEditor) - 1; i >= 0; i--)
                {
                    BassVst.BASS_VST_SetParam(_vstHandle, i, BassVst.BASS_VST_GetParam(vstEditor, i));
                    BassVst.BASS_VST_GetParamInfo(_vstHandle, i, paramInfo);
                }
                break;

            case BASSVSTAction.BASS_VST_EDITOR_RESIZED:
                // the editor window requests a new size,
                break;

            case BASSVSTAction.BASS_VST_AUDIO_MASTER:
                break;
            }
            return(0);
        }
Пример #9
0
        /// <summary>
        /// Save Effects Settings
        /// </summary>
        public override void SaveSettings()
        {
            Settings.Instance.MusicDirectory = _initialMusicDirectory;

            // Settings for BASS DSP/FX
            Settings.Instance.BassEffects.Clear();
            BassEffect basseffect;

            // Gain
            if (textBoxGainDBValue.Text != "0")
            {
                basseffect            = new BassEffect();
                basseffect.EffectName = "Gain";
                basseffect.Parameter.Add(new BassEffectParm("Gain_dbV", textBoxGainDBValue.Text));
                Settings.Instance.BassEffects.Add(basseffect);
            }

            // Dynamic Amplification
            if (checkBoxDAmp.Checked)
            {
                basseffect            = new BassEffect();
                basseffect.EffectName = "DynAmp";
                basseffect.Parameter.Add(new BassEffectParm("Preset", comboBoxDynamicAmplification.SelectedIndex.ToString()));
                Settings.Instance.BassEffects.Add(basseffect);
            }

            // Compressor
            if (checkBoxCompressor.Checked)
            {
                basseffect            = new BassEffect();
                basseffect.EffectName = "Compressor";
                basseffect.Parameter.Add(new BassEffectParm("Threshold", trackBarCompressor.Value.ToString()));
                Settings.Instance.BassEffects.Add(basseffect);
            }

            // Settings for VST Plugings
            Settings.Instance.VSTPlugins.Clear();
            VSTPlugin vstplugin;

            foreach (string plugindll in _vstHandles.Keys)
            {
                vstplugin           = new VSTPlugin();
                vstplugin.PluginDll = plugindll;
                _vstHandle          = _vstHandles[plugindll];
                BASS_VST_PARAM_INFO paramInfo = new BASS_VST_PARAM_INFO();
                for (int i = BassVst.BASS_VST_GetParamCount(_vstHandle) - 1; i >= 0; i--)
                {
                    BassVst.BASS_VST_GetParamInfo(_vstHandle, i, paramInfo);
                    float value = BassVst.BASS_VST_GetParam(_vstHandle, i);
                    vstplugin.Parameter.Add(new VSTPluginParm(paramInfo.name, i, value.ToString()));
                }
                Settings.Instance.VSTPlugins.Add(vstplugin);
            }

            // Settings for WinAmpPlugins
            WinAmpPlugin winampplugin;

            // Clear all settings first
            Settings.Instance.WinAmpPlugins.Clear();
            foreach (DSPPluginInfo pluginInfo in listBoxSelectedPlugins.Items)
            {
                if (pluginInfo.DSPPluginType == DSPPluginInfo.PluginType.Winamp)
                {
                    winampplugin           = new WinAmpPlugin();
                    winampplugin.PluginDll = pluginInfo.FilePath;
                    Settings.Instance.WinAmpPlugins.Add(winampplugin);
                }
            }
            Settings.SaveSettings();
        }
Пример #10
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;
            }

            //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);
        }