Add double buffering to PulsePositionOutput