Проект начался как простая цветомузыка на Arduino, управляющая лампами в такт музыке, и эволюционировал в полноценный онлайн-плеер, заменяющий ушедшие стриминговые сервисы. Изначально использовалась библиотека BASS для воспроизведения и анализа спектра, но затем функциональность расширилась до управления DMX-светом через USB-DMX512 адаптер.
Следующим этапом стала синхронизация музыки и видео, включая добавление таймлайна для разметки аудиофайлов. Для синхронизации использовалась формула расчета скорости и фазы видео относительно аудиотрека. Разметка треков осуществлялась сначала через Native Instruments Traktor, но позже был разработан собственный генератор сетки темпа на C++ с использованием kissfft и ffmpeg.
Для организации коллекции музыки был использован NodeJS для расчета чексумм и PostgreSQL для хранения метаданных. Elasticsearch интегрирован для быстрого поиска. Разработана система обучения нейросети на базе PyTorch для генерации плейлистов, использующая векторы эмбеддингов и CosineSimilarity для сравнения треков.
Веб-интерфейс плеера постоянно улучшался, включая адаптацию под мобильные устройства. Была разработана PWA-версия для Android, использующая WebView для интерфейса и Media3 для нативного воспроизведения. В планах – создание распространяемого бэкенда для локального хостинга и интеграции с торрент-клиентами.
Изображение носит иллюстративный характер
Следующим этапом стала синхронизация музыки и видео, включая добавление таймлайна для разметки аудиофайлов. Для синхронизации использовалась формула расчета скорости и фазы видео относительно аудиотрека. Разметка треков осуществлялась сначала через Native Instruments Traktor, но позже был разработан собственный генератор сетки темпа на C++ с использованием kissfft и ffmpeg.
Для организации коллекции музыки был использован NodeJS для расчета чексумм и PostgreSQL для хранения метаданных. Elasticsearch интегрирован для быстрого поиска. Разработана система обучения нейросети на базе PyTorch для генерации плейлистов, использующая векторы эмбеддингов и CosineSimilarity для сравнения треков.
Веб-интерфейс плеера постоянно улучшался, включая адаптацию под мобильные устройства. Была разработана PWA-версия для Android, использующая WebView для интерфейса и Media3 для нативного воспроизведения. В планах – создание распространяемого бэкенда для локального хостинга и интеграции с торрент-клиентами.