diff --git a/adafruit_led_animation/animation/pulse.py b/adafruit_led_animation/animation/pulse.py
index 7038ce2..ec1373d 100644
--- a/adafruit_led_animation/animation/pulse.py
+++ b/adafruit_led_animation/animation/pulse.py
@@ -39,7 +39,7 @@ class Pulse(Animation):
     :param period: Period to pulse the LEDs over.  Default 5.
     :param breath: Duration to hold minimum and maximum intensity levels. Default 0.
     :param min_intensity: Lowest brightness level of the pulse. Default 0.
-    :param max_intensity: Highest brightness elvel of the pulse. Default 1.
+    :param max_intensity: Highest brightness level of the pulse. Default 1.
     """
 
     # pylint: disable=too-many-arguments
@@ -80,3 +80,15 @@ def reset(self):
         )
 
         self._generator = pulse_generator(self._period, self, dotstar_pwm=dotstar)
+
+    @property
+    def period(self):
+        """
+        Period to pulse the LEDs over in seconds
+        """
+        return self._period
+
+    @period.setter
+    def period(self, new_value):
+        self._period = new_value
+        self.reset()
diff --git a/adafruit_led_animation/animation/sparklepulse.py b/adafruit_led_animation/animation/sparklepulse.py
index b85f644..00133a7 100644
--- a/adafruit_led_animation/animation/sparklepulse.py
+++ b/adafruit_led_animation/animation/sparklepulse.py
@@ -74,3 +74,21 @@ def draw(self):
 
     def after_draw(self):
         self.show()
+
+    @property
+    def period(self):
+        """
+        Period to pulse the LEDs over in seconds
+        """
+        return self._period
+
+    @period.setter
+    def period(self, new_value):
+        self._period = new_value
+        self.reset()
+
+    def reset(self):
+        dotstar = len(self.pixel_object) == 4 and isinstance(
+            self.pixel_object[0][-1], float
+        )
+        self._generator = pulse_generator(self._period, self, dotstar_pwm=dotstar)