Библиотека гобоя Android щелкает в начале / конце звука

Я использую библиотеку гобоя в моем приложении для генерации звука. Их пример SineGenerator в значительной степени именно то, что мне нужно, просто синусоида, которая генерирует частоту, которая мне нужна. Эта сгенерированная синусоида позже используется пользователем в PlayAudioEngine.

Проблема в том, что чаще всего в начале или конце звука, который я играю, звучит щелчок. Я играю звуки короткими очередями, обычно длиной от 50 до 150 мс.

У меня действительно нет опыта в создании звуковых волн, так что, возможно, это просто я не вижу чего-то очень очевидного. Я попытался оптимизировать производительность (флаги компилятора + код), как предложено в этой статье, но это не дало никаких результатов. Я также попытался уменьшить амплитуду, но никаких заметных результатов.

Любые предложения приветствуются. Спасибо!

1 ответ

Щелчок при запуске генератора вызван отсутствием сброса фазы в Oscillator::setWaveOn(true) (как упомянуто @greeble31 в комментариях). Это простое исправление для сценария "волна на", просто установите mPhase в ноль.

Для "волны выключения" решение было бы иметь очень короткое снижение амплитуды, а не просто отключение звука.

Вы могли бы сделать это в Oscillator::renderAudioОднако, вероятно, было бы более гибким для реализации отдельного Envelope класс, который может справиться с рампой самостоятельно.

Другие вопросы по тегам