Хочу увеличить громкость в буфере с голосовыми данными. Дело в том, что я использую DirectSound, и у меня есть один первичный и один вторичный буфер - микширование всех потоков выполняется вручную. В голосовом чате все участники могут иметь независимые уровни громкости. Я умножаю данные каждого потока на значение (усиление) и суммирую их в один буфер. Все работает нормально, но когда я пытаюсь умножить данные на значение больше 1.0f - я слышу какие-то обрезки или что-то в этом роде.
Я ' Я пробовал использовать компрессор эффектов Audacity, но это не помогает уменьшить странный шум.
Возможно, мне стоит изменить усиление как-нибудь иначе? Или просто использовать другой алгоритм постобработки?
ОБНОВЛЕНИЕ: Вау, я только что обнаружил интересную вещь! Я сбросил звук перед увеличением громкости и сразу после этого.
Вот картинка
Простите за качество - думаю, так и должен выглядеть звук (сам нарисовал красную линию). Действительно похоже, что значения превышают образец данных. Но я не могу понять ПОЧЕМУ? Мой сэмплбуфер - BYTE, но я обращаюсь к нему только через короткий указатель. Подписано, но вырезка бывает даже при * ptr около 15-20 тысяч.