Ключевые факты
- Использует TensorFlow.js для обнаружения высоты тона в реальном времени.
- Выводит MIDI-файлы и код Strudel/TidalCycles.
- Работает полностью на стороне клиента с использованием Web Audio API.
- Использует четыре алгоритма: CREPE, YIN, FFT/HPS и AMDF.
- Создан для того, чтобы преодолеть разрыв для пользователей без знаний музыкальной теории.
Краткое содержание
Вышло новое браузерное приложение под названием Voice Composer, предназначенное для преобразования голосового ввода в полезные музыкальные данные. Инструмент ориентирован на сообщества live coding и live DJing, позволяя пользователям напевать мелодии и мгновенно генерировать код для систем паттерн-ориентированной музыки.
Приложение использует TensorFlow.js и другие алгоритмы для обнаружения высоты тона в реальном времени. Оно работает полностью в браузере через Web Audio API, гарантируя, что исходные аудиоданные никогда не покидают компьютер пользователя. Инструмент выводит MIDI-файлы, визуальные фортепиано-рулы и код, совместимый со Strudel и TidalCycles.
Основная функциональность и алгоритмы
Voice Composer решает конкретную проблему для начинающих live-кодеров: трудность перевода мелодических идей в код без глубоких знаний музыкальной теории. Захватывая аудио в реальном времени, инструмент мгновенно преобразует голосовой ввод в алгоритмические паттерны.
Приложение использует четыре различных метода обнаружения высоты тона для работы с различными аудиовходами:
- CREPE: Модель глубокого обучения через TensorFlow.js, отмеченная высокой точностью, но и большими вычислительными затратами.
- YIN: Метод оценки основной частоты на основе автокорреляции, быстрый и эффективный для чистого монофонического ввода.
- FFT с гармоническим спектром продукта: Оптимизирован для обработки звуков с богатыми гармониками.
- AMDF: Средняя функция разности амплитуд, легковесный вариант для быстрой обработки.
Пользователи могут переключаться между этими алгоритмами в зависимости от конкретного варианта использования и качества входных данных.
Техническая архитектура
Инструмент, созданный с использованием React, работает полностью внутри браузера. Он использует Canvas API для обеспечения визуализации формы волны в реальном времени и обратной связи через интерфейс фортепиано-рула.
Решение сохранить всю обработку на стороне клиента гарантирует конфиденциальность и низкую задержку. Создатель представляет, как инструмент со временем эволюционирует в полнофункциональную цифровую аудиостанцию (DAW). В настоящее время он оптимизирован для использования на настольных компьютерах, где работает наиболее эффективно.
Интеграция с live coding
Основной вывод ориентирован на среду live coding. Генерируя код Strudel/TidalCycles, инструмент позволяет мгновенно интегрироваться в существующие выступления. Это устраняет барьер ручного написания синтаксиса для сложных паттернов.
Создатель разработал приложение за выходные, чтобы решить свою собственную задачу изучения live coding без музыкального бэкграунда. Получившееся в результате программное обеспечение делает «тривиальным» захват мелодических идей и их немедленное использование в системах паттерн-ориентированной музыки.
Доступность и будущее развитие
Инструмент в настоящее время доступен для тестирования по размещённой ссылке. Исходный код был выложен в публичный репозиторий, приглашая сообщество к внесению вклада и обратной связи.
Будущие обновления направлены на расширение возможностей приложения, приближая его к функциональности стандартной DAW. Это предполагает потенциальную поддержку многодорожечной записи, обработки эффектов и более широкой совместимости с файловыми форматами в последующих релизах.




