|
#pragma once
|
|
#include "Parameters.h"
|
|
namespace ReverbHallRoom
|
{
|
float ProgramDarkPlate[Parameter::COUNT];
|
#if 1
|
void initPrograms(Reverb_common *common, Reverb_taps *taps, Reverb_early *early, Reverb_late *late, Reverb_eq *eq)
|
{
|
ProgramDarkPlate[Parameter::DryOut] = common->dry; //0.6f; // 干声比例适中
|
ProgramDarkPlate[Parameter::EarlyOut] = common->early; //0.7f; // 早期反射输出增益
|
ProgramDarkPlate[Parameter::LateOut] = common->late; //0.8f; // 后期混响输出增益
|
ProgramDarkPlate[Parameter::Interpolation] = common->input_mix_on; //1.0f; // 启用插值
|
ProgramDarkPlate[Parameter::HighCutEnabled] = common->high_cut_on; //1.0f; // 启用高切
|
ProgramDarkPlate[Parameter::LowCutEnabled] = common->low_cut_on; //1.0f; // 启用低切
|
ProgramDarkPlate[Parameter::InputMix] = common->input_mix; //0.25f; // 输入交叉 25%
|
ProgramDarkPlate[Parameter::HighCut] = common->high_cut; //0.8f; // 高切约 16kHz
|
ProgramDarkPlate[Parameter::LowCut] = common->low_cut; //0.4f; // 低切约 400Hz
|
ProgramDarkPlate[Parameter::EqCrossSeed] = common->cross_seed; //0.5f; // 左右均衡中等相关性
|
|
ProgramDarkPlate[Parameter::TapEnabled] = taps->multi_taps_on; //1.0f; // 启用早期反射
|
ProgramDarkPlate[Parameter::TapCount] = taps->taps_count; //0.7f; // 抽头数约 180
|
ProgramDarkPlate[Parameter::TapPredelay] = taps->taps_delay; //0.4f; // 预延迟 200ms
|
ProgramDarkPlate[Parameter::TapDecay] = taps->taps_decay; //0.7f; // 早期反射衰减
|
ProgramDarkPlate[Parameter::TapLength] = taps->taps_length; //0.8f; // 早期反射长度 800ms
|
|
ProgramDarkPlate[Parameter::EarlyDiffuseEnabled] = early->early_difus_on; //1.0f; // 启用早期扩散器
|
ProgramDarkPlate[Parameter::EarlyDiffuseCount] = early->early_count; //0.4f; // 早期扩散级数 5 级左右
|
ProgramDarkPlate[Parameter::EarlyDiffuseDelay] = early->early_delay; //0.3f; // 约 37ms
|
ProgramDarkPlate[Parameter::EarlyDiffuseFeedback] = early->early_feedback; //0.6f; // 反馈 0.6
|
ProgramDarkPlate[Parameter::EarlyDiffuseModAmount] = early->early_mod_amt; //0.15f; // 轻微调制
|
ProgramDarkPlate[Parameter::EarlyDiffuseModRate] = early->early_mod_rate; //0.2f; // 约 1Hz
|
|
ProgramDarkPlate[Parameter::LateMode] = late->late_mode; //1.0f; // POST 模式,取内部扩散后
|
// ProgramDarkPlate[Parameter::LateDiffuseEnabled] = 0.5f;//late->late_reflect_on; //1.0f; // 启用后期扩散
|
ProgramDarkPlate[Parameter::LateDiffuseEnabled] = late->late_reflect_on; //1.0f; // 启用后期扩散
|
ProgramDarkPlate[Parameter::LateLineCount] = late->line_count; //0.9f; // 11 条延迟线
|
ProgramDarkPlate[Parameter::LateLineSize] = late->line_size; //0.7f; // 延迟线长度约 700ms
|
ProgramDarkPlate[Parameter::LateLineModAmount] = late->line_mod_amt; //0.3f; // 调制深度约 0.75ms
|
ProgramDarkPlate[Parameter::LateLineDecay] = late->line_decay; //0.25f; // 混响时间约 2 秒(听觉调整)
|
ProgramDarkPlate[Parameter::LateLineModRate] = late->line_mod_rate; //0.25f; // 调制速率约 1.25Hz
|
ProgramDarkPlate[Parameter::LateDiffuseCount] = late->difus_count; //0.6f; // 后期扩散级数 5 级
|
// ProgramDarkPlate[Parameter::LateDiffuseDelay] = late->difus_delay; //0.3f; // 约 37ms
|
ProgramDarkPlate[Parameter::LateDiffuseDelay] = late->difus_delay;
|
ProgramDarkPlate[Parameter::LateDiffuseFeedback] = late->difus_feedback; //0.7f; // 反馈 0.7
|
ProgramDarkPlate[Parameter::LateDiffuseModAmount] = late->difus_mod_amt; //0.15f; // 轻微调制
|
ProgramDarkPlate[Parameter::LateDiffuseModRate] = late->difus_mod_rate; //0.2f; // 约 1Hz
|
|
ProgramDarkPlate[Parameter::EqLowShelfEnabled] = eq->low_shelf_on; //0.0f; // 禁用低架
|
ProgramDarkPlate[Parameter::EqHighShelfEnabled] = eq->high_shelf_on; //1.0f; // 启用高架
|
ProgramDarkPlate[Parameter::EqLowpassEnabled] = eq->low_pass_on; //1.0f; // 启用低通
|
ProgramDarkPlate[Parameter::EqLowFreq] = eq->low_shelf_freq; //0.4f; // 低架转折 400Hz
|
ProgramDarkPlate[Parameter::EqLowGain] = eq->low_shelf_gain; //0.5f; // 低架增益 0dB 附近
|
ProgramDarkPlate[Parameter::EqHighFreq] = eq->high_shelf_freq; //0.6f; // 高架转折 10kHz
|
ProgramDarkPlate[Parameter::EqHighGain] = eq->high_shelf_gain; //0.7f; // 高架增益 +8dB
|
ProgramDarkPlate[Parameter::EqCutoff] = eq->low_pass_freq; //0.7f; // 低通截止约 14kHz
|
|
ProgramDarkPlate[Parameter::SeedDelay] = 0.5f; // 随机种子
|
ProgramDarkPlate[Parameter::SeedDiffusion] = 0.5f;
|
ProgramDarkPlate[Parameter::SeedPostDiffusion] = 0.5f;
|
ProgramDarkPlate[Parameter::SeedTap] = 0.5f;
|
|
}
|
#else
|
void initPrograms()
|
{
|
ProgramDarkPlate[Parameter::DryOut] = 0.8705999851226807;
|
ProgramDarkPlate[Parameter::EarlyDiffuseCount] = 0.2960000038146973;
|
ProgramDarkPlate[Parameter::EarlyDiffuseDelay] = 0.3066999912261963;
|
ProgramDarkPlate[Parameter::EarlyDiffuseEnabled] = 0.0;
|
ProgramDarkPlate[Parameter::EarlyDiffuseFeedback] = 0.7706999778747559;
|
ProgramDarkPlate[Parameter::EarlyDiffuseModAmount] = 0.143899992108345;
|
ProgramDarkPlate[Parameter::EarlyDiffuseModRate] = 0.2466999888420105;
|
ProgramDarkPlate[Parameter::EarlyOut] = 0.3; //0.0
|
ProgramDarkPlate[Parameter::EqCrossSeed] = 0.0;
|
ProgramDarkPlate[Parameter::EqCutoff] = 0.9759999513626099;
|
ProgramDarkPlate[Parameter::EqHighFreq] = 0.5133999586105347;
|
ProgramDarkPlate[Parameter::EqHighGain] = 0.7680000066757202;
|
ProgramDarkPlate[Parameter::EqHighShelfEnabled] = 1.0;
|
ProgramDarkPlate[Parameter::EqLowFreq] = 0.3879999816417694;
|
ProgramDarkPlate[Parameter::EqLowGain] = 0.5559999942779541;
|
ProgramDarkPlate[Parameter::EqLowShelfEnabled] = 0.0;
|
ProgramDarkPlate[Parameter::EqLowpassEnabled] = 0.0;
|
ProgramDarkPlate[Parameter::HighCut] = 0.2933000028133392;
|
ProgramDarkPlate[Parameter::HighCutEnabled] = 0.0;
|
ProgramDarkPlate[Parameter::InputMix] = 0.2346999943256378;
|
ProgramDarkPlate[Parameter::Interpolation] = 1.0;
|
ProgramDarkPlate[Parameter::LateDiffuseCount] = 0.4879999756813049;
|
ProgramDarkPlate[Parameter::LateDiffuseDelay] = 0.239999994635582;
|
ProgramDarkPlate[Parameter::LateDiffuseEnabled] = 1.0;
|
ProgramDarkPlate[Parameter::LateDiffuseFeedback] = 0.8506999611854553;
|
ProgramDarkPlate[Parameter::LateDiffuseModAmount] = 0.1467999964952469;
|
ProgramDarkPlate[Parameter::LateDiffuseModRate] = 0.1666999906301498;
|
ProgramDarkPlate[Parameter::LateLineCount] = 1.0;
|
ProgramDarkPlate[Parameter::LateLineDecay] = 0.6345999836921692;
|
ProgramDarkPlate[Parameter::LateLineModAmount] = 0.2719999849796295;
|
ProgramDarkPlate[Parameter::LateLineModRate] = 0.2292999923229218;
|
ProgramDarkPlate[Parameter::LateLineSize] = 0.4693999886512756;
|
ProgramDarkPlate[Parameter::LateMode] = 1.0;
|
ProgramDarkPlate[Parameter::LateOut] = 0.6613999605178833;
|
ProgramDarkPlate[Parameter::LowCut] = 0.6399999856948853;
|
ProgramDarkPlate[Parameter::LowCutEnabled] = 1.0;
|
ProgramDarkPlate[Parameter::SeedDelay] = 0.2180999964475632;
|
ProgramDarkPlate[Parameter::SeedDiffusion] = 0.1850000023841858;
|
ProgramDarkPlate[Parameter::SeedPostDiffusion] = 0.3652999997138977;
|
ProgramDarkPlate[Parameter::SeedTap] = 0.3339999914169312;
|
ProgramDarkPlate[Parameter::TapDecay] = 1.0;
|
ProgramDarkPlate[Parameter::TapLength] = 0.9866999983787537;
|
ProgramDarkPlate[Parameter::TapPredelay] = 0.0;
|
ProgramDarkPlate[Parameter::TapCount] = 0.1959999948740005;
|
ProgramDarkPlate[Parameter::TapEnabled] = 0.0;
|
}
|
#endif
|
}
|