Как стать автором
Обновить

Комментарии 80

«shuffle» читается как «шаффл».

Моё имхо:

1. Шаффл в первую очередь должен именно перетасовывать плейлист: чтобы, например, была возможность «листать» назад (что можно делать в winamp и нельзя в foobar, насколько я понял) — таким образом я смогу включить пропущенную или понравившуюся песню ещё раз;
2. Если должны быть условия перетасовки — они должны задаваться в настройках: для многих пользователей хитрые вычисления будут малопонятны, но задание приоритета сортировки — куда понятнее. Например, можно зайти в настройки и изменить порядок опорных направлений: «рейтинг» — в самый верх (чтобы любимая песня вероятнее попала в первые), «количество воспроизведений» — в самый низ (чтобы любимая песня не зацикливалась).
3. Плеер не имеет права менять рейтинг композиции — он может опираться только на параметр количества воспроизведений или подобный: я могу прослушивать одну композицию в течение 20 минут — чтобы разобрать слова, например.
4. Шаффл не должен быть простым рандомом: у меня был простой плеер от Expley, у которого рандом был постоянным — это было довольно неприятно, и при каждой возможности я подключал его к ПК, чтобы в Total Commander быстро перенумеровать файлы.
5. В настройках шаффла можно указывать параметр «rotation list» — как на радио: в течение каждого, предположим, часа самые 4-10 топовых (или любимых) трека должны быть воспроизведены — остальные промежутки забивают менее успешные «братья».

Ещё пара пунктов в голове вертится — но я не могу их сформулировать :)
Спасибо, много интересных мыслей.
> что можно делать в winamp и нельзя в foobar
Не совсем так. В fb2000 нельзя листать назад если order выставлен в Random. В случае именно Shuffle — все листается просто замечательно.
Спасибо, проверю вечером, а то уж больно расстраивал этот факт в силу того, что недавно я пересел с винампа на него.

Насколько мне подсказывает память — шаффл там идёт по альбомам или исполнителям, я прав?
Да, можно выбирать. Tracks, Albums, Folders.
Я бы сказал, что назад как раз надо листать так же в случайном порядке. То есть шафл в обе стороны.
Это не всегда хорошо. Иногда закинешь, например 100 песенок, включаешь случайное воспроизведение, слушаешь, а потом вдруг попадается очень хорошая песенка, но конечно же не знаешь, как она называется, а вытащить плеер и посмотреть, в данный момент нет, метро, например, давка =) А вот через минут 10 уже можно, достаешь плеер, листаешь назад пару песен и находишь. Это легче, чем искать среди энного кол-ва. Тем более, зачем мешать в обратную сторону, если тоже самое можно сделать, нажав «вперед»
зачем закидывать в плеер не любимые песни? и вообще по вашему алгоритму радио работает :)
Например, я не слушаю Muse — но все их альбомы у меня есть в плейлисте, наравне с кучей других команд: если они попадаются и я не хочу их слушать — я их пропущу; если же музыка в данный момент работает фоновым сопровождением, «аккомпаниментом к работе» — пожалуйста, тем более, что моя девушка их любит, да и многие другие тоже.
Раньше, когда я в поезд заливал в плеер только любимые композиции — я делал это, во-первых, долго, во-вторых, в поезде все они мне быстро приедались — и я выключал плеер и ложил его подальше. В последнее время я заливаю не почти всё подряд, но, например, то, что я давно не слушал, или по каким-нибудь ещё «менее достойным» критериям — и в поезде они для меня работают отвлечением от времени и окружающих ситуаций, просто аккомпанирующий шум.
В таком случае имеет смысл задуматься о ранжировании по пользователю. Но многопользовательский плеер — это уже что-то ненормальное.
Потом была в своё время такая задумка, как moods — т.е. в тегах к треку указывается, к какой обстановке он более всего подходит (slow, fast, romantic, work и т.д.), а плейлист создаётся под нужную обстановку. Понятное дело, что прописывать этот тег никто не стал, но что странно — что сервисы типа last.fm тоже обошли сей момент вниманием, уравняв все сценарии прослушивания музыки :)
Странно, но у того же last.fm есть ярлыки: Вам никто не мешает проставить ярлык типа «relax», «easy listening», «active» — как это делают уже многие. В результате Вы сможете слушать более-менее сходные композиции. К сожалению, всё же вероятен уход от основной тематики — из-за ориентирования схожести именно исполнителей.
Например я слушаю новую для меня группу. Закачал пять их альбомов в довесок к остальной музыке и хочу оценить.
И как подобная рейтинговая система (которая будет нормально работать только после продолжительной тренировки) поможет при прослушивании нового материала?
А если эти пять новых альбомов совсем не понравились — почему бы не удалить? :)
Очевидно, что в топике идёт одсуждение режима «случайного воспроизведения», а в сообщении о линейном прослушивании отдельно взятого альбома. Это непересекающиеся вещи.
Вот и я не понял — каким боком одно к другому? :)
А еще можно не менять рейтинг песен если человек просто забыл выключить плеер и не слушает его. К примеру анализируя показания акселерометра.
Как быть с ситуацией, когда слушается плеер, лежащий на столе?
потряхивать периодически
угу, столом
Плеер периодически воспроизводит вставки эротичных охов-вздохов и по измерению наклона стола определяет присутствие и эмоциональное состояние пользователя :))))
а у меня в плеере только любимые композиции, т.е. закидываю только то что имеет рейтинг (банальный фильтр rating:> ). Играются они по порядку, потому повторяются очень редко. Зачем нужно что-то более сложное?
у меня слишком много любимых композиций :) 8 гигов забиваются до отказа. Многие вещи хоть и люблю, но стандартным рандомом не включаются практически никогда (закон мерфи)
НЛО прилетело и опубликовало эту надпись здесь
Заливаю я альбомами, альбом может и любимый но некотоорые треки на нем уже приелись.
По некоторым ощущениям Windows Media Player в послдених его реинкорнациях примерно так и работает
А за что минусуем?
// Извините — не сдержался

Просто я замечаю что исполнителей которых я чаще других включаю вручную при шафле проигрыватель мне включает значительно чаще, также я замечаю что у песен что я слушаю часто ставится авторейтинг 4 звезды.
кстати интересный вопрос оказался. вот тут говорится что данные для авторейтинга выставляются онлайн-магазинами.
Забавно.
Но и + к этому при выборе песен для шафла я думаю он руководствуется вашими действиями.
скорее всего. по-крайней мере меня удивляло что некоторым альбомам он ставил рейтинг ниже 3-х хотя мне они нравились. дальше насколько я помню для часто слушаемых треков рейтинг рос. вот вроде и весь интеллект. хотя в других плеерах я и этого не вижу. по-крайней мере через месяц прослушивания чисто в WMP медиа-лайбрари достаточно точно отражала мои вкусы :)
Круто. Если производители к вам прислушаются будет очень хорошо) Не совсем понятна критика в комментариях, но мне кажется система реально работающая, за исключением формулы для выборки и непосредственно алгоритма. Но это мелочи.
А «на правах патента» что-то реально означает или нет? То есть вы против если люди начнут встраивать подобный функционал, например, в опенсорц плееры?
Эта надпись не имеет никакой юридической силы, просто для размышления. что такую идею неплохо бы запатентовать пока это не сделало apple ) но тк на патент нужно время и деньги, я этим заниматься не буду. Если ктото из опенсорц плееров возьмет это на вооружение я буду очень рад )
Песни имеют свойство надоедать. Поэтому с течением времени надо песни с рейтингом >50 понижать до 50. Медленно. Например, за сутки работы плеера(считать именно время, когда музыка играет), рейтинг всех хороших песен понижается на 1. То же самое можно сделать с плохими песнями, но еще медленнее. Ведь бывает так, что песня сначала не нравилась, а потом случайно включилась, вам лень было тянуться её выключать и тут(внезапно) вы услышали отличное место в песне, которое полностью меняет ваше к ней отношение. А в вашем случае, если песню загнать в самый низ, то хрен она когда-нибудь вообще будет играть. Тогда уж сразу неугодные песни удалять.

+ еще увеличение рейтинга — это перемотка песни в начало.

ps. если уж вы потрудились прилепить красивые картинки и оформить краисво статью, то вам же не сложно будет заменить «о5» на «опять». Оба раза наткнувшись на это слово спотыкался на пару секунд.
Простите меня все, но я не удержался и «причесал» текст, рассыпав по нему недостающие знаки препинания и слегка облагородив некоторые особо охреневшие места.
хабрасанитар Шух.о)
Великий Шухер 8-)
Дело Белых рыцарей живет и процветает?
«Милый айподушка, угадай, пожалуйста, что же я хочу сейчас послушать, а то я и сам не знаю!»
вам не нравится, когда результат работы устройства совпадает с вашими вкусами?
Результат работы моего айпода меня устраивает уже сейчас. У меня в плейлисте нет песен, которые мне не нравятся.
Такое решение:
Длина трека = 100 баллов
При длине трека 100 секунд (для ровного счёта) тыкаю Next на 5 секнде прослушивания — рейтинг опускается до 5, на 10 секунде — до 10.
Плейлист идет всегда по убыванию без рандома. Рейтинги я понижаю настолько, насколько не нравится мне этот трек.
А как же быть в такой ситуации: мне нравится весь альбом, все треки просто супер, в данный момент у меня в плеере открыт именно он, но мне хочется включить какую-то определенную песню, что я обычно делаю? Не доставая плеер, через карман, перещелкиваю до нужной. И что же получается, у тех песен, что я пропустил, рейтинг упадет практически до нуля?
значит нужна кнопка интерфейса отключающая интерактивность. например если ты дал плеер побаловаться кому нить другому, или в приведенном случае.
или прослушивание трека менее 10 секунд можно вообще не учитывать.
Шух неравнодушен к теме музыки :)

По тексту:
Не совсем понятно — почему у песни, которую я переключил до 30 секунд рейтинг будет выше, чем у песни, которую я прослушал более 30 секунд и переключил. Это неверно. Если песня мне порядком надоела, но всё ещё нравится — я послушаю какую-то часть точно. И, скорее всего, это будет больше 30 секунд. А вот если я щёлкнул сразу на следующий трек — это значит, что песня меня уже бесит и у меня просто не доходят руки её стереть.

Но это всё не важно. Почему?

Потому-что люди не боты. Потому-что у людей бывает разное настроение, на улице бывает разная погода, человек мог выспаться, а мог и мало спать, мог получить зарплату и премию, а мог услышать, что уволен. И музыка в плеере у него разная — грустная, весёлая, динамичная, плавная. РАЗНАЯ.

Можно привести такой пример: человек идёт в 11 вечера с работы после тяжелой сдачи проекта. Включает в плеере какой-нибудь русский рок и пытается расслабиться, подумать, помечтать. А с утра у него встреча с заказчиком, где он получил предоплату за проект в размере 300К. Радостный, довольный, только что бурно обсуждал концепцию, весь на драйве. Вышел на улицу — включил какой-нибудь задорный хаус или жёсткую рэпчину с битом, взрывающим мозг.

И самое интересное (по себе сужу), что скорее всего в плеере будет стоять шаффл, просто треки будут выбираться именно перещёлкиванием до тех пор, пока не включится что-то подходящее. Но это совсем не значит, что та музыка, которая была пролистана — стала неинтересна. Просто настроение не то и время для неё неподходящее.

И как после этого строить рейтинг?
А если не придираться к системе а предложить альтернативу? :) Скажем, рейтинг всех композиций просто «стареет», а те, что слушаются чаще — ставновятся любимыми. Придумать можно массу всего, автор статьи просто показал, что можно сделать шаффл умней и предложил конкретное направление — дать ему память и рейтинги. А уж КАК ИМЕННО реализовать — это над дать юзабилитистам, эт их работа.
НЛО прилетело и опубликовало эту надпись здесь
В случае поиска песни на послушать есть вариант — отслеживать большое (> n) количество переключенных песен и не делать с ними вообще ничего. Или на какой-то мизер понижать рейтинг, если рейтинг сделать с большим количеством значений.

А вообще тема благодатная. Тут можно много чего придумать — например отслеживать подобный поиск песни, смотреть в ее жанр и дальше подбирать подобные. Можно один раз задать по жанрам группы по настроению (тяжелый рок, лиричное, ритмичное и т.п.)
Довольно частый случай — после прослушивания песни А мы никогда, или крайне редко слушаем песню Б. Хотелось бы, чтобы шаффл тоже это учитывал, и если мы, прослушав песню А, услышали песню Б и скипанули её, запоминал это и в следующий раз уменьшал вероятность проигрывания А->Б

Ещё можно для продвинутых сделать возможность создавать правила, например «не играть одного и того же исполнителя чаще чем раз в час» или «утром хардкор не ставь!».

А если акселерометр вспомнить, то вообще можно отслеживать сидит человек, идёт или бежит, и ставить песни близкие по темпу. Так-то!
Если не ошибаюсь, сейчас iTunes (и похоже, что iPhone как минимум) учитывает не только рейтинг, но и количество прослушивания трека.
Либо мне просто везет, и музыка почти всегда включается под настроение (если не попадает — тыкаю «next» до первого «попавшего» трека, и дальше опять треки идут именно те, которые хочется).
В принципе я похожую концепцию реализовал в iTunes/iPod при помощи смарт-плейлиста. Правда, мне еще нужно было автозаполнение.

Подбирать песни по всем критериям
Дата последнего воспроизведениия (не в последние) 5 месяцев
Жанр (!=) Классическая // Это личное, на iPod на улице плохо воспринимается
Жанр (!=) Подкаст
Длительность (меньше чем) 6:00 // Тоже вкусовщина
Рейтинг (!=) * // С одной звездой песня — кандидат на удаление.
Максимальное количество 250 объектов выбранных (случайно)
Оперативное обновление

В итоге меня эта концепция удовлетворила. При каждой синхронизации iPod удаляет прослушанное, закачивает новое, а я не трачу время на выбор музыки.
НЛО прилетело и опубликовало эту надпись здесь
Нет конечно, но это не мешает.
«Я знаю что в Apple сидят не дураки, и если они поставили кнопку предыдущий трек, значит она необходима. Но я владею плеером уже около 2 лет и ни разу не нажимал на нее.»

А я пользуюсь, и именно тогда когда проиграл один из моих любимых треков и я захотел прослушать его еще раз.
Или песню сначала. Тоже частенько так делаю.
А у меня есть своя идея по поводу шаффла, но, боюсь, многие не оценят. На моем айподе сейчас около 10000 треков и количество только растет, музыку в основном слушаю фоном в транспорте и на работе.
Суть такова, iTunes считает количество воспроизведений каждой песни и хотелось бы чтобы шаффл ставил при любом раскладе песни именно по количеству воспроизведений данного трека и те песни, которые проигрывались более одного раза были в самом конце плейлиста, чтобы слушать только свежее, ибо из тех 10000 осталось еще очень много непрослушанных песен. А если мне захочется послушать что-то из любимых песен, то проще включить ее вручную.
Насчет рейтингования: это весьма проблематично с таким количеством музыки, да и просто лишняя заморочка, имхо.
Довольно интересно, но я бы посоветовал не отказываться полностью от ручного выставления рейтинга. Система оценок — тоже важная вещь. Жаль, что её нет во многих карманных плеерах (по крайней мере я не встречал).

Есть только один вопрос: почему у вас переменная принимает (которая занимает 1 байт) 255, а не 256 значений? :)
мой косяк ) поправил
По поводу генерации случайных чисел в цифровой технике. Чаще всего для этой цели используются полиномиальные счетчики (недорогое и очень быстродейственное решение). По сути, в ней используется реализация функции исключающего или (xor). Цепочка логических элементов выстроена таким образом, что изменение каждого разряда зависит от состояния предыдущего в цепочке. При таком подходе, исключается возможность повторения числа до полного прохода всех возможных комбинация разрядов числа (их кол-во задается модулем счета). Однако, большой недостаток в этой псевдослучайной последовательности — ее повторяемость по окончанию счета. Так было в моем старом плеере (NEXX NF-810) — если не менять число песен в плеере, то запоминаешь наперед, какая будет идти после какой.
Другой, более продвинутый вариант основан на тактовом генераторе — там случайное число также задается полиномиальным счетчиком, однако его переключение происходит постоянно в реальном времени, поэтому заранее предугадать в каком состоянии окажется счетчик невозможно. Недостаток этого метода — вероятность повторения одной и той же песни сильно увеличивается (особенно, при малом кол-ве песен)
Мое мнение:
1. обязательно разное ранжирование на разное настроение. Не обязательно называть это настроением. Например я при работе не перевариваю песни с русскими или английскими словами — периодически ловлю себя на том, что слушаю слова. Но от этого песя не становится нелюбимой
2. в качестве способа выбора трека вполне устроит случайный выбор с учетом веса(рейтинга) песни. На пальцах — сложили все рейтинги, получили, например 1500. Выбрали случайное число от 1 до 1500, посмотрели по порядку, в какую песню попали. Каждая песня получит шанс, более ретинговые — больше шанса.
3. Возможно я ищу какую-то конкретную песню и пролистываю много треков подряд. Надо в этой серии рейтинг пролистываемых снижать незначительно, а рейтинг найденной — повышать
примерно такой системы мне не хватает. слушаю джаз/лаунж на шаффле. скачиваю музыку сборками. естественно, нравится в них не все. когда начинает играть трек, который не нравится, открываю винамп, удаляю его из плейлиста и нажимаю next. больше он не появляется ))
а я слушаю радио lounge и у меня нет никаких проблем
Вот упомянутый лаунж-box я в свое время и проектировал, чтобы создать домашнюю систему музыкального сопровождения.
Организация была следующей — закачиваются в едином стандарте оформлеия все исполнители и сборники.
Создаются плейлисты по жанру, по исполнителю, по иным факторам группирования (скажем, весь русский рок, весь даб, все исполнители охарактеризованные как «всякая фигня на случай гостей», рипы радиопередач и т.п.) Плейлисты также имеют пересечения, скажем, даб вполне может идти после некоторых подвидов джаза.
Далее предлагается выбрать плейлист, он копируетс яв память,
и по мере воспроизведения — строится история сыгранного — раз, из плейлиста случайно выбирается трек, отправляется проигрывателю, а сам трек выкидывается из плейлиста. Но запись о нем остается в истории, откуда его можно вызвать, прервав основное воспроизведение.

Недостатки — требуется определить, в какой плейлист что определить, и порою просто тупо таская альбомы не получится.

Дополнительно была идея имитации радио — отбивки от радио Маяк =) в начале часа, или же говорилка времени…
Ах, мечты, мечты. Интеллектуальный шаффл… Включаешь, скажем, «We Will Rise Again», и плеер понимает твоё настроение, включает «Game of Life», потом что-то вроде «Empty Walls», скажем, «Everything About You» и медленно идёт в сторону позитива. И вот, через полчаса уже играет «Bang Bang», «No You Girls» и ты улыбаешься, настроение отличное, плеер выполнил свою миссию.

А насчет вашей идеи… ну, я бы её не использовал, меня бы мучали каждый раз подсчеты в подсознании, так устроен мозг (помню, даже смотрел на теги перед плюсованием поста на хабре, ужассс), а хочется расслабиться)
НЛО прилетело и опубликовало эту надпись здесь
Важно, чтобы всегда оставался доступным и обычный рандом.
Лично я никогда не изменяю громкость в зависимости от песни.
опционально ;)
я тоже, но многие мои знакомые так делают.
Мне совершенно непонятно причем здесь громкость? Есть тихие песни, есть громкие, есть концертные записи. У всех разный уровень звука. Соответственно дома или на улице я также меняю громкость и это совершенно не касается того нравится мне или не нравится трек. В общем, я считаю, что громкость здесь совершенно лишняя.
У меня с айподом достаточно хорошие отношения — он отбирает рандомом те песни, которые мне нравятся. Если не угадывает, я просто начинаю воспроизведение с начала списка.
В формуле «Результат=Рейтинг — надоедание*коэффициент надоедания» еще можно прибавить число «тот же альбом» или лучше «та же папка».
Как развитие идеи с жанрами песен, но теги расставлены не всегда, а по папкам можно в любом случае более-менее ориентироваться.
вот это верно. даже лучше тотже исполнитель ) и немного тотже жанр
Гораздо проще вживить в мозг электроды и считывать инфу:) или брать анализ крови на наличие гормона счастья
А мне порой кажется что мой Shuffle порой обретает интилект и действует по своему особому алгоритму… причем он совпадает с моим… может у них в прошивке есть какя-нибудь система который порядок треков в режиме шафл определяет исходя из количество раз, которое трек был прослушан и его рейтинга…
Нет, всё немного не так.

Вы думали, почему Эппл решила сделать шаффл с собственными наушниками? В них встроен сенсор, который считывает с кожи ваших ушных раковин небольшие нервные импульсы. Чем больше импульсов — тем больше вам нравится песня.

Всё очень просто. Никаких заумных алгоритмов.
Звучит бредово… особенно если учесть что я родными нашуниками пользовался только 3 дня с момента покупки, потом купил соньковские, они гораздо лучше…
Ага ага. Без смайлика — уже не шутка.
да нет, тут все серьезно. импульсы с мозга поступают через наушники в плеер, соньковские тоже подходят, тут главно сам факт использования наушников.
Все ваши мысли о настроении можно формализовать и вписать в концепцию автора (автору просьба осилить=) ).

Ко мне тоже приходили мысли о таком шаффле, но в моей версии небыло надоедания, зато был учёт настроения. Автор говорит о рейтинге трека, в моём представлении таких рейтингов должно быть несколько — по градациям настроения. Понятно что такая система вначале будет подсовывать «не те» треки, но со временем накопит всё больше информации о настроении той или иной композиции и будет выдавать её когда нужно.

У меня, как и у большинства людей наверное, выбор трека происходит перещёлкивнием до того, что подходит по настроению (иногда хочется драйва, иногда спокойствия и т.д.). Допустим при первом прослушивании наш интеллект ждёт пока мы выберем трек, выбирает пустой рейтинг (допустим с номером 1), добавляет в него некоторое число. Этот рейтинг и отвечает за ваше текущее настроение. Вы снов пролистываете песни, попали на следующий нужный трек и слушаете его — интеллект снова добавляет в рейинг с номером 1 к этому треку какое-то число. Так он соберёт некоторую статистику о настроении с рейтингом номер 1. Скажем вы выключили плеер и включили через пару часов, ваше настроение изменилось — плеер перебирает настроения (пока ему известно только об одном), если вы переключили песню с высоким рейтингом 1, значит он больше не будет включать треки, у которых преобладает настроение 1. Я думаю что потом этим настроениям можно будет легко дать имена вроде «драйв» или «спокойный». Когда у него закончатся свободные рейтинги (тут можно выбрать любое количество градаций, но мне кажется будет достаточно 4-8), а вы переключите все возможные настроения, плеер догадывается что ваше настроение — это сместь рейтингов. Опять таки подсовывает треки с разными настроениями — ведь вы всё равно остановитесь — и определяет что драйва в вас 70 из 100 а спокойствия 30 из 100. Чем больше слушать — тем точнее и быстрее будет определяться ваше настроение. Допустим вы переключили трек с настроением драйв 10 из 100 и спокойствие 80 из 100, можно предположить что в вас сейчас 90 драйва и 20 спокойствия. + должна быть система ранжирования непрослушанных треков — например если настроение определено, нужно подсовывать треки без настроения и назначать им рейинг в соответствии с настроением. Читая свои строки я понимаю что до мат модели ещё далеко, но идея такова.
Гипотеза: Проигрывание музыки одного настроения поддерживает настроение.

Следствие: У человека при одном периоде прослушивания настроение не может измениться резко и кардинально.

На каждом плеере есть кнопки вперед и назад. Эти кнопки и должны отвечать действие повышение/понижение внутреннего рейтинга треков в плеере.

Понижение происходит при нажатии кнопки вперед. Если кнопку нажали в первые 5 секунд трека, то понижения не происходит.

Повышение происходит происходит при нажатии кнопки назад. Повторное повышение на том же треке не происходит.

При старте все треки имеют рейтинг 50. При повышении/понижении рейтинг повышаются/понижаютсяна 50% от своего рейтинга.
Все треки в той же папке повышаются/понижаютсяна 25%, все треки в соседних папках повышаются/понижаются на 10%
По прошествии 2х часов без воспроизведения — начинается новая сессия настроения.

Все!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации