Sunday, April 19, 2020

Optimizations in sequencer core

There's an updated version, 0.0.30.001, which will process complex modulation setups significantly faster, due to some sorely-needed optimizations in the sequencer core. If you occasionally get the error "Sequencer Callback took too long" this version may help. Basically the sequencer was doing three dumb things:

  1. Muted tracks were processing their modulators, pointlessly.
  2. Modulator tracks were processing their modulators, pointlessly.
  3. If a mute modulator evaluated true, the track's remaining modulators were evaluated, pointlessly.

All three of these were wasting precious time in the callback thread for no good reason. Large projects often develop subtle flaws like this, due to iterative design over long periods of time. Periodic performance checks and code reviews are a must.

No comments:

Post a Comment

Correct offset modulation for non-modulator tracks

In previous versions offset modulation was signed for modulators and unsigned for non-modulators, because the latter case was implemented v...