def METHOD_NAME(self, config):
    self.background_color = np.array(
        parse_color(self._config["background_color"]), dtype=float
    )
    self.flash_color = np.array(
        parse_color(self._config["flash_color"]), dtype=float
    )
    self.cycle_threshold = self._config["pulse_period"] * (
        self._config["pulse_ratio"]
    )
    if self._config["capture"] and self.graph_callbacks is None:
        # start a capture sequence, generate base graphs
        self.graph_callbacks = Graph(
            "Metro Callback Timing", ["Audio", "Render"], points=5000
        )
        self.cores = psutil.cpu_count()
        # zero the local timer and prime cpu measurement
        self.last_cpu = timeit.default_timer()
        psutil.cpu_percent(percpu=True)
        cpu_keys = [f"CPU {i}" for i in range(self.cores)]
        self.graph_cpu = Graph(
            "Metro CPU Usage",
            cpu_keys,
            points=1000,
            y_title="CPU %",
            y_axis_max=100.0,
        )
    elif not self._config["capture"] and self.graph_callbacks is not None:
        self.graph_callbacks.dump_graph(only_jitter=True)
        self.lock.acquire()
        if self.graph_cpu:
            self.graph_cpu.dump_graph(
                jitter=True, sub_title=f"{self._config['cpu_secs']} secs"
            )
        self.lock.release()
        self.graph_callbacks = None
        self.graph_cpu = None
    if self.graph_callbacks:
        # Y value does not matter as we are only looking at jitter
        self.graph_callbacks.append_tag("Config Update", 10.0)