         h (mod (* t deg-per-ms) 360)]
     (color/hsv* h 1.0 v)))
 
+(def ^:private ^:const adjustment-rate
+  "Rate at which the deg-per-ms changes per-ms"
+  0.0005)
+
+(def ^:private ^:const max-rate
+  ""
+  (/ 1.0 1000))
+
+(def ^:private ^:const min-rate
+  ""
+  0.0)
+
 (defrecord PulseMode
   [colors alpha deg-per-ms accum-time]
 


  (update
   [this event]
    (if (= :time/tick (:type event))
      (assoc this 
        :accum-time
        (+ (:accum-time this) (:elapsed event))
        :colors
        (generate-color (:accum-time this) alpha deg-per-ms))
      this)
    )

  (render
   [this pixel]

(defn pulse
  [color]
  "Creates a pulse mode starting at the given color/hsv"
  (PulseMode. color 1.0 (/ 6.0 100000.0) 0))
