MidiScope/Application/src/main/java/com/example/android/common/midi/synth/SawOscillator.java [19:70]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class SawOscillator extends SynthUnit {
    private float mPhase = 0.0f;
    private float mPhaseIncrement = 0.01f;
    private float mFrequency = 0.0f;
    private float mFrequencyScaler = 1.0f;
    private float mAmplitude = 1.0f;

    public void setPitch(float pitch) {
        float freq = (float) pitchToFrequency(pitch);
        setFrequency(freq);
    }

    public void setFrequency(float frequency) {
        mFrequency = frequency;
        updatePhaseIncrement();
    }

    private void updatePhaseIncrement() {
        mPhaseIncrement = 2.0f * mFrequency * mFrequencyScaler / 48000.0f;
    }

    public void setAmplitude(float amplitude) {
        mAmplitude = amplitude;
    }

    public float getAmplitude() {
        return mAmplitude;
    }

    public float getFrequencyScaler() {
        return mFrequencyScaler;
    }

    public void setFrequencyScaler(float frequencyScaler) {
        mFrequencyScaler = frequencyScaler;
        updatePhaseIncrement();
    }

    float incrementWrapPhase() {
        mPhase += mPhaseIncrement;
        while (mPhase > 1.0) {
            mPhase -= 2.0;
        }
        while (mPhase < -1.0) {
            mPhase += 2.0;
        }
        return mPhase;
    }

    @Override
    public float render() {
        return incrementWrapPhase() * mAmplitude;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



MidiSynth/Application/src/main/java/com/example/android/common/midi/synth/SawOscillator.java [19:70]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class SawOscillator extends SynthUnit {
    private float mPhase = 0.0f;
    private float mPhaseIncrement = 0.01f;
    private float mFrequency = 0.0f;
    private float mFrequencyScaler = 1.0f;
    private float mAmplitude = 1.0f;

    public void setPitch(float pitch) {
        float freq = (float) pitchToFrequency(pitch);
        setFrequency(freq);
    }

    public void setFrequency(float frequency) {
        mFrequency = frequency;
        updatePhaseIncrement();
    }

    private void updatePhaseIncrement() {
        mPhaseIncrement = 2.0f * mFrequency * mFrequencyScaler / 48000.0f;
    }

    public void setAmplitude(float amplitude) {
        mAmplitude = amplitude;
    }

    public float getAmplitude() {
        return mAmplitude;
    }

    public float getFrequencyScaler() {
        return mFrequencyScaler;
    }

    public void setFrequencyScaler(float frequencyScaler) {
        mFrequencyScaler = frequencyScaler;
        updatePhaseIncrement();
    }

    float incrementWrapPhase() {
        mPhase += mPhaseIncrement;
        while (mPhase > 1.0) {
            mPhase -= 2.0;
        }
        while (mPhase < -1.0) {
            mPhase += 2.0;
        }
        return mPhase;
    }

    @Override
    public float render() {
        return incrementWrapPhase() * mAmplitude;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



