AIMP Forum

AIMP для Windows => Плагины => Дополнения (Plugins / Skins) => Плагины-дополнения => Topic started by: ildvild on February 07, 2013, 19:40:44

Title: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: ildvild on February 07, 2013, 19:40:44
[catalog_card=389]
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Soolo on February 07, 2013, 21:16:08
ух ты! оперативно +
за исходник отдельное спасибо
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Zero on February 07, 2013, 21:50:26
Можно так же добавить и обратный ход. То есть предыдущий трек - предыдущая визуализация, а то при возврате трека визуализация все равно идет в перед.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: FreeMan700 on February 07, 2013, 22:00:52
Мне понравился плагин. +1. Есть пожелание - сделать переключение визуалок и в рандомном порядке.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Zero on February 07, 2013, 22:36:54
Мне понравился плагин. +1. Есть пожелание - сделать переключение визуалок и в рандомном порядке.
Как сказал автор: "Переключается визуалка только на следующую(рандом апи не поддерживает)".
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 07, 2013, 22:44:32
рандом апи не поддерживает
Теоретически, можно встроить генератор чисел в код и делать переход на данное число.
Но на сколько это стабильно и адекватно будет работать, в том числе по производительности, судить не берусь.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: ildvild on February 07, 2013, 22:49:23
Random можно сделать только так: Предыдущая либо Следующая визуализация, но так велика вероятность повторов. Переход по номеру визуализации api не поддерживает(либо я плохо смотрел).

Можно так же добавить и обратный ход. То есть предыдущий трек - предыдущая визуализация, а то при возврате трека визуализация все равно идет в перед.

Это возможно, но стоит ли? Переключение визуал-ий все равно идет по кругу, а так будут повторы- если вперед/назад переключать.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 07, 2013, 22:56:26
А может просто тогда попробовать, хотя-бы тестово на вашем ПК такой вариант:
В настройках задаётся максимальное рандомное число, а затем выполняется переход на это количество, меньше заданного у рандома.
т.е. в данном случае пользователь может выставить число менее кол-ва визуалок и получать без повторные переходы.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: ildvild on February 07, 2013, 23:02:06
А может просто тогда попробовать, хотя-бы тестово на вашем ПК такой вариант:
В настройках задаётся максимальное рандомное число, а затем выполняется переход на это количество, меньше заданного у рандома.
т.е. в данном случае пользователь может выставить число менее кол-ва визуалок и получать без повторные переходы.

Интересный вариант, попробую.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Soolo on February 07, 2013, 23:10:22
А может просто тогда попробовать, хотя-бы тестово на вашем ПК такой вариант:
В настройках задаётся максимальное рандомное число, а затем выполняется переход на это количество, меньше заданного у рандома.
т.е. в данном случае пользователь может выставить число менее кол-ва визуалок и получать без повторные переходы.
С сдк не сильно знаком, но если точного перехода на конкретный номер там нет, то простая математика говорит, что повторы при таком алгоритме будут
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 07, 2013, 23:31:18
С сдк не сильно знаком, но если точного перехода на конкретный номер там нет, то простая математика говорит, что повторы при таком алгоритме будут
Описываю логику:
Допустим 50 визуалок, максимальный шаг 15, тогда получаем примерно так:
1+(n<15), т.е. максимум 15-й номер. Затем ещё шаг, т.е. 29 номер - повтора нет. Логично, что меньший так так-же не вызовет повтора.

Основные проблемы в данном способе:
1. т.к. переход идёт через смену визуалок, то смена нескольких подряд может вызвать проблем следующего характера
Показ на незначительное время визуалки, высокая нагрузка на ПК при переходе и в следствии его увеличение, неадекватная работа плеера, наличие сбойных визуалок как и последовательном переходе выявится при работе плагина.
2. Часть визуализаций будет вызываться чаще других - но т.к. рандом может быть и иначе
3. Чем ближе шаг к максимальному числу, тем больше вероятности повтора. Чем ближе к единице, тем больше вероятности последовательной смены.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Soolo on February 07, 2013, 23:37:34
Описываю логику:
Допустим 50 визуалок, максимальный шаг 15, тогда получаем примерно так:
1+(n<15), т.е. максимум 15-й номер. Затем ещё шаг, т.е. 29 номер - повтора нет. Логично, что меньший так так-же не вызовет повтора.
Я понимаю логику, но уже через 4-5-6 переключений можем увидеть первую визуалку, и это при том, что их 50.
Собственно, ты всё это и описал в пунктах.
Я думаю, плагин дополнять практически нечем
Можно настройку сделать через какое количество треков будет переключаться визуалка. Можно по таймеру сделать (уже реализовано), на этом вроде и всё.
Хотя нет, есть варианты извращенные: "переключать при смене исполнителя" "при смене жанра" и т.п. Но это, повторюсь, уже будет изврат
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 08, 2013, 00:01:19
уже через 4-5-6 переключений можем увидеть первую визуалку, и это при том, что их 50.
А вот это не факт, т.к. радном даёт ведь любое число, том случае от 1 до 14.
Порядок может быть и таким: 1 > 1+5=6 > 6+2=8 > 8+1=9 > 9+15= 24 > 24+10=34 и т.д.

Т.е. рандом обнуляется при смене, а если усложнить алгоритм, то можно и сделать проверку на отличие нового числа от рандома или выполнять другие математические функциии (что излишне для такой простой функции)
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Zero on February 08, 2013, 00:11:32
Не забывайте и про отключенное состояние визуализации. Рано или поздно вместо визуализации станет статичная картинка. Нужно либо как то обходить это, либо соответствующе создавать скин.
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 08, 2013, 00:25:56
Это не мысли к размышлению, к плагину уже почти не имеют отношения

1. Задаётся число элементов (у нас визуалок - Nv)
2. Создаётся строчный массив от 1 до указанного числа (т.е. строка из цифр в условных ячейках)
3. Рандом генерируется от 3-х до Nv
4. Из массива берётся число из этапа три и анулирует ячейку
5. Если взятое число 0, то переход на этап 3. Иначе переход на указанное число и запись числа Nk (количество выполненых переходов)
6. При достижении Nk равное Nv происходит заполнение массива повторно, с повтором цикла обработки массива

P.S. Теоретически так-же можно вычислить положение "без визуализации", если изначально эту позицию или первую визуальзацию.
в массиве добавляется ячейка с пустым кадром

Мне известно позволяет ли SDK определить активность визуализации, но если позволяет, то можно при выключенном состоянии функцию автоперехода сделать при наличии его
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: ildvild on February 08, 2013, 11:57:58
Итак переключение на рандомное число визуалок происходит без видимых задержек. Число установленных визуализаций, как и "позицию" отключенной визуализации определить нельзя.

В связи с этим 3 вопроса:
1) Нужно ли сделать настройку для задания рандома(но мне не особо хочется усложнять плагин настройками) либо сделать по умолчанию рандом из 5 например?
2) Нужна ли настройка для задания количества прослушенных треков, после которого будет переход на другую визуализацию?
3) Нужен ли переход на предыдущую визуалку?(хотя при рандоме это наверно не нужно)

Либо оставить все как есть?

Во вложении визуалка с рандомом из 5
 
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Soolo on February 08, 2013, 12:15:52
Во вложении визуалка с рандомом из 5
о чем я и говорил: повторы есть (чаще, чем им положено быть =)
о чем ещё говорили: время от времени визуалка просто закрывается (прчем у меня так совпало, что при количестве 12 визуалок, выключенное состояние повторилось 3 раза за примерно 10-15 переключений)

В связи с этим 3 вопроса:
1) Нужно ли сделать настройку для задания рандома(но мне не особо хочется усложнять плагин настройками) либо сделать по умолчанию рандом из 5 например?
2) Нужна ли настройка для задания количества прослушенных треков, после которого будет переход на другую визуализацию?
3) Нужен ли переход на предыдущую визуалку?(хотя при рандоме это наверно не нужно)

Либо оставить все как есть?
по-моему, лучше оставить как есть (без рандома)
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: Алексей Долматов on February 08, 2013, 20:52:30
по-моему, лучше оставить как есть (без рандома)
Согласен, слишком уж его при текущем API сложно правильно реализовать
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: FreeMan700 on February 08, 2013, 21:34:07
по-моему, лучше оставить как есть (без рандома)

Согласен, слишком уж его при текущем API сложно правильно реализовать

(http://kolobok.us/smiles/standart/yes3.gif) (http://kolobok.us/smiles/standart/yes3.gif) (http://kolobok.us/smiles/standart/yes3.gif)
Title: Re: Next visualization v1.0 [AIMP3] (Переключение визуализации при смене трека)
Post by: wearethegreatest on November 29, 2015, 11:43:04
Народ, а нельзя ли сделать рандом, вычисляя количество пролистываемых визуалок на основе длительности текущего трека, размера, первых\последних байтов файла или другой какой-нить инфы, привязанной к текущему треку?

Или же сделать вычисление на основе текущего системного времени суток, точнее секундной стрелки? Это даже круче.