#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 }