diff --git a/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc b/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc index 3544238..55a44f6 100644 Binary files a/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc and b/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/__init__.cpython-313.pyc b/component/widget_filter/__pycache__/__init__.cpython-313.pyc index 38b90c4..e4f8884 100644 Binary files a/component/widget_filter/__pycache__/__init__.cpython-313.pyc and b/component/widget_filter/__pycache__/__init__.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/audio_filter_componet.cpython-313.pyc b/component/widget_filter/__pycache__/audio_filter_componet.cpython-313.pyc index 88b4017..e6435b6 100644 Binary files a/component/widget_filter/__pycache__/audio_filter_componet.cpython-313.pyc and b/component/widget_filter/__pycache__/audio_filter_componet.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/checkbox_header.cpython-313.pyc b/component/widget_filter/__pycache__/checkbox_header.cpython-313.pyc index b09ea10..d176b66 100644 Binary files a/component/widget_filter/__pycache__/checkbox_header.cpython-313.pyc and b/component/widget_filter/__pycache__/checkbox_header.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/list_table_config.cpython-313.pyc b/component/widget_filter/__pycache__/list_table_config.cpython-313.pyc new file mode 100644 index 0000000..9e78fb1 Binary files /dev/null and b/component/widget_filter/__pycache__/list_table_config.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/resources.cpython-313.pyc b/component/widget_filter/__pycache__/resources.cpython-313.pyc index acd43b8..760073e 100644 Binary files a/component/widget_filter/__pycache__/resources.cpython-313.pyc and b/component/widget_filter/__pycache__/resources.cpython-313.pyc differ diff --git a/component/widget_filter/audio_filter_componet.py b/component/widget_filter/audio_filter_componet.py index fe02c87..a9c229a 100644 --- a/component/widget_filter/audio_filter_componet.py +++ b/component/widget_filter/audio_filter_componet.py @@ -5,14 +5,17 @@ from PySide6.QtCore import Qt, Signal, QEvent from PySide6.QtGui import QPainter, QColor, QPen, QBrush, QPainterPath, QIcon, QPixmap from PySide6.QtCore import QFile -from component.widget_filter.Ui_widget import Ui_Widget -# from Ui_widget import Ui_Widget +# from component.widget_filter.Ui_widget import Ui_Widget +from Ui_widget import Ui_Widget -from component.widget_filter.checkbox_header import SCheckBoxHeaderView +# from component.widget_filter.checkbox_header import SCheckBoxHeaderView + + +from checkbox_header import SCheckBoxHeaderView from typing import List, Dict, Optional, Any -import component.widget_filter.resources +# import component.widget_filter.resources class ReadOnlyDelegate(QStyledItemDelegate): def createEditor(self, parent, option, index): @@ -162,6 +165,10 @@ class AudioFilterWidget(QWidget): self.filter_types = ["PEAK", "LOWPASS", "HIGHPASS", "ALLPASS"] + # 添加配置映射字典 + self.current_mapping = {} + self.current_channel = None + # 初始化UI self.setup_table() self.setup_connections() @@ -172,6 +179,190 @@ class AudioFilterWidget(QWidget): def set_channel_name(self, channel_name: str): self.channel_name = channel_name + def set_channel(self, channel_name: str): + """设置当前通道并更新映射""" + from list_table_config import table_config + + if channel_name in table_config: + self.current_channel = channel_name + self.current_mapping = table_config[channel_name] + + def get_all_params(self) -> Dict[str, Any]: + """获取所有参数及其映射值""" + if not self.current_mapping: + return {} + + result = {} + + # 获取基础参数 + base_params = { + 'delay_data1': self.ui.lineEdit_11.text(), + 'vol_data1': self.ui.lineEdit_10.text(), + 'mix_right_data1': self.ui.lineEdit_13.text(), + 'mix_left_data1': self.ui.lineEdit_12.text() + } + + # 遍历前4个映射项(基础参数) + for item in self.current_mapping[:4]: + param_name = list(item.values())[0] # 获取映射名称 + param_key = list(item.keys())[0] # 获取原始键名 + if param_key in base_params: + result[param_name] = float(base_params[param_key]) if base_params[param_key] else 0.0 + + # 获取滤波器参数 + for row in range(self.ui.tableWidget.rowCount()): + map_index = row + 4 # 前4项是基础参数 + if map_index >= len(self.current_mapping): + break + + filter_map = self.current_mapping[map_index] + print(f"aaaa filter_map: {filter_map}") + filter_key = list(filter_map.keys())[0] # 获取 Filter_X + param_names = filter_map[filter_key] # 获取参数名称列表 + + # 获取滤波器参数值 + freq = self.ui.tableWidget.item(row, 3) + q = self.ui.tableWidget.item(row, 4) + gain = self.ui.tableWidget.item(row, 5) + slope = self.ui.tableWidget.item(row, 6) + filter_type_combo = self.ui.tableWidget.cellWidget(row, 2) + + # 确保参数名称列表长度正确 + if len(param_names) != 5: + print(f"Warning: Invalid parameter names list for {filter_key}: {param_names}") + continue + + # 设置频率参数 + if freq and freq.text(): + try: + result[param_names[0]] = float(freq.text()) + except ValueError: + result[param_names[0]] = 0.0 + + # 设置Q值参数 + if q and q.text(): + try: + result[param_names[1]] = float(q.text()) + except ValueError: + result[param_names[1]] = 0.0 + + # 设置增益参数 + if gain and gain.text(): + try: + result[param_names[2]] = float(gain.text()) + except ValueError: + result[param_names[2]] = 0.0 + + # 设置斜率参数 + if slope and slope.text(): + try: + result[param_names[3]] = float(slope.text()) + except ValueError: + result[param_names[3]] = 0.0 + + # 设置滤波器类型 + if filter_type_combo: + result[param_names[4]] = filter_type_combo.currentText() + + return result + + def set_all_params(self, params: Dict[str, Any]): + """设置所有参数""" + if not self.channel_id: + return + + # 设置基础参数 + delay_key = f'delay_data{self.channel_id}' + vol_key = f'vol_data{self.channel_id}' + mix_right_key = f'mix_right_data{self.channel_id}' + mix_left_key = f'mix_left_data{self.channel_id}' + + if delay_key in params: + self.ui.lineEdit_11.setText(str(params[delay_key])) + if vol_key in params: + self.ui.lineEdit_10.setText(str(params[vol_key])) + if mix_right_key in params: + self.ui.lineEdit_13.setText(str(params[mix_right_key])) + if mix_left_key in params: + self.ui.lineEdit_12.setText(str(params[mix_left_key])) + + # 获取所有滤波器参数的键 + filter_params = {} + for key in params: + if any(key.startswith(prefix) for prefix in [f'fc{self.channel_id}_', f'q{self.channel_id}_', + f'gain{self.channel_id}_', f'slope{self.channel_id}_']): + filter_num = int(key.split('_')[-1]) + if filter_num not in filter_params: + filter_params[filter_num] = {} + param_type = key.split('_')[0][:-len(str(self.channel_id))] # 移除channel_id + filter_params[filter_num][param_type] = params[key] + + # 设置滤波器参数 + for filter_num, filter_data in filter_params.items(): + row = filter_num - 1 # 转换为0基索引 + + # 确保表格有足够的行 + while self.ui.tableWidget.rowCount() <= row: + self._on_add_filter_clicked() + + # 创建并设置复选框 + container = QWidget() + layout = QHBoxLayout() + layout.setContentsMargins(0, 0, 0, 0) + layout.setAlignment(Qt.AlignCenter) + checkbox = QCheckBox() + checkbox.setChecked(True) # 默认选中 + + # 添加复选框样式 + checkbox_style = """ + QCheckBox { + background-color: transparent; + spacing: 0px; + } + QCheckBox::indicator { + width: 24px; + height: 24px; + border: none; + background: transparent; + } + QCheckBox::indicator:checked { + background-color: #346792; + image: url(:/images/checkbox_checked.png); + } + QCheckBox::indicator:unchecked { + border-color: #FFFFFF; + image: url(:/images/checkbox_unchecked.png); + } + """ + checkbox.setStyleSheet(checkbox_style) + layout.addWidget(checkbox) + container.setLayout(layout) + self.ui.tableWidget.setCellWidget(row, 0, container) + + # 连接复选框信号 + checkbox.clicked.connect(lambda checked, r=row: self._on_checkbox_clicked(r, checked)) + + # 设置滤波器参数 + if 'fc' in filter_data: + item = QTableWidgetItem(str(filter_data['fc'])) + item.setTextAlignment(Qt.AlignCenter) + self.ui.tableWidget.setItem(row, 3, item) + + if 'q' in filter_data: + item = QTableWidgetItem(str(filter_data['q'])) + item.setTextAlignment(Qt.AlignCenter) + self.ui.tableWidget.setItem(row, 4, item) + + if 'gain' in filter_data: + item = QTableWidgetItem(str(filter_data['gain'])) + item.setTextAlignment(Qt.AlignCenter) + self.ui.tableWidget.setItem(row, 5, item) + + if 'slope' in filter_data: + item = QTableWidgetItem(str(filter_data['slope'])) + item.setTextAlignment(Qt.AlignCenter) + self.ui.tableWidget.setItem(row, 6, item) + def setup_connections(self): """设置信号连接""" # 表格选择变化 @@ -530,11 +721,35 @@ if __name__ == "__main__": }) widget.set_param_data({ - 'delay_data1': 0.0, - 'ENT_volume_data1': 0.0, - 'ENT_mx_right_data': 0.0, - 'ENT_mix_left_data': 0.0 + 'delay_data1': 30, + 'ENT_volume_data1': 2, + 'ENT_mx_right_data': 3, + 'ENT_mix_left_data': 4 }) + + # widget.set_channel_id(1) + widget.set_channel("channel_2") + + # test_params = { + # 'delay_data2': 30.0, + # 'vol_data2': 2.0, + # 'mix_right_data2': 3.0, + # 'mix_left_data2': 4.0, + # 'fc2_1': 100.0, + # 'q2_1': 1.0, + # 'gain2_1': 0.0, + # 'slope2_1': 1.0, + # 'fc2_2': 1000.0, + # 'q2_2': 0.7, + # 'gain2_2': 0.0, + # 'slope2_2': 2.0 + # }# 设置参数 + + # widget.set_all_params(test_params) + + # 获取所有参数 + # params = widget.get_all_params() + # print("aaaa params:", params) widget.show() sys.exit(app.exec()) \ No newline at end of file diff --git a/component/widget_filter/list_table_config.py b/component/widget_filter/list_table_config.py new file mode 100644 index 0000000..6d16de6 --- /dev/null +++ b/component/widget_filter/list_table_config.py @@ -0,0 +1,158 @@ +table_config = { + "channel_1": [ + {"delay_data1": "delay_data1"}, + {"vol_data1": "vol_data1"}, + {"mix_right_data1": "mix_right_data1"}, + {"mix_left_data1": "mix_left_data1"}, + {"Filter_1": ["fc1_1", "q1_1", "gain1_1", "slope1_1", "filterType1_1"]}, + {"Filter_2": ["fc1_2", "q1_2", "gain1_2", "slope1_2", "filterType1_2"]}, + {"Filter_3": ["fc1_3", "q1_3", "gain1_3", "slope1_3", "filterType1_3"]}, + {"Filter_4": ["fc1_4", "q1_4", "gain1_4", "slope1_4", "filterType1_4"]}, + {"Filter_5": ["fc1_5", "q1_5", "gain1_5", "slope1_5", "filterType1_5"]}, + {"Filter_6": ["fc1_6", "q1_6", "gain1_6", "slope1_6", "filterType1_6"]}, + {"Filter_7": ["fc1_7", "q1_7", "gain1_7", "slope1_7", "filterType1_7"]}, + {"Filter_8": ["fc1_8", "q1_8", "gain1_8", "slope1_8", "filterType1_8"]}, + {"Filter_9": ["fc1_9", "q1_9", "gain1_9", "slope1_9", "filterType1_9"]}, + {"Filter_10": ["fc1_10", "q1_10", "gain1_10", "slope1_10", "filterType1_10"]}, + {"Filter_11": ["fc1_11", "q1_11", "gain1_11", "slope1_11", "filterType1_11"]}, + {"Filter_12": ["fc1_12", "q1_12", "gain1_12", "slope1_12", "filterType1_12"]}, + {"Filter_13": ["fc1_13", "q1_13", "gain1_13", "slope1_13", "filterType1_13"]}, + {"Filter_14": ["fc1_14", "q1_14", "gain1_14", "slope1_14", "filterType1_14"]}, + {"Filter_15": ["fc1_15", "q1_15", "gain1_15", "slope1_15", "filterType1_15"]}, + {"Filter_16": ["fc1_16", "q1_16", "gain1_16", "slope1_16", "filterType1_16"]}, + {"Filter_17": ["fc1_17", "q1_17", "gain1_17", "slope1_17", "filterType1_17"]}, + {"Filter_18": ["fc1_18", "q1_18", "gain1_18", "slope1_18", "filterType1_18"]}, + {"Filter_19": ["fc1_19", "q1_19", "gain1_19", "slope1_19", "filterType1_19"]}, + {"Filter_20": ["fc1_20", "q1_20", "gain1_20", "slope1_20", "filterType1_20"]} + ], + "channel_2": [ + {"delay_data1": "delay_data2"}, + {"vol_data1": "vol_data2"}, + {"mix_right_data1": "mix_right_data2"}, + {"mix_left_data1": "mix_left_data2"}, + {"Filter_1": ["fc2_1", "q2_1", "gain2_1", "slope2_1", "filterType2_1"]}, + {"Filter_2": ["fc2_2", "q2_2", "gain2_2", "slope2_2", "filterType2_2"]}, + {"Filter_3": ["fc2_3", "q2_3", "gain2_3", "slope2_3", "filterType2_3"]}, + {"Filter_4": ["fc2_4", "q2_4", "gain2_4", "slope2_4", "filterType2_4"]}, + {"Filter_5": ["fc2_5", "q2_5", "gain2_5", "slope2_5", "filterType2_5"]}, + {"Filter_6": ["fc2_6", "q2_6", "gain2_6", "slope2_6", "filterType2_6"]}, + {"Filter_7": ["fc2_7", "q2_7", "gain2_7", "slope2_7", "filterType2_7"]}, + {"Filter_8": ["fc2_8", "q2_8", "gain2_8", "slope2_8", "filterType2_8"]}, + {"Filter_9": ["fc2_9", "q2_9", "gain2_9", "slope2_9", "filterType2_9"]}, + {"Filter_10": ["fc2_10", "q2_10", "gain2_10", "slope2_10", "filterType2_10"]}, + {"Filter_11": ["fc2_11", "q2_11", "gain2_11", "slope2_11", "filterType2_11"]}, + {"Filter_12": ["fc2_12", "q2_12", "gain2_12", "slope2_12", "filterType2_12"]}, + {"Filter_13": ["fc2_13", "q2_13", "gain2_13", "slope2_13", "filterType2_13"]}, + {"Filter_14": ["fc2_14", "q2_14", "gain2_14", "slope2_14", "filterType2_14"]}, + {"Filter_15": ["fc2_15", "q2_15", "gain2_15", "slope2_15", "filterType2_15"]}, + {"Filter_16": ["fc2_16", "q2_16", "gain2_16", "slope2_16", "filterType2_16"]}, + {"Filter_17": ["fc2_17", "q2_17", "gain2_17", "slope2_17", "filterType2_17"]}, + {"Filter_18": ["fc2_18", "q2_18", "gain2_18", "slope2_18", "filterType2_18"]}, + {"Filter_19": ["fc2_19", "q2_19", "gain2_19", "slope2_19", "filterType2_19"]}, + {"Filter_20": ["fc2_20", "q2_20", "gain2_20", "slope2_20", "filterType2_20"]} + ], + "channel_3": [ + {"delay_data1": "delay_data3"}, + {"vol_data1": "vol_data3"}, + {"mix_right_data1": "mix_right_data3"}, + {"mix_left_data1": "mix_left_data3"}, + {"Filter_1": ["fc3_1", "q3_1", "gain3_1", "slope3_1", "filterType3_1"]}, + {"Filter_2": ["fc3_2", "q3_2", "gain3_2", "slope3_2", "filterType3_2"]}, + {"Filter_3": ["fc3_3", "q3_3", "gain3_3", "slope3_3", "filterType3_3"]}, + {"Filter_4": ["fc3_4", "q3_4", "gain3_4", "slope3_4", "filterType3_4"]}, + {"Filter_5": ["fc3_5", "q3_5", "gain3_5", "slope3_5", "filterType3_5"]}, + {"Filter_6": ["fc3_6", "q3_6", "gain3_6", "slope3_6", "filterType3_6"]}, + {"Filter_7": ["fc3_7", "q3_7", "gain3_7", "slope3_7", "filterType3_7"]}, + {"Filter_8": ["fc3_8", "q3_8", "gain3_8", "slope3_8", "filterType3_8"]}, + {"Filter_9": ["fc3_9", "q3_9", "gain3_9", "slope3_9", "filterType3_9"]}, + {"Filter_10": ["fc3_10", "q3_10", "gain3_10", "slope3_10", "filterType3_10"]}, + {"Filter_11": ["fc3_11", "q3_11", "gain3_11", "slope3_11", "filterType3_11"]}, + {"Filter_12": ["fc3_12", "q3_12", "gain3_12", "slope3_12", "filterType3_12"]}, + {"Filter_13": ["fc3_13", "q3_13", "gain3_13", "slope3_13", "filterType3_13"]}, + {"Filter_14": ["fc3_14", "q3_14", "gain3_14", "slope3_14", "filterType3_14"]}, + {"Filter_15": ["fc3_15", "q3_15", "gain3_15", "slope3_15", "filterType3_15"]}, + {"Filter_16": ["fc3_16", "q3_16", "gain3_16", "slope3_16", "filterType3_16"]}, + {"Filter_17": ["fc3_17", "q3_17", "gain3_17", "slope3_17", "filterType3_17"]}, + {"Filter_18": ["fc3_18", "q3_18", "gain3_18", "slope3_18", "filterType3_18"]}, + {"Filter_19": ["fc3_19", "q3_19", "gain3_19", "slope3_19", "filterType3_19"]}, + {"Filter_20": ["fc3_20", "q3_20", "gain3_20", "slope3_20", "filterType3_20"]} + ], + "channel_4": [ + {"delay_data1": "delay_data4"}, + {"vol_data1": "vol_data4"}, + {"mix_right_data1": "mix_right_data4"}, + {"mix_left_data1": "mix_left_data4"}, + {"Filter_1": ["fc4_1", "q4_1", "gain4_1", "slope4_1", "filterType4_1"]}, + {"Filter_2": ["fc4_2", "q4_2", "gain4_2", "slope4_2", "filterType4_2"]}, + {"Filter_3": ["fc4_3", "q4_3", "gain4_3", "slope4_3", "filterType4_3"]}, + {"Filter_4": ["fc4_4", "q4_4", "gain4_4", "slope4_4", "filterType4_4"]}, + {"Filter_5": ["fc4_5", "q4_5", "gain4_5", "slope4_5", "filterType4_5"]}, + {"Filter_6": ["fc4_6", "q4_6", "gain4_6", "slope4_6", "filterType4_6"]}, + {"Filter_7": ["fc4_7", "q4_7", "gain4_7", "slope4_7", "filterType4_7"]}, + {"Filter_8": ["fc4_8", "q4_8", "gain4_8", "slope4_8", "filterType4_8"]}, + {"Filter_9": ["fc4_9", "q4_9", "gain4_9", "slope4_9", "filterType4_9"]}, + {"Filter_10": ["fc4_10", "q4_10", "gain4_10", "slope4_10", "filterType4_10"]}, + {"Filter_11": ["fc4_11", "q4_11", "gain4_11", "slope4_11", "filterType4_11"]}, + {"Filter_12": ["fc4_12", "q4_12", "gain4_12", "slope4_12", "filterType4_12"]}, + {"Filter_13": ["fc4_13", "q4_13", "gain4_13", "slope4_13", "filterType4_13"]}, + {"Filter_14": ["fc4_14", "q4_14", "gain4_14", "slope4_14", "filterType4_14"]}, + {"Filter_15": ["fc4_15", "q4_15", "gain4_15", "slope4_15", "filterType4_15"]}, + {"Filter_16": ["fc4_16", "q4_16", "gain4_16", "slope4_16", "filterType4_16"]}, + {"Filter_17": ["fc4_17", "q4_17", "gain4_17", "slope4_17", "filterType4_17"]}, + {"Filter_18": ["fc4_18", "q4_18", "gain4_18", "slope4_18", "filterType4_18"]}, + {"Filter_19": ["fc4_19", "q4_19", "gain4_19", "slope4_19", "filterType4_19"]}, + {"Filter_20": ["fc4_20", "q4_20", "gain4_20", "slope4_20", "filterType4_20"]} + ], + "channel_5": [ + {"delay_data1": "delay_data5"}, + {"vol_data1": "vol_data5"}, + {"mix_right_data1": "mix_right_data5"}, + {"mix_left_data1": "mix_left_data5"}, + {"Filter_1": ["fc5_1", "q5_1", "gain5_1", "slope5_1", "filterType5_1"]}, + {"Filter_2": ["fc5_2", "q5_2", "gain5_2", "slope5_2", "filterType5_2"]}, + {"Filter_3": ["fc5_3", "q5_3", "gain5_3", "slope5_3", "filterType5_3"]}, + {"Filter_4": ["fc5_4", "q5_4", "gain5_4", "slope5_4", "filterType5_4"]}, + {"Filter_5": ["fc5_5", "q5_5", "gain5_5", "slope5_5", "filterType5_5"]}, + {"Filter_6": ["fc5_6", "q5_6", "gain5_6", "slope5_6", "filterType5_6"]}, + {"Filter_7": ["fc5_7", "q5_7", "gain5_7", "slope5_7", "filterType5_7"]}, + {"Filter_8": ["fc5_8", "q5_8", "gain5_8", "slope5_8", "filterType5_8"]}, + {"Filter_9": ["fc5_9", "q5_9", "gain5_9", "slope5_9", "filterType5_9"]}, + {"Filter_10": ["fc5_10", "q5_10", "gain5_10", "slope5_10", "filterType5_10"]}, + {"Filter_11": ["fc5_11", "q5_11", "gain5_11", "slope5_11", "filterType5_11"]}, + {"Filter_12": ["fc5_12", "q5_12", "gain5_12", "slope5_12", "filterType5_12"]}, + {"Filter_13": ["fc5_13", "q5_13", "gain5_13", "slope5_13", "filterType5_13"]}, + {"Filter_14": ["fc5_14", "q5_14", "gain5_14", "slope5_14", "filterType5_14"]}, + {"Filter_15": ["fc5_15", "q5_15", "gain5_15", "slope5_15", "filterType5_15"]}, + {"Filter_16": ["fc5_16", "q5_16", "gain5_16", "slope5_16", "filterType5_16"]}, + {"Filter_17": ["fc5_17", "q5_17", "gain5_17", "slope5_17", "filterType5_17"]}, + {"Filter_18": ["fc5_18", "q5_18", "gain5_18", "slope5_18", "filterType5_18"]}, + {"Filter_19": ["fc5_19", "q5_19", "gain5_19", "slope5_19", "filterType5_19"]}, + {"Filter_20": ["fc5_20", "q5_20", "gain5_20", "slope5_20", "filterType5_20"]} + ], + "channel_6": [ + {"delay_data1": "delay_data6"}, + {"vol_data1": "vol_data6"}, + {"mix_right_data1": "mix_right_data6"}, + {"mix_left_data1": "mix_left_data6"}, + {"Filter_1": ["fc6_1", "q6_1", "gain6_1", "slope6_1", "filterType6_1"]}, + {"Filter_2": ["fc6_2", "q6_2", "gain6_2", "slope6_2", "filterType6_2"]}, + {"Filter_3": ["fc6_3", "q6_3", "gain6_3", "slope6_3", "filterType6_3"]}, + {"Filter_4": ["fc6_4", "q6_4", "gain6_4", "slope6_4", "filterType6_4"]}, + {"Filter_5": ["fc6_5", "q6_5", "gain6_5", "slope6_5", "filterType6_5"]}, + {"Filter_6": ["fc6_6", "q6_6", "gain6_6", "slope6_6", "filterType6_6"]}, + {"Filter_7": ["fc6_7", "q6_7", "gain6_7", "slope6_7", "filterType6_7"]}, + {"Filter_8": ["fc6_8", "q6_8", "gain6_8", "slope6_8", "filterType6_8"]}, + {"Filter_9": ["fc6_9", "q6_9", "gain6_9", "slope6_9", "filterType6_9"]}, + {"Filter_10": ["fc6_10", "q6_10", "gain6_10", "slope6_10", "filterType6_10"]}, + {"Filter_11": ["fc6_11", "q6_11", "gain6_11", "slope6_11", "filterType6_11"]}, + {"Filter_12": ["fc6_12", "q6_12", "gain6_12", "slope6_12", "filterType6_12"]}, + {"Filter_13": ["fc6_13", "q6_13", "gain6_13", "slope6_13", "filterType6_13"]}, + {"Filter_14": ["fc6_14", "q6_14", "gain6_14", "slope6_14", "filterType6_14"]}, + {"Filter_15": ["fc6_15", "q6_15", "gain6_15", "slope6_15", "filterType6_15"]}, + {"Filter_16": ["fc6_16", "q6_16", "gain6_16", "slope6_16", "filterType6_16"]}, + {"Filter_17": ["fc6_17", "q6_17", "gain6_17", "slope6_17", "filterType6_17"]}, + {"Filter_18": ["fc6_18", "q6_18", "gain6_18", "slope6_18", "filterType6_18"]}, + {"Filter_19": ["fc6_19", "q6_19", "gain6_19", "slope6_19", "filterType6_19"]}, + {"Filter_20": ["fc6_20", "q6_20", "gain6_20", "slope6_20", "filterType6_20"]} + ] +}