@kach-99, то, что Вы предположили - это АРУ. То, что реализовано у 
@technotrasher - это комбинация АРУ и компрессора.
АРУ "следит" за RMS сигнала на входе и управляет усилением так, чтобы RMS на выходе изменялся, допустим, в интервале в 10 раз меньшем, чем исходный. Как правило есть RMS отсечки, при этом значении АРУ выключается, чтобы не усиливать шумы. Для вычисления RMS используется интервал интегрирования и он достаточно большой (обычно - 50мс и больше).
Компрессор действует немного по другому. Фактически он представляет собой нелинейный усилитель, т.е., он уменьшает динамический диапазон сигнала.
На вопрос "для чего" я пытался ответить уже дважды. Громкость (как раз та самая RMS) может меняться довольно значительно (яркий пример - "Стена" Pink Floyd - RMS "гуляет" примерно в интервале от 40 до 110дБ. А у нас динамический диапазон АЦП - в идеале, если не брать его шумы, 60дБ. Т.е., в тихих фрагментах у нас будет всегда 0 на всех частотах, цветомузыка будет молчать.
Отношение амплитуды к RMS типичного музыкального фрагмента - это 13-20дБ. Это означает, что мы будем уменьшать разрядность АЦП на те самые 13-20дБ. Компрессор пытается уменьшить эти потери. На слух это может восприниматься плохо, но нам-то нужно получить лишь информацию.