AIMP Forum

AIMP для Windows => Предложения => Интеграция с сервисами => Topic started by: RomaKoks on November 06, 2020, 12:17:01

Title: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 06, 2020, 12:17:01
Задумка в том, чтобы реализовать функционал, существующий во многих стриминговых сервисах - автоплейлисты.

Учитывая что с Last.FM интеграция уже есть и достаточно хорошая, то реализовать данный функционал логично на базе Last.FM на информации о сходстве исполнителей (она на Last.FM есть в почти прозрачно открытом виде).
Также у меня есть выгрузка (https://cloud.mail.ru/public/4pQG/4vvNREAoG (https://cloud.mail.ru/public/4pQG/4vvNREAoG), https://cloud.mail.ru/public/AdRq/2ENhVhYct (https://cloud.mail.ru/public/AdRq/2ENhVhYct)) большого количества связных исполнителей с GPM, которую при необходимости могу привести к нужному формату.

Самую простую реализацию вижу как изменение априорной вероятности при шаффле у треков, имеющих схожих исполнителей/тегов last.fm с выбранным треком. Несомненно можно пойти дальше, но уже это было бы очень круто.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: Soolo on November 06, 2020, 12:25:44
уже есть в некотором виде
Что-то более навороченное реализовать сложнее, т.к. плеер работает с вашими локальными файлами, а не с мировой базой данных

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=65762.0;attach=62404)
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: JD on November 06, 2020, 12:26:13
В простейшем виде это уже работает - просто создайте плейлист по жанру
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 06, 2020, 12:59:17
Это все немного не то. Для создания папок необходимо много ручной работы + дубликация файлов. Жанры "пляшут" и зачастую слишком "общи". Идея заключается в том, что внутри конкретного множества треков (плейлиста/смарт-плейлиста/папки/целиком локальной фонотеки) иметь возможность управляющего воздействия на порядок случайного воспроизведения треков таким образом, чтобы в этом порядке воспроизведения подряд идущие треки были "ближе по духу".
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 06, 2020, 13:06:10
Таким образом все что нужно - ползунок "агрессивности" этого воздействия, который будет отражать дисбаланс априорного распределения вероятностей (насколько он отличен от равномерного), при наличии матча схожего исполнителя/трека/тега итп.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: JD on November 06, 2020, 13:07:50
По-моему, слишком частная задача - управлять рандомом на основе похожестей last.fm.
Вот смарт-плейлист на основе похожестей - это была бы фича пожалуй. А уже в нём обычный рандом использовать.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 06, 2020, 13:13:49
Как раз ваша задача слишком частная, которая решается вышеупомянутой с выставленной "агрессивностью" на максимум.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 06, 2020, 13:31:13
По поводу локальной фонотеки и мировой базы данных:
Первичный граф (ПГ) "связности", покрывающий большинство локальных фонотек (при условии заполненных тегов), можно получить из выгрузки GPM.
При "развертывании" у локального пользователя ПГ фильтруется, путем удаления отсутствующих в локальной фонотеке исполнителей.
Далее для исполнителей, имеющихся у пользователя, но отсутствующих в ПГ кидаются запросы в Last.FM и граф обновляется.

Таким образом каждый пользователь aimp не будет "вешать" Last.FM запросами, а только обновлять свой граф.

По поводу вероятностей, я имел ввиду апостериорные. То есть действие, аналогичное тому, что на скриншоте от
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=65762.0;attach=62404)
предполагается от какого-то конкретного одного трека.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 08, 2020, 21:25:19
Постарался тут (https://cloud.mail.ru/public/ReuP/3wjaBwXvz) объяснить и показать на примере как это может работать. Будет здорово, если разработчики меня услышат, чем смогу - помогу в реализации.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: Artem on November 09, 2020, 12:52:52
Вы написали довольно много текста, вернее кода. Возможно, какие-то детали я упустил, т.к. код читать сложнее, нежели объяснение "на пальцах".
Короче говоря, (на сколько я понял) можно продолжить вашу мысль таким образом - можно попросить сам last.fm подобрать к текущему треку похожих исполнителей / треков - далее, плеер сможет посмотреть свою локальную базу на наличие чего-либо похожего и подправить правила смарт-плейлиста "на лету".
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: Soolo on November 09, 2020, 13:35:10
Короче говоря, (на сколько я понял) можно продолжить вашу мысль таким образом - можно попросить сам last.fm подобрать к текущему треку похожих исполнителей / треков - далее, плеер сможет посмотреть свою локальную базу на наличие чего-либо похожего и подправить правила смарт-плейлиста "на лету".
Не читал ни код, ни текст, но именно такой сценарий у меня в голове возник, как способ реализации.
Разве что не правила смарт-плейлиста править, а делать подходящую выборку, по похожим_исполнителям и запускать случайный трек из этой выборки.
Хотя да, менять правила смарт-плейлиста - это ещё более изящный способ.
Таким образом случайность трека может задавать сам пользователь, посредством нажатия на одноименную кнопку.
А так же сможет на лету отключать подборку похожих исполнителей и слушать составленный плейлист.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: JD on November 09, 2020, 13:48:06
Но ведь может быть сценарий не только случайного проигрывания похожих исполнителей.

Title: Re: Autoplaylists based on track/artist "similarity"
Post by: Soolo on November 09, 2020, 14:22:52
Но ведь может быть сценарий не только случайного проигрывания похожих исполнителей.
описывайте другие сценарии
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: JD on November 09, 2020, 15:00:09
Тупо хочу находить похожести и слушать в том порядке, как мне угодно.
Или массово редактировать теги у всех похожих исполнителей.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: Soolo on November 09, 2020, 18:51:30
Тупо хочу находить похожести и слушать в том порядке, как мне угодно.
Или массово редактировать теги у всех похожих исполнителей.
То есть сценарий с правкой смарт-плейлиста вам подойдёт.
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 10, 2020, 09:13:04
Разве что не правила смарт-плейлиста править, а делать подходящую выборку, по похожим_исполнителям и запускать случайный трек из этой выборки.

Мы не меняем МОЩНОСТЬ (количество треков), мы меняем вероятность каждого трека, который рекомендуем, а потом запускаем шаффл. Те рано или поздно отыграют все треки, но сначала в очередь будет попадать больше "подходящих".
Title: Re: Autoplaylists based on track/artist "similarity"
Post by: RomaKoks on November 10, 2020, 09:54:39
можно попросить сам last.fm подобрать к текущему треку похожих исполнителей / треков - далее, плеер сможет посмотреть свою локальную базу на наличие чего-либо похожего
да
и подправить правила смарт-плейлиста "на лету".
не совсем, если отталкиваемся от реализации в рамках смарт-плейлиста, то:
1) нужно реализовать в смарт-плейлисте возможность нежесткого (вероятностного) удовлетворения правилам, чтобы в начале этого результирующего плейлиста было то, что наиболее подходит под правила. Тут к правилам нужно добавить соответствующий им ползунок "жесткости удовлетворения".
2) возможность того, чтобы в качестве "сида" для смарт-плейлиста выступал трек. То есть параметры для сравнения по правилам берутся из тегов выбранного трека.
2) в набор правил добавить правила: