diff --git a/.idea/misc.xml b/.idea/misc.xml index 23231ce..1d3ce46 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,7 @@ + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..a2f9cd7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/app.py b/app.py index 5cf30e8..36d95b9 100644 --- a/app.py +++ b/app.py @@ -1,3 +1,5 @@ +import time + from component.widget_main.widget_main import Widget_Main from component.widget_channel.widget_channel import Widget_Channel from component.widget_card.widget_card import Widget_Card @@ -13,49 +15,49 @@ from PySide6.QtWidgets import QMainWindow, QPushButton, QVBoxLayout from PySide6.QtWidgets import QWidget from PySide6.QtCore import QObject + class MainWindow(QWidget): def __init__(self): super().__init__() # 初始化服务 - ServiceManager.instance().init_services("127.0.0.1", 1234) + ServiceManager.instance().init_services("192.168.5.4", 12345) # 初始化应用控制器 self.app_controller = ApplicationController.instance() - + self.widget_main = Widget_Main() self.widget_channel = Widget_Channel() self.widget_card = Widget_Card() - # self.widget_main.ui.ListWidget_vLayout.addWidget(self.widget_card) + # 添加测试按钮 + self.test_button = QPushButton("Get_All") + self.test_button.clicked.connect(self.Get_All) + self.widget_main.ui.ListWidget_vLayout.addWidget(self.test_button) + self.widget_main.ui.ListWidget_vLayout.addWidget(self.widget_card) self.widget_main.ui.Channel_hLayout.addWidget(self.widget_channel) - + self.widget_filter_list = [] self.filter_controllers = [] # 存储控制器实例 - # 添加测试按钮 - self.test_button = QPushButton("Test Communication") - self.test_button.clicked.connect(self.test_communication) - self.widget_main.ui.ListWidget_vLayout.addWidget(self.test_button) - self.create_filter_widget() self.setup_connections() - + def create_filter_widget(self): - for i in range(24): + for i in range(1, 7): # 创建widget filter_widget = AudioFilterWidget() filter_widget.set_channel_id(i) - filter_widget.set_channel_name(f"Channel {i+1}") - + filter_widget.set_channel_name(f"Channel {i}") + # 创建model和controller - model = AudioFilterModel(channel_id=i, channel_name=f"Channel {i+1}") + model = AudioFilterModel(channel_id=i, channel_name=f"Channel {i}") controller = AudioFilterController(model) controller.set_widget(filter_widget) - + # 连接控制器信号 controller.error_occurred.connect(lambda msg: print(f"Error: {msg}")) controller.state_changed.connect(lambda state: print(f"State changed: {state}")) controller.params_synced.connect(lambda: print("Params synced")) - + # 存储实例 self.widget_filter_list.append(filter_widget) self.filter_controllers.append(controller) @@ -71,18 +73,29 @@ class MainWindow(QWidget): def test_communication(self): """测试通信功能""" print("Testing communication...") - + # 测试第一个控制器的通信 if self.filter_controllers: controller = self.filter_controllers[0] - + # 测试从服务器加载数据 print("Testing load from server...") controller.load_from_server() - + # 测试同步数据到服务器 print("Testing sync to server...") - # controller.sync_to_server() + controller.sync_to_server() + + def Get_All(self): + try: + for controller in self.filter_controllers: + controller.load_from_server() + break + time.sleep(1) + print("Successfully loaded all filter data") + except Exception as e: + print(f"Error loading filter data: {e}") + if __name__ == '__main__': import sys @@ -90,7 +103,7 @@ if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() - + # # 添加测试卡片 # for i in range(1, 11): # data = CardData( @@ -99,6 +112,6 @@ if __name__ == '__main__': # description=f"这是项目 {i} 的详细描述信息,可以包含多行文本内容。这是一个较长的描述,用于测试换行效果。" # ) # main_window.widget_card.add_card_item(data) - + main_window.widget_main.show() sys.exit(app.exec()) \ No newline at end of file diff --git a/application/__pycache__/application_controller.cpython-313.pyc b/application/__pycache__/application_controller.cpython-313.pyc index 7e1b7f2..5a18b96 100644 Binary files a/application/__pycache__/application_controller.cpython-313.pyc and b/application/__pycache__/application_controller.cpython-313.pyc differ diff --git a/application/app.py b/application/app.py index c1f103c..83b943d 100644 --- a/application/app.py +++ b/application/app.py @@ -17,7 +17,7 @@ class MainWindow(QWidget): def __init__(self): super().__init__() # 初始化服务 - ServiceManager.instance().init_services("127.0.0.1", 1234) + ServiceManager.instance().init_services("192.168.5.4", 12345) # 初始化应用控制器 self.app_controller = ApplicationController.instance() @@ -33,7 +33,7 @@ class MainWindow(QWidget): # 添加测试按钮 self.test_button = QPushButton("Test Communication") - self.test_button.clicked.connect(self.test_communication) + self.test_button.clicked.connect(self.Get_All) self.widget_main.ui.ListWidget_vLayout.addWidget(self.test_button) self.create_filter_widget() @@ -84,6 +84,14 @@ class MainWindow(QWidget): print("Testing sync to server...") controller.sync_to_server() + def Get_All(self): + try: + for controller in self.filter_controllers: + controller.load_from_server() + print("Successfully loaded all filter data") + except Exception as e: + print(f"Error loading filter data: {e}") + if __name__ == '__main__': import sys from PySide6.QtWidgets import QApplication diff --git a/application/application_controller.py b/application/application_controller.py index 32df8e3..ba64014 100644 --- a/application/application_controller.py +++ b/application/application_controller.py @@ -52,18 +52,22 @@ class ApplicationController(QObject): def _on_service_request_complete(self, signal_proxy: SignalProxy): """服务请求完成的槽函数""" # 找到对应的controller_id - print("CCCCCC:signal_proxy.data:", signal_proxy.data) - controller_id = self._get_controller_id_for_widget(signal_proxy.widget) + + # to do:这个槽函数要实现对信号的分发,但是不执行具体的业务, + # 每个具体的控制器只用注册对应的信号,然后执行具体的业务 + # print("CCCCCC:signal_proxy.data:", signal_proxy.data) + # controller_id = self._get_controller_id_for_widget(signal_proxy.widget) - # 测试用 返回值类似这种格式 用来标机控件 - controller_id = "audio_filter" - if controller_id: - # 转发信号 - self.signal_params_updated.emit(ControllerSignalData( - controller_id=controller_id, - widget=signal_proxy.widget, - data=signal_proxy.data - )) + # # 测试用 返回值类似这种格式 用来标记控件 + # controller_id = "audio_filter" + # if controller_id: + # # 转发信号 + # self.signal_params_updated.emit(ControllerSignalData( + # controller_id=controller_id, + # widget=signal_proxy.widget, + # data=signal_proxy.data + # )) + pass def _get_controller_id_for_widget(self, widget: QObject) -> Optional[str]: """根据widget查找对应的controller_id""" diff --git a/component/__pycache__/__init__.cpython-313.pyc b/component/__pycache__/__init__.cpython-313.pyc index e4bbba2..9df0975 100644 Binary files a/component/__pycache__/__init__.cpython-313.pyc and b/component/__pycache__/__init__.cpython-313.pyc differ diff --git a/component/widget_card/__pycache__/__init__.cpython-313.pyc b/component/widget_card/__pycache__/__init__.cpython-313.pyc index e25210c..2fdf8bb 100644 Binary files a/component/widget_card/__pycache__/__init__.cpython-313.pyc and b/component/widget_card/__pycache__/__init__.cpython-313.pyc differ diff --git a/component/widget_card/__pycache__/ui_widget_card.cpython-313.pyc b/component/widget_card/__pycache__/ui_widget_card.cpython-313.pyc index 48edafa..ab88145 100644 Binary files a/component/widget_card/__pycache__/ui_widget_card.cpython-313.pyc and b/component/widget_card/__pycache__/ui_widget_card.cpython-313.pyc differ diff --git a/component/widget_card/__pycache__/widget_card.cpython-313.pyc b/component/widget_card/__pycache__/widget_card.cpython-313.pyc index a6552c6..dd75518 100644 Binary files a/component/widget_card/__pycache__/widget_card.cpython-313.pyc and b/component/widget_card/__pycache__/widget_card.cpython-313.pyc differ diff --git a/component/widget_channel/__pycache__/__init__.cpython-313.pyc b/component/widget_channel/__pycache__/__init__.cpython-313.pyc index 0197430..5afb715 100644 Binary files a/component/widget_channel/__pycache__/__init__.cpython-313.pyc and b/component/widget_channel/__pycache__/__init__.cpython-313.pyc differ diff --git a/component/widget_channel/__pycache__/ui_widget_channel.cpython-313.pyc b/component/widget_channel/__pycache__/ui_widget_channel.cpython-313.pyc index 1c6bc04..04439ab 100644 Binary files a/component/widget_channel/__pycache__/ui_widget_channel.cpython-313.pyc and b/component/widget_channel/__pycache__/ui_widget_channel.cpython-313.pyc differ diff --git a/component/widget_channel/__pycache__/widget_channel.cpython-313.pyc b/component/widget_channel/__pycache__/widget_channel.cpython-313.pyc index 16e1436..db37820 100644 Binary files a/component/widget_channel/__pycache__/widget_channel.cpython-313.pyc and b/component/widget_channel/__pycache__/widget_channel.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc b/component/widget_filter/__pycache__/Ui_widget.cpython-313.pyc index 55a44f6..f41c12b 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 e4f8884..a3637de 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 82ee817..b47a619 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__/audio_filter_controller.cpython-313.pyc b/component/widget_filter/__pycache__/audio_filter_controller.cpython-313.pyc index de67961..b3869ac 100644 Binary files a/component/widget_filter/__pycache__/audio_filter_controller.cpython-313.pyc and b/component/widget_filter/__pycache__/audio_filter_controller.cpython-313.pyc differ diff --git a/component/widget_filter/__pycache__/audio_filter_model.cpython-313.pyc b/component/widget_filter/__pycache__/audio_filter_model.cpython-313.pyc index 0364d19..6ef247a 100644 Binary files a/component/widget_filter/__pycache__/audio_filter_model.cpython-313.pyc and b/component/widget_filter/__pycache__/audio_filter_model.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 d176b66..b09ea10 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__/resources.cpython-313.pyc b/component/widget_filter/__pycache__/resources.cpython-313.pyc index 760073e..835b1ae 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 e145b53..9c9172b 100644 --- a/component/widget_filter/audio_filter_componet.py +++ b/component/widget_filter/audio_filter_componet.py @@ -16,9 +16,8 @@ from typing import List, Dict, Optional, Any from component.widget_filter.Ui_widget import Ui_Widget from component.widget_filter.checkbox_header import SCheckBoxHeaderView -from component.widget_filter.audio_filter_model import AudioFilterModel +from component.widget_filter.audio_filter_model import AudioFilterModel, FilterParams, FilterType from component.widget_filter.Ui_widget import Ui_Widget - import component.widget_filter.resources @@ -463,17 +462,17 @@ class AudioFilterWidget(QWidget): """处理参数值变化""" if hasattr(self, 'model'): try: - float_value = float(value) + # float_value = float(value) # 更新model中的通道参数 channel_params = self.model.channel_params if param == 'delay': - channel_params.delay = float_value + channel_params.delay = value elif param == 'volume': - channel_params.volume = float_value + channel_params.volume = value elif param == 'mix_right': - channel_params.mix_right = float_value + channel_params.mix_right = value elif param == 'mix_left': - channel_params.mix_left = float_value + channel_params.mix_left = value self.model.set_channel_params(channel_params) except ValueError: @@ -529,7 +528,7 @@ class AudioFilterWidget(QWidget): self.ui.tableWidget.setCellWidget(row, 2, combo) # 创建新的滤波器项,使用唯一的默认名称 - self._update_table_row(row, { + filter_data = { 'filter_name': f"Filter_{row}", # 使用行号创建唯一名称 'filter_type': self.filter_types[0], 'enabled': True, @@ -537,7 +536,22 @@ class AudioFilterWidget(QWidget): 'q': 0, 'gain': 0, 'slope': 0 - }) + } + + # 更新表格 + self._update_table_row(row, filter_data) + + # 更新model数据 + if hasattr(self, 'model'): + filter_params = FilterParams( + filter_type=FilterType[self.filter_types[0]], + frequency=float(filter_data['freq']), + q_value=float(filter_data['q']), + gain=float(filter_data['gain']), + slope=float(filter_data['slope']), + enabled=filter_data['enabled'] + ) + self.model.add_filter(filter_params) # 发送信号 self.filter_added.emit(self.filter_types[0]) @@ -713,10 +727,10 @@ class AudioFilterWidget(QWidget): # 连接模型信号到视图更新方法 self.model.dataChanged.connect(self._updateFromModel) - self.model.filterAdded.connect(self._handleFilterAdded) - self.model.filterRemoved.connect(self._handleFilterRemoved) - self.model.filterUpdated.connect(self._handleFilterUpdated) - self.model.channelParamsChanged.connect(self._handleChannelParamsChanged) + # self.model.filterAdded.connect(self._handleFilterAdded) + # self.model.filterRemoved.connect(self._handleFilterRemoved) + # self.model.filterUpdated.connect(self._handleFilterUpdated) + # self.model.channelParamsChanged.connect(self._handleChannelParamsChanged) # 设置初始数据 self.set_channel_id(model.channel_id) diff --git a/component/widget_filter/audio_filter_controller.py b/component/widget_filter/audio_filter_controller.py index 981a5e5..e54a0d6 100644 --- a/component/widget_filter/audio_filter_controller.py +++ b/component/widget_filter/audio_filter_controller.py @@ -8,6 +8,7 @@ from param_struct_test.params_service import ParamsService from component.widget_filter.audio_filter_model import AudioFilterModel from component.widget_filter.audio_filter_componet import AudioFilterWidget from component.widget_filter.audio_filter_model import FilterParams, FilterType, ChannelParams +from param_struct_test.params_service import Response class AudioControllerState(Enum): """音频控制器状态""" @@ -78,6 +79,44 @@ class AudioFilterController(QObject): # self.widget.filter_added.connect(self._on_widget_filter_added) # self.widget.filter_deleted.connect(self._on_widget_filter_deleted) # self.widget.filter_enabled_changed.connect(self._on_widget_filter_enabled_changed) + self.widget.send_params_clicked.connect(self.sync_to_server) + + def _convert_struct_data_to_model(self, struct_data: Dict[str, Any]) -> Dict[str, Any]: + """将结构体格式数据转换为模型数据""" + channel_params = ChannelParams( + delay=struct_data.get(f'tuning_parameters.delay_parameters[{self.model.channel_id-1}].delay_data', 0.0), + volume=struct_data.get(f'tuning_parameters.volume_parameters[{self.model.channel_id-1}].vol_data', 0.0), + mix_right=struct_data.get(f'tuning_parameters.mix_parameters[{self.model.channel_id-1}].mix_right_data', 0.0), + mix_left=struct_data.get(f'tuning_parameters.mix_parameters[{self.model.channel_id-1}].mix_left_data', 0.0) + ) + + filters = [] + base_idx = (self.model.channel_id - 1) * 20 # 当前通道的均衡器起始索引 + print("channel_id:", self.model.channel_id) + # 遍历当前通道的20个均衡器单元 + for i in range(20): + idx = base_idx + i + fc_key = f'tuning_parameters.eq_parameters[{idx}].fc' + + # 如果找不到该索引的频率参数,说明没有更多的均衡器数据了 + if fc_key not in struct_data: + break + + filter_params = FilterParams( + filter_type=FilterType(struct_data.get(f'tuning_parameters.eq_parameters[{idx}].filterType', 0)), + frequency=struct_data.get(f'tuning_parameters.eq_parameters[{idx}].fc', 0.0), + q_value=struct_data.get(f'tuning_parameters.eq_parameters[{idx}].q', 0.0), + gain=struct_data.get(f'tuning_parameters.eq_parameters[{idx}].gain', 0.0), + slope=struct_data.get(f'tuning_parameters.eq_parameters[{idx}].slope', 0.0) + ) + filters.append(filter_params) + + return { + 'channel_id': self.model.channel_id, + 'channel_name': self.model.channel_name, + 'channel_params': channel_params, + 'filters': filters + } @Slot(ControllerSignalData) def _on_params_updated(self, signal_data: ControllerSignalData): @@ -87,66 +126,143 @@ class AudioFilterController(QObject): try: self.state = AudioControllerState.UPDATING - data = signal_data.data - - # 使用ChannelParams类创建实例 - channel_params = ChannelParams( - delay=data.get('delay_data1', 0.0), - volume=data.get('vol_data1', 0.0), - mix_right=data.get('mix_right_data1', 0.0), - mix_left=data.get('mix_left_data1', 0.0) - ) + struct_data = signal_data.data + # 将结构体数据转换为模型数据 + model_data = self._convert_struct_data_to_model(struct_data) + # 更新通道参数 - self.model.set_channel_params(channel_params) - - # 清除现有滤波器 - self.model.filters.clear() # 使用filters列表的clear方法替代clear_filters - - # 解析并添加滤波器参数 - # filter_index = 1 - # while True: - # filter_type_value = data.get(f'filterType1_{filter_index}') - # if filter_type_value is None: - # break - - # # 使用FilterParams类创建实例 - # filter_params = FilterParams( - # filter_type=FilterType(filter_type_value), - # frequency=data.get(f'fc1_{filter_index}', 0.0), - # q_value=data.get(f'q1_{filter_index}', 0.0), - # gain=data.get(f'gain1_{filter_index}', 0.0), - # slope=data.get(f'slope1_{filter_index}', 0.0) - # ) - # self.model.add_filter(filter_params) - # filter_index += 1 - + self.model.set_channel_params(model_data['channel_params']) + print("model_filters:", self.model.filters) + # 清除现有滤波器并添加新的滤波器 + self.model.filters.clear() + if model_data['channel_id'] == self.model.channel_id: + for filter_param in model_data['filters']: + # self.model.add_filter(filter_param) + self.model.filters.append(filter_param) + self.params_synced.emit() self.state = AudioControllerState.IDLE except Exception as e: self.state = AudioControllerState.ERROR - self.error_occurred.emit(f"Error updating params: {str(e)}") + self.error_occurred.emit(f"更新参数时发生错误: {str(e)}") + + def _on_params_updated_new(self, res: Response): + """处理来自ApplicationController的参数更新信号""" + try: + self.state = AudioControllerState.UPDATING + struct_data = res.data + + # 将结构体数据转换为模型数据 + model_data = self._convert_struct_data_to_model(struct_data) + + # 更新通道参数 + self.model.set_channel_params(model_data['channel_params']) + # 清除现有滤波器 + self.model.filters.clear() + + if model_data['channel_id'] == self.model.channel_id: + for filter_param in model_data['filters']: + # 检查滤波器的关键参数是否都为0 + if not (filter_param.frequency == 0 and + filter_param.q_value == 0 and + filter_param.gain == 0 and + filter_param.slope == 0): + self.model.filters.append(filter_param) + + self.widget.setModel(self.model) + print("有效的滤波器数量:", len(self.model.filters)) + + except Exception as e: + self.state = AudioControllerState.ERROR + self.error_occurred.emit(f"更新参数时发生错误: {str(e)}") + + def _convert_model_data_to_struct(self, model_data: Dict[str, Any]) -> Dict[str, Any]: + """将模型数据转换为结构体格式""" + result = {} + channel_id = model_data['channel_id'] + + # 添加通道参数 + channel_params = model_data['channel_params'] + + # 混音参数 + result[f'tuning_parameters.mix_parameters[{channel_id}].ch_n'] = channel_id + result[f'tuning_parameters.mix_parameters[{channel_id}].mix_left_data'] = channel_params['mix_left'] + result[f'tuning_parameters.mix_parameters[{channel_id}].mix_right_data'] = channel_params['mix_right'] + + # 延迟参数 + result[f'tuning_parameters.delay_parameters[{channel_id}].ch_n'] = channel_id + result[f'tuning_parameters.delay_parameters[{channel_id}].delay_data'] = channel_params['delay'] + + # 音量参数 + result[f'tuning_parameters.volume_parameters[{channel_id}].ch_n'] = channel_id + result[f'tuning_parameters.volume_parameters[{channel_id}].vol_data'] = channel_params['volume'] + + # 均衡器参数 + for i, filter_param in enumerate(model_data['filters']): + base_idx = (channel_id) * 20 + i # 每个通道20个均衡器单元 + result[f'tuning_parameters.eq_parameters[{base_idx}].fc'] = filter_param['frequency'] + result[f'tuning_parameters.eq_parameters[{base_idx}].q'] = filter_param['q_value'] + result[f'tuning_parameters.eq_parameters[{base_idx}].gain'] = filter_param['gain'] + result[f'tuning_parameters.eq_parameters[{base_idx}].slope'] = filter_param['slope'] + result[f'tuning_parameters.eq_parameters[{base_idx}].filterType'] = filter_param['filter_type'].value + + return result def sync_to_server(self): """同步数据到服务器""" try: self.state = AudioControllerState.UPDATING params = self.model.get_all_data() - ServiceManager.instance().params_service.set_params(params) + # 转换数据格式 + struct_params = self._convert_model_data_to_struct(params) + print("sync_to_server:", struct_params) + ServiceManager.instance().params_service.set_params(self.widget, struct_params) except Exception as e: self.state = AudioControllerState.ERROR self.error_occurred.emit(f"Error syncing to server: {str(e)}") - + def load_from_server(self): """从服务器加载数据""" try: - print("BBBBBB:load_from_server") self.state = AudioControllerState.UPDATING - ServiceManager.instance().params_service.get_params(self.widget) + channel_id = self.model.channel_id + + # 构建需要获取的参数键列表 + param_keys = [] + + # 添加通道基本参数的键 + param_keys.extend([ + f'tuning_parameters.mix_parameters[{channel_id}].ch_n', + f'tuning_parameters.mix_parameters[{channel_id}].mix_left_data', + f'tuning_parameters.mix_parameters[{channel_id}].mix_right_data', + f'tuning_parameters.delay_parameters[{channel_id}].ch_n', + f'tuning_parameters.delay_parameters[{channel_id}].delay_data', + f'tuning_parameters.volume_parameters[{channel_id}].ch_n', + f'tuning_parameters.volume_parameters[{channel_id}].vol_data' + ]) + + # 添加当前通道的20个滤波器的所有参数键 + base_idx = (channel_id) * 20 + for i in range(20): # 固定生成20个滤波器的参数键 + idx = base_idx + i + param_keys.extend([ + f'tuning_parameters.eq_parameters[{idx}].fc', + f'tuning_parameters.eq_parameters[{idx}].q', + f'tuning_parameters.eq_parameters[{idx}].gain', + f'tuning_parameters.eq_parameters[{idx}].slope', + f'tuning_parameters.eq_parameters[{idx}].filterType' + ]) + print(f"aa param_keys:",param_keys) + ServiceManager.instance().params_service.get_params( + self.widget, + param_keys, + callback=self._on_params_updated_new + ) except Exception as e: self.state = AudioControllerState.ERROR - self.error_occurred.emit(f"Error loading from server: {str(e)}") + self.error_occurred.emit(f"从服务器加载数据时发生错误: {str(e)}") # 模型信号处理器 def _on_model_data_changed(self): diff --git a/component/widget_filter/audio_filter_model.py b/component/widget_filter/audio_filter_model.py index d3ed556..1c769c4 100644 --- a/component/widget_filter/audio_filter_model.py +++ b/component/widget_filter/audio_filter_model.py @@ -88,7 +88,7 @@ class AudioFilterModel(QObject): def add_filter(self, filter_params: FilterParams): """添加新的滤波器""" self.filters.append(filter_params) - self.filterAdded.emit(len(self.filters) - 1) + # self.filterAdded.emit(len(self.filters) - 1) self.updateData() def remove_filter(self, index: int): diff --git a/component/widget_main/__pycache__/__init__.cpython-313.pyc b/component/widget_main/__pycache__/__init__.cpython-313.pyc index 806555a..65cf329 100644 Binary files a/component/widget_main/__pycache__/__init__.cpython-313.pyc and b/component/widget_main/__pycache__/__init__.cpython-313.pyc differ diff --git a/component/widget_main/__pycache__/ui_widget_main.cpython-313.pyc b/component/widget_main/__pycache__/ui_widget_main.cpython-313.pyc index 4c57ef7..8061edf 100644 Binary files a/component/widget_main/__pycache__/ui_widget_main.cpython-313.pyc and b/component/widget_main/__pycache__/ui_widget_main.cpython-313.pyc differ diff --git a/component/widget_main/__pycache__/widget_main.cpython-313.pyc b/component/widget_main/__pycache__/widget_main.cpython-313.pyc index b1dd7b8..f6c4131 100644 Binary files a/component/widget_main/__pycache__/widget_main.cpython-313.pyc and b/component/widget_main/__pycache__/widget_main.cpython-313.pyc differ diff --git a/doc/struct_members.txt b/doc/struct_members.txt new file mode 100644 index 0000000..2a09246 --- /dev/null +++ b/doc/struct_members.txt @@ -0,0 +1,644 @@ +dataset.audio_mode: offset 0 (int32_t) +dataset.send_action: offset 4 (int32_t) +dataset.tuning_parameters.mix_parameters[0].ch_n: offset 8 (int32_t) +dataset.tuning_parameters.mix_parameters[1].ch_n: offset 20 (int32_t) +dataset.tuning_parameters.mix_parameters[2].ch_n: offset 32 (int32_t) +dataset.tuning_parameters.mix_parameters[3].ch_n: offset 44 (int32_t) +dataset.tuning_parameters.mix_parameters[4].ch_n: offset 56 (int32_t) +dataset.tuning_parameters.mix_parameters[5].ch_n: offset 68 (int32_t) +dataset.tuning_parameters.mix_parameters[0].mix_left_data: offset 12 (float) +dataset.tuning_parameters.mix_parameters[1].mix_left_data: offset 24 (float) +dataset.tuning_parameters.mix_parameters[2].mix_left_data: offset 36 (float) +dataset.tuning_parameters.mix_parameters[3].mix_left_data: offset 48 (float) +dataset.tuning_parameters.mix_parameters[4].mix_left_data: offset 60 (float) +dataset.tuning_parameters.mix_parameters[5].mix_left_data: offset 72 (float) +dataset.tuning_parameters.mix_parameters[0].mix_right_data: offset 16 (float) +dataset.tuning_parameters.mix_parameters[1].mix_right_data: offset 28 (float) +dataset.tuning_parameters.mix_parameters[2].mix_right_data: offset 40 (float) +dataset.tuning_parameters.mix_parameters[3].mix_right_data: offset 52 (float) +dataset.tuning_parameters.mix_parameters[4].mix_right_data: offset 64 (float) +dataset.tuning_parameters.mix_parameters[5].mix_right_data: offset 76 (float) +dataset.tuning_parameters.eq_parameters[0].fc: offset 80 (float) +dataset.tuning_parameters.eq_parameters[1].fc: offset 100 (float) +dataset.tuning_parameters.eq_parameters[2].fc: offset 120 (float) +dataset.tuning_parameters.eq_parameters[3].fc: offset 140 (float) +dataset.tuning_parameters.eq_parameters[4].fc: offset 160 (float) +dataset.tuning_parameters.eq_parameters[5].fc: offset 180 (float) +dataset.tuning_parameters.eq_parameters[6].fc: offset 200 (float) +dataset.tuning_parameters.eq_parameters[7].fc: offset 220 (float) +dataset.tuning_parameters.eq_parameters[8].fc: offset 240 (float) +dataset.tuning_parameters.eq_parameters[9].fc: offset 260 (float) +dataset.tuning_parameters.eq_parameters[10].fc: offset 280 (float) +dataset.tuning_parameters.eq_parameters[11].fc: offset 300 (float) +dataset.tuning_parameters.eq_parameters[12].fc: offset 320 (float) +dataset.tuning_parameters.eq_parameters[13].fc: offset 340 (float) +dataset.tuning_parameters.eq_parameters[14].fc: offset 360 (float) +dataset.tuning_parameters.eq_parameters[15].fc: offset 380 (float) +dataset.tuning_parameters.eq_parameters[16].fc: offset 400 (float) +dataset.tuning_parameters.eq_parameters[17].fc: offset 420 (float) +dataset.tuning_parameters.eq_parameters[18].fc: offset 440 (float) +dataset.tuning_parameters.eq_parameters[19].fc: offset 460 (float) +dataset.tuning_parameters.eq_parameters[20].fc: offset 480 (float) +dataset.tuning_parameters.eq_parameters[21].fc: offset 500 (float) +dataset.tuning_parameters.eq_parameters[22].fc: offset 520 (float) +dataset.tuning_parameters.eq_parameters[23].fc: offset 540 (float) +dataset.tuning_parameters.eq_parameters[24].fc: offset 560 (float) +dataset.tuning_parameters.eq_parameters[25].fc: offset 580 (float) +dataset.tuning_parameters.eq_parameters[26].fc: offset 600 (float) +dataset.tuning_parameters.eq_parameters[27].fc: offset 620 (float) +dataset.tuning_parameters.eq_parameters[28].fc: offset 640 (float) +dataset.tuning_parameters.eq_parameters[29].fc: offset 660 (float) +dataset.tuning_parameters.eq_parameters[30].fc: offset 680 (float) +dataset.tuning_parameters.eq_parameters[31].fc: offset 700 (float) +dataset.tuning_parameters.eq_parameters[32].fc: offset 720 (float) +dataset.tuning_parameters.eq_parameters[33].fc: offset 740 (float) +dataset.tuning_parameters.eq_parameters[34].fc: offset 760 (float) +dataset.tuning_parameters.eq_parameters[35].fc: offset 780 (float) +dataset.tuning_parameters.eq_parameters[36].fc: offset 800 (float) +dataset.tuning_parameters.eq_parameters[37].fc: offset 820 (float) +dataset.tuning_parameters.eq_parameters[38].fc: offset 840 (float) +dataset.tuning_parameters.eq_parameters[39].fc: offset 860 (float) +dataset.tuning_parameters.eq_parameters[40].fc: offset 880 (float) +dataset.tuning_parameters.eq_parameters[41].fc: offset 900 (float) +dataset.tuning_parameters.eq_parameters[42].fc: offset 920 (float) +dataset.tuning_parameters.eq_parameters[43].fc: offset 940 (float) +dataset.tuning_parameters.eq_parameters[44].fc: offset 960 (float) +dataset.tuning_parameters.eq_parameters[45].fc: offset 980 (float) +dataset.tuning_parameters.eq_parameters[46].fc: offset 1000 (float) +dataset.tuning_parameters.eq_parameters[47].fc: offset 1020 (float) +dataset.tuning_parameters.eq_parameters[48].fc: offset 1040 (float) +dataset.tuning_parameters.eq_parameters[49].fc: offset 1060 (float) +dataset.tuning_parameters.eq_parameters[50].fc: offset 1080 (float) +dataset.tuning_parameters.eq_parameters[51].fc: offset 1100 (float) +dataset.tuning_parameters.eq_parameters[52].fc: offset 1120 (float) +dataset.tuning_parameters.eq_parameters[53].fc: offset 1140 (float) +dataset.tuning_parameters.eq_parameters[54].fc: offset 1160 (float) +dataset.tuning_parameters.eq_parameters[55].fc: offset 1180 (float) +dataset.tuning_parameters.eq_parameters[56].fc: offset 1200 (float) +dataset.tuning_parameters.eq_parameters[57].fc: offset 1220 (float) +dataset.tuning_parameters.eq_parameters[58].fc: offset 1240 (float) +dataset.tuning_parameters.eq_parameters[59].fc: offset 1260 (float) +dataset.tuning_parameters.eq_parameters[60].fc: offset 1280 (float) +dataset.tuning_parameters.eq_parameters[61].fc: offset 1300 (float) +dataset.tuning_parameters.eq_parameters[62].fc: offset 1320 (float) +dataset.tuning_parameters.eq_parameters[63].fc: offset 1340 (float) +dataset.tuning_parameters.eq_parameters[64].fc: offset 1360 (float) +dataset.tuning_parameters.eq_parameters[65].fc: offset 1380 (float) +dataset.tuning_parameters.eq_parameters[66].fc: offset 1400 (float) +dataset.tuning_parameters.eq_parameters[67].fc: offset 1420 (float) +dataset.tuning_parameters.eq_parameters[68].fc: offset 1440 (float) +dataset.tuning_parameters.eq_parameters[69].fc: offset 1460 (float) +dataset.tuning_parameters.eq_parameters[70].fc: offset 1480 (float) +dataset.tuning_parameters.eq_parameters[71].fc: offset 1500 (float) +dataset.tuning_parameters.eq_parameters[72].fc: offset 1520 (float) +dataset.tuning_parameters.eq_parameters[73].fc: offset 1540 (float) +dataset.tuning_parameters.eq_parameters[74].fc: offset 1560 (float) +dataset.tuning_parameters.eq_parameters[75].fc: offset 1580 (float) +dataset.tuning_parameters.eq_parameters[76].fc: offset 1600 (float) +dataset.tuning_parameters.eq_parameters[77].fc: offset 1620 (float) +dataset.tuning_parameters.eq_parameters[78].fc: offset 1640 (float) +dataset.tuning_parameters.eq_parameters[79].fc: offset 1660 (float) +dataset.tuning_parameters.eq_parameters[80].fc: offset 1680 (float) +dataset.tuning_parameters.eq_parameters[81].fc: offset 1700 (float) +dataset.tuning_parameters.eq_parameters[82].fc: offset 1720 (float) +dataset.tuning_parameters.eq_parameters[83].fc: offset 1740 (float) +dataset.tuning_parameters.eq_parameters[84].fc: offset 1760 (float) +dataset.tuning_parameters.eq_parameters[85].fc: offset 1780 (float) +dataset.tuning_parameters.eq_parameters[86].fc: offset 1800 (float) +dataset.tuning_parameters.eq_parameters[87].fc: offset 1820 (float) +dataset.tuning_parameters.eq_parameters[88].fc: offset 1840 (float) +dataset.tuning_parameters.eq_parameters[89].fc: offset 1860 (float) +dataset.tuning_parameters.eq_parameters[90].fc: offset 1880 (float) +dataset.tuning_parameters.eq_parameters[91].fc: offset 1900 (float) +dataset.tuning_parameters.eq_parameters[92].fc: offset 1920 (float) +dataset.tuning_parameters.eq_parameters[93].fc: offset 1940 (float) +dataset.tuning_parameters.eq_parameters[94].fc: offset 1960 (float) +dataset.tuning_parameters.eq_parameters[95].fc: offset 1980 (float) +dataset.tuning_parameters.eq_parameters[96].fc: offset 2000 (float) +dataset.tuning_parameters.eq_parameters[97].fc: offset 2020 (float) +dataset.tuning_parameters.eq_parameters[98].fc: offset 2040 (float) +dataset.tuning_parameters.eq_parameters[99].fc: offset 2060 (float) +dataset.tuning_parameters.eq_parameters[100].fc: offset 2080 (float) +dataset.tuning_parameters.eq_parameters[101].fc: offset 2100 (float) +dataset.tuning_parameters.eq_parameters[102].fc: offset 2120 (float) +dataset.tuning_parameters.eq_parameters[103].fc: offset 2140 (float) +dataset.tuning_parameters.eq_parameters[104].fc: offset 2160 (float) +dataset.tuning_parameters.eq_parameters[105].fc: offset 2180 (float) +dataset.tuning_parameters.eq_parameters[106].fc: offset 2200 (float) +dataset.tuning_parameters.eq_parameters[107].fc: offset 2220 (float) +dataset.tuning_parameters.eq_parameters[108].fc: offset 2240 (float) +dataset.tuning_parameters.eq_parameters[109].fc: offset 2260 (float) +dataset.tuning_parameters.eq_parameters[110].fc: offset 2280 (float) +dataset.tuning_parameters.eq_parameters[111].fc: offset 2300 (float) +dataset.tuning_parameters.eq_parameters[112].fc: offset 2320 (float) +dataset.tuning_parameters.eq_parameters[113].fc: offset 2340 (float) +dataset.tuning_parameters.eq_parameters[114].fc: offset 2360 (float) +dataset.tuning_parameters.eq_parameters[115].fc: offset 2380 (float) +dataset.tuning_parameters.eq_parameters[116].fc: offset 2400 (float) +dataset.tuning_parameters.eq_parameters[117].fc: offset 2420 (float) +dataset.tuning_parameters.eq_parameters[118].fc: offset 2440 (float) +dataset.tuning_parameters.eq_parameters[119].fc: offset 2460 (float) +dataset.tuning_parameters.eq_parameters[0].q: offset 84 (float) +dataset.tuning_parameters.eq_parameters[1].q: offset 104 (float) +dataset.tuning_parameters.eq_parameters[2].q: offset 124 (float) +dataset.tuning_parameters.eq_parameters[3].q: offset 144 (float) +dataset.tuning_parameters.eq_parameters[4].q: offset 164 (float) +dataset.tuning_parameters.eq_parameters[5].q: offset 184 (float) +dataset.tuning_parameters.eq_parameters[6].q: offset 204 (float) +dataset.tuning_parameters.eq_parameters[7].q: offset 224 (float) +dataset.tuning_parameters.eq_parameters[8].q: offset 244 (float) +dataset.tuning_parameters.eq_parameters[9].q: offset 264 (float) +dataset.tuning_parameters.eq_parameters[10].q: offset 284 (float) +dataset.tuning_parameters.eq_parameters[11].q: offset 304 (float) +dataset.tuning_parameters.eq_parameters[12].q: offset 324 (float) +dataset.tuning_parameters.eq_parameters[13].q: offset 344 (float) +dataset.tuning_parameters.eq_parameters[14].q: offset 364 (float) +dataset.tuning_parameters.eq_parameters[15].q: offset 384 (float) +dataset.tuning_parameters.eq_parameters[16].q: offset 404 (float) +dataset.tuning_parameters.eq_parameters[17].q: offset 424 (float) +dataset.tuning_parameters.eq_parameters[18].q: offset 444 (float) +dataset.tuning_parameters.eq_parameters[19].q: offset 464 (float) +dataset.tuning_parameters.eq_parameters[20].q: offset 484 (float) +dataset.tuning_parameters.eq_parameters[21].q: offset 504 (float) +dataset.tuning_parameters.eq_parameters[22].q: offset 524 (float) +dataset.tuning_parameters.eq_parameters[23].q: offset 544 (float) +dataset.tuning_parameters.eq_parameters[24].q: offset 564 (float) +dataset.tuning_parameters.eq_parameters[25].q: offset 584 (float) +dataset.tuning_parameters.eq_parameters[26].q: offset 604 (float) +dataset.tuning_parameters.eq_parameters[27].q: offset 624 (float) +dataset.tuning_parameters.eq_parameters[28].q: offset 644 (float) +dataset.tuning_parameters.eq_parameters[29].q: offset 664 (float) +dataset.tuning_parameters.eq_parameters[30].q: offset 684 (float) +dataset.tuning_parameters.eq_parameters[31].q: offset 704 (float) +dataset.tuning_parameters.eq_parameters[32].q: offset 724 (float) +dataset.tuning_parameters.eq_parameters[33].q: offset 744 (float) +dataset.tuning_parameters.eq_parameters[34].q: offset 764 (float) +dataset.tuning_parameters.eq_parameters[35].q: offset 784 (float) +dataset.tuning_parameters.eq_parameters[36].q: offset 804 (float) +dataset.tuning_parameters.eq_parameters[37].q: offset 824 (float) +dataset.tuning_parameters.eq_parameters[38].q: offset 844 (float) +dataset.tuning_parameters.eq_parameters[39].q: offset 864 (float) +dataset.tuning_parameters.eq_parameters[40].q: offset 884 (float) +dataset.tuning_parameters.eq_parameters[41].q: offset 904 (float) +dataset.tuning_parameters.eq_parameters[42].q: offset 924 (float) +dataset.tuning_parameters.eq_parameters[43].q: offset 944 (float) +dataset.tuning_parameters.eq_parameters[44].q: offset 964 (float) +dataset.tuning_parameters.eq_parameters[45].q: offset 984 (float) +dataset.tuning_parameters.eq_parameters[46].q: offset 1004 (float) +dataset.tuning_parameters.eq_parameters[47].q: offset 1024 (float) +dataset.tuning_parameters.eq_parameters[48].q: offset 1044 (float) +dataset.tuning_parameters.eq_parameters[49].q: offset 1064 (float) +dataset.tuning_parameters.eq_parameters[50].q: offset 1084 (float) +dataset.tuning_parameters.eq_parameters[51].q: offset 1104 (float) +dataset.tuning_parameters.eq_parameters[52].q: offset 1124 (float) +dataset.tuning_parameters.eq_parameters[53].q: offset 1144 (float) +dataset.tuning_parameters.eq_parameters[54].q: offset 1164 (float) +dataset.tuning_parameters.eq_parameters[55].q: offset 1184 (float) +dataset.tuning_parameters.eq_parameters[56].q: offset 1204 (float) +dataset.tuning_parameters.eq_parameters[57].q: offset 1224 (float) +dataset.tuning_parameters.eq_parameters[58].q: offset 1244 (float) +dataset.tuning_parameters.eq_parameters[59].q: offset 1264 (float) +dataset.tuning_parameters.eq_parameters[60].q: offset 1284 (float) +dataset.tuning_parameters.eq_parameters[61].q: offset 1304 (float) +dataset.tuning_parameters.eq_parameters[62].q: offset 1324 (float) +dataset.tuning_parameters.eq_parameters[63].q: offset 1344 (float) +dataset.tuning_parameters.eq_parameters[64].q: offset 1364 (float) +dataset.tuning_parameters.eq_parameters[65].q: offset 1384 (float) +dataset.tuning_parameters.eq_parameters[66].q: offset 1404 (float) +dataset.tuning_parameters.eq_parameters[67].q: offset 1424 (float) +dataset.tuning_parameters.eq_parameters[68].q: offset 1444 (float) +dataset.tuning_parameters.eq_parameters[69].q: offset 1464 (float) +dataset.tuning_parameters.eq_parameters[70].q: offset 1484 (float) +dataset.tuning_parameters.eq_parameters[71].q: offset 1504 (float) +dataset.tuning_parameters.eq_parameters[72].q: offset 1524 (float) +dataset.tuning_parameters.eq_parameters[73].q: offset 1544 (float) +dataset.tuning_parameters.eq_parameters[74].q: offset 1564 (float) +dataset.tuning_parameters.eq_parameters[75].q: offset 1584 (float) +dataset.tuning_parameters.eq_parameters[76].q: offset 1604 (float) +dataset.tuning_parameters.eq_parameters[77].q: offset 1624 (float) +dataset.tuning_parameters.eq_parameters[78].q: offset 1644 (float) +dataset.tuning_parameters.eq_parameters[79].q: offset 1664 (float) +dataset.tuning_parameters.eq_parameters[80].q: offset 1684 (float) +dataset.tuning_parameters.eq_parameters[81].q: offset 1704 (float) +dataset.tuning_parameters.eq_parameters[82].q: offset 1724 (float) +dataset.tuning_parameters.eq_parameters[83].q: offset 1744 (float) +dataset.tuning_parameters.eq_parameters[84].q: offset 1764 (float) +dataset.tuning_parameters.eq_parameters[85].q: offset 1784 (float) +dataset.tuning_parameters.eq_parameters[86].q: offset 1804 (float) +dataset.tuning_parameters.eq_parameters[87].q: offset 1824 (float) +dataset.tuning_parameters.eq_parameters[88].q: offset 1844 (float) +dataset.tuning_parameters.eq_parameters[89].q: offset 1864 (float) +dataset.tuning_parameters.eq_parameters[90].q: offset 1884 (float) +dataset.tuning_parameters.eq_parameters[91].q: offset 1904 (float) +dataset.tuning_parameters.eq_parameters[92].q: offset 1924 (float) +dataset.tuning_parameters.eq_parameters[93].q: offset 1944 (float) +dataset.tuning_parameters.eq_parameters[94].q: offset 1964 (float) +dataset.tuning_parameters.eq_parameters[95].q: offset 1984 (float) +dataset.tuning_parameters.eq_parameters[96].q: offset 2004 (float) +dataset.tuning_parameters.eq_parameters[97].q: offset 2024 (float) +dataset.tuning_parameters.eq_parameters[98].q: offset 2044 (float) +dataset.tuning_parameters.eq_parameters[99].q: offset 2064 (float) +dataset.tuning_parameters.eq_parameters[100].q: offset 2084 (float) +dataset.tuning_parameters.eq_parameters[101].q: offset 2104 (float) +dataset.tuning_parameters.eq_parameters[102].q: offset 2124 (float) +dataset.tuning_parameters.eq_parameters[103].q: offset 2144 (float) +dataset.tuning_parameters.eq_parameters[104].q: offset 2164 (float) +dataset.tuning_parameters.eq_parameters[105].q: offset 2184 (float) +dataset.tuning_parameters.eq_parameters[106].q: offset 2204 (float) +dataset.tuning_parameters.eq_parameters[107].q: offset 2224 (float) +dataset.tuning_parameters.eq_parameters[108].q: offset 2244 (float) +dataset.tuning_parameters.eq_parameters[109].q: offset 2264 (float) +dataset.tuning_parameters.eq_parameters[110].q: offset 2284 (float) +dataset.tuning_parameters.eq_parameters[111].q: offset 2304 (float) +dataset.tuning_parameters.eq_parameters[112].q: offset 2324 (float) +dataset.tuning_parameters.eq_parameters[113].q: offset 2344 (float) +dataset.tuning_parameters.eq_parameters[114].q: offset 2364 (float) +dataset.tuning_parameters.eq_parameters[115].q: offset 2384 (float) +dataset.tuning_parameters.eq_parameters[116].q: offset 2404 (float) +dataset.tuning_parameters.eq_parameters[117].q: offset 2424 (float) +dataset.tuning_parameters.eq_parameters[118].q: offset 2444 (float) +dataset.tuning_parameters.eq_parameters[119].q: offset 2464 (float) +dataset.tuning_parameters.eq_parameters[0].gain: offset 88 (float) +dataset.tuning_parameters.eq_parameters[1].gain: offset 108 (float) +dataset.tuning_parameters.eq_parameters[2].gain: offset 128 (float) +dataset.tuning_parameters.eq_parameters[3].gain: offset 148 (float) +dataset.tuning_parameters.eq_parameters[4].gain: offset 168 (float) +dataset.tuning_parameters.eq_parameters[5].gain: offset 188 (float) +dataset.tuning_parameters.eq_parameters[6].gain: offset 208 (float) +dataset.tuning_parameters.eq_parameters[7].gain: offset 228 (float) +dataset.tuning_parameters.eq_parameters[8].gain: offset 248 (float) +dataset.tuning_parameters.eq_parameters[9].gain: offset 268 (float) +dataset.tuning_parameters.eq_parameters[10].gain: offset 288 (float) +dataset.tuning_parameters.eq_parameters[11].gain: offset 308 (float) +dataset.tuning_parameters.eq_parameters[12].gain: offset 328 (float) +dataset.tuning_parameters.eq_parameters[13].gain: offset 348 (float) +dataset.tuning_parameters.eq_parameters[14].gain: offset 368 (float) +dataset.tuning_parameters.eq_parameters[15].gain: offset 388 (float) +dataset.tuning_parameters.eq_parameters[16].gain: offset 408 (float) +dataset.tuning_parameters.eq_parameters[17].gain: offset 428 (float) +dataset.tuning_parameters.eq_parameters[18].gain: offset 448 (float) +dataset.tuning_parameters.eq_parameters[19].gain: offset 468 (float) +dataset.tuning_parameters.eq_parameters[20].gain: offset 488 (float) +dataset.tuning_parameters.eq_parameters[21].gain: offset 508 (float) +dataset.tuning_parameters.eq_parameters[22].gain: offset 528 (float) +dataset.tuning_parameters.eq_parameters[23].gain: offset 548 (float) +dataset.tuning_parameters.eq_parameters[24].gain: offset 568 (float) +dataset.tuning_parameters.eq_parameters[25].gain: offset 588 (float) +dataset.tuning_parameters.eq_parameters[26].gain: offset 608 (float) +dataset.tuning_parameters.eq_parameters[27].gain: offset 628 (float) +dataset.tuning_parameters.eq_parameters[28].gain: offset 648 (float) +dataset.tuning_parameters.eq_parameters[29].gain: offset 668 (float) +dataset.tuning_parameters.eq_parameters[30].gain: offset 688 (float) +dataset.tuning_parameters.eq_parameters[31].gain: offset 708 (float) +dataset.tuning_parameters.eq_parameters[32].gain: offset 728 (float) +dataset.tuning_parameters.eq_parameters[33].gain: offset 748 (float) +dataset.tuning_parameters.eq_parameters[34].gain: offset 768 (float) +dataset.tuning_parameters.eq_parameters[35].gain: offset 788 (float) +dataset.tuning_parameters.eq_parameters[36].gain: offset 808 (float) +dataset.tuning_parameters.eq_parameters[37].gain: offset 828 (float) +dataset.tuning_parameters.eq_parameters[38].gain: offset 848 (float) +dataset.tuning_parameters.eq_parameters[39].gain: offset 868 (float) +dataset.tuning_parameters.eq_parameters[40].gain: offset 888 (float) +dataset.tuning_parameters.eq_parameters[41].gain: offset 908 (float) +dataset.tuning_parameters.eq_parameters[42].gain: offset 928 (float) +dataset.tuning_parameters.eq_parameters[43].gain: offset 948 (float) +dataset.tuning_parameters.eq_parameters[44].gain: offset 968 (float) +dataset.tuning_parameters.eq_parameters[45].gain: offset 988 (float) +dataset.tuning_parameters.eq_parameters[46].gain: offset 1008 (float) +dataset.tuning_parameters.eq_parameters[47].gain: offset 1028 (float) +dataset.tuning_parameters.eq_parameters[48].gain: offset 1048 (float) +dataset.tuning_parameters.eq_parameters[49].gain: offset 1068 (float) +dataset.tuning_parameters.eq_parameters[50].gain: offset 1088 (float) +dataset.tuning_parameters.eq_parameters[51].gain: offset 1108 (float) +dataset.tuning_parameters.eq_parameters[52].gain: offset 1128 (float) +dataset.tuning_parameters.eq_parameters[53].gain: offset 1148 (float) +dataset.tuning_parameters.eq_parameters[54].gain: offset 1168 (float) +dataset.tuning_parameters.eq_parameters[55].gain: offset 1188 (float) +dataset.tuning_parameters.eq_parameters[56].gain: offset 1208 (float) +dataset.tuning_parameters.eq_parameters[57].gain: offset 1228 (float) +dataset.tuning_parameters.eq_parameters[58].gain: offset 1248 (float) +dataset.tuning_parameters.eq_parameters[59].gain: offset 1268 (float) +dataset.tuning_parameters.eq_parameters[60].gain: offset 1288 (float) +dataset.tuning_parameters.eq_parameters[61].gain: offset 1308 (float) +dataset.tuning_parameters.eq_parameters[62].gain: offset 1328 (float) +dataset.tuning_parameters.eq_parameters[63].gain: offset 1348 (float) +dataset.tuning_parameters.eq_parameters[64].gain: offset 1368 (float) +dataset.tuning_parameters.eq_parameters[65].gain: offset 1388 (float) +dataset.tuning_parameters.eq_parameters[66].gain: offset 1408 (float) +dataset.tuning_parameters.eq_parameters[67].gain: offset 1428 (float) +dataset.tuning_parameters.eq_parameters[68].gain: offset 1448 (float) +dataset.tuning_parameters.eq_parameters[69].gain: offset 1468 (float) +dataset.tuning_parameters.eq_parameters[70].gain: offset 1488 (float) +dataset.tuning_parameters.eq_parameters[71].gain: offset 1508 (float) +dataset.tuning_parameters.eq_parameters[72].gain: offset 1528 (float) +dataset.tuning_parameters.eq_parameters[73].gain: offset 1548 (float) +dataset.tuning_parameters.eq_parameters[74].gain: offset 1568 (float) +dataset.tuning_parameters.eq_parameters[75].gain: offset 1588 (float) +dataset.tuning_parameters.eq_parameters[76].gain: offset 1608 (float) +dataset.tuning_parameters.eq_parameters[77].gain: offset 1628 (float) +dataset.tuning_parameters.eq_parameters[78].gain: offset 1648 (float) +dataset.tuning_parameters.eq_parameters[79].gain: offset 1668 (float) +dataset.tuning_parameters.eq_parameters[80].gain: offset 1688 (float) +dataset.tuning_parameters.eq_parameters[81].gain: offset 1708 (float) +dataset.tuning_parameters.eq_parameters[82].gain: offset 1728 (float) +dataset.tuning_parameters.eq_parameters[83].gain: offset 1748 (float) +dataset.tuning_parameters.eq_parameters[84].gain: offset 1768 (float) +dataset.tuning_parameters.eq_parameters[85].gain: offset 1788 (float) +dataset.tuning_parameters.eq_parameters[86].gain: offset 1808 (float) +dataset.tuning_parameters.eq_parameters[87].gain: offset 1828 (float) +dataset.tuning_parameters.eq_parameters[88].gain: offset 1848 (float) +dataset.tuning_parameters.eq_parameters[89].gain: offset 1868 (float) +dataset.tuning_parameters.eq_parameters[90].gain: offset 1888 (float) +dataset.tuning_parameters.eq_parameters[91].gain: offset 1908 (float) +dataset.tuning_parameters.eq_parameters[92].gain: offset 1928 (float) +dataset.tuning_parameters.eq_parameters[93].gain: offset 1948 (float) +dataset.tuning_parameters.eq_parameters[94].gain: offset 1968 (float) +dataset.tuning_parameters.eq_parameters[95].gain: offset 1988 (float) +dataset.tuning_parameters.eq_parameters[96].gain: offset 2008 (float) +dataset.tuning_parameters.eq_parameters[97].gain: offset 2028 (float) +dataset.tuning_parameters.eq_parameters[98].gain: offset 2048 (float) +dataset.tuning_parameters.eq_parameters[99].gain: offset 2068 (float) +dataset.tuning_parameters.eq_parameters[100].gain: offset 2088 (float) +dataset.tuning_parameters.eq_parameters[101].gain: offset 2108 (float) +dataset.tuning_parameters.eq_parameters[102].gain: offset 2128 (float) +dataset.tuning_parameters.eq_parameters[103].gain: offset 2148 (float) +dataset.tuning_parameters.eq_parameters[104].gain: offset 2168 (float) +dataset.tuning_parameters.eq_parameters[105].gain: offset 2188 (float) +dataset.tuning_parameters.eq_parameters[106].gain: offset 2208 (float) +dataset.tuning_parameters.eq_parameters[107].gain: offset 2228 (float) +dataset.tuning_parameters.eq_parameters[108].gain: offset 2248 (float) +dataset.tuning_parameters.eq_parameters[109].gain: offset 2268 (float) +dataset.tuning_parameters.eq_parameters[110].gain: offset 2288 (float) +dataset.tuning_parameters.eq_parameters[111].gain: offset 2308 (float) +dataset.tuning_parameters.eq_parameters[112].gain: offset 2328 (float) +dataset.tuning_parameters.eq_parameters[113].gain: offset 2348 (float) +dataset.tuning_parameters.eq_parameters[114].gain: offset 2368 (float) +dataset.tuning_parameters.eq_parameters[115].gain: offset 2388 (float) +dataset.tuning_parameters.eq_parameters[116].gain: offset 2408 (float) +dataset.tuning_parameters.eq_parameters[117].gain: offset 2428 (float) +dataset.tuning_parameters.eq_parameters[118].gain: offset 2448 (float) +dataset.tuning_parameters.eq_parameters[119].gain: offset 2468 (float) +dataset.tuning_parameters.eq_parameters[0].slope: offset 92 (int32_t) +dataset.tuning_parameters.eq_parameters[1].slope: offset 112 (int32_t) +dataset.tuning_parameters.eq_parameters[2].slope: offset 132 (int32_t) +dataset.tuning_parameters.eq_parameters[3].slope: offset 152 (int32_t) +dataset.tuning_parameters.eq_parameters[4].slope: offset 172 (int32_t) +dataset.tuning_parameters.eq_parameters[5].slope: offset 192 (int32_t) +dataset.tuning_parameters.eq_parameters[6].slope: offset 212 (int32_t) +dataset.tuning_parameters.eq_parameters[7].slope: offset 232 (int32_t) +dataset.tuning_parameters.eq_parameters[8].slope: offset 252 (int32_t) +dataset.tuning_parameters.eq_parameters[9].slope: offset 272 (int32_t) +dataset.tuning_parameters.eq_parameters[10].slope: offset 292 (int32_t) +dataset.tuning_parameters.eq_parameters[11].slope: offset 312 (int32_t) +dataset.tuning_parameters.eq_parameters[12].slope: offset 332 (int32_t) +dataset.tuning_parameters.eq_parameters[13].slope: offset 352 (int32_t) +dataset.tuning_parameters.eq_parameters[14].slope: offset 372 (int32_t) +dataset.tuning_parameters.eq_parameters[15].slope: offset 392 (int32_t) +dataset.tuning_parameters.eq_parameters[16].slope: offset 412 (int32_t) +dataset.tuning_parameters.eq_parameters[17].slope: offset 432 (int32_t) +dataset.tuning_parameters.eq_parameters[18].slope: offset 452 (int32_t) +dataset.tuning_parameters.eq_parameters[19].slope: offset 472 (int32_t) +dataset.tuning_parameters.eq_parameters[20].slope: offset 492 (int32_t) +dataset.tuning_parameters.eq_parameters[21].slope: offset 512 (int32_t) +dataset.tuning_parameters.eq_parameters[22].slope: offset 532 (int32_t) +dataset.tuning_parameters.eq_parameters[23].slope: offset 552 (int32_t) +dataset.tuning_parameters.eq_parameters[24].slope: offset 572 (int32_t) +dataset.tuning_parameters.eq_parameters[25].slope: offset 592 (int32_t) +dataset.tuning_parameters.eq_parameters[26].slope: offset 612 (int32_t) +dataset.tuning_parameters.eq_parameters[27].slope: offset 632 (int32_t) +dataset.tuning_parameters.eq_parameters[28].slope: offset 652 (int32_t) +dataset.tuning_parameters.eq_parameters[29].slope: offset 672 (int32_t) +dataset.tuning_parameters.eq_parameters[30].slope: offset 692 (int32_t) +dataset.tuning_parameters.eq_parameters[31].slope: offset 712 (int32_t) +dataset.tuning_parameters.eq_parameters[32].slope: offset 732 (int32_t) +dataset.tuning_parameters.eq_parameters[33].slope: offset 752 (int32_t) +dataset.tuning_parameters.eq_parameters[34].slope: offset 772 (int32_t) +dataset.tuning_parameters.eq_parameters[35].slope: offset 792 (int32_t) +dataset.tuning_parameters.eq_parameters[36].slope: offset 812 (int32_t) +dataset.tuning_parameters.eq_parameters[37].slope: offset 832 (int32_t) +dataset.tuning_parameters.eq_parameters[38].slope: offset 852 (int32_t) +dataset.tuning_parameters.eq_parameters[39].slope: offset 872 (int32_t) +dataset.tuning_parameters.eq_parameters[40].slope: offset 892 (int32_t) +dataset.tuning_parameters.eq_parameters[41].slope: offset 912 (int32_t) +dataset.tuning_parameters.eq_parameters[42].slope: offset 932 (int32_t) +dataset.tuning_parameters.eq_parameters[43].slope: offset 952 (int32_t) +dataset.tuning_parameters.eq_parameters[44].slope: offset 972 (int32_t) +dataset.tuning_parameters.eq_parameters[45].slope: offset 992 (int32_t) +dataset.tuning_parameters.eq_parameters[46].slope: offset 1012 (int32_t) +dataset.tuning_parameters.eq_parameters[47].slope: offset 1032 (int32_t) +dataset.tuning_parameters.eq_parameters[48].slope: offset 1052 (int32_t) +dataset.tuning_parameters.eq_parameters[49].slope: offset 1072 (int32_t) +dataset.tuning_parameters.eq_parameters[50].slope: offset 1092 (int32_t) +dataset.tuning_parameters.eq_parameters[51].slope: offset 1112 (int32_t) +dataset.tuning_parameters.eq_parameters[52].slope: offset 1132 (int32_t) +dataset.tuning_parameters.eq_parameters[53].slope: offset 1152 (int32_t) +dataset.tuning_parameters.eq_parameters[54].slope: offset 1172 (int32_t) +dataset.tuning_parameters.eq_parameters[55].slope: offset 1192 (int32_t) +dataset.tuning_parameters.eq_parameters[56].slope: offset 1212 (int32_t) +dataset.tuning_parameters.eq_parameters[57].slope: offset 1232 (int32_t) +dataset.tuning_parameters.eq_parameters[58].slope: offset 1252 (int32_t) +dataset.tuning_parameters.eq_parameters[59].slope: offset 1272 (int32_t) +dataset.tuning_parameters.eq_parameters[60].slope: offset 1292 (int32_t) +dataset.tuning_parameters.eq_parameters[61].slope: offset 1312 (int32_t) +dataset.tuning_parameters.eq_parameters[62].slope: offset 1332 (int32_t) +dataset.tuning_parameters.eq_parameters[63].slope: offset 1352 (int32_t) +dataset.tuning_parameters.eq_parameters[64].slope: offset 1372 (int32_t) +dataset.tuning_parameters.eq_parameters[65].slope: offset 1392 (int32_t) +dataset.tuning_parameters.eq_parameters[66].slope: offset 1412 (int32_t) +dataset.tuning_parameters.eq_parameters[67].slope: offset 1432 (int32_t) +dataset.tuning_parameters.eq_parameters[68].slope: offset 1452 (int32_t) +dataset.tuning_parameters.eq_parameters[69].slope: offset 1472 (int32_t) +dataset.tuning_parameters.eq_parameters[70].slope: offset 1492 (int32_t) +dataset.tuning_parameters.eq_parameters[71].slope: offset 1512 (int32_t) +dataset.tuning_parameters.eq_parameters[72].slope: offset 1532 (int32_t) +dataset.tuning_parameters.eq_parameters[73].slope: offset 1552 (int32_t) +dataset.tuning_parameters.eq_parameters[74].slope: offset 1572 (int32_t) +dataset.tuning_parameters.eq_parameters[75].slope: offset 1592 (int32_t) +dataset.tuning_parameters.eq_parameters[76].slope: offset 1612 (int32_t) +dataset.tuning_parameters.eq_parameters[77].slope: offset 1632 (int32_t) +dataset.tuning_parameters.eq_parameters[78].slope: offset 1652 (int32_t) +dataset.tuning_parameters.eq_parameters[79].slope: offset 1672 (int32_t) +dataset.tuning_parameters.eq_parameters[80].slope: offset 1692 (int32_t) +dataset.tuning_parameters.eq_parameters[81].slope: offset 1712 (int32_t) +dataset.tuning_parameters.eq_parameters[82].slope: offset 1732 (int32_t) +dataset.tuning_parameters.eq_parameters[83].slope: offset 1752 (int32_t) +dataset.tuning_parameters.eq_parameters[84].slope: offset 1772 (int32_t) +dataset.tuning_parameters.eq_parameters[85].slope: offset 1792 (int32_t) +dataset.tuning_parameters.eq_parameters[86].slope: offset 1812 (int32_t) +dataset.tuning_parameters.eq_parameters[87].slope: offset 1832 (int32_t) +dataset.tuning_parameters.eq_parameters[88].slope: offset 1852 (int32_t) +dataset.tuning_parameters.eq_parameters[89].slope: offset 1872 (int32_t) +dataset.tuning_parameters.eq_parameters[90].slope: offset 1892 (int32_t) +dataset.tuning_parameters.eq_parameters[91].slope: offset 1912 (int32_t) +dataset.tuning_parameters.eq_parameters[92].slope: offset 1932 (int32_t) +dataset.tuning_parameters.eq_parameters[93].slope: offset 1952 (int32_t) +dataset.tuning_parameters.eq_parameters[94].slope: offset 1972 (int32_t) +dataset.tuning_parameters.eq_parameters[95].slope: offset 1992 (int32_t) +dataset.tuning_parameters.eq_parameters[96].slope: offset 2012 (int32_t) +dataset.tuning_parameters.eq_parameters[97].slope: offset 2032 (int32_t) +dataset.tuning_parameters.eq_parameters[98].slope: offset 2052 (int32_t) +dataset.tuning_parameters.eq_parameters[99].slope: offset 2072 (int32_t) +dataset.tuning_parameters.eq_parameters[100].slope: offset 2092 (int32_t) +dataset.tuning_parameters.eq_parameters[101].slope: offset 2112 (int32_t) +dataset.tuning_parameters.eq_parameters[102].slope: offset 2132 (int32_t) +dataset.tuning_parameters.eq_parameters[103].slope: offset 2152 (int32_t) +dataset.tuning_parameters.eq_parameters[104].slope: offset 2172 (int32_t) +dataset.tuning_parameters.eq_parameters[105].slope: offset 2192 (int32_t) +dataset.tuning_parameters.eq_parameters[106].slope: offset 2212 (int32_t) +dataset.tuning_parameters.eq_parameters[107].slope: offset 2232 (int32_t) +dataset.tuning_parameters.eq_parameters[108].slope: offset 2252 (int32_t) +dataset.tuning_parameters.eq_parameters[109].slope: offset 2272 (int32_t) +dataset.tuning_parameters.eq_parameters[110].slope: offset 2292 (int32_t) +dataset.tuning_parameters.eq_parameters[111].slope: offset 2312 (int32_t) +dataset.tuning_parameters.eq_parameters[112].slope: offset 2332 (int32_t) +dataset.tuning_parameters.eq_parameters[113].slope: offset 2352 (int32_t) +dataset.tuning_parameters.eq_parameters[114].slope: offset 2372 (int32_t) +dataset.tuning_parameters.eq_parameters[115].slope: offset 2392 (int32_t) +dataset.tuning_parameters.eq_parameters[116].slope: offset 2412 (int32_t) +dataset.tuning_parameters.eq_parameters[117].slope: offset 2432 (int32_t) +dataset.tuning_parameters.eq_parameters[118].slope: offset 2452 (int32_t) +dataset.tuning_parameters.eq_parameters[119].slope: offset 2472 (int32_t) +dataset.tuning_parameters.eq_parameters[0].filterType: offset 96 (int32_t) +dataset.tuning_parameters.eq_parameters[1].filterType: offset 116 (int32_t) +dataset.tuning_parameters.eq_parameters[2].filterType: offset 136 (int32_t) +dataset.tuning_parameters.eq_parameters[3].filterType: offset 156 (int32_t) +dataset.tuning_parameters.eq_parameters[4].filterType: offset 176 (int32_t) +dataset.tuning_parameters.eq_parameters[5].filterType: offset 196 (int32_t) +dataset.tuning_parameters.eq_parameters[6].filterType: offset 216 (int32_t) +dataset.tuning_parameters.eq_parameters[7].filterType: offset 236 (int32_t) +dataset.tuning_parameters.eq_parameters[8].filterType: offset 256 (int32_t) +dataset.tuning_parameters.eq_parameters[9].filterType: offset 276 (int32_t) +dataset.tuning_parameters.eq_parameters[10].filterType: offset 296 (int32_t) +dataset.tuning_parameters.eq_parameters[11].filterType: offset 316 (int32_t) +dataset.tuning_parameters.eq_parameters[12].filterType: offset 336 (int32_t) +dataset.tuning_parameters.eq_parameters[13].filterType: offset 356 (int32_t) +dataset.tuning_parameters.eq_parameters[14].filterType: offset 376 (int32_t) +dataset.tuning_parameters.eq_parameters[15].filterType: offset 396 (int32_t) +dataset.tuning_parameters.eq_parameters[16].filterType: offset 416 (int32_t) +dataset.tuning_parameters.eq_parameters[17].filterType: offset 436 (int32_t) +dataset.tuning_parameters.eq_parameters[18].filterType: offset 456 (int32_t) +dataset.tuning_parameters.eq_parameters[19].filterType: offset 476 (int32_t) +dataset.tuning_parameters.eq_parameters[20].filterType: offset 496 (int32_t) +dataset.tuning_parameters.eq_parameters[21].filterType: offset 516 (int32_t) +dataset.tuning_parameters.eq_parameters[22].filterType: offset 536 (int32_t) +dataset.tuning_parameters.eq_parameters[23].filterType: offset 556 (int32_t) +dataset.tuning_parameters.eq_parameters[24].filterType: offset 576 (int32_t) +dataset.tuning_parameters.eq_parameters[25].filterType: offset 596 (int32_t) +dataset.tuning_parameters.eq_parameters[26].filterType: offset 616 (int32_t) +dataset.tuning_parameters.eq_parameters[27].filterType: offset 636 (int32_t) +dataset.tuning_parameters.eq_parameters[28].filterType: offset 656 (int32_t) +dataset.tuning_parameters.eq_parameters[29].filterType: offset 676 (int32_t) +dataset.tuning_parameters.eq_parameters[30].filterType: offset 696 (int32_t) +dataset.tuning_parameters.eq_parameters[31].filterType: offset 716 (int32_t) +dataset.tuning_parameters.eq_parameters[32].filterType: offset 736 (int32_t) +dataset.tuning_parameters.eq_parameters[33].filterType: offset 756 (int32_t) +dataset.tuning_parameters.eq_parameters[34].filterType: offset 776 (int32_t) +dataset.tuning_parameters.eq_parameters[35].filterType: offset 796 (int32_t) +dataset.tuning_parameters.eq_parameters[36].filterType: offset 816 (int32_t) +dataset.tuning_parameters.eq_parameters[37].filterType: offset 836 (int32_t) +dataset.tuning_parameters.eq_parameters[38].filterType: offset 856 (int32_t) +dataset.tuning_parameters.eq_parameters[39].filterType: offset 876 (int32_t) +dataset.tuning_parameters.eq_parameters[40].filterType: offset 896 (int32_t) +dataset.tuning_parameters.eq_parameters[41].filterType: offset 916 (int32_t) +dataset.tuning_parameters.eq_parameters[42].filterType: offset 936 (int32_t) +dataset.tuning_parameters.eq_parameters[43].filterType: offset 956 (int32_t) +dataset.tuning_parameters.eq_parameters[44].filterType: offset 976 (int32_t) +dataset.tuning_parameters.eq_parameters[45].filterType: offset 996 (int32_t) +dataset.tuning_parameters.eq_parameters[46].filterType: offset 1016 (int32_t) +dataset.tuning_parameters.eq_parameters[47].filterType: offset 1036 (int32_t) +dataset.tuning_parameters.eq_parameters[48].filterType: offset 1056 (int32_t) +dataset.tuning_parameters.eq_parameters[49].filterType: offset 1076 (int32_t) +dataset.tuning_parameters.eq_parameters[50].filterType: offset 1096 (int32_t) +dataset.tuning_parameters.eq_parameters[51].filterType: offset 1116 (int32_t) +dataset.tuning_parameters.eq_parameters[52].filterType: offset 1136 (int32_t) +dataset.tuning_parameters.eq_parameters[53].filterType: offset 1156 (int32_t) +dataset.tuning_parameters.eq_parameters[54].filterType: offset 1176 (int32_t) +dataset.tuning_parameters.eq_parameters[55].filterType: offset 1196 (int32_t) +dataset.tuning_parameters.eq_parameters[56].filterType: offset 1216 (int32_t) +dataset.tuning_parameters.eq_parameters[57].filterType: offset 1236 (int32_t) +dataset.tuning_parameters.eq_parameters[58].filterType: offset 1256 (int32_t) +dataset.tuning_parameters.eq_parameters[59].filterType: offset 1276 (int32_t) +dataset.tuning_parameters.eq_parameters[60].filterType: offset 1296 (int32_t) +dataset.tuning_parameters.eq_parameters[61].filterType: offset 1316 (int32_t) +dataset.tuning_parameters.eq_parameters[62].filterType: offset 1336 (int32_t) +dataset.tuning_parameters.eq_parameters[63].filterType: offset 1356 (int32_t) +dataset.tuning_parameters.eq_parameters[64].filterType: offset 1376 (int32_t) +dataset.tuning_parameters.eq_parameters[65].filterType: offset 1396 (int32_t) +dataset.tuning_parameters.eq_parameters[66].filterType: offset 1416 (int32_t) +dataset.tuning_parameters.eq_parameters[67].filterType: offset 1436 (int32_t) +dataset.tuning_parameters.eq_parameters[68].filterType: offset 1456 (int32_t) +dataset.tuning_parameters.eq_parameters[69].filterType: offset 1476 (int32_t) +dataset.tuning_parameters.eq_parameters[70].filterType: offset 1496 (int32_t) +dataset.tuning_parameters.eq_parameters[71].filterType: offset 1516 (int32_t) +dataset.tuning_parameters.eq_parameters[72].filterType: offset 1536 (int32_t) +dataset.tuning_parameters.eq_parameters[73].filterType: offset 1556 (int32_t) +dataset.tuning_parameters.eq_parameters[74].filterType: offset 1576 (int32_t) +dataset.tuning_parameters.eq_parameters[75].filterType: offset 1596 (int32_t) +dataset.tuning_parameters.eq_parameters[76].filterType: offset 1616 (int32_t) +dataset.tuning_parameters.eq_parameters[77].filterType: offset 1636 (int32_t) +dataset.tuning_parameters.eq_parameters[78].filterType: offset 1656 (int32_t) +dataset.tuning_parameters.eq_parameters[79].filterType: offset 1676 (int32_t) +dataset.tuning_parameters.eq_parameters[80].filterType: offset 1696 (int32_t) +dataset.tuning_parameters.eq_parameters[81].filterType: offset 1716 (int32_t) +dataset.tuning_parameters.eq_parameters[82].filterType: offset 1736 (int32_t) +dataset.tuning_parameters.eq_parameters[83].filterType: offset 1756 (int32_t) +dataset.tuning_parameters.eq_parameters[84].filterType: offset 1776 (int32_t) +dataset.tuning_parameters.eq_parameters[85].filterType: offset 1796 (int32_t) +dataset.tuning_parameters.eq_parameters[86].filterType: offset 1816 (int32_t) +dataset.tuning_parameters.eq_parameters[87].filterType: offset 1836 (int32_t) +dataset.tuning_parameters.eq_parameters[88].filterType: offset 1856 (int32_t) +dataset.tuning_parameters.eq_parameters[89].filterType: offset 1876 (int32_t) +dataset.tuning_parameters.eq_parameters[90].filterType: offset 1896 (int32_t) +dataset.tuning_parameters.eq_parameters[91].filterType: offset 1916 (int32_t) +dataset.tuning_parameters.eq_parameters[92].filterType: offset 1936 (int32_t) +dataset.tuning_parameters.eq_parameters[93].filterType: offset 1956 (int32_t) +dataset.tuning_parameters.eq_parameters[94].filterType: offset 1976 (int32_t) +dataset.tuning_parameters.eq_parameters[95].filterType: offset 1996 (int32_t) +dataset.tuning_parameters.eq_parameters[96].filterType: offset 2016 (int32_t) +dataset.tuning_parameters.eq_parameters[97].filterType: offset 2036 (int32_t) +dataset.tuning_parameters.eq_parameters[98].filterType: offset 2056 (int32_t) +dataset.tuning_parameters.eq_parameters[99].filterType: offset 2076 (int32_t) +dataset.tuning_parameters.eq_parameters[100].filterType: offset 2096 (int32_t) +dataset.tuning_parameters.eq_parameters[101].filterType: offset 2116 (int32_t) +dataset.tuning_parameters.eq_parameters[102].filterType: offset 2136 (int32_t) +dataset.tuning_parameters.eq_parameters[103].filterType: offset 2156 (int32_t) +dataset.tuning_parameters.eq_parameters[104].filterType: offset 2176 (int32_t) +dataset.tuning_parameters.eq_parameters[105].filterType: offset 2196 (int32_t) +dataset.tuning_parameters.eq_parameters[106].filterType: offset 2216 (int32_t) +dataset.tuning_parameters.eq_parameters[107].filterType: offset 2236 (int32_t) +dataset.tuning_parameters.eq_parameters[108].filterType: offset 2256 (int32_t) +dataset.tuning_parameters.eq_parameters[109].filterType: offset 2276 (int32_t) +dataset.tuning_parameters.eq_parameters[110].filterType: offset 2296 (int32_t) +dataset.tuning_parameters.eq_parameters[111].filterType: offset 2316 (int32_t) +dataset.tuning_parameters.eq_parameters[112].filterType: offset 2336 (int32_t) +dataset.tuning_parameters.eq_parameters[113].filterType: offset 2356 (int32_t) +dataset.tuning_parameters.eq_parameters[114].filterType: offset 2376 (int32_t) +dataset.tuning_parameters.eq_parameters[115].filterType: offset 2396 (int32_t) +dataset.tuning_parameters.eq_parameters[116].filterType: offset 2416 (int32_t) +dataset.tuning_parameters.eq_parameters[117].filterType: offset 2436 (int32_t) +dataset.tuning_parameters.eq_parameters[118].filterType: offset 2456 (int32_t) +dataset.tuning_parameters.eq_parameters[119].filterType: offset 2476 (int32_t) +dataset.tuning_parameters.delay_parameters[0].ch_n: offset 2500 (int32_t) +dataset.tuning_parameters.delay_parameters[1].ch_n: offset 2508 (int32_t) +dataset.tuning_parameters.delay_parameters[2].ch_n: offset 2516 (int32_t) +dataset.tuning_parameters.delay_parameters[3].ch_n: offset 2524 (int32_t) +dataset.tuning_parameters.delay_parameters[4].ch_n: offset 2532 (int32_t) +dataset.tuning_parameters.delay_parameters[5].ch_n: offset 2540 (int32_t) +dataset.tuning_parameters.delay_parameters[0].delay_data: offset 2504 (float) +dataset.tuning_parameters.delay_parameters[1].delay_data: offset 2512 (float) +dataset.tuning_parameters.delay_parameters[2].delay_data: offset 2520 (float) +dataset.tuning_parameters.delay_parameters[3].delay_data: offset 2528 (float) +dataset.tuning_parameters.delay_parameters[4].delay_data: offset 2536 (float) +dataset.tuning_parameters.delay_parameters[5].delay_data: offset 2544 (float) +dataset.tuning_parameters.volume_parameters[0].ch_n: offset 2548 (int32_t) +dataset.tuning_parameters.volume_parameters[1].ch_n: offset 2556 (int32_t) +dataset.tuning_parameters.volume_parameters[2].ch_n: offset 2564 (int32_t) +dataset.tuning_parameters.volume_parameters[3].ch_n: offset 2572 (int32_t) +dataset.tuning_parameters.volume_parameters[4].ch_n: offset 2580 (int32_t) +dataset.tuning_parameters.volume_parameters[5].ch_n: offset 2588 (int32_t) +dataset.tuning_parameters.volume_parameters[0].vol_data: offset 2552 (float) +dataset.tuning_parameters.volume_parameters[1].vol_data: offset 2560 (float) +dataset.tuning_parameters.volume_parameters[2].vol_data: offset 2568 (float) +dataset.tuning_parameters.volume_parameters[3].vol_data: offset 2576 (float) +dataset.tuning_parameters.volume_parameters[4].vol_data: offset 2584 (float) +dataset.tuning_parameters.volume_parameters[5].vol_data: offset 2592 (float) diff --git a/param_struct_test b/param_struct_test index 032f99b..5d3fc10 160000 --- a/param_struct_test +++ b/param_struct_test @@ -1 +1 @@ -Subproject commit 032f99bc1eea81ba0f2c6608114940f31510a3fc +Subproject commit 5d3fc10c5ddbadfb5b8cd4825355fbabc9a42438 diff --git a/音效控件UI/plugins/FilterButton.exe b/音效控件UI/plugins/FilterButton.exe new file mode 100644 index 0000000..f6f03cc Binary files /dev/null and b/音效控件UI/plugins/FilterButton.exe differ