AIMP Forum

AIMP для Windows => Плагины => Дополнения (Plugins / Skins) => Плагины-дополнения => Topic started by: KorneySan on January 05, 2016, 17:51:31

Title: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 05, 2016, 17:51:31
[catalog_card=388]

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

Плагин имеет выключатель, связанный с пунктом меню «Разное» и горячей клавишей, а также контролирует состояние встроенного в плеер перемешивания и не вмешивается, если оно включено. Состояние плагина относительно встроенного перемешивания отображается цветом заголовка вкладки настроек.

Примеры включения:
О: отсутствует, Пр: простое, С: список, По: порядок
О-О-О: плагин не влияет на очередь воспроизведения.
О-О-Пр: аналогично встроенному перемешиванию.
О-О-С: перебор треков плейлиста без повторений.
О-Пр-О: случайный перебор групп плейлиста, запускается первый в группе трек.
Пр-О-Пр: аналогично устаревшему плагину Random Playlist.
Пр-С-С: случайный перебор плейлистов, в плейлисте перебор групп без повторений, в группе перебор треков без повторений.
Пр-Пр-По: случайный перебор плейлистов, в плейлисте случайный перебор групп, в группе все треки будут воспроизведены по порядку.

Локализации:
Английская, русская, белорусская (официальная и тарашкевица), польская, эстонская, испанская.

Обновлено:
В версии 1.5 (https://www.dropbox.com/s/928gxcoeod4tgal/AdvancedShuffle%201.5.zip?dl=0):
- исправлены ошибки версии 1.4 (возможно не все).
- добавлена возможность исключать из перемешивания плейлисты, в том числе и другим плагинам.

Буду признателен, если Вы окажете посильную поддержку на кошельки:
WebMoney:
B160707862874 (белорусские рубли)
R273560332427 (российские рубли)
Z348179565699 (доллары США)
E404716631557 (евро)
Яндекс.Деньги:
4100 1561 6671 080

Plugin provides a three-level (playlist-group-track) shuffling of tracks with three modes for each level.
When enabled the plugin is first selecting a random playlist, then a random playlist group, then a random group track. Each level can be enabled or disabled independently. For example, if playlists shuffling is turned off, plugin will mix groups and tracks in the current playlist only. When groups shuffling is turned off, groups will not be taken into account, When tracks shuffling is turned off, plugin will play the first track from the playlist or group.
Each level has three modes of operation: a simple, the list and the order.
In the case of simple shuffling the plugin will select at the level a random item that does not coincide with the current one.
With list shuffling plugin builds a list of items from which they are selected one by one, providing a unique non-repeating sequence. Changing the prior level occurs only after the devastation of the current list.
"Order" shuffling is provided for the cases when you want to shuffle some prior levels and keep the order of items in the current. For example, the groups are shuffled but the tracks in the group are in order.

The plugin has a switch associated with the menu item "Miscellaneous" and a hot key, and monitors the status of the built-in shuffle and does not interfere when it is enabled. Status of plugin with respect to the built-in color mixing displayed settings tab header.

Examples of settings:
N: none, S: simple, L: list, O: order
N-N-N: plugin does not affect the play queue.
N-N-S: similar to the built-in shuffle.
N-N-L: non-repeating sequence of playlist tracks.
N-S-N: playlist groups shuffle, the first track in the group is played.
S-N-S: similar to outdated plugin Random Playlist.
S-L-L: simple playlists shuffle, playlist groups are shuffled without repetition, the group tracks are shuffled without repetition.
S-S-O: simple playlists shuffle, simple playlist groups shuffle, in a group all the tracks are played in order.

Localization:
English, Russian, Belarussian (official and tarashkevitsa), Polish, Estonian and Spanish.

Updated:
In version 1.5:
- fixed bugs of version 1.4 (maybe not all).
- added the ability to exclude playlists from mixing, other plugins able too.

I would be grateful if you donate to following wallets:
WebMoney:
B160707862874 (Belorussian roubles)
R273560332427 (Russian rubles)
Z348179565699 (US dollars)
E404716631557 (Euro)
Yandex.Money:
4100 1561 6671 080
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 05, 2016, 18:45:23
Крутяк +
Теперь к багам:
1. Выбрал Список трижды - рандом шёл в пределах одного плейлиста
2. Выбрал Простой трижды - переключал треки пока не вылетел АИМП
Теперь не включается, выдаёт багрепорт (прикрепил)

Предложение: включать плагин только при включении рандома в плеере - нужно для быстрого выключения (выключать плагин, или менять его настройки - дольше).
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 05, 2016, 19:19:46
Крутяк +
Теперь к багам:
1. Выбрал Список трижды - рандом шёл в пределах одного плейлиста
Рандом будет идти в пределах одного листа, пока в нём не кончатся группы и треки. Если плейлист большой, этого можно просто не дождаться. :)
У меня на 2-х плейлистах, в одном из которых 5 групп (одна выключена) и 20 треков (три выключены) отрабатывает как заявлено. Перебеирает 17 треков погруппно, затем щёлкается в соседний плейлист.
Quote from: Soolo
2. Выбрал Простой трижды - переключал треки пока не вылетел АИМП
Теперь не включается, выдаёт багрепорт (прикрепил)
Не сумел повторить вылет. Клацал около 50 раз, поймал встроенное в AIMP сообщение об ошибке, но после этого и работал (см. п. 1), и перезапускается.
Quote from: Soolo
Предложение: включать плагин только при включении рандома в плеере - нужно для быстрого выключения (выключать плагин, или менять его настройки - дольше).
Рандом в плеере будет пытаться вести свою политику. Либо оставлять как есть, либо делать горячую клавишу и просить Артёма дать доступ к инфоленте для вывода состояния плагина.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 05, 2016, 19:23:38
Клацал около 50 раз, поймал встроенное в AIMP сообщение об ошибке, но после этого и работал (см. п. 1), и перезапускается.Рандом в плеере будет пытаться вести свою политику. Либо оставлять как есть, либо делать горячую клавишу и просить Артёма дать доступ к инфоленте для вывода состояния плагина.
У меня версия АИМП с отладчиком https://yadi.sk/d/qsvE2OtFmd6Wy
Можно сделать быстрое выключение через меню Разное (инфолента не поможет, её отключают многие), ну или общую галку вкл/выкл в настройках плагина
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 05, 2016, 19:30:45
У меня версия АИМП с отладчиком https://yadi.sk/d/qsvE2OtFmd6Wy
Спасибо, скачал, погоняю. Дома ещё на 3.60 опробую.
Quote from: Soolo
Можно сделать быстрое выключение через меню Разное (инфолента не поможет, её отключают многие), ну или общую галку вкл/выкл в настройках плагина
Боюсь, придётся делать галку, привязанную к меню "Разное". :)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Awakunar on January 05, 2016, 19:33:03
в окне настроек почему-то перечеркнуто
(http://i.imgur.com/17wCcLM.jpg)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 05, 2016, 19:38:11
в окне настроек почему-то перечеркнуто
(http://i.imgur.com/17wCcLM.jpg)
Хм, а у меня зелёная рамочка >:( и не перечёркнуто
Ненужная фича с цветом заголовка
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 05, 2016, 19:43:33
Хм, а у меня зелёная рамочка >:( и не перечёркнуто
Ненужная фича с цветом заголовка
Вообще-то я пытался играть ФОНОМ заголовка, но не получилось. А цвет и шрифт означает работу плагина относительно родного перемешивания (родной выкл - плагин вкл, зелёный; родной вкл - плагин выкл, красный), так что фича очень даже нужная. ;)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 06, 2016, 16:34:13
Версия: 1.1

Обновлено:
В версии 1.1 добавлена опция включения плагина, пункт в меню "Разное" и горячая клавиша в настройки. Опция включения перекрывается встроенным перемешиванием. Задействована автоматическая локализация с адаптацией под 3.60.
Вложение в шапке. Спасибо товарищу DesweR за код для заголовка.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 06, 2016, 21:14:09
1.1
Настройка: Простое трижды - вообще трек не переключается при нажатии кнопки "следующий"
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 06, 2016, 21:55:43
1.1
Настройка: Простое трижды - вообще трек не переключается при нажатии кнопки "следующий"
Я даже больше скажу - при включении перемешивания групп возникают разнообразные глюки. При отключённых группах всё ок.
Локализация на 3.60 тоже работает.

Буду копать.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 14, 2016, 12:24:07
Версия: 1.2

В версии 1.2 исправлена ошибка, вызывавшая падение плеера при включённом перемешивании групп.
Ссылка в шапке.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 14, 2016, 12:35:04
1.2
Настройка: Простое трижды - вообще трек не переключается при нажатии кнопки "следующий"
Ничего не изменилось
"Включено" должна быть снята
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 15, 2016, 13:53:28
Версия: 1.2.1

В версии 1.2.1 исправлена ошибка, блокирующая переход к следующему треку при выключении плагина.
Таки нашёл. :)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 15, 2016, 14:11:13
Таки нашёл. :)
да, теперь норм +
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Artem on January 15, 2016, 16:06:19
Random Plugin я переместил в архив, если кому нужен - пишите.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on January 15, 2016, 16:12:35
Random Plugin я переместил в архив, если кому нужен - пишите.
По моему весьма нескромному мнению он устарел. :) Advanced Shuffle его заменяет польностью в режиме П-О-П.

P.S. Может, добавить в плагин хинты а-ля справка, для понятности?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: +Fix on January 18, 2016, 19:52:02
i translated you plugin, use it if you want.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 19, 2016, 09:04:55
На будущее, кодировка фалов локализации должна быть UTF-8
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: +Fix on January 19, 2016, 18:18:22
На будущее, кодировка фалов локализации должна быть UTF-8

is that reason that sometimes i see russian translation normal (Закрыть) and sometimes (Ļåšåģåųčāąķčå ņšåźīā)?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on January 19, 2016, 22:06:51
is that reason that sometimes i see russian translation normal (Закрыть) and sometimes (Ļåšåģåųčāąķčå ņšåźīā)?
yes
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: xeo on January 19, 2016, 23:14:30
Polish translation.
Thanks for good plugin.


EDIT: updated 01.02.19
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: +Fix on January 31, 2016, 18:52:14
link from catalog to here is incorrect Link (https://www.aimp.ru/forum/index.php?topic=33988.0) - Fixed

На будущее, кодировка фалов локализации должна быть UTF-8
This plugins showing me (Ļåšåģåųčāąķčå ņšåźīā) instead of normal letters: Advanced suffle, Track Preview, Next Group, aimp spectralyzer, CurrentTrackInfoToFile
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on February 01, 2016, 09:34:06
link from catalog to here is incorrect Link (https://www.aimp.ru/forum/index.php?topic=33988.0) - Fixed
This plugins showing me (Ļåšåģåųčāąķčå ņšåźīā) instead of normal letters: Advanced suffle, Track Preview, Next Group, aimp spectralyzer, CurrentTrackInfoToFile
+Fix, I got your problem, ask Artem and made a solution (all localizations must be UTF-8 with BOM).

All my listed plugins got updated files in topic head attachment.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: ^^CeLEStiaL_TiGER^^ on February 16, 2016, 12:43:10
AIMP v4.0 build 1695. При влючённом плагине, треки не переключаются вообще: после нажатия кнопки перехода на следующий трек, текущий начинает проигрываться заного.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on February 16, 2016, 12:57:47
AIMP v4.0 build 1695. При влючённом плагине, треки не переключаются вообще: после нажатия кнопки перехода на следующий трек, текущий начинает проигрываться заного.
Скорее всего проблема в АИМПе. В ближайшие дни будет обновление.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Artem on February 16, 2016, 15:41:46
Попробуйте на этой сборке:
https://yadi.sk/d/aHPQHUKjovds7
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: +Fix on April 19, 2016, 18:28:25
some bugfixes in lang file
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on May 31, 2016, 13:36:44
Добрый день. аимп версия v4.02 build 1717
в первом плейлисте 2 трека (пробовал в одной папке, пробовал в разных папка (группы) ) в другой плейлисте музыка 100 треков. Не всегда в первом плейлисте они меняются . бывает 1 музыка 2 музыка 1 музыка 1 музыка 1 музыка 2 музыка 2 музыка 2
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on June 01, 2016, 08:18:13
Добрый день. аимп версия v4.02 build 1717
в первом плейлисте 2 трека (пробовал в одной папке, пробовал в разных папка (группы) ) в другой плейлисте музыка 100 треков. Не всегда в первом плейлисте они меняются . бывает 1 музыка 2 музыка 1 музыка 1 музыка 1 музыка 2 музыка 2 музыка 2
Какие стоят настройки?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on June 01, 2016, 09:52:56
как написано в мануале на первой странице П-О-П:
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on June 01, 2016, 15:33:25
как написано в мануале на первой странице П-О-П:
Спасибо, а теперь, пожалуйста, подробнее о проблеме.
У вас играет подряд несколько треков из одного плейлиста (т.е. не меняет плейлист), или при переходе к плейлисту часто выбирается один и тот же трек (т.е. трек, игравший в этом плейлисте в прошлый раз, когда был выбран этот плейлист)?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on June 02, 2016, 09:14:11
Спасибо, а теперь, пожалуйста, подробнее о проблеме.
У вас играет подряд несколько треков из одного плейлиста (т.е. не меняет плейлист), или при переходе к плейлисту часто выбирается один и тот же трек (т.е. трек, игравший в этом плейлисте в прошлый раз, когда был выбран этот плейлист)?
первый плейлист 1 (трек 1 , трек 2) второй плейлист 2 (трек 1,трек,2, трек 3 и дальше)
запускаем проигрывание  сразу уточню плейлисты всегда меняются.
первый плейлист 1 (трек 1)
,  первый плейлист 2 (трек 43)
,  второй плейлист 1 (трек 2)
,  первый плейлист 2 (трек 21)
,  второй плейлист 1 (трек 1)
,  первый плейлист 2 (трек 11)
,  второй плейлист 1 (трек 1)
,  первый плейлист 2 (трек 231)
,  второй плейлист 1 (трек 1)
 первый плейлист 2 (трек 2),
 три раза подряд повтор 1 или второго трека из первого плейлиста который состоит из 2 музыкальных треков.

вам огромное спасибо и за рандом плагин и за этот... Огромное человеческое спасибо.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on June 03, 2016, 12:39:43
три раза подряд повтор 1 или второго трека из первого плейлиста который состоит из 2 музыкальных треков.
Плагин не запоминает, какой трек он играл в каком плейлисте, и к каждому плейлисту относится как к новому. А работе генератора случайных чисел не гарантирует равномерность выборки. Говоря проще, для примера, у него есть 100 меток, которые он случайно выбирает. Если у нас 10 файлов (метки 1-10, 11-20 и т.д.), то выбор цепочки 12, 27, 35 даст три разных файла. Если же всего два (1-50, 51-100), то один и тот же.
Добавьте ещё пару файлов и почувствуйте разницу.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on June 10, 2016, 14:50:38
Плагин не запоминает, какой трек он играл в каком плейлисте, и к каждому плейлисту относится как к новому. А работе генератора случайных чисел не гарантирует равномерность выборки. Говоря проще, для примера, у него есть 100 меток, которые он случайно выбирает. Если у нас 10 файлов (метки 1-10, 11-20 и т.д.), то выбор цепочки 12, 27, 35 даст три разных файла. Если же всего два (1-50, 51-100), то один и тот же.
Добавьте ещё пару файлов и почувствуйте разницу.
в рандоме в старом плагине это было учтено. Я так понимаю если два трека, то не какими комбинациями нельзя это сделать?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on June 10, 2016, 16:34:56
в рандоме в старом плагине это было учтено.
А знаете, Вы правы. Я порылся в исходниках и действительно - в старом плагине учитывался трек, на котором остановилось воспроизведение. Новый же написан с нуля, по совершенно другой идеологии, и этот момент просто выпал.
Quote from: TGR
Я так понимаю если два трека, то не какими комбинациями нельзя это сделать?
Я попробую вернуть эту часть логики. Возможно, даже с группами получится.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: windrustle on July 05, 2016, 12:23:18
Доброго дня, подскажите есть ли у плагина возможность проигрывать треки по порядку в случайном альбоме (группе), после проигрывания всех треков переходить на следующий случайный альбом. Что - то вроде режима О-С-Х (Х - играть файлы по порядку).
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on July 05, 2016, 12:56:54
Доброго дня, подскажите есть ли у плагина возможность проигрывать треки по порядку в случайном альбоме (группе), после проигрывания всех треков переходить на следующий случайный альбом. Что - то вроде режима О-С-Х (Х - играть файлы по порядку).
Нет, но можно добавить.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: windrustle on July 05, 2016, 15:46:40
Заранее спасибо) Думаю не только мне подобное может пригодиться.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on July 18, 2016, 09:41:28
Добрый день!
Рандом не запрограммировали ?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on July 18, 2016, 12:18:40
Добрый день!
Рандом не запрограммировали ?
КТТС. Пока нет свободного времени, чтобы заняться.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: TGR on September 06, 2016, 08:33:23
КТТС. Пока нет свободного времени, чтобы заняться.
Доброе утро. времени нету еще?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on September 08, 2016, 15:12:08
Доброе утро. времени нету еще?
Червячными темпами двигаюсь.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: oɹʇuʞ on September 10, 2016, 16:32:41
Hi KorneySan,

I'm attaching the espanol-AR.lng language file.

Regards!
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Artem on September 13, 2016, 21:31:48
KorneySan, здесь пользователь нашел ошибку в плагине:
https://www.aimp.ru/forum/index.php?topic=54250.0
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on September 14, 2016, 08:22:49
KorneySan, здесь пользователь нашел ошибку в плагине:
https://www.aimp.ru/forum/index.php?topic=54250.0
Отписался там. Будем лечить.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on September 23, 2016, 00:39:21
Режим "Порядок" предусмотрен для тех случаев, когда при перемешивании предыдущего уровня (уровней) нужно сохранить порядок элементов на текущем: например, группы перемешиваются, но треки в группе идут по порядку.

Примеры включения:
Пр-Пр-По: случайный перебор плейлистов, в плейлисте случайный перебор групп, в группе все треки будут воспроизведены по порядку.

Локализации:
Английская, русская, белорусская (официальная и тарашкевица), польская, эстонская, испанская.

Обновлено:
В версии 1.3:
- исправлена ошибка, вызывавшая падение плеера при запуске трека из Проводника/файлового менеджера при пустом плейлисте Default.
- добавлен новый режим перемешивания "Порядок". Действие аналогично "Списку", однако треки выбираются в порядке следования в плейлисте.
- при выборе треков пропускается трек, последним проигранный в выбранном плейлисте, если он не единственный.

Буду признателен, если Вы окажете посильную поддержку на кошельки WebMoney:
B160707862874 (белорусские рубли)
R273560332427 (российские рубли)
Z348179565699 (доллары США)
E404716631557 (евро)
Пока вложение в шапке.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Desert dessert on November 22, 2016, 22:29:52
Может, будет интересно предложение ещё одного режима перемешивания? По поведению это должно быть нечто среднее между простым режимом и режимом очереди. Идея в том, чтобы для каждого элемента списка (групп, треков — а для плейлистов это как-то не очень смотрится, их ведь обычно мало) хранить вес и выбирать следующий в соответствии с весом. При этом веса после выбора нового элемента меняются, постепенно усредняясь. Подробнее:

Пускай всего элементов n, вес только что выбранного элемента был v, и старый вес интересующего элемента w. Тогда если этот элемент только что выбрали для воспроизведения, его вес обнуляется, а если это какой-то другой, вес становится равным

 (w + α/(n − 1)) / (1 + α − v),

где α — это какое-то положительное число, которое может задаваться в настройках плагина. Чем оно больше, тем быстрее веса (все кроме несчастного нулевого) приближаются к ≈1/(n − 1), и тем скорее забудется, что воспроизводилось недавно.

Эта формула получится, если к весу элемента (не тому, который обнуляется) добавлять α/(n − 1) и нормировать все веса, чтобы они в сумме давали 1. Если добавлять просто α, то в больших плейлистах история будет забываться в каком-то смысле быстрее, чем в маленьких.

В цикле, в котором веса будут обновляться, можно сразу же решать, какой элемент будет следующим: сначала выбираем равномерно из [0; 1) случайное число x, и потом отнимаем от него новые веса. На каком элементе x станет отрицательным, тот и победил. (Дальше оптимизировать эту процедуру бессмысленно, потому что веса каждый раз будут новыми, а сложность всего вместе уже и так O(n) и не уменьшится.)

Пара очевидных дополнений: при инициализации вес каждого элемента должен быть 1/n; в пределе α → +∞ получится простой режим (только что проигранный элемент не повторяется, остальные равновероятны), а если допустить α = 0, проигранные элементы не будут возвращаться больше никогда, что эквивалентно режиму очереди — но тогда надо обрабатывать ситуацию, когда все веса успешно занулились (выбрать ничего не удастся, так что можно инициализировать их заново и попробовать ещё раз) — так что это в прямом смысле средний между этими двумя режим, разве что позволять бесконечное α бессмысленно, всё равно формула для него не работает.

Что скажем?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on November 22, 2016, 22:46:48
...

 (w + α/(n − 1)) / (1 + α − v),

...

Что скажем?
:o Оно, конечно, здорово. Есть две насущные проблемы: переезд на ХЕ7 и отсутствие времени в связи с новой работой.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Desert dessert on November 22, 2016, 22:59:48
Ну, я лично подожду сколько угодно времени, если вас это вообще заинтересует. :)

А формулы нет нужды пугаться, это по сути A w + B, где A и B известны уже перед началом цикла, и только w меняется.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: gmontenegropintos on December 01, 2016, 15:16:49
Hi. Thanks for the pluguin.

I'm having a problem with it and that problem is that when I put a set of groups and the playlist and activate the advanced shuffle, the plugin does the shuffle OK, but... If I change the set of groups in the playlist the navigation between tracks/groups/etc stays blocked (the buttons next and previous just stop working). For the plugin start working again it's needed to restart AIMP.

Thanks in advance
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on December 02, 2016, 08:27:06
If I change the set of groups in the playlist the navigation between tracks/groups/etc stays blocked (the buttons next and previous just stop working). For the plugin start working again it's needed to restart AIMP.
So the first question is - what shuffle mode do you use for each level?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: MSerg112 on March 09, 2017, 11:36:21
Здравствуйте! Мой aimp почему-то игнорирует этот плагин :( Распаковываю архив в C:\Program Files\AIMP\Plugins, но когда в aimp'е (v4.13 build 1887) я пытаюсь открыть этот плагин, прога его просто не видит. Скрин окошка Настройки-Плагины прилагаю
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Zhenya on March 09, 2017, 11:49:57
Распаковываю архив в C:\Program Files\AIMP\Plugins, но когда в aimp'е (v4.13 build 1887) я пытаюсь открыть этот плагин, прога его просто не видит.
Установка плагинов на AIMP v3.60 и новее / How to install plugins into the v3.60 (https://www.aimp.ru/forum/index.php?topic=44978.0).
Папка с плагином называется "AdvancedShuffle"?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: MSerg112 on March 09, 2017, 12:43:09
Установка плагинов на AIMP v3.60 и новее / How to install plugins into the v3.60 (https://www.aimp.ru/forum/index.php?topic=44978.0).
Папка с плагином называется "AdvancedShuffle"?

Да. Вот теперь прилагаю скрин месторасположения плагина.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: JD on March 09, 2017, 15:47:38
Папка же называется "Advanced Shuffle" (с пробелом), название должно совпадать с именем ДЛЛки
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: MSerg112 on March 09, 2017, 18:26:22
Папка же называется "Advanced Shuffle" (с пробелом), название должно совпадать с именем ДЛЛки

Блиин.. точно)) Виноват, простите за невнимательность) Работает, спасибо!
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: xeo on June 22, 2017, 12:58:54
Bugs:
- other languages than english doesn't work
- you can't play files opened directly from the disk (playlist shuffles every time you open the file from outside)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on June 22, 2017, 23:27:58
Bugs:
- other languages than english doesn't work
I have AIMP 4.13 build 1895. Tried English, Russian and Belarusian, localization changes. I'm sure previous versions of AIMP (or plugin) have no this bug too.
So please prove yours with screenshots.
Quote from: xeophyte
- you can't play files opened directly from the disk (playlist shuffles every time you open the file from outside)
This is the way plugin works. You open the file - file is queued - plugin intercepts queue request and change it to its own.
For now I can't make a workaround of it, I need to think and to find the solution if it exists.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: xeo on June 23, 2017, 19:50:04
Ok I get it. My lang file didn't work because my aimp lang file name was different.

For now I can't make a workaround of it, I need to think and to find the solution if it exists.
Maybe you can somehow make it to ignore files opened manually?


And btw, I updated lang file https://www.aimp.ru/forum/index.php?topic=51568.msg317011#msg317011
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Jammee on August 27, 2017, 21:33:34
Замечательный плагин! Случайный выбор групп для прослушивания - именно то, что мне было надо. Спасибо за вашу роботу.

Есть предложение. Для плейлистов и групп добавить настройки переключения после прослушивания некоторого количества елементов дочернего уровня. Например:

Playlist (simple) => 10
Group (list) => 5
Track

После прослушивания 5 песен группа переключается на следующую, а после 10 групп меняется плейлист. Эти два параметра должны настраиваться пользователем по его усмотрению.

Или так:
Playlist (simple) => 30
Group (None)
Track (simple)

После 30 треков плейлист меняется на следующий.


В чем польза? Размеры групп и плейлистов могут быть разными - от альбомов до до целых списков по жанрам. На другой плейлист можно вообще никогда не попасть, если текущий довольно большой.
Если каждая группа- это альбом, можно слушать по 5 случайных песен с разных альбомов, сейчас же надо дослушивать каждый альбом полностью.


Также хотелось бы иметь хоткей для переключения на следующий элемент родительского уровня - на след. группу или плейлист (смотря какое перемешивание включено).

Надеюсь, хоть что-то реализуете, так как удобству нет предела)


Edit. Также есть очень надоедливая проблема.
У меня включено перемешивание None-List-List. В пределах одного плейлиста работает нормально. Но при переключении на другой плейлист и воспроизведении песен оттуда очередь не очищается и плагин продолжает включать песни с предыдущего плейлиста. Лечится только перезапуском плеера.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on October 12, 2017, 12:27:59
Есть предложение. Для плейлистов и групп добавить настройки переключения после прослушивания некоторого количества елементов дочернего уровня. Например:

[...skipped...]

Edit. Также есть очень надоедливая проблема.
У меня включено перемешивание None-List-List. В пределах одного плейлиста работает нормально. Но при переключении на другой плейлист и воспроизведении песен оттуда очередь не очищается и плагин продолжает включать песни с предыдущего плейлиста. Лечится только перезапуском плеера.
Пожелание оценил. Попробую реализовать.
С багом тоже постараюсь разобраться.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on April 24, 2018, 21:29:01
Уже 2 жалобы на плагин
https://www.aimp.ru/forum/index.php?topic=59509.msg369355#msg369355
https://www.aimp.ru/forum/index.php?topic=59505.msg369359#msg369359
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on April 25, 2018, 08:16:49
Уже 2 жалобы на плагин
https://www.aimp.ru/forum/index.php?topic=59509.msg369355#msg369355
https://www.aimp.ru/forum/index.php?topic=59505.msg369359#msg369359
Ок, будем разбираться.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on April 25, 2018, 09:22:59
Ок, будем разбираться.
Ошибка, например, если один плейлист и все правила перемешивания "простое"

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=51568.0;attach=53958)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: mekk1t on July 12, 2018, 14:56:25
Не могу понять принцип работы исключения плейлистов из перемешивания. По логике перемешиваться и воспроизводиться будут только неотмеченные?
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on July 12, 2018, 15:53:56
Не могу понять принцип работы исключения плейлистов из перемешивания. По логике перемешиваться и воспроизводиться будут только неотмеченные?
Предполагается, что да. Причём добавлять отметки можно будет из других плагинов, если возникнет необходимость.
Как я вижу, администраторы выложили тестовую версию (давал в отдельной ветке), предназначенную для багфикса предыдущего релиза, в которой эта фича ещё не закончена (работают только сами отметки  ;D).

P.S. Здоровье пока не позволяет работать над проектами.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: mekk1t on July 13, 2018, 19:06:37
Предполагается, что да. Причём добавлять отметки можно будет из других плагинов, если возникнет необходимость.
Как я вижу, администраторы выложили тестовую версию (давал в отдельной ветке), предназначенную для багфикса предыдущего релиза, в которой эта фича ещё не закончена (работают только сами отметки  ;D).

P.S. Здоровье пока не позволяет работать над проектами.

Так вот я и скачал версию, которая на сайте висит. Она и есть та с багфиксом? У меня, к сожалению, работают просто отметки: плейлисты по-прежнему перемешивает все.  ???
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Soolo on July 14, 2018, 17:00:59
Как я вижу, администраторы выложили тестовую версию (давал в отдельной ветке), предназначенную для багфикса предыдущего релиза, в которой эта фича ещё не закончена (работают только сами отметки  ;D).
Я просил версию только с багфиксом, но она не появилась. А держать в каталоге плагин, роняющий плеер, плохо.

Так вот я и скачал версию, которая на сайте висит. Она и есть та с багфиксом? У меня, к сожалению, работают просто отметки: плейлисты по-прежнему перемешивает все.  ???
Эта фича на данный момент не работает.
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: Desert dessert on November 06, 2018, 19:56:26
Может, будет интересно предложение ещё одного режима перемешивания? <…>
Ой, через столько времени оказалось, что я не всё учёл. Ещё ведь надо что-то делать, когда треки (или группы и т. п.) добавляются в плейлист и удаляются из него.

С удалением естественнее всего видится просто нормализовать веса оставшихся треков. (А если их осталось ноль, где-то там отметить что нужно.)

Добавление, видимо, потребует как минимум ещё одного параметра для плагина — назовём его β — он будет говорить, насколько добавленные элементы приоритетнее старых (1 — следующим будет гарантированно воспроизводиться новенькое, 0 — гарантированно старое; потом уж как получится). Логически будем делать так: сначала присвоим новым одинаковые веса 1/N′, где N′ — число новых. (Теперь веса всех старых в сумме дают единицу и новых тоже единицу.) После умножим все веса старых на N, где N — число старых, и веса новых умножим на N′ — это добавит честности (если старые между собой были равновероятны и новые были между собой, такая процедура сделает их равновероятными вместе). Затем умножим вес каждого старого на 1 − β, а каждого нового на β — это добавит нечестность контролируемо. Под конец нормализуем все веса к единице.

Если предыдущее теперь собрать, получается, что при добавлении вес каждого нового элемента берётся β / total, а каждого старого умножается на N (1 − β) / total, где total = N (1 − β) + N′ β. Если до добавления список был пуст, просто присваиваем веса 1 / N′ как и при инициализации нового списка, иначе если β равно нулю, получили бы нулевую сумму весов, что портит всё начинание.

(Если идея никогда и не будет имплементирована, пусть это дополнение всё же в этой теме останется на всякий случай для кого-нибудь интересующегося.)
Title: Re: Advanced Shuffle [AIMP3.60, AIMP4]
Post by: KorneySan on February 03, 2019, 10:05:50
Обновлено:
В версии 1.5 (https://www.dropbox.com/s/928gxcoeod4tgal/AdvancedShuffle%201.5.zip?dl=0):
- исправлены ошибки версии 1.4 (возможно не все).
- добавлена возможность исключать из перемешивания плейлисты, в том числе и другим плагинам.

Буду признателен, если Вы окажете посильную поддержку на кошельки:
WebMoney:
B160707862874 (белорусские рубли)
R273560332427 (российские рубли)
Z348179565699 (доллары США)
E404716631557 (евро)
Яндекс.Деньги:
4100 1561 6671 080
Данная версия получила работающий механизм исключения плейлистов из перемешивания. Достаточно отметить плейлист, и при составлении списка его будет пропускать.
В частности, добавлена возможность ставить такие отметки из других плагинов. Соответствующий интерфейс для подключения расположен в папке Interface.