public MultitapDiffuser(int bufferSize) { this.len = bufferSize; this.buffer = new double[bufferSize]; this.output = new double[bufferSize]; index = 0; Seeds = new ShaRandom().Generate(1, 100).ToArray(); }
public AllpassDiffuser(int bufferSize, int samplerate) { filters = Enumerable.Range(0, MaxStageCount).Select(x => new ModulatedAllpass(bufferSize, 100)).ToArray(); output = new double[bufferSize]; Seeds = new ShaRandom().Generate(23456, MaxStageCount * 3).ToArray(); Stages = 1; Samplerate = samplerate; }
public ReverbChannel(int bufferSize, int samplerate) { parameters = new Dictionary<Parameter, double>(); foreach (var value in Enum.GetValues(typeof(Parameter)).Cast<Parameter>()) parameters[value] = 0.0; preDelay = new ModulatedDelay(bufferSize, 10000); multitap = new MultitapDiffuser(bufferSize); diffuser = new AllpassDiffuser(bufferSize, samplerate) { ModulationEnabled = true }; lines = Enumerable.Range(0, 12).Select(x => new DelayLine(bufferSize, samplerate)).ToArray(); lineCount = 8; perLineGain = GetPerLineGain(); highPass = new Hp1(samplerate) { CutoffHz = 20 }; lowPass = new Lp1(samplerate) { CutoffHz = 20000 }; rand = new ShaRandom(); tempBuffer = new double[bufferSize]; outBuffer = new double[bufferSize]; delayLineSeeds = rand.Generate(12345, lines.Length * 3).ToArray(); this.samplerate = samplerate; }