@@ 9,12 9,14 @@ namespace audio
class ProfileRoutingLoudspeaker : public Profile
{
+ static constexpr uint32_t sampleRate = 16000;
+
public:
ProfileRoutingLoudspeaker(Volume volume, Gain gain)
: Profile("Routing Speakerphone",
Type::RoutingLoudspeaker,
audio::codec::Configuration{
- .sampleRate_Hz = 16000,
+ .sampleRate_Hz = sampleRate,
.bitWidth = 16,
.flags = static_cast<uint32_t>(
audio::codec::Flags::InputLeft) | // microphone use left audio channel
@@ 25,15 27,15 @@ namespace audio
.outputPath = audio::codec::OutputPath::Loudspeaker,
.filterCoefficients =
{qfilter_CalculateCoeffs(
- audio::equalizer::FilterType::FilterHighPass, 997.f, 44100, 0.701f, 0),
+ audio::equalizer::FilterType::FilterHighPass, 307.3f, sampleRate, 0.701f, 0),
qfilter_CalculateCoeffs(
- audio::equalizer::FilterType::FilterLowPass, 4993.7f, 44100, 0.701f, 0),
+ audio::equalizer::FilterType::FilterLowPass, 5080.1f, sampleRate, 0.847f, 0),
qfilter_CalculateCoeffs(
- audio::equalizer::FilterType::FilterNone, 15975.7f, 44100, 0.701f, -10),
+ audio::equalizer::FilterType::FilterNone, 15975.7f, sampleRate, 0.701f, -10),
qfilter_CalculateCoeffs(
- audio::equalizer::FilterType::FilterNone, 200.4f, 44100, 0.701f, -10),
+ audio::equalizer::FilterType::FilterNone, 200.4f, sampleRate, 0.701f, -10),
qfilter_CalculateCoeffs(
- audio::equalizer::FilterType::FilterNone, 1496.7f, 44100, 0.701f, -4)}},
+ audio::equalizer::FilterType::FilterNone, 1496.7f, sampleRate, 0.701f, -4)}},
AudioDevice::Type::Audiocodec)
{}
};
@@ 175,8 175,8 @@ CodecRetCode CodecMAX98090::Start(const CodecParams ¶m)
i2cAddr.subAddress = MAX98090_REG_OUTPUT_ENABLE;
i2c->Write(i2cAddr, (uint8_t *)&outputenable, 1);
- constexpr uint8_t coarse = 1;
- constexpr uint8_t fine = 0;
+ constexpr uint8_t coarse = 0;
+ constexpr uint8_t fine = 5;
SetPlaybackPath(coarse, fine);
SetFilterMode(FilterMode::Voice);
} break;