| .. | ||
| effects | ||
| plugin.py | ||
| README.md | ||
音频混响和效果插件
一个功能完整的专业音频效果处理系统插件,为EG引擎提供基于Panda3D的高级音频效果处理功能,支持混响、均衡器、压缩器、调制效果和失真等多种音频效果。
功能特性
核心功能
- 专业混响处理: 基于物理模型的高质量混响效果
- 多频段均衡器: 精确的频段控制和滤波处理
- 动态范围压缩: 专业级压缩器效果处理
- 调制效果: 合唱、镶边、移相等多种调制效果
- 失真效果: 过载、失真、模糊等多种失真类型
- 3D空间音频: 真实的3D音频定位和空间化处理
- 效果链处理: 支持多个效果的串联和并联处理
- 实时参数控制: 所有效果参数支持实时调整
混响效果
- 房间建模: 支持多种预设房间类型(小房间、大厅、教堂等)
- 参数控制: 房间大小、阻尼、湿信号电平、干信号电平、宽度等
- 高级参数: 早期反射、晚期混响、扩散、密度等
- 冲激响应: 支持基于房间几何的冲激响应生成
- 预设系统: 内置多种专业混响预设
均衡器效果
- 多频段控制: 支持最多32个独立频段调节
- 滤波器类型: 峰值滤波器、低频搁架、高频搁架
- 参数控制: 频率、增益、Q因子、主增益等
- 专业功能: 独奏模式、频段绕过、频段添加/移除
- 预设系统: 内置多种音乐风格EQ预设
压缩器效果
- 动态控制: 阈值、压缩比、启动时间、释放时间
- 高级参数: 膝点、输出增益、自动补偿增益
- 专业功能: 侧链处理、RMS窗口、预测处理
- 可视化表: 增益减少量表、压缩比率表、包络跟随器
- 预设系统: 内置多种应用场景压缩器预设
调制效果
- 效果类型: 合唱、镶边、移相器
- 参数控制: 速率、深度、反馈、湿信号混合、延迟时间
- 波形选择: 正弦波、三角波、方波、锯齿波
- 立体声处理: 立体声扩散、相位控制
- 滤波器: 高频截止、低频截止
- 预设系统: 内置多种调制效果预设
失真效果
- 效果类型: 过载、失真、模糊、削波器
- 参数控制: 驱动、音调、输出电平、偏置
- 整流模式: 全波整流、半波整流、无整流
- 不对称处理: 可调不对称度
- 滤波器: 预滤波器、后滤波器
- 预设系统: 内置多种失真效果预设
空间音频效果
- 3D定位: 基于听者位置的精确3D音频定位
- 距离衰减: 可配置的最小/最大距离和衰减因子
- 方向性: 锥形效应、方位角、仰角计算
- 物理效应: 多普勒效应、空气吸收
- 遮挡处理: 遮挡和阻挡效果模拟
- HRTF支持: 头部相关传递函数实现更真实的3D音效
- 混响发送: 可配置的混响发送量
效果管理
- 效果链: 支持多个效果的串联处理
- 参数自动化: 所有参数支持实时调整
- 预设系统: 效果预设的创建、保存、加载
- 状态监控: 实时效果处理状态和性能统计
- 资源管理: 智能的效果资源管理和清理
性能优化
- 高效处理: 优化的音频处理算法
- 内存管理: 智能缓冲区管理和内存复用
- 多线程支持: 支持多线程音频处理
- 采样率适配: 自动适配不同采样率
- 质量控制: 可配置的处理质量等级
使用方法
快捷键操作
- F1: 切换调试模式
- F2: 切换效果处理
- F3: 应用测试混响效果
- F4: 应用测试均衡器效果
- F5: 显示效果统计信息
- F6: 应用测试压缩器效果
- F7: 应用测试调制效果
- F8: 应用测试失真效果
- F9: 创建测试预设
- F10: 切换音质设置
- F11: 显示详细统计信息
- F12: 重置所有效果
GUI界面操作
插件会在屏幕右上角创建控制面板,可以通过按钮直接操作音频效果功能。
编程接口
# 获取插件实例
audio_effects_plugin = world.plugin_manager.get_plugin("audio_reverb_effects")
# 创建混响效果
reverb_params = {
'room_size': 0.8,
'damping': 0.5,
'wet_level': 0.3,
'dry_level': 0.7,
'width': 1.0
}
reverb_effect_id = audio_effects_plugin.create_reverb_effect(reverb_params)
# 创建均衡器效果
eq_params = {
'bands': {
100: 2.0, # 100Hz 提升2dB
500: -1.0, # 500Hz 降低1dB
2000: 3.0, # 2kHz 提升3dB
8000: -2.0 # 8kHz 降低2dB
}
}
eq_effect_id = audio_effects_plugin.create_eq_effect(eq_params)
# 创建压缩器效果
compressor_params = {
'threshold': -20.0,
'ratio': 4.0,
'attack': 0.01,
'release': 0.1,
'gain': 2.0
}
compressor_effect_id = audio_effects_plugin.create_compressor_effect(compressor_params)
# 创建调制效果
modulation_params = {
'type': 'chorus',
'rate': 1.0,
'depth': 0.5,
'feedback': 0.3,
'mix': 0.5
}
modulation_effect_id = audio_effects_plugin.create_modulation_effect(modulation_params)
# 创建失真效果
distortion_params = {
'drive': 0.5,
'tone': 0.8,
'level': 0.7,
'type': 'overdrive'
}
distortion_effect_id = audio_effects_plugin.create_distortion_effect(distortion_params)
# 应用效果到音效
audio_effects_plugin.apply_effect_to_sound(sound_id, reverb_effect_id)
audio_effects_plugin.apply_effect_to_sound(sound_id, eq_effect_id)
audio_effects_plugin.apply_effect_to_sound(sound_id, compressor_effect_id)
# 创建效果预设
preset_data = {
'reverb': reverb_params,
'eq': eq_params,
'compressor': compressor_params
}
audio_effects_plugin.create_preset("my_preset", preset_data)
# 应用预设到音效
audio_effects_plugin.apply_preset_to_sound(sound_id, "my_preset")
# 设置效果参数
audio_effects_plugin.set_effect_parameter(reverb_effect_id, 'room_size', 0.6)
audio_effects_plugin.set_effect_parameter(eq_effect_id, 'bands', {100: 3.0, 1000: -1.0})
# 启用/禁用效果
audio_effects_plugin.enable_effect(reverb_effect_id)
audio_effects_plugin.disable_effect(eq_effect_id)
# 获取效果类型
effect_type = audio_effects_plugin.get_effect_type(compressor_effect_id)
# 获取音效应用的效果列表
applied_effects = audio_effects_plugin.get_sound_effects(sound_id)
# 从音效移除效果
audio_effects_plugin.remove_effect_from_sound(sound_id, reverb_effect_id)
# 删除效果
audio_effects_plugin.delete_effect(modulation_effect_id)
audio_effects_plugin.delete_effect(distortion_effect_id)
# 设置主音量
audio_effects_plugin.set_master_volume(0.8)
# 设置音质等级
audio_effects_plugin.set_quality_settings("high")
# 获取统计信息
stats = audio_effects_plugin.get_stats()
核心组件
混响处理器
负责专业混响效果的处理和管理。
主要功能:
- 多种混响算法实现
- 丰富的混响参数控制
- 房间冲激响应生成
- 预设管理系统
均衡器处理器
负责多频段均衡器效果的处理和管理。
主要功能:
- 多频段参数控制
- 多种滤波器类型
- 专业EQ功能实现
- 音乐风格预设
压缩器处理器
负责动态范围压缩效果的处理和管理。
主要功能:
- 专业压缩参数控制
- 侧链处理支持
- 实时可视化表
- 应用场景预设
调制处理器
负责合唱、镶边、移相等调制效果的处理和管理。
主要功能:
- 多种调制效果类型
- 波形选择和控制
- 立体声处理
- 效果预设系统
失真处理器
负责过载、失真、模糊等失真效果的处理和管理。
主要功能:
- 多种失真类型
- 整流模式控制
- 滤波器处理
- 失真预设系统
空间处理器
负责3D空间音频效果的处理和管理。
主要功能:
- 3D音频定位
- 距离衰减处理
- 物理效应模拟
- HRTF支持
效果预设
混响预设
small_room: 小房间混响medium_room: 中等房间混响large_room: 大房间混响large_hall: 大厅混响cathedral: 教堂混响bathroom: 浴室混响
均衡器预设
flat: 平衡设置pop: 流行音乐风格rock: 摇滚音乐风格jazz: 爵士音乐风格classical: 古典音乐风格vocal_booster: 人声增强bass_boost: 低音增强treble_boost: 高音增强
压缩器预设
vocal_compressor: 人声压缩bass_compressor: 贝斯压缩drum_compressor: 鼓组压缩master_bus: 总线压缩aggressive: 强烈压缩gentle: 温和压缩
调制预设
chorus_light: 轻柔合唱chorus_medium: 中等合唱chorus_heavy: 强烈合唱flanger_light: 轻柔镶边flanger_medium: 中等镶边flanger_heavy: 强烈镶边phaser_light: 轻柔移相phaser_medium: 中等移相phaser_heavy: 强烈移相
失真预设
mild_overdrive: 轻度过载heavy_overdrive: 重度过载classic_distortion: 经典失真metal_distortion: 金属失真fuzz_box: 模糊效果bass_overdrive: 贝斯过载tube_amp: 胆机模拟bit_crusher: 位破碎
空间音频预设
close: 近距离设置medium: 中距离设置far: 远距离设置outdoor: 户外设置indoor: 室内设置underwater: 水下设置
性能优化
算法优化
- 高效滤波器: 优化的数字滤波器实现
- 快速傅里叶变换: 频域处理优化
- 缓冲区管理: 智能缓冲区复用
- 内存池: 减少内存分配开销
处理优化
- 并行处理: 支持多线程音频处理
- 质量等级: 可配置的处理质量
- 动态调整: 根据系统负载动态调整处理复杂度
- 效果链优化: 优化的效果处理顺序
资源管理
- 智能加载: 根据需要动态加载效果资源
- 自动清理: 不使用的资源自动清理
- 缓存系统: 效果参数和处理结果缓存
- 引用计数: 资源引用计数管理
扩展开发
添加新的效果类型
添加新的预设
- 在对应的效果处理器中添加预设数据
- 实现预设创建方法
- 在插件中提供预设应用接口
添加新的处理算法
- 在现有处理器中实现新的算法
- 添加算法选择参数
- 实现算法切换逻辑
故障排除
效果不生效
- 检查效果是否已启用
- 确认效果已正确应用到音效
- 验证参数设置是否正确
- 检查音效是否正在播放
性能问题
- 使用统计信息分析性能瓶颈
- 降低处理质量等级
- 减少同时应用的效果数量
- 优化效果参数设置
音质问题
- 检查采样率设置是否正确
- 确认缓冲区大小是否合适
- 验证效果参数是否在合理范围
- 检查是否出现削波现象
内存泄漏
- 使用统计信息监控内存使用
- 确认效果是否正确删除
- 检查资源是否正确释放
- 验证引用计数是否正确
API参考
Plugin类主要方法
初始化和控制
initialize()- 初始化插件enable()- 启用插件disable()- 禁用插件finalize()- 清理插件资源update(dt)- 更新插件状态
效果创建和管理
create_reverb_effect(parameters)- 创建混响效果create_eq_effect(parameters)- 创建均衡器效果create_compressor_effect(parameters)- 创建压缩器效果create_modulation_effect(parameters)- 创建调制效果create_distortion_effect(parameters)- 创建失真效果create_spatial_effect(parameters)- 创建空间效果delete_effect(effect_id)- 删除效果apply_effect_to_sound(sound_id, effect_id)- 应用效果到音效remove_effect_from_sound(sound_id, effect_id)- 从音效移除效果
效果参数控制
set_effect_parameter(effect_id, parameter, value)- 设置效果参数get_effect_parameters(effect_id)- 获取效果参数enable_effect(effect_id)- 启用效果disable_effect(effect_id)- 禁用效果get_effect_type(effect_id)- 获取效果类型get_sound_effects(sound_id)- 获取音效应用的效果列表
预设系统
create_preset(preset_name, preset_data)- 创建效果预设apply_preset_to_sound(sound_id, preset_name)- 应用预设到音效get_preset_names()- 获取所有预设名称delete_preset(preset_name)- 删除预设
系统控制
set_master_volume(volume)- 设置主音量get_master_volume()- 获取主音量set_quality_settings(quality)- 设置音质等级get_quality_settings()- 获取音质等级process_audio_with_effects(sound_id, audio_data)- 使用效果处理音频数据
统计和信息
get_stats()- 获取插件统计信息
音频格式支持
支持的音频格式:
- WAV: 未压缩的PCM音频
- OGG: Ogg Vorbis压缩音频
- MP3: MPEG音频层III
性能调优建议
效果处理优化
- 合理控制同时处理的效果数量
- 根据应用场景选择合适的效果预设
- 及时删除不需要的效果
- 使用预设减少参数配置时间
资源管理优化
- 定期清理未使用的效果
- 合理设置缓冲区大小
- 使用对象池管理效果对象
- 预加载常用的效果预设
系统性能优化
- 根据硬件性能选择合适的质量等级
- 监控系统资源使用情况
- 动态调整处理复杂度
- 使用多线程处理提高性能
版本信息
- 版本: 1.0.0
- 作者: EG Team
- 发布日期: 2024年
许可证
本插件遵循EG引擎许可证协议。