def set_waveform(color, waveform: required!(:waveform),
                            cycles: required!(:cycles),
                            stream: 0,
                            transient: true,
                            period: 1.0,
                            skew_ratio: 0.5,
                            acknowledge: false)
      send_message(Protocol::Light::SetWaveform.new(
        color: color.to_hsbk,
        waveform: waveform,
        cycles: cycles,
        stream: stream,
        transient: transient,
        period: (period * 1_000).to_i,
        skew_ratio: (skew_ratio * 65535).round - 32768,
      ), acknowledge: acknowledge)
    end
def set_waveform(color, waveform: required!(:waveform),
                            cycles: required!(:cycles),
                            stream: 0,
                            transient: true,
                            period: 1.0,
                            skew_ratio: 0.5,
                            acknowledge: false)
      send_message(Protocol::Light::SetWaveform.new(
        color: color.to_hsbk,
        waveform: waveform,
        cycles: cycles,
        stream: stream,
        transient: transient,
        period: (period * 1_000).to_i,
        skew_ratio: (skew_ratio * 65535).round - 32768,
      ), acknowledge: acknowledge)
    end
Attempts to apply a waveform to the light(s) asynchronously.
 @note Don't use this directly.
 @api private