public InterstellarPlugin()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[1];
     PortInfo = new Port[2];
 }
 public SmashMasterEffect()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[6];
     PortInfo = new Port[2];
 }
示例#3
0
        public void InitializeDevice()
        {
#if DEBUG
            devInfo.DeviceID = "Low Profile - Polyhedrus - DEV";
#else
            devInfo.DeviceID = "Low Profile - Polyhedrus";
#endif
            devInfo.Developer        = "Valdemar Erlingsson";
            devInfo.EditorWidth      = 995;
            devInfo.EditorHeight     = 386;
            devInfo.HasEditor        = true;
            devInfo.Name             = "Polyhedrus Synthesizer";
            devInfo.ProgramCount     = 1;
            devInfo.Type             = DeviceType.Generator;
            devInfo.Version          = 1000;
            devInfo.UnsafeProcessing = true;
            devInfo.VstId            = DeviceUtilities.GenerateIntegerId(devInfo.DeviceID);

            PortInfo[0].Direction        = PortDirection.Output;
            PortInfo[0].Name             = "Stereo Output";
            PortInfo[0].NumberOfChannels = 2;

            for (int i = 0; i < 0; i++)
            {
                var p = new SharpSoundDevice.Parameter();
                p.Display        = "0.0";
                p.Index          = (uint)i;
                p.Name           = "Parameter " + i;
                p.Steps          = 0;
                p.Value          = 0.0;
                ParameterInfo[i] = p;
            }
        }
示例#4
0
 public MrFuzzModule()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[3];
     PortInfo = new Port[2];
 }
 public AudioDeviceModule()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[1];
     PortInfo = new Port[1];
     Controller = new SynthController(this);
 }
示例#6
0
 public Rodent()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[8];
     PortInfo = new Port[2];
     e = new Editor(this);
 }
 public TestbedPlugin()
 {
     Container = TestContainer.ActiveContainer;
     Container.SetSamplerate(48000);
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[Container.Parameters.Length];
     PortInfo = new Port[2];
 }
示例#8
0
 public BiquadPlugin()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[5];
     PortInfo = new Port[2];
     BiquadL = new Biquad(Biquad.FilterType.LowPass, 48000);
     BiquadR = new Biquad(Biquad.FilterType.LowPass, 48000);
 }
 public Nearfield()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[5];
     PortInfo = new Port[2];
     BufferLeft = new CircularBuffer(5000);
     BufferRight = new CircularBuffer(5000);
 }
示例#10
0
 public Modelay()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[3];
     PortInfo = new Port[2];
     BufferLeft = new CircularBuffer(48000);
     BufferRight = new CircularBuffer(48000);
     Random = new Random();
 }
示例#11
0
        public PolyhedrusPlugin()
        {
            AllocConsole();
            controller = new PolyhedrusNative(48000, 12003, 12004);

            Samplerate = 48000;
            devInfo = new DeviceInfo();
            ParameterInfo = new Parameter[0];
            PortInfo = new Port[1];
        }
        /// <summary>
        /// Takes output generated by SerializeParameters(), deserializes it and assigns the values
        /// to the Parameters
        /// </summary>
        /// <param name="parameters">An array of parameters to set with the new values</param>
        /// <param name="data">Serialized values, as generated by the SerializeParameters() method</param>
        public static void DeserializeParameters(Parameter[] parameters, byte[] data)
        {
            parameters = parameters.OrderBy(x => x.Index).ToArray();

            string values = Encoding.UTF8.GetString(data);
            var items = values.Split(',');
            var filtered = items.Where(x => x != null && x.Trim() != "").ToList();
            var select = filtered.Select(x => Convert.ToDouble(x.Trim(), System.Globalization.CultureInfo.InvariantCulture)).ToList();

            if (select.Count != parameters.Length)
                throw new Exception("Illegal program data. Number of parameters does not match");

            for (int i = 0; i < parameters.Length; i++)
                parameters[i].Value = select[i];
        }
示例#13
0
        public void InitializeDevice()
        {
            #if DEBUG
            devInfo.DeviceID = "Low Profile - Polyhedrus - DEV";
            #else
            devInfo.DeviceID = "Low Profile - Polyhedrus";
            #endif
            devInfo.Developer = "Valdemar Erlingsson";
            devInfo.EditorWidth = 995;
            devInfo.EditorHeight = 386;
            devInfo.HasEditor = true;
            devInfo.Name = "Polyhedrus Synthesizer";
            devInfo.ProgramCount = 1;
            devInfo.Type = DeviceType.Generator;
            devInfo.Version = 1000;
            devInfo.UnsafeProcessing = true;
            devInfo.VstId = DeviceUtilities.GenerateIntegerId(devInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Output;
            PortInfo[0].Name = "Stereo Output";
            PortInfo[0].NumberOfChannels = 2;

            for (int i = 0; i < 0; i++)
            {
                var p = new SharpSoundDevice.Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = "Parameter " + i;
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
            }
        }
示例#14
0
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - Biquad";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = false;
            DevInfo.Name = "Biquad Filter";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1000;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
            }

            SetParameter(P_TYPE, 0.0);
            SetParameter(P_FREQ, 0.5);
            SetParameter(P_SLOPE, 0.5);
            SetParameter(P_Q, 0.5);
            SetParameter(P_GAIN, 0.5);
        }
示例#15
0
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - RXG100";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = true;
            DevInfo.Name = "RXG100 Amp Simulator";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1001;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for(int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
            }

            HighpassInput = new Highpass1((float)Samplerate);

            // Channel A
            TF1A = new TF1(Samplerate);
            Stage1A = new SplineInterpolator(Data.Splines.Stage2_2TF);

            TF2A = new TF2(Samplerate);
            Stage2A = new SplineInterpolator(Data.Splines.Stage2_2TF);

            PostVolumeHpA = new Highpass1((float)Samplerate);
            TFPresA = new TFPres(Samplerate);
            TonestackA = new Tonestack((float)Samplerate);

            // Channel B
            TF1B = new TF1((float)Samplerate);
            TF1xB = new TF12((float)Samplerate);
            Stage1B = new SplineInterpolator(Data.Splines.Stage1CapSimulatedTF);

            TF2B = new TF2((float)Samplerate);
            Stage2B = new SplineInterpolator(Data.Splines.Stage2SimulatedTF);

            ClipperZenerB = new SplineInterpolator(Data.Splines.ZenerTF);
            ClipperDiodeB = new SplineInterpolator(Data.Splines.D1N914TF);

            TFVolumeB = new TFVolume((float)Samplerate);
            TFPresB = new TFPres((float)Samplerate);
            TonestackB = new Tonestack((float)Samplerate);

            h3 = new Highpass1((float)Samplerate);
            hipassZenerB = new Highpass1((float)Samplerate);
            LowpassOutput = new Lowpass1((float)Samplerate);
            TonestackA.setComponents(0.200e-9f, 0.022e-6f, 0.02e-6f, 1e3f, 500e3f, 47e3f, 500e3f, 20e3f, 500e3f);
            TonestackB.setComponents(0.200e-9f, 0.022e-6f, 0.02e-6f, 1e3f, 500e3f, 47e3f, 500e3f, 20e3f, 500e3f);
            SetSampleRate(Samplerate);

            Editor = new Editor();
            Editor.Instance = this;
            DevInfo.EditorHeight = Editor.Height;
            DevInfo.EditorWidth = Editor.Width;

            for(int i = 0; i < ParameterInfo.Length; i++)
            {
                SetParam(i, 0.51);
            }
        }
示例#16
0
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - Mr. Fuzz";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            //DevInfo.EditorHeight = e.Height;
            //DevInfo.EditorWidth = e.Width;
            DevInfo.HasEditor = false;
            DevInfo.Name = "Mr. Fuzz";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1000;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Mono Input";
            PortInfo[0].NumberOfChannels = 1;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.5";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.5;
                ParameterInfo[i] = p;
            }

            HpInput = new Highpass1((float)Samplerate);
            TFStage = new MrFuzz.TFStage((float)Samplerate);
            DiodeStage = new LUT();
            DiodeStage.ReadRecord(Table.DiodeResponse);
            DiodeStage.Table = Utils.MovingAve(DiodeStage.Table, (int)(DiodeStage.Table.Length / 200.0));
            DiodeStage.Table = Table.Upsample(DiodeStage.Table, 100000);
            LowpassFilter = new Lowpass1((float)Samplerate);
            HpOutput = new Highpass1((float)Samplerate);

            // initialize all blocks
            UpdateAll();
        }
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - Testbed";
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = false;
            DevInfo.Name = "Testbed";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = Container.IsSynth ? DeviceType.Generator : DeviceType.Effect;
            DevInfo.Version = 1000;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = Container.GetDisplay(i);
                p.Index = (uint)i;
                if (Container.ParameterNames != null && Container.ParameterNames.Length > i)
                    p.Name = Container.ParameterNames[i];
                else
                    p.Name = "Param " + i;
                p.Steps = 0;
                p.Value = Container.Parameters[i];
                ParameterInfo[i] = p;
            }
        }
        public void InitializeDevice()
        {
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.DeviceID = "Analog Window - NetSynth";
            DevInfo.EditorHeight = (Controller.View != null) ? (int)Controller.View.Height : 400;
            DevInfo.EditorWidth = (Controller.View != null) ? (int)Controller.View.Width : 800;
            DevInfo.HasEditor = true;
            DevInfo.Name = "NetSynth Software Synthesizer";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Generator;
            DevInfo.Version = 1000;
            DevInfo.VstId = 1;

            //PortInfo[0].Direction = PortDirection.Input;
            //PortInfo[0].Name = "Stereo Input";
            //PortInfo[0].NumberOfChannels = 2;

            PortInfo[0].Direction = PortDirection.Output;
            PortInfo[0].Name = "Stereo Output";
            PortInfo[0].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = "Parameter";
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
                //UpdateParameterDisplay(i, 0.5);
            }
        }
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - Smash Master";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = false;
            DevInfo.Name = "Smash Master";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1000;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.5";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.5;
                ParameterInfo[i] = p;
            }

            Hp1 = new Highpass1((float)Samplerate);
            LpNoise = new Lowpass1((float)Samplerate);
            GainTF = new Gain(this.Samplerate);
            PostGain = new postGain(Samplerate);
            SaturateLP = new Lowpass1((float)Samplerate);
            ClipperHP = new Highpass1((float)Samplerate);

            Clipper = new LUT();
            Clipper.ReadRecord(Tables.D1N914TF.Split('\n'));
            Clipper.Table = Tables.Upsample(Clipper.Table, 100000);

            Tonestack = new Tonestack((float)Samplerate);
            TF2 = new TF2(Samplerate);
            Contour = new Contour(Samplerate);
            OutHP = new Highpass1((float)Samplerate);
            OutLP = new Lowpass1((float)Samplerate);

            // 16Hz, remove DC bias from input
            Hp1.SetParam(0, 16f);
            LpNoise.SetParam(0, 3500f);
            ClipperHP.SetParam(0, 10f);
            SaturateLP.SetParam(0, 15000);
            Tonestack.FenderMode = true;
            Tonestack.setComponents(0.022e-6, 0.22e-6, 0.022e-6, 1000, 5e6, 6.8e3, 25e3, 1e3, 100e3);
            OutHP.SetParam(0, 30f);

            // initialize all blocks
            UpdateAll();
        }
        public void InitializeDevice()
        {
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.DeviceID = "Analog Window - Interstellar IPC Plugin";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = false;
            DevInfo.Name = "Interstellar IPC Plugin";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1000;
            DevInfo.VstId = 456812594;

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for (int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
            }

            SetParameter(P_Volume, 0.5);

            string prc = @"C:\Src\_Tree\Audio\OscAP\OscAPGain\bin\x86\Debug\OscAPGain.exe";
            Driver = new OscAP.HostDriver(prc);
        }
示例#21
0
 public RXG100()
 {
     Samplerate = 48000;
     DevInfo = new DeviceInfo();
     ParameterInfo = new Parameter[NUM_PARAMS];
     PortInfo = new Port[2];
 }
示例#22
0
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - RXG100";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = 0;
            DevInfo.EditorWidth = 0;
            DevInfo.HasEditor = true;
            DevInfo.Name = "RXG100 Amp Simulator";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1001;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Stereo Input";
            PortInfo[0].NumberOfChannels = 2;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for(int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.0";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.0;
                ParameterInfo[i] = p;
            }

            LowpassInput = new Lowpass1((float)Samplerate);

            // Channel A
            TF1A = new TF1(Samplerate);
            Stage1A = new LUT();
            //Stage1A.ReadFile(@"c:\Randall_stage2_2_tf.txt");
            Stage1A.ReadRecord(Tables.Stage2_2TF);
            Stage1A.Table = Utils.MovingAve(Stage1A.Table, (int)(Stage1A.Table.Length / 100.0));
            Stage1A.Table = Tables.Upsample(Stage1A.Table, 100000);

            TF2A = new TF2(Samplerate);
            Stage2A = new LUT();
            //Stage2A.ReadFile(@"c:\Randall_stage2_2_tf.txt");
            Stage2A.ReadRecord(Tables.Stage2_2TF);
            Stage2A.Table = Utils.MovingAve(Stage2A.Table, (int)(Stage2A.Table.Length / 100.0));
            Stage2A.Table = Tables.Upsample(Stage2A.Table, 100000);

            PostVolumeHpA = new Highpass1((float)Samplerate);
            TFPresA = new TFPres(Samplerate);
            TonestackA = new Tonestack((float)Samplerate);

            // Channel B
            TF1B = new TF1((float)Samplerate);
            TF1xB = new TF12((float)Samplerate);
            Stage1B = new LUT();
            //Stage1B.ReadFile(@"C:\Src\_Tree\Audio\jVST\src\jDSP\RaDall\Randall_stage1_cap_simulated_tf.txt");
            Stage1B.ReadRecord(Tables.Stage1CapSimulatedTF);
            Stage1B.Table = Utils.MovingAve(Stage1B.Table, (int)(Stage1B.Table.Length / 200.0));
            Stage1B.Table = Tables.Upsample(Stage1B.Table, 100000);

            TF2B = new TF2((float)Samplerate);
            Stage2B = new LUT();
            //Stage2B.ReadFile(@"C:\Src\_Tree\Audio\jVST\src\jDSP\RaDall\Randall_stage2_simulated_tf.txt");
            Stage2B.ReadRecord(Tables.Stage2SimulatedTF);
            Stage2B.Table = Utils.MovingAve(Stage2B.Table, (int)(Stage2B.Table.Length / 200.0));
            Stage2B.Table = Tables.Upsample(Stage2B.Table, 100000);

            ClipperZenerB = new LUT();
            //ClipperZenerB.ReadFile(@"C:\Src\_Tree\Audio\jVST\src\jDSP\RaDall\Randall_zener_tf.txt");
            ClipperZenerB.ReadRecord(Tables.ZenerTF);
            ClipperZenerB.Table = Utils.MovingAve(ClipperZenerB.Table, (int)(ClipperZenerB.Table.Length / 200.0));
            ClipperZenerB.Table = Tables.Upsample(ClipperZenerB.Table, 100000);

            ClipperDiodeB = new LUT();
            //ClipperDiodeB.ReadFile(@"C:\Src\_Tree\Audio\jVST\src\jDSP\RaDall\1N914_tf.txt");
            ClipperDiodeB.ReadRecord(Tables.D1N914TF);
            ClipperDiodeB.Table = Utils.MovingAve(ClipperDiodeB.Table, (int)(ClipperDiodeB.Table.Length / 200.0));
            ClipperDiodeB.Table = Tables.Upsample(ClipperDiodeB.Table, 100000);

            TFVolumeB = new TFVolume((float)Samplerate);
            TFPresB = new TFPres((float)Samplerate);
            TonestackB = new Tonestack((float)Samplerate);

            h3 = new Highpass1((float)Samplerate);
            hipassZenerB = new Highpass1((float)Samplerate);

            LowpassOutput = new Lowpass1((float)Samplerate);

            TonestackA.setComponents(0.200e-9f, 0.022e-6f, 0.02e-6f, 1e3f, 500e3f, 47e3f, 500e3f, 20e3f, 500e3f);
            TonestackB.setComponents(0.200e-9f, 0.022e-6f, 0.02e-6f, 1e3f, 500e3f, 47e3f, 500e3f, 20e3f, 500e3f);

            SetSampleRate(Samplerate);

            Editor = new Editor();
            Editor.Instance = this;

            DevInfo.EditorHeight = Editor.Height;
            DevInfo.EditorWidth = Editor.Width;

            for(int i = 0; i < ParameterInfo.Length; i++)
            {
                SetParam(i, 0.51);
            }
        }
        /// <summary>
        /// Accepts an array of Parameters and returns their values in a serialized format.
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static byte[] SerializeParameters(Parameter[] parameters)
        {
            parameters = parameters.OrderBy(x => x.Index).ToArray();

            string output = "";
            foreach (var p in parameters)
                output += p.Value.ToString(System.Globalization.CultureInfo.InvariantCulture) + ", ";

            return Encoding.UTF8.GetBytes(output);
        }
示例#24
0
        public void InitializeDevice()
        {
            DevInfo.DeviceID = "Low Profile - Rodent.V2";
            #if DEBUG
            DevInfo.DeviceID = DevInfo.DeviceID + " - Dev";
            #endif
            DevInfo.Developer = "Valdemar Erlingsson";
            DevInfo.EditorHeight = e.Height;
            DevInfo.EditorWidth = e.Width;
            DevInfo.HasEditor = true;
            DevInfo.Name = "Rodent.V2 Beta 4";
            DevInfo.ProgramCount = 1;
            DevInfo.Type = DeviceType.Effect;
            DevInfo.Version = 1004;
            DevInfo.VstId = DeviceUtilities.GenerateIntegerId(DevInfo.DeviceID);

            PortInfo[0].Direction = PortDirection.Input;
            PortInfo[0].Name = "Mono Input";
            PortInfo[0].NumberOfChannels = 1;

            PortInfo[1].Direction = PortDirection.Output;
            PortInfo[1].Name = "Stereo Output";
            PortInfo[1].NumberOfChannels = 2;

            for(int i = 0; i < ParameterInfo.Length; i++)
            {
                var p = new Parameter();
                p.Display = "0.49";
                p.Index = (uint)i;
                p.Name = ParameterNames[i];
                p.Steps = 0;
                p.Value = 0.49;
                ParameterInfo[i] = p;
            }

            Hipass1 = new Highpass1((float)Samplerate);
            Lowpass1 = new Lowpass1((float)Samplerate);
            Gain = new TFGain((float)Samplerate);
            HipassDC = new Highpass1((float)Samplerate);
            /*Clipper = new LUT();
            Clipper.ReadRecord(Tables.D1N914TF.Split('\n'));
            Clipper.Table = Tables.Upsample(Clipper.Table, 100000);*/
            Clipper = new SplineInterpolator(Splines.D1N914TF);

            /*Clipper2 = new LUT();
            Clipper2.ReadRecord(Tables.LEDTF.Split('\n'));
            Clipper2.Table = Tables.Upsample(Clipper2.Table, 100000);*/
            Clipper2 = new SplineInterpolator(Splines.LEDTF);

            Filter = new Lowpass1((float)Samplerate);
            Hipass3 = new Highpass1((float)Samplerate);

            // Frequency of 0.01uF cap + 1k + 1Meg = 7.227 Hz
            Hipass1.SetParam(0, 10f + (float)Math.Round(ParameterInfo[P_TIGHT].Value) * 300f);
            // Low pass rolloff because of 1n cap, estimate
            Lowpass1.SetParam(0, 5000f);
            // This is the cap after the gain, just some value to remove DC offset
            HipassDC.SetParam(0, 10f);
            // Final cutoff frequency ~ 7.7Hz
            Hipass3.SetParam(0, 7.7f);

            SetParam(P_ON, 1.0);

            // initialize all blocks
            UpdateAll();

            e.UpdateParameters();
        }