public MultiOsc(double samplerate, int bufferSize) { OutputBuffer = new double[bufferSize]; Samplerate = samplerate; iterators = new double[9]; increments = new double[9]; incrementsDirty = true; wavetable = WavetableContext.GetWavetable(Sawtooth.WavetableName)[0]; var rand = new Random(); for (int i = 0; i < iterators.Length; i++) { iterators[i] = rand.NextDouble(); } }
public void SetParameter(OscParams parameter, object val) { switch (parameter) { case OscParams.Modulation: modulation = (double)val; break; case OscParams.Keytrack: keytrack = (bool)val; break; case OscParams.Note: note = (int)val; break; case OscParams.Octave: octave = (int)val; break; case OscParams.Semi: semi = (int)val; break; case OscParams.Cent: cent = (int)val; break; case OscParams.Position: TablePosition = (double)val; break; case OscParams.Phase: startPhase = (double)val; break; case OscParams.Wavetable: wavetable = WavetableContext.GetWavetable((string)val); break; } stepsizeDirty = true; }