Accord.Audio.Generators.SquareGenerator.Generate C# (CSharp) Method

Generate() public method

Generates a signal.
public Generate ( int samples ) : Signal
samples int
return Signal
        public Signal Generate(int samples)
        {
            Signal signal = new Signal(Channels, samples, SamplingRate, Format);

            if (Format == SampleFormat.Format32BitIeeeFloat)
            {
                unsafe
                {
                    float* dst = (float*)signal.Data.ToPointer();

                    float p = (float)(Frequency / SamplingRate);
                    float a = 2f * (float)Amplitude;

                    for (int i = 0; i < signal.Length; i++)
                    {
                        float q = i * p;
                        float t = a * (q - (float)Math.Round(q));

                        for (int c = 0; c < signal.Channels; c++, dst++)
                            *dst = t;
                    }
                }
            }

            return signal;
        }