Новые возможности многодорожечного режима
Разработчик pkalogiros выпустил значительное обновление для своего веб-инструмента AudioMass. Теперь проект поддерживает полноценный многодорожечный режим (multitrack mode). Это превращает инструмент из простого редактора волновых форм в функциональную цифровую звуковую рабочую станцию (DAW), доступную через браузер.
Ключевые функции нового режима включают:
- Наложение нескольких аудиодорожек друг на друга.
- Визуальное перемещение клипов (drag & drop) по временной шкале.
- Настройка кроссфейдов (crossfade) для плавных переходов между клипами.
- Запись аудио на «активированные» (armed) каналы в реальном времени.
- Экспорт (bounce) всей микс-ленты в один итоговый аудиофайл.
Техническая реализация и архитектура
Решение построено на базе Go для серверной части и JavaScript для клиентской. В основе работы с аудио лежат библиотеки WaveSurfer.js и специализированные плагины для обработки регионов. Для оптимизации доставки контента используется минификация кода через UglifyJS, объединяющая такие модули, как engine.js, multitrack.js, recorder.js и lufs.js (для измерения громкости LUFS).
Сравнение режимов работы AudioMass
| Функция | Базовый режим (до обновления) | Новый многодорожечный режим |
|---|---|---|
| Обработка аудио | Одиночный файл, волновая форма | Несколько независимых дорожек |
| Редактирование | Базовые операции с клипом | Drag & drop, кроссфейды, наложение |
| Запись | Отсутствует | Запись на выбранные (armed) каналы |
| Экспорт | Сохранение измененного файла | Bounce всей сессии в один файл |
Как запустить проект локально
AudioMass остается полностью бесплатным и open-source решением. Для развертывания локальной версии требуется клонировать репозиторий и запустить сервер. Поддерживаются два варианта запуска:
- Go:
go run audiomass-server.go(рекомендуемый способ). - Python:
python audiomass-server.py(альтернатива для пользователей без Go).
После запуска интерфейс доступен по адресу http://localhost:5055/. Для продакшн-сборки минифицированный файл all.build.js генерируется через конвейер UglifyJS.
Источник: Github ↗
