~aleteoryx/muditaos

a2b6d8738df77de44c919ae49056991720f725ff — Jakub Pyszczak 4 years ago 47d9676
[EGD-7732] Fixed audio poor quality

Fixed audio poor quality during a loudspeaker call.
M module-audio/Audio/Profiles/ProfileRoutingLoudspeaker.hpp => module-audio/Audio/Profiles/ProfileRoutingLoudspeaker.hpp +8 -6
@@ 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)
        {}
    };

M module-bsp/board/rt1051/bsp/audio/CodecMAX98090.cpp => module-bsp/board/rt1051/bsp/audio/CodecMAX98090.cpp +2 -2
@@ 175,8 175,8 @@ CodecRetCode CodecMAX98090::Start(const CodecParams &param)
            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;