process method

void process()

Implementation

void process() {
  if (!_active) {
    return;
  }

  _processedSampleCount += synthesizer.blockSize;

  var currentTime = _processedSampleCount / synthesizer.sampleRate;

  if (currentTime < _delay) {
    _value = 0;
  } else {
    var phase = ((currentTime - _delay) % _period) / _period;
    if (phase < 0.25) {
      _value = 4 * phase;
    } else if (phase < 0.75) {
      _value = 4 * (0.5 - phase);
    } else {
      _value = 4 * (phase - 1.0);
    }
  }
}