    def __init__(self, effects, duration=0, clear=True, name=None):
        """
        :param effects: The list of effects to apply to this scene.
        :param duration: The number of frames in this Scene.  A value of 0 means that the Scene
            should query the Effects to find the duration.  A value of -1 means don't stop.
        :param clear: Whether to clear the Screen at the start of the Scene.
        :param name: Optional name to identify the scene.
        """
        self._effects = []
        for effect in effects:
            self.add_effect(effect, reset=False)
        self._duration = duration
        if duration == 0:
            self._duration = max(x.stop_frame for x in effects)
        self._clear = clear
        self._name = name
:param effects: The list of effects to apply to this scene.
:param duration: The number of frames in this Scene.  A value of 0 means that the Scene
should query the Effects to find the duration.  A value of -1 means don't stop.
:param clear: Whether to clear the Screen at the start of the Scene.
:param name: Optional name to identify the scene.
asciimatics/scene.py