public override List <SignalSample> GetSamples()
        {
            SawGenerator  saw     = new SawGenerator(0.1d, 5d, -1d);
            SignalSampler sampler = new SignalSampler(saw);

            return(sampler.GetSamples(20d, 0.1d));
        }
예제 #2
0
        public static float[] CreateTable(int size, WaveformEnum type)
        {
            Generator generator;

            if (type == WaveformEnum.Sine)
            {
                generator = new SineGenerator(new GeneratorDescriptor());
            }
            else if (type == WaveformEnum.Square)
            {
                generator = new SquareGenerator(new GeneratorDescriptor());
            }
            else if (type == WaveformEnum.Triangle)
            {
                generator = new TriangleGenerator(new GeneratorDescriptor());
            }
            else if (type == WaveformEnum.Saw)
            {
                generator = new SawGenerator(new GeneratorDescriptor());
            }
            else if (type == WaveformEnum.WhiteNoise)
            {
                generator = new WhiteNoiseGenerator(new GeneratorDescriptor());
            }
            else
            {
                return(null);
            }
            float[] table = new float[size];
            double  phase, increment;

            phase     = generator.StartPhase;
            increment = generator.Period / size;
            for (int x = 0; x < table.Length; x++)
            {
                table[x] = generator.GetValue(phase);
                phase   += increment;
            }
            return(table);
        }