~aleteoryx/muditaos

5d2b8bbbeeb521e7be95b1cd8cef0d9a2e4d889f — Bartosz Cichocki 3 years ago 1b7f8b5
[MOS-506] Apply new audio config from R&D in Wrocław

After taking measurements and tweaking the audio paths with audio
specialists, we found out pretty good settings which should be
incorporated into the code
M image/user/data/equalizer/earspeaker_routing.json => image/user/data/equalizer/earspeaker_routing.json +11 -11
@@ 6,39 6,39 @@
  "inputGain": 0,
  "inputPath": 1,
  "outputPath": 1,
  "playbackPathGain": 2,
  "playbackPathAtten": 2,
  "playbackPathGain": 0,
  "playbackPathAtten": 12,
  "filterParams": [
    {
      "filterType": "HighPass",
      "frequency": 700,
      "frequency": 300,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 10
      "gain": 0
    },
    {
      "filterType": "LowPass",
      "frequency": 4993.7,
      "filterType": "Parametric",
      "frequency": 3000,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": -5
      "Q": 1,
      "gain": 10
    },
    {
      "filterType": "LowPass",
      "filterType": "None",
      "frequency": 6000,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 10
    },
    {
      "filterType": "HighPass",
      "filterType": "None",
      "frequency": 100.4,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 10
    },
    {
      "filterType": "Notch",
      "filterType": "None",
      "frequency": 1500.7,
      "samplerate": 44100,
      "Q": 0.701,

M image/user/data/equalizer/headphones_playback.json => image/user/data/equalizer/headphones_playback.json +4 -4
@@ 8,28 8,28 @@
  "outputPath": 0,
  "filterParams": [
    {
      "filterType": "HighPass",
      "filterType": "None",
      "frequency": 100.2,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 0
    },
    {
      "filterType": "LowPass",
      "filterType": "None",
      "frequency": 17996.2,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 0
    },
    {
      "filterType": "HighShelf",
      "filterType": "None",
      "frequency": 13984.7,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": -10
    },
    {
      "filterType": "LowShelf",
      "filterType": "None",
      "frequency": 200.4,
      "samplerate": 44100,
      "Q": 0.701,

M image/user/data/equalizer/headphones_routing.json => image/user/data/equalizer/headphones_routing.json +2 -2
@@ 8,14 8,14 @@
  "outputPath": 0,
  "filterParams": [
    {
      "filterType": "HighPass",
      "filterType": "None",
      "frequency": 997,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 0
    },
    {
      "filterType": "LowPass",
      "filterType": "None",
      "frequency": 4993.7,
      "samplerate": 44100,
      "Q": 0.701,

M image/user/data/equalizer/loudspeaker_playback.json => image/user/data/equalizer/loudspeaker_playback.json +15 -15
@@ 17,32 17,32 @@
      "gain": 0
    },
    {
      "filterType": "LowPass",
      "frequency": 14999.5,
      "filterType": "Parametric",
      "frequency": 2800,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": 0
      "Q": 3,
      "gain": -4
    },
    {
      "filterType": "HighShelf",
      "frequency": 15975.7,
      "filterType": "Parametric",
      "frequency": 4500,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": -10
      "Q": 3,
      "gain": -6
    },
    {
      "filterType": "LowShelf",
      "frequency": 401,
      "filterType": "Parametric",
      "frequency": 7100,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": -10
      "Q": 3,
      "gain": -3
    },
    {
      "filterType": "Parametric",
      "frequency": 1496.7,
      "frequency": 2000.0,
      "samplerate": 44100,
      "Q": 0.701,
      "gain": -4
      "Q": 2,
      "gain": 6
    }
  ]
}

M image/user/data/equalizer/loudspeaker_routing.json => image/user/data/equalizer/loudspeaker_routing.json +7 -7
@@ 10,22 10,22 @@
  "playbackPathAtten": 5,
  "filterParams": [
    {
      "filterType": "HighPass",
      "frequency": 307.3,
      "filterType": "None",
      "frequency": 100.2,
      "samplerate": 16000,
      "Q": 0.701,
      "gain": 0
    },
    {
      "filterType": "LowPass",
      "frequency": 5080.1,
      "filterType": "None",
      "frequency": 17996.2,
      "samplerate": 16000,
      "Q": 0.847,
      "Q": 0.701,
      "gain": 0
    },
    {
      "filterType": "None",
      "frequency": 15975.7,
      "frequency": 13984.7,
      "samplerate": 16000,
      "Q": 0.701,
      "gain": -10


@@ 40,7 40,7 @@
    {
      "filterType": "None",
      "frequency": 1496.7,
      "samplerate": 44100,
      "samplerate": 16000,
      "Q": 0.701,
      "gain": -4
    }

M module-services/service-audio/ServiceAudio.cpp => module-services/service-audio/ServiceAudio.cpp +4 -3
@@ 28,6 28,7 @@ using namespace audio;
inline constexpr auto audioServiceStackSize = 1024 * 8;

static constexpr auto defaultVolumeHigh              = "10";
static constexpr auto defaultVolumeMid               = "7";
static constexpr auto defaultVolumeLow               = "5";
static constexpr auto defaultVolumeMuted             = "0";
static constexpr auto defaultTrue                    = "1";


@@ 71,9 72,9 @@ static constexpr std::initializer_list<std::pair<audio::DbPathElement, const cha
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingBluetoothHSP}, defaultVolumeHigh},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingBluetoothHFP}, defaultVolumeHigh},

    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingEarspeaker}, defaultVolumeHigh},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingHeadphones}, defaultVolumeHigh},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingLoudspeaker}, defaultVolumeHigh},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingEarspeaker}, defaultVolumeMid},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingHeadphones}, defaultVolumeMid},
    {DbPathElement{Setting::Volume, PlaybackType::None, Profile::Type::RoutingLoudspeaker}, defaultVolumeMid},

    // RECORDING
    {DbPathElement{Setting::Gain, PlaybackType::None, Profile::Type::RecordingBuiltInMic}, "200"},