Rubber Band Library — это открытая библиотека на C++, предназначенная для изменения скорости воспроизведения (time-stretching) и высоты тона (pitch-shifting) аудио с сохранением качества. Она разработана для использования как в реальном времени, так и в пакетной обработке, и может быть встроена в приложения для аудиоредактирования, цифровые рабочие станции и музыкальные инструменты. Библиотека предоставляет алгоритмы, оптимизированные для минимизации искажений и артефактов при значительных изменениях скорости и тона, при этом поддерживает многоканальный ввод и широкий диапазон форматов данных кадра звукового потока.
Проект ориентирован на гибкость и переносимость: код написан на C++ с чистым API, что облегчает интеграцию в настольные и встраиваемые системы. Помимо программного интерфейса для встраивания, пакет обычно включает утилиту командной строки, позволяющую применять алгоритмы к аудиофайлам без написания дополнительного кода. В документации библиотеки описаны режимы качества, параметры управления временной и частотной обработкой, а также рекомендации по использованию в приложениях с низкой задержкой.
- Изменение темпа без сдвига тона: алгоритмы, сохраняющие высоту звукового сигнала при ускорении или замедлении воспроизведения.
- Сдвиг высоты тона без изменения темпа: возможность транспонирования звука вверх или вниз при неизменной длительности.
- Режимы качества: несколько уровней качества обработки, позволяющих выбирать компромисс между вычислительной нагрузкой и звуковой точностью.
- Поддержка реального времени: оптимизации и буферизация для использования в интерактивных приложениях с низкой задержкой.
- Многоканальная обработка: возможность работы с несколькими каналами аудио и сохранения каналовой структуры.
- Гибкий API на C++: чистый и документированный интерфейс для интеграции в сторонние проекты и плагины.
- Утилита командной строки: инструмент для пакетной обработки аудиофайлов и экспериментирования без разработки кода.
- Параметры управления: тонкая настройка окон, перекрытий, синхронизации и других параметров обработки.
- Портируемость: совместимость с различными платформами благодаря кроссплатформенной реализации на C++.
- Применения: использование в цифровой обработке звука, живом исполнении, подкастинге, реставрации аудио и создании инструментов для музыкантов.