Exemple #1
0
 public Func <Time, Frequency, double, Phase, Phasor> WaveForm(Time t)
 => IsLfoRingModulate
         ? WaveForms.Detune(
     WaveFormVolume(FromName(WF1, Harmonic1), Volume1),
     WaveFormVolume(FromName(WF2, Modulate(IsLfoRoutedToHarmonic, t, Harmonic2)), Volume2), LFO)
         : WaveForms.Add(
     WaveFormVolume(FromName(WF1, Harmonic1), Volume1),
     WaveFormVolume(FromName(WF2, Modulate(IsLfoRoutedToHarmonic, t, Harmonic2)), Volume2));
Exemple #2
0
        public Func <float, float> getFunctionByType(WaveForms type)
        {
            switch (type)
            {
            case WaveForms.Sine:
                return(x => (float)Math.Sin(x * 2 * Math.PI));

            case WaveForms.Sawtooth:
                return(x => (float)(Math.Atan(Math.Tan(x * Math.PI)) * 2 / Math.PI));

            case WaveForms.Square:
                return(x => Math.Sin(x * 2 * Math.PI) > 0 ? 1.0f : -1.0f);

            case WaveForms.Triangle:
                return(x => (float)(Math.Asin(Math.Sin(x * 2 * Math.PI)) * (2.0 / Math.PI)));

            case WaveForms.Noise:
                return(x => (float)random.NextDouble() * 2 - 1);

            default:
                return(x => 0);
            }
        }