Thank you for releasing this API officially!
You ask for feedback but in fact you have already shipped the implementation and will therefore be unable to make any changes.
Anyway, a few comments on this new interface:
The Pulse graphs in the primer are wrong. The implementation in fact starts out with the current color (like all the other waveforms do).
Unfortunately, it would have been better for Pulse to actually work like the graphs currently show. For long running effects (like a 1s flash every minute) it is really noticeable that the color does not change immediately.
skew_ratio is a bit weird, it would have been easier to work with just two durations, one for low and one for high.
A way to stop the waveform is missing. Setting a solid color is insufficient because a different client might have started the waveform and we cannot know which value to revert to.
The SetWaveform message is completely redundant and just adds complexity.