Beispiel #1
0
        private byte[] GetParameterData()
        {
            VstParameterSet parameterSet = new VstParameterSet();

            int       emptyCount     = 0;
            int       parameterCount = 0;
            const int MAX_PARAMETERS = 1000;

            try
            {
                parameterSet.ProgramNumber = VstPluginContext.PluginCommandStub.GetProgram();

                for (int i = 0; i < MAX_PARAMETERS; i++)
                {
                    float parameterValue = VstPluginContext.PluginCommandStub.GetParameter(i);

                    string display = VstPluginContext.PluginCommandStub.GetParameterDisplay(i);
                    string label   = VstPluginContext.PluginCommandStub.GetParameterLabel(i);
                    string name    = VstPluginContext.PluginCommandStub.GetParameterName(i);

                    //if (parameterValue == 0.0f && (display == "0.000000" || display == "?") && label == string.Empty)
                    //{

                    if (!string.IsNullOrEmpty(name) || !string.IsNullOrEmpty(label))
                    {
                        VstParameter p = new VstParameter();
                        p.Index    = i;
                        p.Value    = parameterValue;
                        emptyCount = 0;
                        parameterSet.Parameters.Add(p);
                        parameterCount++;
                        if (parameterCount == MAX_PARAMETERS)
                        {
                            MessageBox.Show("More than " + MAX_PARAMETERS.ToString() + " parameters in VST!?!");
                            break;
                        }
                    }
                    else
                    {
                        // 100 x nothing?
                        if (emptyCount++ == 100)
                        {
                            // Assume all parameters are read; break
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cannot export VST parameters : " + ex.Message);
            }

            return(parameterSet.ToByteArray());
        }
Beispiel #2
0
 private void SetParameters(byte[] data)
 {
     try
     {
         VstParameterSet parameterSet = VstParameterSet.FromByteArray(data);
         mVstPluginContext.PluginCommandStub.SetProgram(parameterSet.ProgramNumber);
         foreach (var parameter in parameterSet.Parameters)
         {
             mVstPluginContext.PluginCommandStub.SetParameter(parameter.Index, parameter.Value);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Cannot import VST parameters : " + ex.Message);
     }
 }
Beispiel #3
0
            public static VstParameterSet FromByteArray(byte[] data)
            {
                VstParameterSet parameterSet = null;

                using (MemoryStream ms = new MemoryStream(data))
                {
                    try
                    {
                        BinaryFormatter formatter = new BinaryFormatter();
                        parameterSet = (VstParameterSet)formatter.Deserialize(ms);
                    }
                    catch (SerializationException e)
                    {
                        Console.WriteLine("Failed to deserialize VstParameterSet. Reason: " + e.Message);
                        throw;
                    }
                }

                return(parameterSet);
            }