Энтузиасты предоставили возможность погрузиться в прошлое и возродили визуализатор Winamp в новой обертке. Под катом — обсуждаем проект ProjectM и есть ли у визуализаторов будущее в контексте стриминговых сервисов. Winamp стал культовым благодаря своим функциям и обширной библиотеке скинов. Воспоминания о них до сих пор вызывают теплые чувства. Одна из «фишек», за которую его любили особенно горячо, это — визуализатор. Можно было долго наблюдать, как абстрактные изображения сменяют друг друга в такт любимым трекам. В основу этой функции был положен плагин MilkDrop. Он использовал быстрое преобразование Фурье и частотный анализ. К сожалению, со временем авторы свернули работу над плагином [все исходники передали в open source]. Однако энтузиасты не забросили проект и возродили ретровизуализатор под другим именем — ProjectM. По сути, это — мультиплатформенный порт плагина MilkDrop, написанный на С++. За рендер отвечает библиотека libprojectM. Она анализирует аудиопоток, производит преобразование Фурье и отрисовывает результат с помощью OpenGL. Проект полностью открытый, а все исходники выложены на GitHub. В составе фреймворка есть десятки стандартных визуализаций, но этот набор при желании можно расширить пресетами от комьюнити — соответствующий архив весит более 123 МБ. Больше интересных визуализаций есть на форумах Winamp, поскольку ProjectM поддерживает форматы .prjm, .milk и .so. Поскольку ProjectM активно использует MilkDrop, который был написан более десяти лет назад, с его работой связан ряд проблем. Пользователи отмечают вылеты и проблемы с шейдерами. В тематическом треде на Hacker News один из авторов проекта рассказал, что причина связана с транспайлером. Он преобразует код шейдеров с языка HLSL в GLSL, чтобы фреймворк мог работать на Windows, Linux, MacOS и других операционных системах. Эти недостатки планируют устранить — как только до них дойдут руки. К слову, поучаствовать в этом могут все желающие — начать обсуждение можно в официальном канале Discord. Разумеется, ProjectM не единственный фреймворк, авторы которого стремятся возродить феномен визуализаторов. Есть набор инструментов NestDrop, разработанный на базе open source проекта BeatDrop. Сегодня его используют виджеи, подбирающие и создающие эффекты. Утилита позволяет на лету менять параметры четырех визуализаций — в том числе скорость вращения изображения и переходов. Можно добавлять спрайты со своими уникальными анимациями. Еще один пример — визуализатор Plane9. В наборе представлены 250 пресетов и почти сорок анимаций переходов. Есть даже поддержка нескольких мониторов и VR-очков. Приложение бесплатно, правда, его не обновляли с 2016 года. Стриминговые сервисы изменили то, как мы слушаем музыку. За небольшую плату мы получаем доступ к библиотеке из миллионов треков, которые необязательно скачивать на устройство. И разработчики стриминг-приложений не стремятся добавлять визуализаторы в свои сервисы [хотя некоторые все же экспериментируют в этом направлении]. Скорее всего, это и не нужно, потому что большинство, конечно же, слушает музыку фоном со смартфона и не смотрит на экран. В то же время энтузиасты самостоятельно разрабатывают визуализаторы для стриминговых площадок, заменяющие «скучные» обложки альбомов. Например, проект Kaleidosync для Spotify предлагает более двадцати WebGL-паттернов. Но, скорее всего, не стоит рассчитывать на возрождение функции в новом контексте. О чем еще мы пишем в нашем «Мире Hi-Fi»: Как визуализировать звук в вебе: видеолекции с теорией и практикой Считать звук с пачки из-под чипсов, или что такое «визуальный микрофон» От игр до тайных сообщений: обсуждаем «пасхалки» в виниловых релизах Звуки для UI: подборка тематических ресурсов Стримерам лоу-фай музыки, не нужны ни деньги, ни карьера Зачем учиться искать музыку без помощи стриминговых сервисов