public void TestReadFile() { var l = new LUT(); l.ReadFile("1N914_tf.txt"); var v = l.GetValue(8.0f); Assert.AreEqual(0.6785316, v, 0.000001); v = l.GetValue(0.0f); Assert.AreEqual(0.0, v, 0.0003); }
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.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 - 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); } }
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 2"; 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.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); Clipper2 = new LUT(); Clipper2.ReadRecord(Tables.LEDTF.Split('\n')); Clipper2.Table = Tables.Upsample(Clipper2.Table, 100000); 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(); }