# Add swing to successive calls to do/end block

``

    with_swing  shift (beats), pulse (number), tick (symbol)

Runs block within a `time_warp` except for once every `pulse` consecutive runs (defaulting to 4). When used for rhythmical purposes this results in one in every `pulse` calls of the block being ‘on beat’ and the rest shifted forward or backwards in time by `shift` beats.

Introduced in v3.0

## Options

shift: | How much time to delay/forward the block. Greater values produce more emphasised swing. Defaults to 0.1 beats.
pulse: | How often to apply the swing. Defaults to 4.
tick: | A key for the tick with which to count pulses. Override this if you have more than one `with_swing` block in your `live_loop` or thread to stop them interfering with each other.
offset: | Count offset - before modding the count with the pulse size - integer offset to add to the result of calling `tick` with the specified tick key (via the `tick:` opt)

## Examples

# Example 1
``
    live_loop :foo do
      with_swing 0.1 do
        sample :elec_beep
      end
      sleep 0.25
    end
| ``
    # plays the :elec_beep sample late except for every 4th time
# Example 2
``
    live_loop :foo do
      with_swing -0.1 do
        sample :elec_beep
      end
      sleep 0.25
    end
| ``
    # plays the :elec_beep sample slightly early
    # except for every 4th time
# Example 3
``
    live_loop :foo do
      with_swing -0.1, pulse: 8 do
        sample :elec_beep
      end
      sleep 0.25
    end
| ``
    # plays the :elec_beep sample slightly early
    # except for every 8th time
# Example 4
``
    live_loop :foo do
      with_swing 0.14, tick: :a do
        sample :elec_beep
      end

      with_swing -0.1, tick: :b do
        sample :elec_beep, rate: 2
      end
      sleep 0.25
    end
| ``
    # Use unique tick names if you plan on using with_swing
    # more than once in any given live_loop or thread.

    # plays the :elec_beep sample slightly late
    # except for every 4th time

    # plays the :elec_beep sample at double rate
    #  slightly early except for every 4th time
# Example 5
``
    live_loop :foo do
      with_swing 0.1 do
        cue :tick
      end
      sleep 0.25
    end

    live_loop :bar do
      sync :tick
      sample :elec_beep

    end
| ``
    # send out cue messages with swing timing

    # sync on the swing cue messages to bring the swing into
    # another live loop (sync will match the timing and clock of
    # the sending live loop)