public SineWave(NAudio.Wave.WaveProvider32 provider) { // build a wave lookup tables for efficient calculations Table = new float[TABLE_SIZE]; for (int i = 0; i < TABLE_SIZE; i++) { Table[i] = (float)Math.Sin(i * Math.PI * 2.0 / (double)TABLE_SIZE); } this.provider = provider; // initialize variables to reasonable values frequency = 1000; phase_delta = (float)TABLE_SIZE * 1000 / (float)provider.WaveFormat.SampleRate; delta_percent = 1; SmoothTransition = true; }
public TriangleWave(NAudio.Wave.WaveProvider32 provider) { // build a wave lookup tables for efficient calculations Table = new float[TABLE_SIZE]; for (int i = 0; i < TABLE_SIZE; i++) { Table[i] = i < TABLE_SIZE / 2 ? 1.0f - 2.0f * i / (TABLE_SIZE / 2.0f) : -1.0f + 2.0f * (i - TABLE_SIZE / 2.0f) / (TABLE_SIZE / 2.0f); } this.provider = provider; // initialize variables to reasonable values frequency = 1000; phase_delta = (float)TABLE_SIZE * 1000 / (float)provider.WaveFormat.SampleRate; delta_percent = 1; SmoothTransition = false; }