То что вы ищите называется алгоритм АРУ (автоматическая регулировка усиления)
В простейшем случае можно реализовать так:
1) вычисляем скользящую среднюю уровня — например за 1/10 секунды
2) если вычисленный уровень меньше минимально допустимого, увеличиваем коэффициент передачи модуля на определенный шаг, иначе если уровень больше максимально допустимого, уменьшаем на определенный шаг
3) переходим к 1)
тут много ссылок