Timing is correct now! Forgot to update samples_per_tick when parsing the 0xf effect.