В настоящее время я использую libsndfile в сочетании с PortAudio V19, чтобы читать аудиоданные из файла и воспроизводить их обратно. (Обратите внимание, что я делаю это на малине Pi, работающем на Raspbian.) Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно динамически контролировать громкость воспроизведения в реальном времени для каждого воспроизводимого таким образом звука. Я попытался использовать системные вызовы для управления глобальным объемом воспроизведения через alsamixer, что было бы приемлемым решением в моем случае использования, но задержка слишком высока, чтобы это работало.Управление громкостью звука в реальном времени
То, что я ищу это одна из двух вещей:
библиотека, которая может обрабатывать изменения громкости звука в режиме реального времени, либо путем воздействия на сырье аудио данных, полученных с помощью libsndfile, или путем установки глобальный объем воспроизведения с минимальной задержкой (субмиллисекунда). Библиотека должна быть бесплатной (безвозмездно) и использоваться на Raspbian; лицензирование не вызывает беспокойства.
Математические преобразования, которые необходимо применять к аудиоданным, полученным с помощью файла libsndfile, для изменения уровня громкости данных, предпочтительно, когда целевой объем находится в диапазоне [0.0f, 1.0f], с 0.0f - тихий, а 1.0f - исходный том из файла.
Я попытался разобраться во всем полезном (свободном) материале по этой теме и не смог найти что-либо, что помогает. Любая помощь очень ценится!