Comments 49
Тест на синестета :)
Интересная статья.
Можете добавить какие-нибудь капли или звёзды на высоких частотах, вверху облака. Что-то резкое, «охлаждающее»
красивая анимация, мне очень понравилось, секунд на пять.. больше я её не видел, да и наверное никто не видел дольше.. в 90% случаев приложение свёрнуто (вкладка браузера вообще чаще на другом раб столе вместе с прочим ПО не требующем внимания) а управление воспроизведением из апплета(десктоп)/уведомления(ведроид).
в общем это и правда очень красиво, но максимально безполезно. я надеюсь это не заняло у вас много времени которое можно было бы потратить на что-то более важное
Человеку нравится делать такие штуки, как по мне он подошол к вопросу с энтузиазмом, в нашем мире есть огромная куча более бесполезных вещей, на которые потратили гораздо больше времени и денег. А некоторые из них не только бесполезные, так еще и вредные. Лично мне нравится, да она почти бесполезная и долго на нее не смотришь, но иногда приятно включить вечерком какую-нибудь красивую музыку, и ее визуализировать, а если есть проектор, так вообще красота. Вобщем способствует поддержанию нужного настроения, а это тоже важно!
Ну у меня веб версия частенько открыта на пол-экрана на третьем мониторе, так что где-то в периферии болтается. Другой вопрос, что сейчас в вебе, насколько могу судить, крутилка на музыку ни как не реагирует.
у таких штук есть применение в качестве Mind machine. Правда, тут WinAMP Milkdrop визуализатор наверное наиболее продвинутый с практической точки зрения, учитывая сложность шейдеров и количество пресетов от сообщества авторов (там же есть интерактивный редактор для создания новых визуализаций, впечатляет насколько разные по смыслу они могут быть собраны на одном и том же конструкторе)
В веб-версии планируется ее анимировать? А то просто статично крутится и отвлекает, может лучше ее на обложку большого размера текущего трека заменить?
В ближайших планах такого нет. Мы всегда ждём во фронте таких же героев, какие есть в андроиде :) https://yandex.ru/jobs/vacancies/фронтенд-разработчик-в-музыку-1466
Визуализация, конечно, прикольная, но в вебе мне реально не хватает именно страницы "сейчас играет". Чтобы не узенькая полоска плеера, а цела страница с большой обложкой альбома и кнопками. В приложении под андроид она есть, а в вебе нет.
Мой опыт (и небольшой нерепрезентативной группы моих знакомых) показал, что после 1 минуты вау эффекта, хочется просто слушать музыку, без всего этого. Мало того, что отвлекает, так ещё и cpu жрет довольно неплохо. Так что я всегда включаю мою волну и переключаюсь на другую вкладку внутри плеера. Мягко говоря неудобно.
Может быть у других другой опыт, но мне бы очень хотелось галочку «выключить всю анимацию».
Вот мне тоже очень интересно. Я буквально позавчера удалял из яндекс музыки 1.5к неудачно загруженных треков - выяснилось что google takeout потерял теги у половины треков. И вот на фоне того, что мне пришлось удалять эти треки по одному (!!!) никак не получается воспринимать анимацию как какую-то полезную, или пусть, хотя бы, прикольную фичу :(
Кстати, при загрузке около 100 треков тупо зависли и мне пришлось их "руками" догружать, тоже по одному фактически.
На фоне таких недочетов грустно читать уже вторую статью о том как разработчики занимаются второстепенными с точки зрения пользователя вещами.
Периодически в командах бывает так, что все бэкэндеры заняты или в отпусках и полезную фичу не взять в работу, а фронтэндеру в это время заняться нечем) вот он и делает то что "всегда хотелось сделать" потому что прикольно)))
Почти все так и есть. Включаю либо мою волну, либо по жанрам. И кладу телефон на зарядку в машине. Еще бывает очень редко, в дороге на общественном транспорте слушаю и в это время музыка в свернутом виде.
Еще один кейс, которого нет. Загружать музыку на час или больше. С женой любим покататься и иногда между населенными пунктами довольно долго ехать, особенно если дорога разбита. Или летишь в самолете, включил музыку и читаешь книжку
Не подскажите, с нормализацией громкости есть какие то подвижки?
Статья интересная и мне как юзверю, было интересно узнать, как это работает и пронаблюдать. Вообще считаю, в отличие от граждан выше, что это важный элемент дизайна, который придает изюминку плееру и ты ни с чем другим его не спутаешь, это очень круто и нужно продолжать работу с ним. Кстати, Jules Gaia отлично проходит визуализацию и наблюдать за ней весьма... одухотворяюще! Однако есть и вопрос. Почему берется статичный срез в 100 мс? Почему нельзя использовать динамический срез основаный на... ну допустим такт, брать размерность исходя из частоты перепадов?
Очень интересный вопрос, срез в 100 мс берется из-за того, что это оптимальное значение по памяти/процессора к визуальным эффектам. Когда есть статический размер, можно и величины "анимировать" предсказуемо, и backpressure учесть. И на самом деле даже динамический срез не так подходит, как плавающее окно, чтобы не пропускать частоты на стыке "срезов", но тут создается дополнительная нагрузка по памяти и на процессор. Все-таки, так как это делается на мобильном устройстве, ресурсы тут ограничены, особенно батарейкой пользователя. Алгоритм FFT по сложности хоть O(Nlog(N)), но нагрузку создает также ещё копирование и преобразование байтов из AudioProcessor'а.
Всегда думал, что на экране обычная гифка или рандомная анимация.
Зачем для прослушивания музыки смотреть на экран смартфона.
Теперь понятно, почему у приложения неудобный интерфейс, потому что разработчики не пользуются им по прямому назначению, а заняты визуализацией музыкальных частот...
потому что разработчики не пользуются им по прямому назначению, а заняты визуализацией музыкальных частот
Будем честны - в нормальных компаниях разработчики погружены в реализацию, а не генерацию идей, генерацию дизайна, генерацию и аналитику данных и так далее по списку чем разработчик может заниматься, но не так эффективно как его коллеги по цеху
С одной стороны, программисту важно выполнять разработку в соответствии с ТЗ.
С другой стороны, известно, что музыку на смартфоне слушают в 99% случаев в наушниках, не глядя на экран, если это не клип.
Нашей главной задачей было красиво визуализировать музыкальный поток, причём сделать это максимально энергоэффективно для устройства пользователя.
Наиболее энергоэффективное решение для смартфона - выключить экран.
все-таки для абстрактной визуализации FFT, имхо, избыточно, достаточно пик детектора. Все равно это все воспринимается на уровне ритма песни, пауз и прочего музыкального рисунка. Сейчас делаю визуализации, правда на eps и адресных диодах, звук беру с микрофона. Дальше перлин с UV маппингами всякими табличными, получается красиво. У меня правда девайс в отличие от приложения стоит на столе все время, такой always on top )) вот так выглядел прототип, сейчас сделал новый и тестовую партию 15 шт планирую, раздам друзьям, наверное https://www.youtube.com/watch?v=g7F77bmlhUU&t=1s видел анимации на новой колонке в обзорах, вот чего-то им не хватает на мой взгляд. А сюда зашел в надежде набраться опыта, хотел посмотреть как рендерится это все дело, а тут фурье и больше ни слова.
Хороший вопрос, сначала казалось, что пик детектор хорошее решение, но стоит включить трек полный басов и средних с перепадами, становится понятно почему именно через FFT. В целом нагрузка по большей части заключается в копировании и преобразование байтов PCM, FFT не так сильно загружает процессор. Но думаю в случае решения на "железе", разница между пик детектором по цене/сложности и FFT будет значительной, лично мне прототип кажется весьма интересным, удачи вам с ним.
на самом деле под любое решение можно найти трек, который не будет «играть». Здесь дело не в фурье и прочем, просто музыка очень разнообразна. Поэтому я и зашел посмотреть как вы дальше используете преобразованные данные по частотам в вашем рендере. Еще я не понял в чем разница решения по цене/сложности между peak detection и FFT, это же просто алгоритмы.
В статье таких деталей нет, но я не против поделиться. Преобразованные данные по частотам это массив комплексных чисел - характеристика сигнала, тут надо вспомнить Теорему Котельникова, чтобы правильно индекс с частотой сопоставить, по сути i-ый элемент массива это характеристика сигнала на определенной частоте. Потом логически группируем (вот неплохая справочная литература https://www.cuidevices.com/blog/understanding-audio-frequency-range-in-audio-design) и считаем среднее значение модулей на отрезке выбранных частот - сумма модулей комплексных чисел по взятым частотам поделить на кол-во. Для анимации в приложении подцепляем значение низких к фону, а средних к изгибам волны, анимируя изменения этих величин.
вот я это и хотел выяснить, по сути получается, что вы получили массив после FFT на срезе, усреднили низы и средние и используете эти два числа как оффсеты для анимации. Вот я и думаю, зачем столько вычислений, у вас анимация играет по дефолту, когда музыки нет, то есть получается вся задача «подергать» волны под музыку. Интересно посмотреть, как это будет выглядеть если, например, тупо сглаживать сигнал простым скользящим средним, например, и колбасить этим. А шейдер мне нравится, поцветнее его сделать бы еще.
Хотел дополнить каммент. Зашел в музыку сегодня и как раз дали триал на 7 (!) дней, что дали я только не понял ), но теперь у меня в веб версии появилась эта анимация. Что могу сказать, басы как бы вижу, что-то анимируется, но с средними не вижу разницы между когда не играет песня и когда играет. Ощущение, как сказал один из комментаторов, что это записанная гифка. Ну, реально не вижу разницы между играет песня и не играет, или в веб версии это не так работает? Кстати, на вашем видео то же самое. Как насчет нормально колбасить волны? Ну, что б прям видно было – есть музон, фигарим! Агрессии немного добавить надо, я хочу чувствовать трек! Как вам такой фидбек?
Есть же детекторы транзиентов позволяющие определить ритмическую составляющую, даже определить ритм и темп, для анимации по ним.
Вообще, по идее бассы должны быть видны отчетливее, если например поставить окно 8192 в спектраграмме foobar2k, то в принципе почти все басы видно.
![](https://habrastorage.org/getpro/habr/upload_files/c69/951/aea/c69951aea868511644922bc986323834.png)
У меня есть вопрос касательно веб-версии ЯМ - почему анимация "Моей волны" частично перекрывается этими блоками? Так и задумано или это исключительно у меня? (p.s. такой вид при любом масштабе, на скрине дефолтный 100%)
Анимация действительно выглядит круто, единственное непонятно кто на неё смотрит дольше подбора подходящего трека.
Присоединюсь к ворчунам - выглядит здорово, но лучше бы эти мозговые ресурсы потратили на исправление багов и недоработок в приложении. А то выходит, что, например, прогресс загрузки трека убрали, но зато теперь у нас красивая анимашка на главном экране...
Кстати интересно почему. Очень полезная штука же была и работала.
Тоже присоединюсь к тому же вопросу. С одной стороны интересный пост и красиво получилось. С другой - удивительно, что функции, связанные со звуком, по-прежнему не реализованы никак. Нет эквалайзера, нет нормализации громкости, нет кроссфейда. Но теперь есть анимация. На смартфоне. Который у большинства через 30 секунд гасит экран. И да, кнопки не гасить экран тоже нет.
Логичный ответ - максимальное упрощение кода, удешевление разработки. Вот только на визуальные свистелки сил не жалко, наверное у них все посчитано и такие вещи привлекают аудиторию гораздо лучше, чем всякие мелочи для гиков.
Неужели это настолько дорогие фичи в общем масштабе расходов на этот сервис. Меня просто не перестает удивлять, что где-то есть PowerAMP, где человек в одно лицо сделал музыкальный комбайн, а где-то есть приложение с большой командой, которое за годы в плане звучания вообще толком не продвинулось.
Как пожелание: можно ли, чтоб эта анимация хотя бы воспроизводилась на ТВ при трансляции через Хромкаст? Это был бы реально полезный юзкейс.
Лучше б сделали возможность ставить треки в очередь произвольно
В приложении огромное количество багов, сам функционал критически беден, а вы красивые анимашки делаете.
Десктопное приложение вообще не обновлялось миллион лет, либо обновления не приносили ничего нового:
Нормализация громкости. Пожалуй, самая главная фича которой не хватает
Навигация по трекам потока. В мобильном приложении можно просмотреть историю треков, в версии для ПК - нет. Так же не хватает просмотра следующих треков. Поддержка говорит, что следующие треки невозможно показать, тк они меняются из-за действий пользователя (лайки/дизлайки). Но спотифаю же как-то удалось? Уверен такая возможность есть, например, если пользователь что-то лайкает, то просто изменять список следующих треков.
Возврат к предыдущему состоянию. Например, играет поток, вы хотите посмотреть другие треки текущего композитора, открываете его профиль, прокликиваете треки, а обратно к потоку вернуться уже невозможно.
Полоса перемотки трека имеет высоту пикселей пять - попасть по ней бывает сложновато. Визуально она может быть сколь угодно тонкой, но сам хитбокс желательно увеличить раза в три. Берите пример с порнхаба =D
Трек в очередь. Проигрывание следующего трека без прерывания текущего.
Баг с мультимедийными клавишами. Если в приложении стоит галочка автозапуска, то после включения ПК и запуска приложения в нём не работают мультимедийные клавиши клавиатуры. Чтобы они заработали нужно мышкой нажать кнопку плей.
Баг - после автозагрузки приложение запускается свёрнутым, хотя выключалось развёрнутым
Баг - иногда сразу после запуска приложения, после включения радио не проигрывается следующий трек. Помогает включение другого радио и обратно.
Обо всех багах сообщал поддержке, сначала она отвечала, потом стала игнорировать.
В андроид приложении трек в очередь вы можете добавить, если слушаете не потоки радио/мою волну. Можно, например, при проигрывании альбома/плейлиста — нажать на три точки справа от трека и выбрать «Играть следующим» или «Добавить в очередь» (в конец очереди)
эх, напомнили анимацию в винампе... а те времена я часто часами за ней залипал под музычку...
а сейчас да, правильно сказали: никто этого не смотрит постоянно... в большинстве случаев приложение свёрнуто. Я, например, слушаю или в авто через блютус или дома в BT-наушниках.
Но я не скажу, что это бесполезная штуковина: лучше когда она есть, чем если бы её не было :)
Вычисляется всегда на лету? Не было идей заранее вычислять и хранить в сжатом виде на беке, передавая при старте как мету какую нибудь? С потерей байтов на хранение возрастёт качество, к которому так стремится автор) Интересно почему именно такую реализацию выбрали.
Киллер фича для изучения языков
Очень понравилась функция в Яндекс браузере для просмотра видео на YouTube с субтитрами, при клике по слову пауза и перевод.
Если добавить такой функционал, то думаю многие пойдут изучать языки на песнях, подкастах и книгах в Яндекс музыке (Субтитры есть, осталось перевод с паузой добавить, думаю также в виде плавающего окна). Я бы каждый день пользовался такой функцией)
О текущей версии
Я пару лет не пользовался Яндекс музыкой, при запуске моя волна
создаёт впечатление премиум приложения (как качественная упаковка при распаковке гаджетов), также приятно немного залипнуть на анимацию.
Очень порадовала возможность импорта из Spotify
!
отрисовку высоких частот. ... те же любители классики
Кажется в принципе неправильно, или несовременно что ли. Вы же сами приводили пример с "они все слушали тяжелый рок"
А нельзя заранее быстро проанализировать весь трек (или, допустим, его 5-10 минут, если альбом "сплошной" на час), выделить какие-то характерные места, "скопления частот" или других показателей (первые производные громкости или ведущей частоты, например), и дальше изменять настройку "глюкогенератора". Т.е. условная "средняя частота" должна быть не константой, а какой-то областью, которая именно на текущем треке стоит обособлено и от более низких и от более высоких. Меняется музыка - перенастраивается и глюкогенератор.
Вот к примеру Jethro Tull, Thick As A Brick - две стороны по полчаса, внутри которых плавно переходящие одна в другу песни с разными скоростями, инструментами и настроениями.
Или Uriah Heep, Magician's Birthday - начало, конец, и длинный хаос между ними
Спасибо за упоминание трека :)
Сделайте уже возможность автозапуска при загрузке/принудительно в фоне и старт воспроизведения "моей волны". Вопрос уже лет 6 как висит, судя по упоминаниям в инете.
Как научиться чувствовать треки? Визуализация музыкальных частот в Моей волне