That little "bleh" is a real p.i.t.a!
I just fiddled with that exact same thing!
This is where just the right amount of dwell (extra samples) and perfect timing between the colors and the galvos is super critical.
James.
There are a couple of possibilities, and I agree that dwell is important part. DPSS lasers have a warm up time with analog modulation. I think the warm up time is making the problem look worse. The next thing is sample shifting.
Let's say I want to draw a circle with 1000 points.
I'll start from the buffer as it comes back from the graphics card
Buffer is parsed, x,y,r,g,b values are placed into an array.
x,y values are copied to sample queues that is sent to the sound card at a fixed rate
r,g,b values are shifted 5 points, then copied to their respective sample queues.
Thread grabs the buffer for next graphics frame, which is the circle again.
Meanwhile, scanners start moving, 5 points later the laser comes on, stays on for 1000 samples.
Hopefully there isn't a buffer under-run, and the thread responsible for stuffing data into the queues has managed to stuff another 1000 points in by the time its needed.
The scanners come back to the top of the circle, then start moving again. The laser shuts off 5 samples later, and powers back on 5 samples after that. Hence the gap.