apply method

double apply({
  1. required double amplitude,
  2. required int sampleRate,
})

Implementation

double apply({
  required double amplitude,
  required int sampleRate,
}) {
  if (!enabled) return amplitude;

  final double twoPi = 2 * pi;
  _phase += twoPi * pulseFrequency / sampleRate;
  if (_phase > twoPi) _phase -= twoPi;

  final double cycle = _phase / twoPi;

  return cycle < dutyCycle ? amplitude : 0.0;
}