P.P.P.S. Да. В том варианте обложки, что доступен для скачивания в данное время - анимация правого и левого основных динамиков немного различная. Это сделано специально для того, чтобы выбрать менее мерзостный вариант...Собственно в ЛС уже помогли придти к общему знаменателю, посему в скорости сделаю средний вариант анимации - надо наконец на чём-то остановиться.
ВОПРОС стоит так: есть-ли практическая возможность настроить автоматическое изменение ширины окна QFI и поставить в зависимость от значения одного, а лучше нескольких (в значении: "или 1, или 2, или 3") TASETextDisplay?
Хороший скин будет. Спасибо.Спасибо Вам! За интерес и за ёмкие замечания. К сожалению "главное окно" долгое время рисовалось и перерисовывалось под взором только 5-ти заинтересованных людей, не считая собственно меня, потому на данный момент имеем пока такой вариант.
Заметил, что Ваш элемент имеет возможность ручной растяжки по горизонтали...
FindObject('NewForm').Set('Width', Width + 20);
FindObject('NewForm1Client').Set('SizeMinimal.Width', WMax + 20);
FindObject('NewForm1Client').Set('SizeMaximal.Width', WMax + 20);
Пока ещё не очень разобрался с центровкой TASETextDisplayEx, но она работает: с виду расширение окна происходит одинаково с обоих сторон от названия и элементы слева и справа аккуратно сдвигаются на стороны.
клик по названию срабатывает и открывается расположение файла, но вот курсор перед кликом не превращается в "указательный палец", но это, скорее всего, я где-то налажал, в свободное время зароюсь с головой, думаю, разберусь.
Что огорчило - два одинаковых скрипта расписанных отдельно каждый - один для названия композиции и второй для названия альбома, как я понял, вместе работать не будут?
У Вас в проекте очень много разных пользовательских провайдеров: я так понял мне для для работы с расширением QFI нужен исключительно скрипт TEST?
...но QFI можно вызвать и в плейлисте (Alt + клик по треку) — а тут понятное дело воспроизведение не стартует, то есть скрипт не срабатывает, а в QFI в это время показываются другие данные, то есть ширина не подгоняется под новые значения...- отмечу, что это просто неоценимо, когда в таких моментах непосредственно участвует человек так хорошо знающий плеер и его "внутренности": я никогда таким образом не вызывал QFI - в основном клик на "бегущей строке" (ну и как всплывающее окно в начале проигрывания). Здорово, Zhenya, что Вы сделали и проследили эту фишку с расширением QFI до конца, я же в свою очередь, скорее всего, больше не буду задумывать что-то эдакое, не стандартное, а то, как показывает практика, даже не отдам себе отчёт, где напартачил в другом месте, если буду пробовать делать это сам. Уже повезло, что сумел вроде как в работоспособном варианте и без негативных последствий (кроме как для процессорного ядра) скрестить между собой TASEGauge и TASEAnimator...
Да, только TEST. Остальные провайдеры уже были в Bliss 4K.Точно. :-\ Я просто в основном всегда пользовался примером Bliss Lite и точного перечня провайдеров не знаю даже на глаз, не то что в использовании, вот подумал, раз у меня какие-то мелочи не получаются, что может фишка с расширением окна требует ещё задействования и из того арсенала, или же Вы что-то дописали или переписали из них.
Высота бегущей строки большая. Поуже симпатичнее бы смотрелась."Бегущая строка" - это, наверное, самый первый элемент, который делался и переделывался в скине и который послужил мотиватором вообще делать скин как таковой. Всегда хотелось большую, чётко очерченную "строку", хорошо читаемую, ни с чем не сливающуюся ни в каких возможных даже стилистических моментах с другими элементами оформления дисплея. Собственно высота "строки" продиктована в первую очередь шрифтом, задействованным в ней: уже после того, как удалось наладить шрифт, я рисовал саму "строку" по высоте и сделал её такой потому, что хотелось не только нормально видеть надписи за 30-50 см от монитора, но и за 100см, откинувшись на спинку стула или вообще при переключении плеера, когда, например, не сидишь за монитором, а подходишь к ПК со стороны - чтобы глаза ни за что более не цеплялись и "строка" сразу фоном своим контрастила надпись.
Слишком много мигающих элементов вокруг динамиков во втором и третьем переключении.
И наверно обьема не хватает. Плоско смотрится. Особенно аккустика. Должны быть какие то выступающие и утопленные элементы или части. А так выглядит, как анимационная открытка.Собственно, об этом, в принципе, уже написал был ранее; очень хочется попробовать придать большую разницу в глубине, но пробовать буду по немногу, когда будет полное понимание и придёт абсолютное вдохновение... иначе только испорчу и то, что есть.
Работают все 4 TextDisplayEx :) , Название трека, название альбома, имя исполнителя и техническая информация. Правда радио-любителям, я бы посоветовал QFI отключать: ;D некоторые радиостанции в потоке такое могут налубудать, что 32-ух дюймового монитора не хватит, чтобы по ширине этот QFI мог уместиться на экране, но да это нестандартные радио-мелочи, на которые, я думаю, можно не обращать внимания - часть радиостанций нормально отображают проигрываемый трек.
if WMax > 600 then WMax := 600;
FindObject('NewForm1Client').Set('SizeMinimal.Width', WMax + 20);
FindObject('NewForm1Client').Set('SizeMaximal.Width', WMax + 20);
FindObject('NewForm1Client').Set('SizeMinimal.Width', WMax);
FindObject('NewForm1Client').Set('SizeMaximal.Width', WMax);
if WMax < 100 then WMax := 100;
Спасибо, Zhenya, очередное! Реально не знаю как благодарить за участие и такие классные штуки, что Вы пишите для скина!
Меня смутило то, что техническую информацию (ТИ) придётся примерять с запасом для указания минимальной ширины контейнера (например размер может быть не 4,95Мб, а 103,45Мб). Широко задать - тоже не выйдет: слишком несуразно будет выглядеть. Хочется чтобы было максимально впритык с теми самыми 10 пикселями по краям. В своём варианте скрипта, что описал в предыдущем сообщении я ввёл ещё один TextDisplayEx4 - как раз на ТИ (работает скрыто как и TextDisplayEx1). Теперь я попробовал скрестить Ваш последний скрипт со своей доделкой - по моей задумке так можно избежать задания минимального размера контейнера, но при этом ТИ всегда будет видна полностью, сколько бы она в ширину не занимала. А вот ограничение по максимальной ширине оставить, как в Вашем варианте.
Рабочий-ли такой вариант?
Я правильно понимаю: название трека будет упираться в края не учитывая заданные 20 пикселей только тогда, когда оно будет превышать заданную максимальную ширину контейнера?
и подумал: а может задать максимальное ограничение в 1000 пикселей и не убирать правку в 20 пикселей из скрипта - для любой композиции хватит с головой, а неадекватное радио в строке и так неадекватно отображается само по себе едва-ли не бессмысленным набором символов, чего уж тут ради него одного перекидывать по 10 пикселей.
Пожалуйста =) Мне это не так сложно, мне просто интересно пробовать реализовывать разные штуки на скин-движке.В таком случае, прошу прощения, если слишком много злоупотребляю Вашим вниманием, потому как по незнанию много пока копошусь на одном месте делая что-то по Вашим примерам, но смею надеяться, может и в будущем Вы мне подскажите что-нибудь по работе :-[
...А вообще, не понял проблемы...Всё верно. Проблема как раз во мне приключилась :) : не вижу всего сразу, не понимаю и потому поспешил повыкидывать, чтобы на всякий случай не мешалось, а так-то эти два элемента - все TextDisplayEx (в т.ч. и №4, под ТИ) и if WMax < 100 then WMax := 100; - ведь действительно работают вместе.
Лично я бы так не делал — предусмотреть этот случай не так сложно ведь. И не только из-за радио можно столкнуться с этим, могут быть и треки с очень длинным названием (всякое бывает, даже не обязательно это может быть музыка).А вот тут, как показала практика, в моём случае печаль-беда приключилась...
А вот тут, как показала практика, в моём случае печаль-беда приключилась...
Способ с дополнительными контейнерами по 10 пикселей в ширину идеален, если фоновая текстура QFI однородная. В моём же случае она двупиксельная, в том смысле, что имеем не один пиксель для замостки фона расширяющегося контейнера и даже не вертикальную полоску шириной в 1 пиксель - у меня она в виде вертикальной полоски шириной в 2 пикселя. Как бы два столбика пикселей - первый в сплошном цвете, а второй, его сменяет и уже идёт шахматкой:
Можно-ли насильно настроить замостку в Margins таким образом, чтобы контейнер всегда, не зависимо от условий расширения TextDisplayEx (на парное количество пикселей или непарное), расширялся бы исключительно на парное количество пикселей?
Просто создайте в том контейнере с текстурой три дочерних прозрачных (без текстуры и без фонового цвета) контейнера. Даже можно не три контейнера, а две текстуры (элемент TASELayoutTexture) по бокам и контейнер по середине. Текстуры потому, что там ведь не нужно размещать элементы, то есть контейнеры в этом случае избыточны. В контейнер посередине переместите метки. И не забудьте поправить скрипт — имя контейнера в последних двух строчках.Кажется, понимаю задумку :-\ . В материнский растягиваемый контейнер с текстурой войдёт вся дисплейная шахматка и будет там нормально растягиваться добавлением справа, как в моём последнем примере. В то же время два дочерних TASELayoutTexture будут служить своеобразными бамперами между краями материнского контейнера и краями дочерних TextDisplayEx.
Можно-ли как-то убрать зависимость отображения визуализаций в разных TASEVisualDisplay, в одной и той же обложке так, чтобы полностью исключить их влияние друг на друга?Короче - засада полная :( :( :( , надо перерисовывать скин к аналогметру ::) . Собственно уже начал это делать.
1. Собственно возвращения ползунка TASESliderHorizontal при нажатии на "Стоп", как видно из базовой версии обложки 1.0, я добился через Visibility элемента к State prvPlayerState - суть в том, что при "Стоп", TASESliderHorizontal перестаёт быть видимым (под элементом на материнской фоновой текстуре просто ползунок слайдера банально нарисован и не перекрываемый элементом слайдера становится видимым). Задача сейчас в том, чтобы сделать TASESliderHorizontal также невидимым и при проигрывании радиостанций. Пока не знаю как это сделать...
2. Также я всегда очень хотел, чтобы при нажатии на "Стоп" трековые циферблаты и подсветка бегущей строки - гасли. Посредством связки TASEBlurredGlass (как элемнт просто несущий в себе перекрывающую крышку-текстуру) и того же prvPlayerState я добился нужного результата. Интересно можно-ли связку Visibility-State замедлить во времени? В том смысле, чтобы исчезание TASEBlurredGlass не было мгновенным, происходило постепенное исчезание на протяжении, например, 1-1,5 секунды? Чтобы всё это реально походило на настоящее затухание/включение...
3. Поскольку добился гашения основных светящихся элементов дисплея - хотелось бы то же самое проделать и с элементом TASEWaveFormDisplay. При нажатии на "Стоп" визуализация элемента продолжает медленно уходить (на картинке ниже). Пробую сделать его невидимым при нажатии на "Стоп" при помощи того же prvPlayerState, но там не всё так просто, как оказалось. Есть такое подозрение, что вовсе не там "копаю":
Можно-ли как-то убрать зависимость отображения визуализаций в разных TASEVisualDisplay, в одной и той же обложке так, чтобы полностью исключить их влияние друг на друга?
Теоретически конечно можно заморочиться с таким костылём — берём два дисплея и попеременно меняем их видимость, то есть нажимаем Стоп и дисплей заменяется вторым. Следующий раз нажмём Стоп — дисплей поменяется обратно на первый. Но тут нужно будет менять не только видимость дисплеев, но и их связи удалять и восстанавливать, чтобы при нажатии Стоп дисплей менялся на "свежий", без волны на нём.
Минус всё равно есть — если достаточно быстро использовать Стоп два раза, то кусок волны всё равно будет виден.
Вместо мутного стекла лучше использовать панель. Вы же не используете размытие?Нет, конечно, размытие = 0. Просто мутное стекло для меня более привычный и обкатанный, что-ли, уже элемент, более "послушный". А вот панель, когда я пробовал её применить почему-то была очень "деревянной" и я никак не мог ей изменить параметр ZOrder - панель устраивалась жёстко под многостраничной группой, что у меня идёт в самом начале контейнера "Главного окна", а засунуть её надо было на 13-ю позицию. Что я только не перепробовал - ZOrder был не изменяем, потому я плюнул и взял привычное мутное стекло и сразу сделал то, что мне нужно.
Кстати, зачем накрывать "крышкой" если можно просто скрывать сам элемент?Я первоначально так и намеревался сделать, вот только подсветка "Бегущей строки", включая лампы подсветки - это просто часть фоновой текстуры "Главного окна": чтобы сделать её невидимой, надо бы было перерисовывать фоновую текстуру, вставлять отдельно элемент с текстурой подсветки и ламп и делать этот элемент также скрываемым.
https://www.aimp.ru/forum/index.php?topic=27831.msg373346#msg373346:) Эти примеры я в первую очередь просмотрел. Собственно потому и обрадовался поначалу, что смогу сделать постепенно появляющуюся/исчезающую "крышку", нооооо... там примеры, как я понял, через цвет идут и хоть я и просидел почти всю ночь, пытаясь как-то написать скрипт (наивный, ага!) и другие элементы под свою текстуру на связи Visibility-State, но, понятное дело, что ничего не добился, кроме того, что чуть не вывихнул себе мозг. Потому и забросил и оставил свой простецкий вариант.
https://www.aimp.ru/forum/index.php?topic=27831.msg373353#msg373353
Насколько я знаю, буфер для дисплеев визуализации один, и если они разных размеров, то будет искажение. То есть можно использовать несколько дисплеев без искажений если только все дисплеи одинакового размера.Спасибо. Мне вот как раз это и надо было узнать. Ну, я уже перерисовываю скин к аналогметру (плохо, что нету в свободном доступе .psd-исходников к классическому и "ночному" скину - было бы гораздо быстрее. Впрочем я уже так углубился в скин аналогметра, что уже впору с нуля полностью свой оригинальный вариант нарисовать...)
Пришлось с лупой искать о чём вы говорите. Нет, никак. Только если удалить дисплей визуализации в отдельном окне, то есть оставить только один дисплей в главном окне. Или удалить целиком то окно.Да, я сам не сразу увидел, как искажается мой аналогметр в "Главном окне", только когда взялся за встроенное отдельное "окно визуализаций" заметил, что вся моя изначальная задумка пошла на смарку.
Но может как некий урок по скриптам пойдёт =)Спасибо ещё раз за то, что Вы делаете! Конечно урок пригодится. Мне, правда, уже конкретно эти скрипты "на грани понимания", что называется, но когда они непосредственно касаются того, что ты пробуешь сделать - они как-то легче усваиваются, чем даже примерочные
Вот вы графоманите, конечно =) Страшно подойти к такому топику.Есть "чуть-чуть" такое, но просто с 2008-го периодически плотно заседал на тематических форумах, часто музыкальных и литературных - оттуда привычка подробно со всех сторон всё расписать, лучше, чем быть недопонятым. ;D
Ффффух, я уж было испугался, что Вы меня бросили :)
Как сделать так, чтобы TASESliderHorizontal был видимым только при проигрывании композиции, но становился невидимым и при нажатии на "Стоп", и когда играет радио?
А было бы здорово, чтобы "крышка" появлялась и исчезала как в примере тех скриптов хотя бы на протяжении 0,5 секунды имитируя "затухание" и "включение" ламп и подсветки
Value = 1 OR Value = 2
Можно-ли как-то посадить элемент панель/мутное стекло на скрипт, замедляющий его Visibility-State?
Я бы с удовольствием выбросил это "Окно визуализаций" из сборки, тем более, что моим скином оно не предусмотрено "идеологически", попросту не нужно оно там, ну и кнопки его вызова я потому не рисовал, НО - без этого окна скин обложки не будет считаться полным, потому некуда деваться
В OnLoaded вручную проверяется prvPlayerState.State (через виртуальный набор связей)Вместо виртуальных связей можно использовать BindingsGetDataAsInteger('prvPlayerState', 'State').
Вместо виртуальных связей можно использовать BindingsGetDataAsInteger('prvPlayerState', 'State').
...тут коротким ответом не отделаешься =)...:-[ Ну, я очень стараюсь понять в кратком изложении, просто много такого сейчас, что для меня в первый раз :)
Тогда можно обойтись такой одной связью:Класс! ;)
...
То есть, если трек перематывать можно (длительность больше нуля), то слайдер будет отображаться, если трек перематывать нельзя (длительность равна нулю, а значит это играет радио или режим Стоп), то слайдер будет скрытым.
Тогда проще будет удалить ту часть "крышки", что прикрывает "Бегущую строку" - подсветка так и так всегда нарисована на фоновой текстуре "Главного окна".
Ещё момент: у спектрума не открывается конт. меню, нужно удалить связь ContextMenu и очистить свойство PopupMenu (pmDisplay уже пустой для спектрумов). Теперь будет открываться конт. меню окна, как и должно быть.У-упс! :-\ Как-то даже не обращал внимания.
Да, ещё вспомнил: вот тут выглядит так, как будто крышка меньше по высоте, чем нужно:Да. "Крышка" полностью покрывает подсветку, лампы и их расползающийся по горизонтали "отблеск" - ваккурат впритык. Сами "потушенные" лампы нарисовал на один пиксель ниже края "подсветки", чтобы, когда она "горит", отблески и свет от неё был на пиксель вверху и внизу. А поскольку там идёт грань дисплея "Бегущей строки", свет от ламп как бы растекается по верхней и нижней кромках.
...
Или так и задумано? На мой взгляд выглядит странно.
...То есть лучше в редакторе не переключать режимы Stop, Play, Pause (с зажатым Alt по кнопкам в скине или переключателем внизу рабочей области)...;D Не поверите, но как в том анекдоте: "Как-то раз попробовал и... мне не понравилось". На любой "чих" и "правку" в редакторе тут же полноценно насилую сам плеер - так оно как-то наглядней (хотя иногда сам плеер не выдерживает и слетает). Сам редактор, подозреваю из-за "Лупы", со временем и так начинает жутко тормозить (я уже не говорю, если открыть два скина одновременно! Приходится одновременно с двумя открытыми редакторами работать через виртуальную машину), так что - скрепил аккуратно всё вместе и "Слава Богу!", а смотреть, что получилось - уже на плеере.
Разве без этого окна скин будет считаться неполным?А разве нет? ??? Понятное дело без "Плейлиста", но вот даже без "Фонотеки" скин уже не считается полным и готовым к публикации: разве не должен быть полный набор базовых окон, представленных, по крайней мере, в базовых примерах скина в том же редакторе?
По поводу prvPlayerState.State. Не знаю, конечно, для чего оно в этом скине используется...Надо на действие "Стоп" запустить появление текстуры (на базе кнопки, мутного стекла или панели), а при действии "Воспроизвести" запустить обратный процесс, исчезания текстуры. Задача в том, чтобы сделать появление/исчезание постепенным, а не одномоментным.
А разве нет? ??? Понятное дело без "Плейлиста", но вот даже без "Фонотеки" скин уже не считается полным и готовым к публикации: разве не должен быть полный набор базовых окон, представленных, по крайней мере, в базовых примерах скина в том же редакторе?
Только текстуру или саму кнопку?
Опять же, если я правильно понял, то, наверное, можно использовать события onTrackStarted, onTrackFinished и многостраничную группу из двух страниц, в ней есть свой фейдинг, это будет надёжнее, чем скриптами менять прозрачность.
В Denon'e у меня кассеты так меняются при смене трека.
А значение State проще всего считывать из скрипта с помощью выражения:
AState:= FindObject('prvPlayerState').Get('State')
Value := BindingsGetDataAsInteger('prvPlayerState', 'State');
... но тогда площадь анимации будет большой и возможно способ менее оптимизированным получится.Ну, в том же Деноне, посмотри, какая площадь анимируется (коробки кассет) - чуть ли не в треть экрана! На моём компе лишь немного при этом притормаживает вращение бобинок. По крайней мере, не надо заботиться, успеет ли завершиться эта анимация в каких-то критических случаях или нет, она делается программным кодом самогО плеера, а не скриптом.
Как строку? По мне так удобнее получать в числовом виде ...А какая, в пинципе, разница, что обрабатывать? Вот фрагмент кода из скрипта, где анализируется State:
case PlayerState.Get('State') of
'opsStop':
begin
if not (MainSwitch.Get('Position') in [1,3]) then MainSwitch.Set('Position', 1);
PlayPauseSwitch.Set('Position', 0);
end;
'opsPlay':
begin
MainSwitch.Set('Position', 2);
PlayPauseSwitch.Set('Position', 1);
end;
'opsPause':
begin
MainSwitch.Set('Position', 2);
PlayPauseSwitch.Set('Position', 0);
end;
end;
Только текстуру или саму кнопку?По сути - текстуру, которая появляясь, при нажатии на "Стоп", будет закрывать подсвеченные части дисплея (как бы визуально выключая их), но не моментально, как это сделано в скине сейчас, а постепенно. Элемент "Кнопка", как носителя такой текстуры, Zhenya предложил в связи с способностью "затухания кнопок". Делать продолжительность затухания/появления оговариваемой текстуры дольше 0,5 сек., наверное, не стоит, в связи со скоростью появления "Бегущей строки" при нажатии на "Воспроизвести", так что теоретически эффекта "затухающей кнопки" должно хватить для оформления этого момента.
...
...возможно нужно будет переделывать структуру скина. Можно и поверх всего окна разместить группу, но тогда площадь анимации будет большой и возможно способ менее оптимизированным получится....- и так уже одна многостраничная группа по площади почти со всё "Главное окно" (хоть там смена происходит единожды, в ручном режиме при переключении "вида скина"):
Как я и думал, окно визуализации необязательно (https://www.aimp.ru/forum/index.php?topic=27831.msg374784#msg374784) для полного скина. Ну это так, на всякий случай, информация.Ага, уже увидел...
... у Вас остались исходники обложки Technics RS-B905? Поделитесь пожалуйста,если остались.Мягко говоря, странная просьба. Где Вы видели, чтоб кто-то делился исходниками на подобные проекты?
Black_AVP видел,делились.Например?
Да, Вы правы, получилась ещё та гремучая смесь.
А если пользователь сменит плагин или картинку...Плагин изначально устанавливается с плеером и изначально использование этой моей обложки "обязывает" использовать этот плагин. Использование картинки или другого визуального плагина - "не рекомендуется" и не предполагается, поэтому отдельное "Окно визуализации" есть всего лишь как опция (которая не выведена даже на отдельную кнопку), на тот случай, если кому-то вдруг ну очень захочется включить визуализацию - это же само-собой предполагает, что "пялиться" будут на это отдельное окно с визуализацией, а не на "Главное окно", потому уже всё-равно, что там отображается во встроенном окне визуализиции.
... - вся Ваша гармония нарушится!К слову - уже: об этом в теме, где-то выше, не раз уже написал. Даже учитывая то, что встроенное в "Главное окно" окно визуализации транслировало тот же "Analog Meter" - картинка нарушилась. Всё испортило это самое отдельное "Окно визуализации" (размер визуализации в этом окне на прямую влияет на отображение визуализации в других подобных окнах обложки, даже если оно, это самое отдельное окно визуализации, выключено/не активно), которое, как позже выяснилось вовсе не обязательное для полноценной обложки. Но для полновесной обложки решил его оставить - как раз для любителей визуальных плагинов. В Lite-версии обложки отдельного "окна визуализации" не будет.
...а дискретный индикатор уж совсем просто нарисовать - сколько сегментов, столько и кадров.- это будет запасной вариант: если получится сделать две обложки "в одном флаконе", то на месте встроенного окна визуализации будет встраиваться/сменяться этот вот этот как раз элемент.
Для стрелочных индикаторов есть скрипт для ФШ, который автоматом сделает раскадровку стрелки...:-[ Я, признаться, только сейчас узнал об этом; читал на форуме, но не придал значения - я так понял тогда, что это как раз для скина именно плагина "Analog Meter". А так как собирать с нуля, как я уже говорил, я не рискнул бы, то попросту под проверенный, классический скин нарисовал и подложил свой визуал.
... Плагин изначально устанавливается с плеером и изначально использование этой моей обложки "обязывает" использовать этот плагин.Никто в данном случае никого ни к чему не обязывает, у меня, к примеру, из подключенных плагинов только CDDA, да и тот сейчас уже мало востребован. Чем меньше плагинов, тем плееру легче, по аналогии с бабой и кобылой. ;D
1. Дискретный индикатор сигнала делается на базе TASEGauge или как-то по иному?Да, все индикаторы делаются на основе TASEGauge. Употребив термин "Дискретный", я имел ввиду фреймовый, т.е. состоящий из набора кадров, ведь, стрелочный индикатор тоже фреймовый. Выбор вида индикатора - свойство Kind. В простейшем случае, к примеру, когда Kind = gkHorizontal, можно вообще ничего не рисовать, а только задать цвета, как сделано в моей Астре - два Gauge навстречу друг другу, без всяких текстур.
2. Как откалибровать сигнал? Хватит-ли мне для этого только тестового аудио?То тестовое аудио, что в старттопике темы Analog Meter" нужно для точной калибровки, что в большинстве случаев не требуется, индикатор уровня - та же визуализация, а не измерительный прибор. Чтобы от пользователей не было особых претензий достаточно выставить более или менее точно 0 dB, ну и крайние значения, хоть примерно.
3. Есть-ли возможность калибровки шкалы от -20 до +3, с позициями на: -20, -10, -3, -2, -1, 0, +1, +2, +3 ?
;D То-то я поначалу и забросил всё это дело потому как, когда на классическом скине к Analog Meter запустил тестовое аудио и на диапазоне от -20 до 0, я сначала немного офигел, а потом и вовсе перестал понимать, что и почему ТАК происходит (все, вроде как, саунд-исказители-усилители перед этим поотключал был, понятное дело): часть диапазона не совпадала с нанесёнными значениями.
...А скрипт для ФШ здесь (https://www.aimp.ru/forum/index.php?topic=30668.msg328529#msg328529).Со скриптами для ФШ редко работаю, но - разберусь.
Можно почитать там ещё и соседние посты. Нужен он только для фигур вращения, для линейных же индикаторов никакие скрипты не нужны.
Никто в данном случае никого ни к чему не обязывает, у меня, к примеру, из подключенных плагинов только CDDA, да и тот сейчас уже мало востребован. Чем меньше плагинов, тем плееру легче, по аналогии с бабой и кобылой. ;D:) Да так же как и пользоваться конкретно этой обложкой - всё-таки ведь изначально эта обложка не "универсал"; мою, вот эту обложку постоянно использовать будут от силы не более 10 человек, 4-ро из которых тут рядом, не из Сети, постоянно торопят: "Дорабатывай быстрее уже!!!".
... Вопрос: какое минимальное количество кадров/сегментов нужно заложить в TASEGauge, чтобы стрелка двигалась не более рвано и дёрганно, чем в том же "Analog Meter"?В Analog Meter нет "кадров", там положение стрелки рассчитывается программно для конкретного значения уровня в данный момент времени, отсюда и плавность движения, поскольку угол можно вычислять/задавать с большой точностью. Я не знаю, какой библиотекой пользуется Артём, если GDI+, то в функции RotateTransform(Angle) аргумент Angle вещественного типа, поэтому термин "дискретность" здесь даже неприменим.
Увеличение числа кадров, конечно, увеличивает и плавность, но и тут должен быть разумный предел, при большом размере изображение возрастёт и нагрузка на процессор. Для мелких индикаторов, полагаю достаточно 1 кадра/ градус, для более крупных (как в в УМ) - 2 к/гр.Такой индикатор, если получится у меня на базе TASEGauge, будет в первую очередь на облегчённой версии этой обложки, а это сразу минус тонна "попрыгулек" и тяжёлые даже по весу динамики, так что по крайней мере ради эксперимента, можно будет не экономить. Это я о линейном индикаторе, по стрелочному, если буду делать, то уже как Вы сказали - там у меня ни опыта, ни особого понимания.
В самом начале шкалы всегда будут ещё бОльшие рывки, поскольку мы получаем от провайдера целочисленные значения в диапазоне 0..100. Уровень 1 будет соответствовать -40dB, 2 уже -34dB, 3 - -30dB - вот какие скачки.Вот это минус, на самом деле. С другой стороны, мне нужно смастерить и самому посмотреть, так-ли уж эти рывки ужасны, может и не очень :)
Логарифмирование ещё более усугубляет эту картину, поскольку увеличивает "усиление" в области малых сигналов, но зато растягивает вблизи "0dB"? что позволяет различать уровни в 1 dB и менее.Я только теперь понял головой до конца, что я сделал руками на практике, задействовав логарифм в своих уровнях: ведь мой Enhancer 75% времени проигрывания заставляет стрелку "Analog Meter"-а двигаться в диапазоне от "-1" до "0", а в рок-музыке так и все 90%. ;D То-то по началу, пока мне не подсказали логарифм, "попрыгульки" меня не впечатляли.
Я вообще никогда не заморачивался вопросом точности, главное, чтоб на нормальных треках без использования всяких улучшайзеров максимальный уровень не выпригивал за 0dB, что бросится сразу в глаза.Хотелось бы иметь хотя бы точность "Analog Meter"-а, просто чтобы не наотшибись сам индикатор был сделан.
В Analog Meter нет "кадров", там положение стрелки рассчитывается программно для конкретного значения уровня в данный момент времени, отсюда и плавность движения...Плюс в сторону плагина... :(
... А вот горизонтальный индикатор мне в любом случае надо делать ..."Горизонтальный" - это типа такого, что-ли? (Только там стоя):
... скачкообразность всё же заметна.Зрительно, скачкообразность зависит ещё и от "постоянных времени", заданных в Gauge.
... СтранноА эквалайзер?
Зрительно, скачкообразность зависит ещё и от "постоянных времени", заданных в Gauge.Две настройки "Реакции..." имеете ввиду? Или это какая-то функция в "Параметрах связи"?
А эквалайзер???? Отключён. Я встроенными на плеерах эквалайзерами на ПК почти никогда не пользуюсь (на драйвере звуковой платы только включён один из предустановленных наборов, для "подсушки" звука, но на показания уровня сигнала в плеере это никак не влияет).
Две настройки "Реакции..." имеете ввиду?Да, они самые, другого ничего нет.
А по сколько у Вас в этих индикаторах кадров встроено?101. Почему-то не нашёл проект для 4-ой версии (это ещё из 3.5), но полагаю, что и там столько же.
101. Почему-то не нашёл проект для 4-ой версии (это ещё из 3.5), но полагаю, что и там столько же.О, спасибо. Ну, вот, около сотни и буду пробовать, как предполагал ранее, а логарифм уже посмотрю по тому какой величины получится сделать индикатор (на худой конец, я со своим Еnhancer-ом и колебанием в пределах "-1" - "0" могу и перетоптаться :) )
Индикаторы линейные, не логарифмические.
Да, они самые, другого ничего нет.Н-нда, там обратная взаимозависимость, сделать одновременно быструю реакцию и плавность анимации не получится. Какую-то "золотую середину" всё же придётся найти.
Кстати, раскадровку в ФШ в некоторых случаях, в частности для линейного перемещения векторной фигуры, можно делать и таким способом: https://www.aimp.ru/forum/index.php?topic=2202.msg293678#msg293678Спасибо, попробую. Я, правда, любитель все вручную рисовать и складывать, но сотню кадров, даже маленьких, разместить вручную - это весело было бы.
Попробуйте установить портабельную версию в чистом виде без всяких излишеств, если картина не изменится, причину надо искать или в системе, или в том софте, что в автозагрузке.Попробовал портабельную версию и на другой "виртуалке" (правда ничего из устанавливаемого самим плеером - плагины - не выкидывал) - картина та же (скрин уже не делал). Из того, что со звуком связано на моей системе, что мне с ходу понятно - драйвер-Realtek да набор кодеков K-lite codec pack. Сходил даже к соседу - у него "7"-ка без выкрутасов, на майкрософтском звуковом драйвере "по-умолчанию", правда те же кодеки стоят: оба варианта плеера выдали ту же картину...
...(правда ничего из устанавливаемого самим плеером - плагины - не выкидывал)...Снёс в придачу ещё и абсолютно все установленные по умолчанию плагины, кроме "Analog Meter" - результаты те же.
...КАК сделать так, чтобы скролл и текст не перекрывали собой текстуру стекла, а находились под ней?...::) Нашёл оооочень сомнительный метод и он явно через... одно место: разбил текстуру "стекла" на части - по внешним рамкам каждого из покрываемых ниже контейнеров и внедрил их в эти контейнеры, в первую очередь для скролла и текста. Вроде их можно даже закрепить так, чтобы при изменении размера окна текстуры двигались синхронно и не искажалось, на скроллах так точно (в скроллируемом контейнере с лирикой, логично, закрепить не удается)... но это всё настолько ВРОДЕ.
Честно говоря, из всего выше изложенного до конца так и не понял, что должно быть: скролл, к примеру, тоже должен быть под блюром?Да, скроллы-прокрутки тоже должны попадать под блюр.
Этим элеменотом (BluredGlass) вообще не стОит сильно увлекаться, если под ним "живые" элементы, то он будет заметно грузить проц.Даже со сброшенными в "0" показателями BlurLevel?
Для покрытия же обычным стеклом в контейнерах и панелях есть слой-крышка.Вот, спасибо - забыл об этом.
Даже со сброшенными в "0" показателями BlurLevel?Этого я не знаю, но в любом случае этот элемент "тяжёлый" для процессора.
Я TASEBluredGlass использую исключительно как элемент-носитель текстуры, который сам по себе более простой (меньше различных параметров для настройки) чем другиеПроще панели ничего нет. Раньше для подобных целей вообще использовали текстовую метку.
"Мутить" же весь экран сплошной крышкой контейнера "под стекло" не хочу, не хочу искажать полезную зону с выводимой информацией ради красивости.Что растягивать, а что нет, задаётся в параметрах растягивания текстуры - можно углы, можно середину. Можно добавить дочерний контейнер или задать отступы. Неразрешимых ситуаций в этом плане нет, по крайней мере, за свою практику я с ними не сталкивался. А BluredGlass применял единственный раз для размытия участка кавера под текст.
Этого я не знаю, но в любом случае этот элемент "тяжёлый" для процессора.Когда-нибудь пересоберу "Главное окно" на панелях, где это будет возможно и сравню на старой машине. Интересно...
Проще панели ничего нет. Раньше для подобных целей вообще использовали текстовую метку.Я текстовую метку, так как разбирался с редактором сам, в этом плане вообще перескочил, не оценил для себя вообще никак. Тоже надо будет попробовать как-нибудь с ней поэкспериментировать.
Что растягивать, а что нет, задаётся в параметрах растягивания текстуры - можно углы, можно середину. Можно добавить дочерний контейнер или задать отступы. Неразрешимых ситуаций в этом плане нет, по крайней мере, за свою практику я с ними не сталкивался.Встречал Вашу переписку на форуме, где Вы заскринили, как, кажется, среднюю часть текстуры контейнера сделать растяжимой...
... Я пока ещё плохо комбинируюсь контейнерами между собой...Я не выравнивание контейнеров имел ввиду, а "Параметры растяжения" текстур тех же контейнеров, панелей и пр. элементов, те, что в диалоге "Текстуры" слева.
Я не выравнивание контейнеров имел ввиду, а "Параметры растяжения" текстур тех же контейнеров, панелей и пр. элементов, те, что в диалоге "Текстуры" слева.Да, я понял. Я, просто, имел ещё ввиду то, что у меня текстура, визуально, получается так, что покрывает собой несколько контейнеров и её приходится делить на части и вот так, по частям, заталкивать в разные контейнеры, следя за тем, чтобы при изменении окна все части изменялись должным образом и в целом вся текстура/картинка целиком не "ломалась" в каких-то частях, на отдельных контейнерах - вот это я как раз ещё не умею.
Если исходников для "Classic"/"Night" всё же нет в свободном доступе, я бы, на месте модераторов, этот Ваш пример закрепил в тему по АналогМетру.На оригинал, исходников у меня, ес-но, нет, есть на призводные от него, которые когда-то сам на основе него рисовал, но от них проку будет мало - там все контуры объединены.
Не стОит благодарностей, делов-то там, даже с моими глазами, на 10-15 минут.У меня с детства не очень хорошее зрение - сколько себя помню: рисовал, собирал конструкторы и разные мозаики... даже почти в кромешной тьме - не замечал, как темнело. За что получал по шее от родителей и лишался любимого развлечения на неделю... Падение зрения замедлилось после универа - не менее 40% за это время пошло в утиль.
На оригинал, исходников у меня, ес-но, нет, есть на призводные от него, которые когда-то сам на основе него рисовал, но от них проку будет мало - там все контуры объединены.Пригодилось всё. Я ведь в основном "растр" и ковыряю, когда с цельной картинки - выделил, скопировал, повернул как надо - вставил, подшаманил резкость/шумы...
Два варианта с двумя вариантами раскраски в одном файле:
Не знаю почему, но этот скин мне показался похожим на вип-гроб с музыкой=)))));D ;D ;D
Ничего не имел ввиду плохого, но почему-то эта мысль пришла первой))) Еще и песня Раммштайна вспомнилась про то как маленький мальчик один ночью в могиле с музыкальной шкатулкой замерзает...))))Во-первых, это удивительно, что Вы вспомнили конкретно композицию "Spieluhr" - дело в том, что именно как раз эту композицию, а также потом и другую из альбома "Mutter" - "Nebel", я, некоторое время назад, зацыкливал на плеере, когда доводил до ума "автоматику" окна QFI :) .
... Эт я чотко "дерево" подобрал, правда? ;D Красный "шпон" лучше всего подошёл, коричневые оттенки, а тем более жёлтые - вообще не в тему были бы.Если рисовать в векторе, то можно вообще любого цвета взять паттерн под дерево, хоть чёрно-белый, а оттенок подобрать используя стили Color Overlay, Gradient Overlay и разные методы наложения.
Красный цвет гроба, это всего лишь ассоциация - и что через нее не любить тот цвет, а если бы стандарт гроба был бы в другом цвете? В черном тоже есть много гробов и что?... ::) ;D
Если рисовать в векторе, то можно вообще любого цвета взять паттерн под дерево, хоть чёрно-белый, а оттенок подобрать используя стили Color Overlay, Gradient Overlay и разные методы наложения.Начинал с этого, но далеко не зашёл: либо паттерны небольшие, складывающиеся в повторяющий сам себя узор, либо большие, но очень уж коряво у меня получалось их доработать (работал, правда, в растре) - неестественно смотрелось в основном в конечном результате, потому отыскал нужную мне текстуру и только немного доработал.
Красный цвет гроба, это всего лишь ассоциация - и что через нее не любить тот цвет, а если бы стандарт гроба был бы в другом цвете? В черном тоже есть много гробов и что?... ::) ;DДа уж, вряд-ли фанаты шведских Grave захотят слушать музыку на моём скине ;D .
Так, вроде без косяков собрал... но это не точно :) .А в теме скинов "Analog Meter" (https://www.aimp.ru/forum/index.php?topic=52865.msg376561#msg376561) более детально описал:
...С этой-то перерисовкой и проверкой почти день сидел ;D (аж плеер начал глючить - какая-то ошибка с вызовом дополнительных окон иногда происходит, да так, что и через "Диспетчер..." убить процесс не сразу получается. Потом только удаление обложки и установка по новой - надеюсь проблема не в моём скине нарисовалась, а в десятке скинов АналогМетра, переключаемых с частотой пулемётной очереди), видимо - очередная переустановка плеера не за горами...
Не могли бы перезалить скинhttps://cloud.mail.ru/public/CtX7/EiezzvpAZ
Обновление обложки: "T.D.A. Sound System" v1.5 - к версии обложки "T.D.A. Sound System" v1.4 добавлен завершённый элемент Quick File Info. (См. обновлённые ссылки и описание в первом посту этой темы)
Повторил ошибку, напишу Артёму.Спасибо. ;) Хорошо, если эта ситуация поможет исправить какой-то конфликт внутри плеера, потому как сама причина, в данном конкретном случае, которая его породила - точно не стоит скорлупы от выеденного яйца. Думаю, если глянуть на ситуацию со стороны, два окна визуализации в одном скине - это всё-таки перебор по части движка плеера и дурдом по части концепции скина. "Пусть бы было!" если бы ничего не затрагивало и ничему не мешало, а так... видимо придётся купировать.
Здравствуйте. Не могли бы перезалить скин, напрмер, в Яндекс.Диск, ибо РКН не дает доступа в ргостЗдравствуйте!
...диск в варианте с надписями, при том что они нечитаемые, выглядит, по-моему, намного круче, а то без этих надписей и на диск не похоже=):-\ Так вот я потому и "страдал" над чем-то подобным столько времени, что мне тоже такое очень хотелось бы туда присадить...
Вот, вплотную принялся за "Контекстное меню" и пока не могу понять до конца: я ведь никак не могу влиять на заданную ширину контекстных меню в разных местах скина? Иными словами - я могу что-то делать строго в рамках, заданных стандартной шириной?
--------------------------------------------
(https://i.ibb.co/rFwnTWG/image.png) (https://imgbb.com/)
А зачем менять ширину? Она же каждый раз разная, подстраиваемая под конкретное меню.Мне не принципиально надо обязательно изменить - мне просто узнать, можно-ли, чтобы понять в каком направлении дальше двигаться: выбрать лучший вариант шрифта (а потом каким-то способом можно ширину полей задать относительно строк) или всё же тесниться в жёстко-выделенных рамках по ширине, а то иногда получаются и такие вот варианты, которые являются неприемлемыми:
Высоту можно менять через размеры текстур.
1. П.1 на первой картинке.
Вертикальный размер поля с закладками не растягивается чётко на кратную длину "Текстуры" (высота текстур у меня стандартная по Bliss-у, я её не менял). С применением текстуры в стиле "Заливка", ясное дело, тут без разницы, а при применении размерной, фактурной текстуры - сами видите. Вопрос, какжется, риторический, но уточнить должен - есть-ли возможность удлинить поле закладок как-нибудь?
Кстати, в скине не будет иконок в контекстном меню? Ведь там используется "пустая" текстура, поверх которой рисуются иконки разных пунктов в менюшках.Я таки решил попробовать, как получится на вид менюшка без иконок и надо сказать, что выглядит не особо хуже чем с иконками (как сейчас есть), просто - по своему. Получился своеобразный вид "Маркированного списка", теперь визуально все строчки меню чётко структурированы - то же было бы, если б к каждой строчке можно было бы прикрепить свою иконку, но - увы.
Почти уверен, что никак.- я удивился, что высота поля закладок изначально прописано несоразмеренным кратно высоте+колличеству хотя бы базовой "Текстуре" Bliss-a, раз уж этот параметр нельзя никак регулировать через редактор. То, что пункты поля закладок не будут совпадать с "Текстурой" - это понятно, мне вот как раз было непонятно, почему самая нижняя "Текстура" обрезается на 1/4 снизу вообще всем окном меню закладок. ??? Наверное никто до меня не додумывался вставлять туда текстуры с горизонтальной фактурой-разграничителями, да ещё и с дополнительной картинкой ("маркером") поверху и потому не было особой разницы какой высоты задавать размер поля закладок...
Да и список закладок прокручивается же, он в любом случае не будет соответствовать иконкам слева.
Пункты 2 и 3 подтверждаю, такое есть и в скине по умолчанию. Напишу Артёму, возможно будет исправлено.По п.3 я бы, если это возможно, тоже голосовал бы за то, чтобы в редакторе обложек была возможность задавать ширину поля закладок изначально. Автоматика, конечно, лучше, но зачем же обрезать самый кончик самого длинного названия, если и так ниже может добавиться закладка в 2-3 раза длиннее и уже обрежется она - в чём смысл/выигрыш было в обрезании названия перед этим?
Полюбят такой вариант немногие, но мне, лично, очень понравилась стройность и чёткость восприятия пунктов в любых менюшках теперь.Вот так выглядит, пока без активно-выделяемых пунктов, "Главное меню"; скудно, минималистично, но - блин, то, что мне и нужно было (индивидуальная иконка к каждому пункту меню, конечно, было бы куда лучше):
Это все мелочи!=) Потому что.... "Скином не пользуются, на него смотрят" (с) andreiteplyakov =)));D Не-не, я в первую очередь ЭТИМ пользоваться буду! Посмотреть - есть целая куча куда более достойных экземпляров...
Короче говоря, не буду "придумывать теории", просто вот такая вот несостыковка получилась ввиду, скорее всего, использования "замостить" вместо "растянуть".
...Но в AIMP v4.13 было по-другому — меню растягивалось не до краёв экрана, а почти до края, и так, чтобы влезло целое количество пунктов меню.Как по мне - так было бы разумнее :-\ в принципе.
В скине по умолчанию то же самое.И всё-таки что-то не так: тут отступ от строк до краёв монитора по крайней мере соразмерено одинаков:
Извините все, кто писал - не успел вовремя :) ; rgho.st "лежал" пару дней - сейчас, кажется, работает, но на всякий случай закинул ссылку и на upload.ee (внизу первого поста темы).
rgho.st "лежал" пару дней - сейчас, кажется, работает
...Чтоб зря не оффтопить, хотел бы уточнить про многостраничные группы в редакторе? :)
В проекте домашнего скина к плееру хочу сделать так, чтоб при нажатии на кнопку менялись "Главное окно" и "Плейлист". Но в "Главном окне" мне тоже надо по нажатию другой, отдельной, специально для этого дела, кнопки менять некоторые элементы (точнее - заменять: должно отображаться либо одно, либо другое) - получается многостраничная группа внутри одной из страниц предыдущей многостраничной группы. Будет такое работать вообще?
Да, будет.Оооооотлично! 8) (Спасибо!) Вместо нагромождения различных, независимых окон или ущемления на одной площади нескольких больших элементов, содержащихся в таких окнах, хочется, чтобы на одной и той же площади они сменяли (заменяли) друг-дружку и сами в себе сменяли отдельные части, при этом без смешивания между собой как это зачастую в концепции скинов AIO. (Беда с этим моим "домашним" скином :) , чес-слово: чем больше работаешь над топик-скином, тем больше видишь - "как именно сделать" и хочется внедрить и в "домашний" уже много чего из ново-изученного. Только более-менее набросаю/соберу эскиз "Главного окна" и... опять всё по новой, потому, что, оказывается, программно "механику" управления плеером уже можно совершенно по иному построить, удобнее, универсальнее...)
Оооооотлично! 8) (Спасибо!) Вместо нагромождения различных, независимых окон или ущемления на одной площади нескольких больших элементов, содержащихся в таких окнах, хочется, чтобы на одной и той же площади они сменяли (заменяли) друг-дружку и сами в себе сменяли отдельные части, при этом без смешивания между собой как это зачастую в концепции скинов AIO. (Беда с этим моим "домашним" скином :) , чес-слово: чем больше работаешь над топик-скином, тем больше видишь - "как именно сделать" и хочется внедрить и в "домашний" уже много чего из ново-изученного. Только более-менее набросаю/соберу эскиз "Главного окна" и... опять всё по новой, потому, что, оказывается, программно "механику" управления плеером уже можно совершенно по иному построить, удобнее, универсальнее...)
Это скин-матрешка получитсяДа, похоже, дело к тому идёт. ;) (без обид!)
Это скин-матрешка получится
Да, похоже, дело к тому идёт. ;) (без обид!);D Нет, это скорее похоже на то, когда - в сундуке заяц, в зайце - утка, в утке - яйцо, в яйце - ... А вот когда доберусь до яйца, там я, скорее всего, отыщу свою полную некомпетентность и несостоятельность придать всей этой конструкции работоспособное состояние. :) Вот этот вариант очень правдоподобен.
Не запутаетесь Вы потом во всех этих контейнерах и мнгстр. группах?- по идее не должен. В базовом варианте предполагается всего два уровня. "Главное окно" (1. на картинке - схематическая слепка месторасположения основных элементов/частей скина) должно сменяться "Плейлистом" (2), а на "Главном окне" "Инфопанель" (3) - сменяться "Лирикбоксом" (4). "Окно визуализаций" мне не нужно, "Фонотека" тоже будет отсутствовать, так что это - основной набор.
Сколько проблем будет с заданим их выравнивания, отступов, контейнеры же друг на друга влияют.Вот потому и задался выше таким вопросом. Будет плохо, если М.группы внутреннего уровня будут как-то ломать работу М.групп внешнего уровня и наоборот; именно структурно, по управлению и по связям они пересекаться не будут. Как-то растягиваться или меняться в размерах элементы М.групп не будут, только внутренние изменения по типу слайдеров-ползунков для прокрутки
По мне - проще управлять видимостью элементов (Visibility), а если несколько элементов сразу, то разместить их на панели и переключать уже панели - они ни к чему не привязаны.Спасибо за идею. Я пока на "Панель" многофункционал ещё не цеплял, хотя видел, что можно - не уверен, что получится в конечном результате: М.группы мне пока привычный испытанный в какой-то мере шаг. Там просто надо будет сменять целые контейнера "Инфо..." и "Лирик...", несущие в себе не только базовые элементы, но и кучу мелких визуальных наворотов, что мне пришлось доделывать, например, в том же окне "Лирики...".
Дизайн скина одновременно отсылает к 70-ым (у нас в моем детстве телевизор ч\б Горизонт был декорированный темным красно-коричневым шпоном с черными пластиковыми панелями и решеткой динамика, только надписи не золотистые, а серебристые) и к 90-ым - видел много китайской техники в черно-золотистом дизайне, но все же больше похоже на советские 70-ые, так как китайский дизайн был примитивнее...Прямой наводкой отсюда ничего не брал, но Вы недалеко от правды: также в детстве и "Горизонт" подобный был и прочая аппаратура со схожей обшивкой - может что на подсознании и потянуло делать именно так, в сочетании деревянного шпона и пластика. Хотя тут боле от - автомобильных магнитол с пластмассовыми/стеклянными интерфейсами, посаженными под приборную доску, "заколлхоженную" в этот самый деревянный пластик. В 90-х отец как мог в домашних условиях декорировал поизносившееся нутро нашей "копейки", а позже реставрировал ГАЗ-69А - обшивка кабины изнутри, в т.ч. и из деревянного пластика и шпона с врезанными в них всяким "Грюндиками"/динамиками... скорее всего больше отсюда пошёл росток к такому дизайну. Ну, и позже уже всё остальное, что описывал где-то много ранее, выше.
...Применры использования макросов есть и во встроенных проектах.Что по плейлисту - это я видел, пробовал, а во встроенных проектах - где? Я, собственно, по встроенных и иду, переделывая под нужное мне.
1.
Когда конкретный тег пуст - соответствующий TaseTextDisplay невидим (например, "Album").
Я по началу хотел наложить сверху "Панель" с текстурой (надписью, например, тот же "Album"): в то время, как "альбомный" TaseTextDisplay, должна была быть видна "Панель" с "Album" и наоборот.
Потом поиграл с параметром "Template" TaseTextDisplay и подумал, а может можно как-то обойтись без дополнительной "Панели"?
Есть-ли возможность с помощью "Template" TaseTextDisplay прописаться с помощью макросов/команд таким образом, что, если фактического тега "Album" в аудиофайле нет, TaseTextDisplay выводил нужную надпись вместо названия альбома, например, всё тот же - Album?
%IF(%Album,%Album,Album)
2.
Всё тот же "Template" TaseTextDisplay.
Совместил в одном элементе TaseTextDisplay "Жанр" и "Год".
Хотелось бы, чтобы они писались через слэш (1 на картинке). Но когда в тегах нет жанра или года, то получается на выходе так - 2 и 3. Когда ни того ни другого нет, остаётся видимым сам слэш (4). Есть-ли возможность в "Template" прописать так, чтобы слэш также прятался, а жанр или год центрировались без учёта слэша и пробелов вокруг него (4 и 5), а если нет ни жанра, ни года, то вообще было пустое место (6)?
%IF(%Genre,%IF(%Year,%Genre / %Year,%Genre),%IF(%Year,%Year,))
если Жанр есть тогда
если Год есть тогда //если есть и Жанр, и Год
выводим "Жанр / Год"
иначе //если есть только Жанр
выводим "Жанр"
иначе //если Жанра нет
если Год есть тогда //если Жанра нет, но Год есть
выводим "Год"
иначе //если нет ни Жанра, ни Года
выводим ничего
Остался вопрос по аудиоформату.
В общем, прошу указать самый "широкий" формат. Ну, или дайте ссылку, где почитать, скачать.
Может быть и такой формат:...- такой уже проверил, а о таком:
..."OPUS"...- :-\ вообще впервые слышу, никогда ещё с таким не сталкивался.
А вообще, имхо, неправильно это затачиваться на ширину названия формата. Просто с некоторым запасом никак не сделать?;D Я так треть, наверное, скина сделал, затачиваясь если не под одно так под другое. Сейчас, если бы не помогли с этими макросами переделывал бы дисплей "Инфопанели". Тут так: делаешь картинку - как всё это должно выглядеть (учитывая в голове уже известные особенности сборки в редакторе), начинаешь прописывать части через редактор, понимаешь, что по мелочам много чего не сделать - и вроде мелочи, но при сборке начальная картинка уже не та, начинаешь перерисовывать саму картинку, подстраивая под возможности элементов редактора. С одной стороны это плюс - художество и редактор через некоторое время сходятся в определённом компромиссе. Потом ещё - выглядит уже вроде и хорошо, но неудобно глазам: начинаешь уже картинку+редактор "шлифовать" вместе ещё и на какую-то хоть удобность восприятия...
Проблема заключалась в том, что элемент "кнопка" в этом случае уже не подходил - как раз из-за свойства мягкого появления/исчезания...Фейдинг настраивается в свойствах элементов + настройка анимации в самом плеере.
... это нормально для TASEPanel такое поведение в описанной ситуации? Если да, и это не я накриворучил (что вряд-ли, так как операцию с "крышкой" перепробовал не раз не только на этом элементе, но и на других), то какая особенность TASEPanel здесь сыграла свою роль? ...Можете коротко и чётко сформулировать, что не так с панелью?
Фейдинг настраивается в свойствах элементов + настройка анимации в самом плеере.Настройка анимации в самом плеере не подойдёт, иначе это свойство отключится вообще по всему скину, а этого не нужно. А настройка в свойствах самого элемента-кнопка в редакторе - это где конкретно? :-\ Я вчера первым делом задался этим вопросом, но что-то видимо запамятовал где эта настройка была.
Можете коротко и чётко сформулировать, что не так с панелью?Немного ввёл в заблуждение понятием "крышка" - это не ту, что в "Текстуры" - "Слои" я имел ввиду. "Крышка" - это я так обозвал текстуру, которая полностью на отдельном элементе появляется или исчезает в зависимости от того нажата-ли кнопка "Стоп" на плеере: если нажимается "Стоп" - эта "крышка"-текстура становится видимой.
...3 кадр - крышка:
Настройка анимации в самом плеере не подойдёт, иначе это свойство отключится вообще по всему скину, а этого не нужно.Это само собой, написал это к тому, что пользователь может одник кликом все Ваши старания отключить.
А настройка в свойствах самого элемента-кнопка в редакторе - это где конкретно?Это свойство AllowFading управляющих элементов (кнопки, переключатели, слайдеры).
Это свойство AllowFading управляющих элементов (кнопки, переключатели, слайдеры).Это типа отключить эффект на "кнопке" навсегда ещё на стадии редактора? Я думал где-то в редакторе можно настраивать степень/скорость/длительность появления/затухания "кнопки"...
Это само собой, написал это к тому, что пользователь может одник кликом все Ваши старания отключить.Ну, это уже проблемы пользователя, если ему так больше нравится, главное, если в "Главном окне" эта фишка может быть, то в случае с ИП эффект затухания и плавного появления только вредит, потому его, конкретно в ИП, в любом случае не должно быть, потому и не использовал "кнопку" здесь.
Из всего написанного я так и не понял, что Вы хотите добиться от панели и что не получается. Для сокрытия чего-либо в режиме РАДИО нужно использовать связь с prvPlayerState.TrackDuration или prvPlayingFileInfo.Duration. При прослушивании локальных или сетевых файлов это значение > 0.Да проблему-то решил с помощью "стекла". У меня вопрос был касательно того, что вдруг случилось с "панелью", что она так себя вела.
Кроме того, почти все элементы сейчас имеют выбор методов наложения - может, с этим что-то намудрили. По крайней мере, в приведённом мной выше примере поведение панели ничем не будет отличаться от поведения BluredGlass, что естественно.
...Набросали бы примерчик, секундное же дело - запустить две копии редактора, скопировать из своего проекта в пустой нужные элементы - было бы ясно, в чём проблема.
У меня вопрос был касательно того, что вдруг случилось с "панелью", что она так себя вела.Разве что, рождественскими чудесами это можно объяснить. ;D
Как сделано в примере - панель будет видна только в режиме СТОП, независимо: радио это или файл.А у меня вчера так получалось, что панель была видна постоянно в режиме радио и при этом видана только в режиме "стоп" на файлах. Не исключаю собственной ошибки, но - ёлки-палки! - я ведь сделал на "панели" - не работает, удалил, поставил "стекло" - работает, удалил, снова поставил "панель" - не работает, удалил, опять попробовал "стекло" - работает... "панель" - не работает... и так несколько раз! Где-то около часа игрался (потом ещё пару часов пробовал обойти эту "панель" и доподключить к другим сервисам, чтобы и на радио срабатывало), ;D либо у меня руки сбоили через раз, причём одинаково, либо, наверное, засбоил редактор - надо впредь периодически перезапускать его.
Разве что, рождественскими чудесами это можно объяснить. ;D
P.S. Зачем в панели 2 кадра, если во втором ничего нет и он нигде не используется?Структура по которой подобная фишка работает на "кнопке" в "Главном окне".
...возможно по этой причине этот фрагмент считается как "ущербный" и потому надпись-строчка и не выводится на нём?Нет, тут определённо предпоследняя часть не полностью прорисовывается. Вот, на скине Remoder-а это
...в AIMP v4.13 было по-другому — меню растягивалось не до краёв экрана, а почти до края, и так, чтобы влезло целое количество пунктов меню.- этот вариант определённо был лучше.
этот вариант определённо был лучше.
Нет, тут определённо предпоследняя часть не полностью прорисовывается. Вот, на скине Remoder-а это
;D Ну разве что так; в подобной, повторяющейся раз к разу, ситуации уже не до того будет, как выглядит контекстное меню - тут бы успеть задержать хотя бы на втором этаже непроизвольно и неудержимо строящуюся в многоуровневую обсценно-лексическую конструкцию вербальную фигуру от невыразимо распирающего чувства. :) Хорошо, что у меня вертикальная Панель задач...
Я уже разные варианты (по "Парам. растяж.", "Отступах") этих двух текстур перепробовал - всегда один и тот же результат.Похоже, такое происходит только в тех меню, где заданы отступы растягивания текстуры.
Не-а, в чём-то другом дело... У себя перебрал все проекты, даже ещё от 3.0, - ничего подобного с меню не происходит, только со скином Vitreous. :-\
У меня с этим было хорошо, но поменял высоту кнопки и так же как и у вас вышло.Я так понял, это зависит от высоты в пикселях монитора ;DВидимо программа замощивает текстуру по высоте монитора N-нное количество раз по полной высоте + рамка, а не кратная оставшаяся высота добивается "огрызком" из текстуры. При использовании однородной текстуры этот момент незаметен.
... Видимо программа замощивает текстуру по высоте монитора N-нное количество раз по полной высоте + рамка, а не кратная оставшаяся высота добивается "огрызком" из текстуры.Не похоже и на это. Взял специально экзотическое меню из старых проектов, высота пункта в оригинале - 20 пикс., увеличил высоту всех текстур до 21 пикс.
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=60247.0;attach=56099) | (https://www.aimp.ru/forum/index.php?action=dlattach;topic=60247.0;attach=56100) |
Ну оно и не заметно, если просто тупо кнопки без обводки!На привелённых мной картинках меню как раз содержит все текстуры (специально выбирал, чтоб было видно), в том числе и гуттер и сепаратор, но ничего ни при каких издевательствах не обрезается.
У вас нет обводки (текстура - первый кадр) - вот через него так и выходит...Вон в чём дело. Согласись, напахал ты с этим меню, аж в глазах рябит, а выделенный пункт очень слабо отличается от остальных, и по стилю к главному окну такое меню уж никак не подходит.
А какие там отступы? Меню во всю высоту экрана, отступы = 0...Отступы между краем экрана монитора и строчкой (именно надписью) меню. :) Ну, да Remoder уже уточнил всё...
Там кое где настраивается степень прозрачности а кое где не настраивается, хотя ползунок есть.:-\ Я уже боюсь, что придётся выбирать между "красиво" и "удобно". Там ещё есть фишка с наследованием фона, вот я и подумал, что где-то не всё поотключал ещё.
Мне нравится ваш скин, он напоминает о временах молодости. Предлагаю сделать стиль тиснение для фоновой картинки, деревянной поверхности. Тиснение по краям и вокруг динамиков. Это придало бы мощи скину. Хотя и так как сейчас он выглядит классно.Рад, что Вам понравилось ;) . Мне скин тоже всё время что-то напоминает... Точнее не так даже: пока я его рисую и перерисовываю, что-то в подсознании всё время ворочается - и чтобы толком увидеть это и понять, что именно, какой аппарат рисую и что же в конце-концов должно получиться - вот это не выходит; отрывками-кусками из того, что таки всплывает в сознание, опирается на декорированные под дерево проигрыватели, магнитолы-радиолы... И то, что своими руками имеется возможность изменять-творить внешний вид такого проигрывателя, постоянно сбивает с какой-то одной, выверенной визуальной линии - малейший стопор по части редактора (что-то не получается реализовать так, как это нарисовано) и мысль начинает бешено переигрывать всё, иногда и в прямо противоположную сторону ::)
В "Заметках" так же занёс попытку проработать более игру света и тени. Например, очень хотелось бы на главном (первом) "виде" "Главного окна" сделать хоть отдалённо "пластик" в виде переливающегося "чёрного металлика"Можно попробовать анимировать рефлекс (блик) на какой-либо поверхности, по времени или по какому-то действию.
Можно попробовать анимировать рефлекс (блик) на какой-либо поверхности, по времени или по какому-то действию.Класс!
Вспомнил в связи с этим про своё баловство - анимировать блик на кнопке при наведении, но это ресурсозатратно...
Оба изображения выглядят нормально...:-\ Большинство так мне и говорит :-\ вот потому я и не начал делать параллельно два скина на разной степени "поджаристости" текстурах.
...Желаю вам творческого настроя и доделать скин до конца)Спасибо. :) С помощью друзей и форума - точно доделаю.
При отсутствии визуализации кавер в главном окне жестоко обрезается:;) Он в этом окне и с неудалённым VisualizationFrame обрезался:
...
Давно хотел написать Вам про индикаторы уровня, да всё ... забываю. Как то "наизнанку" они смотрятся, для глазу более привычно, когда серединка более яркая, чем края, а тут ... дырка, ну и ореолы обычно присутствуют (если это светодиод или лампочка).А вот хорошо, что обратили внимание; в своё время я задавался вопросом как нарисовать индикаторы - где-то нашёл (по виду, конечно, нашёл, не по сути их работы) и застопорил для себя этот вопрос и к нему больше не возвращался. Но тут не всё в кучу - у каждого "вида" "Главного окна" ( по очереди переключения - "стандартный", "араб", "краб") свои индикаторы.
Осмелюсь предложить Вам свою текстуру для Gauge, правда может общая высота не совпасть, но фон прозрачный, можно попробовать, если понравится, конечно.Спасибо. У Вас ореол в 1,5-2 пикс и он мощнее по накалу свечения, а "сердцевина" вообще очень мощная - конкретно такой вариант мне вряд-ли подойдёт, надо соразмерять с той же "Бегущей строкой" ("строчкой-дисплеем" "Бегущей строки") и другими подобными "светящимися" элементами - они как бы все, включая индикаторы, "сделаны" на базе "пиксельного" табло (кроме цветных индикаторов "араба"... хотя я там тоже применил ту же черезстрочную шахматку).
Я забыл, что у Вас же плеер без плагинов (какой-то один, если я верно помню, у Вас стоит): в этом скине Вам лучше выбрать вариант "Отключить" :)Ну, я не один такой, плагины у меня все есть, просто включаю их по мере надобности, во избежание каких-либо эксцессов при тестировании.
У Вас ореол в 1,5-2 пикс и он мощнее по накалу свечения, а "сердцевина" вообще очень мощная - конкретно такой вариант мне вряд-ли подойдёт, надо соразмерять с той же "Бегущей строкой" ("строчкой-дисплеем" "Бегущей строки") и другими подобными "светящимися" элементами - они как бы все, включая индикаторы, "сделаны" на базе "пиксельного" табло (кроме цветных индикаторов "араба"... хотя я там тоже применил ту же черезстрочную шахматку).Ореолы на самом деле - 5 пкс. В ФШ это Outer Glow. Даже если по задумкам это LCD-панель с тыльной подсветкой, то ореолы и градиенты незбежно будут в силу нашего зрительного восприятия. Если интересно - исходник во вложении (CS6), цвет индикатора лекго менять изменяя оверлейный цвет группы. Про раскадровку разговор отдельный (если понадобится).
...Потому и предлагал Вам сделать свой красивый индикатор на основе Gauge, а не плагина - тогда ни у кого бы проблем не было.Cделаю в Lite, там посмотрим, как получилось, может и сюда внедрю.
Можно тут, наверное, помудрить с масштабированием кавера, но я не знаю структуры скина, поэтому посоветовать ничего не смогу.Тут без вариантов: скин - жёсткий, как дека Hi-Fi-проигрывателя, какие-то части растягиваться в нём никак не могут.
Ореолы на самом деле - 5 пкс. В ФШ это Outer Glow. Даже если по задумкам это LCD-панель с тыльной подсветкой, то ореолы и градиенты незбежно будут в силу нашего зрительного восприятия. Если интересно - исходник во вложении (CS6), цвет индикатора лекго менять изменяя оверлейный цвет группы. Про раскадровку разговор отдельный (если понадобится).Супер! ;D Теперь ещё и третий вариант для мучений перед выбором появился! (https://www.upload.ee/files/9398084/T.D.A._Sound_System_v1.7_indikator_AVP.acs4.html) Соразмерил на Вашем примере свечение (слишком и явно заметное всё-равно выбивается из общей картины) и получилось интересно... если и в первый "вид" сделать индикаторы, как на "арабе", а не загорающуюся панель. Тоже чуть больше засвечено, чем нужно получилось, но выглядит хорошо...
Я бы и бегущую строку инвертировал (и схожие с ней элементы) эти яркие прямоугольники уж очень бросаются в глаза, а тёмные буквы на них смотрятся как-то грустно. Всё-таки, когда присутствует эффект именно свечения, это реалистичнее смотрится. Тем более, редактор сейчас позволяет добавить тень и блюр к символам текста:"Бегущая строка" так шла изначально - как бы один из выходных пунктов скина, от которых дорисовывалось всё остальное. Я пробовал инвертировать её, но получалось как-то однообразно и, ладно ещё волнообразователь, когда буквы бегут строчкой по тёмному фону - это как-то не то, как если бы буквы транслировались именно на подсвеченном табло, как бы специально для этого предназначенного, как и в случае с дисплеем "коврика" - для вывода динамических и графических элементов. А тёмный фон - черезстрочная шахматка, это что-то навроде циферблата с жёстко заданными наборами отображения в конкретно заданном месте.
Теперь ещё и третий вариант для мучений перед выбором появился! Соразмерил на Вашем примере свечение (слишком и явно заметное всё-равно выбивается из общей картины) ...Я бы не сказал, что яркость заметно отличается от яркости той же бегущей строки, вот спектрум на фоне всего тускловато смотрится, индикаторы уровня и должны быть яркими.
Тут без вариантов: скин - жёсткий, как дека Hi-Fi-проигрывателя, какие-то части растягиваться в нём никак не могут.Не надо ничего растягивать, сам кавер сквадратить за счёт отступов, а в освободившееся место - минимальную информацию об альбоме.
;D Ха-ха - левый индикатор как будто похож на ползущего червяка.;D
Я бы не сказал, что яркость заметно отличается от яркости той же бегущей строки, вот спектрум на фоне всего тускловато смотрится, индикаторы уровня и должны быть яркими."Бегущая строка" это что-то навроде отдельного дисплея с подсветкой, вмонтированного в циферблат, потому так.
Ну, и опять про неё же, бегущую строку... Разнообразие шрифтов никогда не красило скин, ИМХО, лучше бы она смотрелась в том же точечном шрифте, как в таймерах и без курсива.Один из двух элементов, которые я взял и переделал для своего скина из чужой обложки, выглядел именно так:
Не надо ничего растягивать, сам кавер сквадратить за счёт отступов, а в освободившееся место - минимальную информацию об альбоме.Зачем дублировать ИП на "Главном окне"?
Я поначалу нарисовал шрифт в подобном стиле, но в этой обложке используется только латиница - не вся кириллица нормально читается в таком стиле если принять во внимание, что вместе с этим это должно было ещё и смотреться, а не только читаться.Шрифты подобные есть с кириллицей, у себя даже нашёл - Epson1.ttf, где-то я даже пытался его применить, но он широковат, точнее, шаг символов большой (он моноширный), если только в редакторе шрифтов попытаться параметры поправить.
... Матрица получше, но это всё-равно коряво выглядит.Да, Matricha только начиная с высоты 20 нормально выглядит, но всё равно даже такое смотрится лучше, в едином стиле, чем тот наклонный сегментный шрифт.
А как Вам такая идея? (см. влож.) - тут можно вообще использовать любой шрифт и маску.Классное решение! (Проблема только в том, что "+" на форуме ограничены посуточно ;) и нельзя их хорошему человеку сразу накидать!)
Да, Matricha только начиная с высоты 20 нормально выглядит, но всё равно даже такое смотрится лучше, в едином стиле, чем тот наклонный сегментный шрифт.Потому и отдавал предпочтение LCD-шрифтам, которые нарисованы так, что ложатся в рамки прямоугольника символа электронно-цифрового табло. А "курсивы", по крайней мере в цифрах и там бывают, потому я особо и не расстроился по этому поводу.
Беда ещё в том, что строка по высоте скочет при изменении шрифта и некоторых его параметров, а управлять этим нет возможности.
... можно-ли меньший шрифт задействовать (если взять за основу не 4, а 1 пиксель в текстуре)Попробовал с текстурой 1х1, но приходится добавлять непрозрачность в маскированные области, иначе, ес-но, шрифт такой маской будет изуродован. В примере две маски с разной непрозрачностью в "прозрачных" местах - 25 и 35%.
Попробовал (пока "на скорую руку"), правда пришлось текстуру инвертировать, а то как-то уж сильно истерзанно на статике смотрится (статики в строке мало, но бывают стоп-моменты), сейчас тоже не особо, но много лучше, в динамике по крайней мере нравится как выглядит.
и, всё-таки... :D слушаю сейчас на фоне Maxthor - "Hunters" (https://www.youtube.com/watch?v=sVbKsUJN2PI) и... знаете что? :) Вдруг пришло в голову, а что если вот всё вот это - включительно и со светлыми символами на тёмном дисплее - взять и оформить не на красном, а на тёмно-коричневом дереве?
на тёмном фоне бегущая строка смотрелась бы лучше...
Мне светлый текст БС на тёмном фоне однозначно нравится меньше, чем так как есть сейчас, но не могу не признать, что что-то в такой композиции есть симпатичное*А мне очень даже понравилось - всё гармонично и в едином стиле. Яркий прямоугольник бегущей строки неизбежно притягивает на себя взгляд, пожалуй, первое, на что обращаешь внимание. А если учесть народную нелюбовь к бегущей строке, да ещё при невозможности её скрыть ... - сами понимаете. ;)
Попробовал (пока "на скорую руку"), правда пришлось текстуру инвертировать, а то как-то уж сильно истерзанно на статике смотрится (статики в строке мало, но бывают стоп-моменты), сейчас тоже не особо, но много лучше, в динамике по крайней мере нравится как выглядит.В статике - да, смотрится хуже. Как я и писал уже, зависит от шрифта, особенно, если какой-то горизонтальный ряд пикселей не попадает в маску.
А мне очень даже понравилось - всё гармонично и в едином стиле.;) Значит обязательно сделаю как вариацию в Lite-версии.
Яркий прямоугольник бегущей строки неизбежно притягивает на себя взгляд, пожалуй, первое, на что обращаешь внимание.:) В какой-то мере на это и расчёт: притягивать взгляд - сразу замечать, что же там такое проигрывает.
А если учесть народную нелюбовь к бегущей строке, да ещё при невозможности её скрыть ... - сами понимаете. ;)Повторюсь уже, наверное, но если говорить за Ваши скины, то практически почти во всех БС меня бы тоже раздражала :) , у Вас сами скины настолько красиво и тематически сделаны, что всякие БС там будут лишние. А вот в моём скине, если выбросить БС, так сразу треть (если не половина!) и смысла и визуала уйдёт, а так хоть БС "радует", если уж всё остальное "на три с минусом"...
ИМХО, многовато мути на стекле. Я в одно время тоже начал делать отражения и рефлексы в своих скинах, большинству людей это не понравилось, да и контраст снижает.Блюра там нет и какой-то специальной мути я не делал - это просто два куска-слоя залитых оттенком тёмно-белого: один с прозрачностью в несколько процентов, а второй с той же прозрачностью, но под градиент сделанной уменьшающейся с нескольких процентов до нуля. Накладка последнего и даёт вот этот эффект размытия средних и особенно светлых цветов. Вот пример одного "стёклышка":
В статике - да, смотрится хуже. Как я и писал уже, зависит от шрифта, особенно, если какой-то горизонтальный ряд пикселей не попадает в маску.Спасибо. Я ещё, конечно, поэкспериментирую с этим всем.
Я сегодня тоже посравнивал разные текстуры, пришёл к выводу, что текстура 2х1 (с полупрозрачностью) в маске смотрится, всё-таки, лучше даже на мелком шрифте, надо только в редакторе добавить тень под 45 гр. в 1 пикс. и размытие 3..5. Текст намного ярче и контрастнее.
Если будет ещё желание поэспериментировать, текстуры (те, что пробовал) прилагаю.
... :-\. Для того, чтобы окончательно принять определённую концепцию Плейлиста, дорисовать последние элементы и начать сборку окна, надо понять можно-ли сделать одну штуку БЕЗ СКРИПТОВ.
Плейлист будет растягиваться по вертикали.
Можно сделать, чтобы он растягивался и по горизонтали, но для этого мне надо настроить TASETabControl таким образом, чтобы видимыми всегда были только три вкладки: даже если вкладок будет 5-10-100 и окно плейлиста (а значит и элементы и текстуры TASETabControl) будет растягиваться по горизонтали - неважно: вкладки всегда должно быть три. Да, эти вкладки будут растягиваться вместе с окном плейлиста равномерно - это я уже нашёл как сделать. Вопрос в том, КАК всегда отображать только три вкладки из "три и больше" возможного множества вкладок?
Когда-то, в самом начале знакомства с редактором, мне кажется, я что-то такое видел - ограничение вкладок для показа по количеству, а может это я уже придумываю. В общем, пожалуйста, подскажите, есть-ли такая возможность? Пока что ограничить показ вкладок тремя штуками я могу только задав им определённый размер для равномерности и ограничив всё окно Плейлиста от растяжения по горизонтали.
...Впрочем, если для этого и нужен будет скрипт, но он будет не сложный и относительно простой, то можно бы и его применить.
(https://i.ibb.co/TP6gYxT/image.png)
P.S. Ааах... ::) Я ж всё время забываю, что рассказываю всё с позиции IPS-матрицы, да ещё и с несколько "форсированными" настройками цветопередачи!У меня IPS-матрица, монитор прокалиброван, правда уже давненько. Каких-либо "форсированных" настроек я себе позволить не могу, поскольку основное занятие, всё же, - обработка фотографий. Но индикатор в скине смотрится весьма некотрастно из-за этих рефлексов, да и ощущения стекла они не добавляют.
...да и ощущения стекла они не добавляют.Можно безболезненно убрать "градиентную полупрозрачность", только тогда это вообще ни на какое стекло не похоже.
...Каких-либо "форсированных" настроек я себе позволить не могу, поскольку основное занятие, всё же, - обработка фотографий...Я люблю более насыщенные цвета, но так как в основном коллажирую на основе найденного в Сети, редко изменяя параметры цветопередачи слоёв будущего коллажа, то убеждаю себя, что не особо всё коверкаю в этом плане. Для печати обложек книг в типографии это даже помогает. По началу работал в CMYK на стандартных настройках цветопередачи, после первой же печати в типографии начал конечный результат нещадно осветлять - получился вообще жуткий дисбаланс. Плюнул - работа всё-равно любительская - начал работать привычно в RGB и своими настройками: приходится тёмные цвета всё же поднимать в конце работы, иначе в типографии контрастят-заливают тёмным, но в остальном хоть как-то приемлемо начало выглядеть.
Снизить прозрачность совместно обоих слоёв ещё больше?Мне кажется, стоит
Мне кажется, стоит;D Ну, да, это я и имел ввидунемного снизить, наоборот, сделать более прозрачными, как то пыльно смотрится.
В конце 90-х младший брат подсадил меня на "фотографию" на "ЗЕНИТ ЕТ" (включая и микросъёмку), но как только массовая плёночная фотография окончательно ушла в историю, я немного охладел ко всему этому.
Очень понравилась функция в скине Remoder-а (Vitreous) с изменением размера символов в ПлейлистеЗачем? ??? Это уже давно сделано на уровне плеера, размер текста можно менять в диалоге настроек. Неужели это у кого-то получится лучше, чем у Артёма?
Зачем? ???Не обязательно эту функцию. Я пока исхожу из своего начального минимализма по окну Плейлиста - мне раньше некуда было лишние функции прицепить (я даже "Меню сортировки файлов" убирал из-за нехватки места). По дополнительным функциям - это мне ещё предстоит хорошо подумать, стоит-ли внедрять то или иное.
Это уже давно сделано на уровне плеера, размер текста можно менять в диалоге настроек. Неужели это у кого-то получится лучше, чем у Артёма?Это оно: "Настройки" → "Интерфейс" → "Масштаб" → "Размер текста"?
Вот в окне лирики это сделано на уровне скина, скрипт можно подсмотреть в встроенном проекте.- ещё не факт осилю-ли я это дело, мне это нужно на две кнопки управления приладить (увеличить/уменьшить), в размерах от 100 до 200% с шагом в 5%...
Но ведь тогда увеличивается текст и в других местах, например, в Фонотеке, что не нужно...По-моему - так весьма разумно, уж если у кого-то проблемы со зрением, так они одинаково скажутся, что в плейлисте, что в фонотеке. И потом может возникнуть комичная ситуация, если пользователь начнёт менять размер текста и в настройках плеера и кустарными методами из скина. ;D
Да и это не нужно будет, если "градацию" горизонтального расширения Плейлиста не узнаю ???Скриптом, сразу могу сказать, не получится, будет зацикливание.
По-моему - так весьма разумно, уж если у кого-то проблемы со зрением, так они одинаково скажутся, что в плейлисте, что в фонотеке. И потом может возникнуть комичная ситуация, если пользователь начнёт менять размер текста и в настройках плеера и кустарными методами из скина. ;DЭто - да. Хотя я - за отдельную регулировку в каждом отдельном окне; даже без проблемы со зрением - в Фонотеке надо больше информации уместить на одном экране - шрифт меньше... В Плейлист можно издалека поглядывать, не вчитываясь - шрифт побольше... И тут и там прямо на окне подправил как удобно.
Скриптом, сразу могу сказать, не получится, будет зацикливание.Зацикливание?
Единственное, что можно сделать - заблокировать растяжение плейлиста мышкой, а скриптом изменять ширину окна на фиксированную величину. Но для этого понадобятся ещё две кнопки, да и коряво это будет выглядеть.Хммм... А это даже интересней :) . И прямо даже чётко подходит конкретно под мою задумку. Плейлист и так должен был растягиваться мышкой по вертикали и быть заблокированным по горизонтали. Вот только в случае, когда надо увеличить шрифт и чтобы строки не обрезались справа, хотелось бы иметь возможность раздвинуть Плейлист. Но нужна фиксированная ширина раздвижения, так, чтобы если на табе вкладок до этого было 3 вкладки, после раздвижения показывалось 4, при следующем - 5.
А что за сверхзадача такая? У табконтрола такая масса настроек по поведению табов - на все случаи жизни.Нужно добиться равномерного распределения вкладок на табе. Если вкладка одна или несколько, но по длине текстур они меньше минимальной/заданной/базовой ширины строчки таба (грубо говоря Плейлиста), то эти вкладки заполняют собой всю ширину таба своим растяжением. Когда их больше и они не вмещаются на табе, то когда расширение Плейлиста по горизонтали запрещено, то они прокручиваются целостно по своей ширине. Когда же Плейлисту можно растягивать горизонталь, тогда эта целостность теряется и справа от крайней видимой вкладки будет либо часть следующей вкладки, либо пустота, пока окно Плейлиста не растянут настолько, чтобы поместилась следующая - подгадывать мышкой попиксельно нужную ширину, так, чтобы не было видно пустоты или полускрытой вкладки, никто не будет.
Зацикливание?Да, потому, что будет повторно возникать событие onResize.
Если бы можно было задать им возможность расширять свои текстуры по ширине таба до тех пор, пока при растяжении по горизонтали Плейлиста не хватит места на следующую вкладку - это тоже было бы подходяще, но так сейчас работает только если вкладок (вместе взятых по своей минимальной по текстуре ширине) меньше, чем ширина таба. Когда же вкладок больше, то это правило уже не действует и справа, если мышкой не подстроить нужную ширину окна Плейлиста, появляется либо пустота, либо полускрытая следующая вкладка.--------------------------
В таком случае табы должны быть одинаковой ширины и Autosize = false.Так и есть сейчас, но обрезок выделенный красным выше на картинке - всё равно вылазит, если горизонталь Плейлисту растянуть как получится, а не скрупулёзно подбирать.
Да, потому, что будет повторно возникать событие onResize.Понятно :-\
Оставил полностью Ваш вариант и по количеству раздвижений - сначала поставил 5, но потом друг на 4К-мониторе опробовал и посоветовал оставить 8.Когда меняете число шагов (модуль счётчика), не забывайте про те же константы в связях кнопок.
Проблема в том, что на 9 "шагах" - 2-й и 8-й прощёлкиваются на кнопке в холостую.Со шрифтами такое бывает, это и в ФШ можно заметить, на каком-нибудь шрифте два соседних размера, отличающиеся на единицу, отображаются одинаково, иногда немного изменяется ширина символов и их очертания. Это ещё зависит и от самого шрифта и от способа вывода.
Когда меняете число шагов (модуль счётчика), не забывайте про те же константы в связях кнопок.;D Я там в кнопке увеличения забыл на один шаг меньше выставить и получил круговую перемотку одной этой кнопкой всего спектра изменений.
...Можно попробовать сделать изменение высоты через 2 pt - ИМХО, вполне достаточная градация.Абсолютно согласен. Тем более, что для меня важно, чтобы не было визуальной "пробуксовки" при нажатии на кнопку: cмена через 2 pt как раз достаточно с этим справляется (сравнил более тщательно работу предыдущего скрипта и работу встроенного масштабатора текста - еле заметная разница всё же есть, хотя на первый взгляд увеличивали они текст одинаково).
Со шрифтами такое бывает, это и в ФШ можно заметить, на каком-нибудь шрифте два соседних размера, отличающиеся на единицу, отображаются одинаково, иногда немного изменяется ширина символов и их очертания. Это ещё зависит и от самого шрифта и от способа вывода...- на 3-м и 9-м шаге кнопки увеличения проявляется во всей красе: шрифт визуально никак не изменяется.
Среди стандартных для всех скинов кнопок, хотелось бы организовать несколько кнопок-"быстрого доступа", как то: "Показать текущий", "Новый плейлист", "Закрыть плейлист", "Менеджер очереди"... Но что обязательно бы хотелось поцепить на кнопку - это вызов "Расширенного редактора тегов"Для меня это не менее новая задача, чем для Вас ;) (пока надобности в подобных действиях не возникало). Но, если пробежаться по списку стандартных провайдеров, можно что-то интересного и полезного найти для конкретного скина, тем более, что в 4.6 появилось довольно много новых провайдеров. Имена у них достаточно адекватные, не трудно понять, что они делают, а при сомнениях - проверить. Когда связь создаёте - весь список провайдеров на виду. Кое-что нашёл, поставил кнопки в проекте, но вот, похоже, для "Расширенного редактора тегов" провайдера не существует (может, плохо искал...), вызвать его можно только через меню.
... (может, плохо искал...)...Так оно и есть. acSendToTagEditor
...разве что на 1 не нужно умножать, лучше от этого не станет. ;)Понятно. ;D "Перебдил", в общем.
...Но я бы, всё-таки, сделал модуль счётчика = 5, чтоб изменение высоты шрифта укладывалось в 10. В настройках плеера изменение идёт через 10% и в этом случае скин бы перекрвал весь диапазон от 100 до 500% без особо лишнего перекрытия. А так получается не очень гут - размеры повторяются.:-\ Не до конца понял... А разве масштаб текста в настройках плеера и в окне не суммируются? Оконная настройка увеличивает плеерную настройку в любом случае и каждый раз, хоть там, в общеплеерной, 100%, хоть 500%, по крайней мере так получается, если пощелкаться и там, и там и посмотреть, что получается...
Для меня это не менее новая задача, чем для Вас...Ну, я просто... это :-[ , пока ещё вдоль и поперёк не знаю редактор, могу с одинаковой наивностью спросить и что-то уже реализованное в редакторе и попросту "звезду с неба", потому адекватность моих запросов ещё та ;D. По списку провайдеров пока прошёлся относительно поверхностно и не всё успел попробовать, что-где-как работает - в основном досконально смотрю нужные мне функции и рассматриваю функции, реализованные в других скинах, доступных для "препарирования", а вот "Расширенный редактор тегов" не помню, чтобы где-то встречал в скинах реализованным :-\ из-за этого о нём и спросил предварительно, может это "звезда" и не стоило даже спрашивать, не то что искать, как это подключить.
Так оно и есть. acSendToTagEditorЗначит он всё таки был.
...Но, если пробежаться по списку стандартных провайдеров, можно что-то интересного и полезного найти для конкретного скина, тем более, что в 4.6 появилось довольно много новых провайдеров...Боюсь пока тестовую версию ставить; я по умолчанию почти каждый раз делаю ошибки и потом ищу, где ошибся, потому как 100% (ну 99%) должно всё работать, а так будут сомнения - может какая неполадка в тестовой версии?
procedure Execute(var State: Integer);;D Видимо это так просто не работает, потому что, после сборки обложки и вызова "Окна лирики" (сверху на картинке ниже), когда жмёшь на любой процент (не важно какой), получается - такое (внизу - меняется даже шрифт, точнее - его вид... если не ошибаюсь). И далее что-то сделать в плане масштаба, смены шрифта не выходит. Счётчик и кнопки проверил - всё как в примерном Bliss 4К. Может нужны какие-то дополнительные настройки/элементы из Bliss 4К - как-никак скин был изначально на Bliss Lite?
begin
FindObject('lyfTrackLyrics').Set('Font.ID', 'Skin.QFIFileInfo.Font.' + IntToStr(100 * (State + 1)));
end;
procedure Execute(var State: Integer);Этот скрипт меняет сам ресурс по его имени в репе (Skin.QFIFileInfo.Font.200, например), а у Вас таких ресурсов просто нет, потому и фокусы такие возникают.
begin
FindObject('lyfTrackLyrics').Set('Font.ID', 'Skin.QFIFileInfo.Font.' + IntToStr(100 * (State + 1)));
end;
procedure Execute(var State: Integer);
begin
FindObject('lyfTrackLyrics').Set('Font.Size', Round(-11 * State / 100))
end;
А разве масштаб текста в настройках плеера и в окне не суммируются?Нет, не суммируется, плеер просто масштабирует то, что есть в плейлисте в указанное число раз.
Могу предложить своё решение изменения размера шрифта (из последнего Техникса).Да это ж БОМБА просто, а не скрипт! 8)
...Если, к примеру, задана высота 10 pt и масштаб 300%, то будет 30 pt, если 15 pt и 200% - будут те же 30 pt.:-\ Всё ещё не могу понять, а как в этом поможет =5 в модуле счётчика...
...Но для случая с автомасштабированием небольшая подстройка шрифта может и пригодиться....или оставить =10? Изначально какая-то корреляция с плеерным масштабом не предвиделась: просто независимая, "визуально-удобоваримая" подстройка шрифта конкретно в Плейлисте...
Не совсем понимаю, как с размером работает эта штука - Round(-11 * State / 100)Функция Round округляет дробное значение до ближайшего целого с учётом знака. -11 - это исходный размер шрифта, может быть и любое другое значение.
Всё ещё не могу понять, а как в этом поможет =5 в модуле счётчика...Да никак оно не поможет, просто поменьше будет повторов размера, убедились же что эти две регулировки друг с другом не уживаются.
Схема такая: кнопка запускает acSendToTagEditor, но если функция невозможна, то кнопка запускает acUtilsTagEditor."Сомневаюсь, чтоб такого рода сковорода заговорила". Как узнать, что в плейлисте нет выделенного трека? State в подобных провайдерах не несёт никакой информации и связь с ней на приведённой картинке, вобщем-то, лишняя.
Схема такая: кнопка запускает acSendToTagEditor, но если функция невозможна, то кнопка запускает acUtilsToTagEditor.
Но без скрипта никак. Если ещё с ним возможно, я пока не проверял.
procedure Execute(Sender, Arguments: TComponent);
begin
if BindingsGetDataAsBoolean('acPlaylistFocusedItemShowQTE', 'Action') then
FindObject('acSendToTagEditor').Execute
else
FindObject('acUtilsTagEditor').Execute;
end;
Работает. Нужно:Не перевелись ещё пытливые умы в нашем колхозе ;) +1. Так сказать, обходной манёвр.
....
procedure Execute(var State: Integer);
begin
FindObject('acSendToTagEditor').Execute;
FindObject('acUtilsTagEditor').Execute
end;
Объект всё равно дважды не запустится, не одно, так другое сработает. :)Есть сервис Accessibility...Я не особо поднаторел ещё, но этот сервис до сих пор никак придумать использовать не могу :-\ . В биндинге, конечно, не в скриптах (тут ещё учиться и соображать очень много).
Функция Round округляет дробное значение до ближайшего целого с учётом знака. -11 - это исходный размер шрифта, может быть и любое другое значение.Про исход.разм.шрифта и параметр State я догадался, но что делает Round - никак не мог понять (В справке написано просто, что это синтаксис без указание, что он делает), а вручную высчитывались как раз дроби... Теперь понятно, спасибо за разъяснение.
К примеру, при State = 125 мы получим -11*125/100 = -13.75. Round округлит его до -14, параметр Size шрифта должен быть целочисленным (Integer). Возможно, что скрипт-движок и допустит такую наглость - подсунуть дробь в выражение, но в Delphi/Pascal это было бы ошибкой, аккуратность нужна во всём, тем более в программировании.
Я не особо поднаторел ещё, но этот сервис до сих пор никак придумать использовать не могу :-\ . В биндинге, конечно, не в скриптах (тут ещё учиться и соображать очень много).
Надо будет хотя бы "Delphi для чайников" почитать, а то совсем теряюсь даже в понимании.В инете полно всяких справочников по Delphi(Pascal) (http://www.delphibasics.ru/Round.php).
Осталось найти ещё пару каких-нибудь полезных функций для двух кнопок Плейлиста ...Можно посмотреть в сторону этих:
В инете полно всяких справочников по Delphi(Pascal) (http://www.delphibasics.ru/Round.php).:-\ Да мне засесть на пару-тройку дней и полностью от А до Я, хоть поверхностно пройти, а то кусками ухватываю, а целостной картины не представляю и когда дело доходит до того, чтобы самому что-то написать - опять начинаю "мозаику" из ранее готовых веток складывать. Не хватает мне самых основ языка для стабильной соображаловки в том, "что происходит".
...... :-[ А какая между этими двумя разница? С виду работают одинаково, но у меня Фонотека - на тяп-ляп "собрана"-настроена, может чего не замечаю по ней.
acPlayableFileFindInML
acPlaylistFindInML
...
... Не хватает мне самых основ языка для стабильной соображаловки в том, "что происходит".Это, пожалуй, самое главное, остальное всё само собой придёт.
... :-[ А какая между этими двумя разница? С виду работают одинаково, но у меня Фонотека - на тяп-ляп "собрана"-настроена, может чего не замечаю по ней.Честно говоря, сам не знаю. Фонотека у меня хоть и заполнена (для тестирования), но я ей не пользуюсь. Женя, возможно, прояснит.
...Женя, возможно, прояснит.Было бы хорошо :), может какая-то полезная разница между ними есть. А так, судя по названию, на выход из Плейлиста именно acPlaylistFindInML предназначен.
...Фонотека у меня хоть и заполнена (для тестирования), но я ей не пользуюсь...Я Фонотеку уже на 4.60 буду собирать, чтобы для теста самому не устанавливать плагины, которые добавляют вкладки на таб Фонотеки (как я понял, в обновке такой будет "из коробки"), а то - мало-ли... ну, и посмотреть, как скин в целом на 4.60 себя поведёт.
...... :-[ А какая между этими двумя разница?
acPlayableFileFindInML
acPlaylistFindInML
...
[ :-\ Вот и попробуй теперь выбери, что лучше... когда этим не пользуешься]:-\ Создайте голосование (может, в отдельной теме, в болтушке) для определения частоты использования и востребования разных команд/кнопок.
:-\ Создайте голосование (может, в отдельной теме, в болтушке) для определения частоты использования и востребования разных команд/кнопок.Народу интересующегося скином не так много, чтобы вполне уверенную выборку сделать; из активных едва дюжина наберётся, почти половина из которых тут, рядом у меня "под боком" (и все такие же "опытные", в плане внутренностей плеера, "аимперы", как и я).
Предвижу заранее, что ситуация будет как в той басне про лебедя, рака и щуку. ;D
Мои варианты - сделать всплывающее меню или в кастомизации пусть пользователь назначает себе сам кнопку :):) Это уже трансформер-конструктор будет. Интересная штука бы получилась: имеешь 5 гнёзд под кнопки и 15 кнопок с функциями, которые туда можно "вставить" - выбираешь в кастомизации какие именно (меняются не только функции на кнопке, но вся кнопка со смысловой пиктограмкой) и так по большинству мест и окон скина... не считая отдельных смены текстур и их цвета самих окон скина и т.д..
А не перегруз с кнопками? Не будет похоже на баян?;D Это я ещё проредил.
ИМХО, на кнопки стоит навешивать уж самые необходимые и важные функции...Из представленных, можно выбросить за не особой надобностью или "мне лично не нужно": Менеджер очереди, Новый плейлист, Закрыть плейлист, Быстрые настройки - это по верхнему ряду. Найти в фонотеке и, может быть, Показать текущий - это внизу.
...остальные группировать и помещать в выпадающие меню.Некоторые моменты, лично у меня, при поиске в меню крайне неудобны, даже Показать текущий из Разного - надо дважды щёлкнуть и вообще присматриваться, где выбрать, хоть это и первый пункт. То же с закрытием плейлиста - начинаешь вглядываться, шарудить мышкой по списку, выбирая нужный пункт (я часто на автомате, вроде и вижу, что не совсем то, что нужно и всё-равно тыкаю, потом плююсь и переделываю уже всё внимательней): такой момент нужен для удаления файла и подобного, чтобы задумываться над тем, что собираешься сделать...
Можно дополнить уже существующие стандартные меню своими пунктами.Это без надобности, по моему мнению, всё и так достаточно удобно рассортировано.
Ещё, как вариант, можно обойтись без хендлера, изпользуя тот же скрипт от Zhenya, но в более привычном для всех скрипт. счётчике:Взял этот вариант. По началу всё было нормально, но потом заметил интересную штуку. Если отправить в редактор из плейлиста файл или файлы - неважно, потом закрыть редактор... переключиться на другую обложку... потом при переключении обратно на эту обложку - первым делом непременно открывается расш.ред.тегов с активной, играющей композицией. Сборка этого скина с редактора - тоже потом открывает редактор. Применение обложки "с нуля" - тоже... Выключить в этом скине плеер и снова включить - опять окно редактора с активным треком открывается... Но всё это только после, если единожды был задействован редактор через плейлист. Это же касается всех вариантов скинов, где я использовал этот скрипт.
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=60247.0;attach=56310)
Также добавить хинт.
Взял этот вариант. По началу всё было нормально, но потом заметил интересную штуку. Если отправить в редактор из плейлиста файл или файлы - неважно, потом закрыть редактор... переключиться на другую обложку... потом при переключении обратно на эту обложку - первым делом непременно открывается расш.ред.тегов с активной, играющей композицией. Сборка этого скина с редактора - тоже потом открывает редактор. Применение обложки "с нуля" - тоже... Выключить в этом скине плеер и снова включить - опять окно редактора с активным треком открывается... Но всё это только после, если единожды был задействован редактор через плейлист. Это же касается всех вариантов скинов, где я использовал этот скрипт.
Два предыдущих скрипта пока не тестировал с таким же пристрастием, но интересно - что В ЭТОМ случае такое происходит? (проект прикрепил) Я где-то ошибся?
...
State := 0;
end;
procedure Execute(Sender, Arguments: TComponent);
procedure Execute(var State: Integer);
Но зачем это делать? Если для этого прекрасно подходит Handler, обработчик событий, в данном случае события OnClick у кнопки.Да, всё подойдёт: и onMouseDown и onMouseUp. Вам просто предложили варианты, Женя правильно заметил, что в конце скрипта надо установить State в значение по умолчанию и ничего в этом страшного нет, так нередко приходится делать в скриптах.
И под конец опять возвращаюсь к кнопке вызова редактора тегов ;) . Zhenya, это правильно схема на Handler так работает или я опять где-то напартачил? Заметил одну штуку. Как я понимаю вся суть завязана вокруг acPlaylistFocusedItemShowQTE и без него работать не будет. То есть, само по себе нажатие на кнопку не вызовет пустой редактор тегов, если хотя бы раз не щёлкнуть мышкой в поле плейлиста? По крайней мере у меня получается такая ситуация; если создать новый плейлист или открыть ранее закрытый - короче, если в нём ещё не успели покликать мышкой внутри (не важно - с фокусировкой какой-то композиции или просто на пустом месте, без выделения оной), кнопка не вызывает редактор. Но если хотя бы раз щёлкнуть в поле плейлиста, то потом уже неважно если что-то другое мышкой выбирается, переключаются плейлисты - по возвращении к этому плейлисту уже будет кнопкой вызываться редактор, в первую очередь пустой, если нет выделения трека в самом плейлисте.
У меня такого нет. Редактор тегов в любом случае открывается. Пробовал запускать AIMP и вообще без плейлистов, и с отдельным окном плейлиста (мало ли). Проверял на v4.60 Beta 2.
У меня такого нет. Редактор тегов в любом случае открывается. Пробовал запускать AIMP и вообще без плейлистов, и с отдельным окном плейлиста (мало ли). Проверял на v4.60 Beta 2.О, спасибо за ответ, Zhenya!
...Попробовал на скине v1.8 — у меня вообще после первого клика по кнопке, если файл в плейлисте не выделен / плейлист пустой, кнопка блокируется и помогает только перезапуск программы.:o Вот это ничего себе сюрпризец! Я даже не замечал такого...
Думаю, что-то сделано не так.
Биндинг прямой и чистый - Action-Action, State-State ...
(https://i.ibb.co/b1qtJy3/image.png) (https://ibb.co/fMBJvKS)
Похоже, что кнопка не срабатывает, если показывается не активный плейлист. Играет, например, плейлист №1, а №2 или №3, если на них переключиться кнопкой "Следующий плейлист" и не щёлкнуть внутри этих плейлистов, как бы фокусируясь кликом на них - активируя, кнопка до тех пор срабатывать не будет... :-\
... В принципе - каждый раз только надо править размеры TASEPlaylist после открытия проекта, вроде не очень напряжно, да и скин потом работает без косяков, но интересно - где собака зарыта?Скорее всего, в неоптимальной структуре скина/контейнеров.
Скорее всего, в неоптимальной структуре скина/контейнеров.Вполне вероятно :-\ ...
...Меня, всё же, смущает контейнер mfShadow с таким выравниванием, наверное, можно обычными методами запретить растягивание и задать SizeMaximal.Проявляются "неправильно заученные навыки" со времён самостоятельного изучения редактора :). Исправил.
Возможно, ещё срабатывают какие-то скрипты или одна из текстур где-то не помещается в указанные размеры/отступы...pfContent - "рудиментарно" из параллельного скина пока несёт в себе текстуру поля всего окна плейлиста (для визуальной прикидки, пока не прорисовал/подрисовал это окно под новый скин - так сейчас легче ориентироваться). Выкинул, скинул параметры контейнера на умолчание - ничего не поменялось.
...
Можно попробовать отключать по одному в дереве "подозрительные" элементы и смотреть, примет ли плейлист нужные размеры.
Кажется, где-то видел реализацию этого момента в каком-то более старом скине - но может и ошибаюсь и я себе это придумал, прошу подсказать, чтобы зря не искал.В скинах с усилителями. Тут как раз всё просто: обычная кнопка связана с родным prvBalance, а выражениях связи: для левого канала - 0, для правого - 100. Ползунку только и останется самому дёргаться в нужную сторону.
Делаю "Баланс" - ползунок, а по краям хочу сделать кнопки - "левый"/"правый" при нажатии на которые сигнал будет полностью уходить на левый или правый каналы (желательно - с одновременным автоматическим смещением ползунка "баланс" в соответствующую сторону):
В том примере частота колебаний диффузора определяется только параметрами аниматора (период) и не зависит от частоты сигнала, да и невозможно сделать, чтоб диффузор колебался с частотой 200 Гц, к примеру. Мы и в реалии колебания выше 20..25 Гц глазами не различаем, видим по сути дела лишь огибающую. Тут задача сымитировать толчки диффузора в такт басовому ритму (ударные, бас-гитара...).Спасибо за таблицу. Получается, как раз диапазон от 0 до 10 и нужен (в Вашем примере 15 стоит, если я всё верно понял)...
Добавил таблицу частот в "хитрости".
В скинах с усилителями...Точно!
Тут как раз всё просто: обычная кнопка связана с родным prvBalance, а выражениях связи: для левого канала - 0, для правого - 100. Ползунку только и останется самому дёргаться в нужную сторону.О, спасибо большое за подсказку! Хоть искать не буду; кажется же, вроде, видел в каком-то из выложенных кем-то проектов... поди теперь вспомни, где именно. Ранее не видел смысла в "Балансе" непосредственно в самом скине и не обращал внимания на такие поделки - сейчас в виде "бирюльки" решил прицепить к домашнему скину... чисто для
Только есть ли смысл делать такие кнопки на самОм регуляторе баланса? Можно, ведь, просто ткнуть в край полоски слайдера.;D Это у меня такая извращённая, отчасти "цыганская", дизайн-логика. Без кнопок можно и обойтись, просто на "морде" скина "проигрывателя" визуально непонятно будет, что это за ползунок такой - нужны обозначения, например, на концах слайдера по типу "R" и "L", а подобные и вообще обозначения у меня только на функциональных кнопках или на "дисплее" ("подсвечивается", что включено в данный момент). Без обозначений - никак, а обозначения только на кнопках - вот и решил оформить и ненужные по факту кнопки. То же и на концах слайдера "громкость" придётся делать - по сути кнопочное управление-дубляж громкостью.
... хочу выбросить регулятор и задать жёстко диапазон 0-10...ИМХО, регулятор выбрасывать не стОит, его можно сделать всплывающим, никому мешать не будет, а треки сильно отличаются по уровню и спектру. Всё хочу сделать адаптивную подстройку под средний уровень за несколько выборок - вот тогда, возможно, удастся избавиться от регулятора "чуйки".
Колебания диффузоров СЧ динамиком и в натуре хаотичны, потому не стоит с ними особо и заморачиваться, там можно и уровень чувствительности задать фиксированным, без регулятора.----------------------
ИМХО, регулятор выбрасывать не стОит, его можно сделать всплывающим, никому мешать не будет, а треки сильно отличаются по уровню и спектру. Всё хочу сделать адаптивную подстройку под средний уровень за несколько выборок - вот тогда, возможно, удастся избавиться от регулятора "чуйки".Адаптивная подстройка под средний уровень - это было бы здорово!
Диапазон частот 1..15 (он, ес-но, жёстко и задан этими значениями, регулировать их оперативно нет надобности) тоже выбран не случайно - плоды множества экспериментов, 0 брать вообще не рекомендуется - там какой-то хаотический шум почти на всех треках.Я в экспериментах доходил до того, что выставлял диапазоны 3...5, 4...6 - хотел ограничить срабатывания только на ударные и басовую ритмику. Думаю, 1...15 диапазон хорош для 100%-тного анимирования динамика только на ScriptableVisualizationHandler.
Можно анимировать раздельно по каналам, вызовы локальной функции тогда будут выглядеть так:К слову - да, "независимую подвеску" для каналов надо бы организовать (есть у меня такие композиции). Для этого надо отдельный ScriptableVisualizationHandler на каждый динамик-аниматор или в рамках одного можно совместить?
GetMaxValue(0, 1, 15)... - НЧ, левый канал
GetMaxValue(1, 1, 15)... - НЧ, правый канал
...
К слову - да, "независимую подвеску" для каналов надо бы организовать (есть у меня такие композиции). Для этого надо отдельный ScriptableVisualizationHandler на каждый динамик-аниматор или в рамках одного можно совместить?Ес-но, всё в одном обработчике - для того и сделана в нём локальная функция, чтоб можно было её вызывать для разных каналов, частот и аниматоров.
Повторюсь, но диапазон частот 1..15 выбран не от балды, а чтобы приблизить работу аниматора к колебаниям НЧ-головок в реальной акустике, лучше даже сделать 1..20.Это понятно, что не от балды, просто у меня на этих динамиках и так динамики хоть отбавляй и так пока получается, что они довольно далеко от имитации работы реальных динамиков - хочется пока просто доанимировать оставшиеся части и посмотреть, что получится. Впрочем имеется всё растущее убеждение, что стоит динамики полностью анимировать за счёт ScriptableVisualizationHandler, что будет выглядеть более естественно - пока, как есть: постоянная живость TASEGauge очень нравится и когда он "синхронизируется" с ScriptableVisualizationHandler - очень здорово выглядит, вот только у разных композиций по разному бывает, иногда анимации работают в противоход (что не критично, так как динамики маленькие и покрыты решётками) и это немного не красиво. Надо ещё экспериментировать с аниматором, количеством кадров и интервалом анимации.
Тоже самое относится и к регулятору чувствительности: для данного решения с учётом разброса характера треков его положение укладывается в диапазон 40..60, потому по умолчанию сделано 50.
Ес-но, всё в одном обработчике - для того и сделана в нём локальная функция, чтоб можно было её вызывать для разных каналов, частот и аниматоров.:) Ну, значит, одной морокой меньше.
Но тут не стоит особо обольщаться - разделение каналов на низких частотах практически отсутствует (потому и делают общий саб), а на средних частотах колебания динамиков на глаз вообще не видны, поэтому СЧ динамики можно и не анимировать.
1. Правильно-ли я понял, что в "Параметрах связи" Value должно быть < значения, которое на 1 меньше количества кадров в аниматоре? При Value = количеству кадров в аниматоре, у меня анимация не останавливается, когда ScriptableVisualizationHandler перестаёт воздействовать на неё (например, при "Пауза" или "Стоп").Тут кадры считаются с "0", как и в скриптах, 3-й кадр - это последний кадр аниматора, на нём он и должен останавливаться и это должно быть нейтральное положение диффузора. Поэтому все вариации с числом кадров более 4-х лишены смысла - аниматор должен изобразить одно полное колебание туда-суда.
Есть-ли зависимость между интервалом и количеством кадров для анимированияНет. Тут простая арифметика: в аниматоре 4 кадра, при интервале в 30 мс вся анимация займёт 4х30=120 мс - это по сути дела максимальны интервал реагирования этой системы на превышение порога срабатывания, заданного нами регулятором. Если в течение этого времени скрипт сработает ещё раз, то колебания диффузора получатся не полными, он просто не успеет показат все кадры, будет каждый раз возвращаться к нулевому. Делать интервал меньше 20..30 мс, как показала практика тоже не резон - анимация становится размазанной, более 50 мс - частые пропуски.
1. Правильно-ли я прописал это в ScriptableVisualizationHandler?Да, правильно.
Тут кадры считаются с "0", как и в скриптах, 3-й кадр - это последний кадр аниматора, на нём он и должен останавливаться...Значит первый кадр в своей последовательности мне надо выбросить :-\ ...
Нет. Тут простая арифметика: в аниматоре 4 кадра, при интервале в 30 мс вся анимация займёт 4х30=120 мс - это по сути дела максимальны интервал реагирования этой системы на превышение порога срабатывания, заданного нами регулятором. Если в течение этого времени скрипт сработает ещё раз, то колебания диффузора получатся не полными, он просто не успеет показат все кадры, будет каждый раз возвращаться к нулевому. Делать интервал меньше 20..30 мс, как показала практика тоже не резон - анимация становится размазанной, более 50 мс - частые пропуски.Понятно. У меня тут просто есть вариант скорее всего делать "подвес" не на полном цикле колебания, а в виде вздрагивания (всё-равно анимация не совпадает с ритмикой музыки), потому рассматриваю разные варианты (ставил даже значение 3: при постоянном дрожании аниматора TASEGauge, мерное, сравнительно, можно сказать даже, неспешное колебание аниматора ScriptableVisualizationHandler как-то не очень вяжется). А так, по полному колебанию на 3 кадра, получается тоже склонился (ну, чисто визуально) к диапазону значений приблизительно 26-38.
Да, правильно.[...получается, значит это я где-то в другом месте накосячил :-\ ...]
Если нет разделения каналов (Channel = 2), то второй аниматор (затормозив его) можно соединить с первым через биндинг по номеру кадра - он будет повторять первый, тогда в скрипте про него писать ничего не надо.
Уточню другое: этот 3-й, последний кадр - он же, получается есть визуально стартовым в том смысле, что именно он будет видимым, когда плеер на "Пауза" или "Стоп"?Да, разумеется. Аниматор с такой связью (сам на себя) при любом числе кадров добежит до указанного в условии и остановится. А скрипт лишь посылает 0 в его счётчик кадров, что заставляет его снова заустится.
Да, разумеется. Аниматор с такой связью (сам на себя) при любом числе кадров добежит до указанного в условии и остановится. А скрипт лишь посылает 0 в его счётчик кадров, что заставляет его снова заустится.Понятно.
Кадры аниматора расписаны в "... полезностях ...".
Хотя, если подумать (по скрипту я до сих пор часть всего не понял), то как бы логично, если аниматор проигрывается и останавливается, то последний кадр и должен был бы оставаться видимым.Так он и виден - последний кадр №3 (счёт идёт с нуля). В том примере, что выложен в "полезностях", специально добавил дисплей, чтоб можно было увидеть номер активного кадра. При запуске, если нет воспроизведения дисплей и показывает троечку, а 0 - это момент срабатывания скрипта.
У меня небольшой вопрос по Фонотеке: есть-ли практическая возможность разнести вот эти пункты отображения на три независимые кнопки?Берём элемент MLTable, у него есть точка доступа GroupMode.
Так он и виден - последний кадр №3 (счёт идёт с нуля). В том примере, что выложен в "полезностях", специально добавил дисплей, чтоб можно было увидеть номер активного кадра...Действительно! Как-то я не додумался (наверное, потому, что считал не с "0"), что аниматор и в покое показывает кадр на котором остановился :-\ .
Если есть вопросы по скрипту - спрашивайте, может, что-то нужно добавить в описание примера.Вряд-ли что-то умное спрошу, потому как ничего полезного сам из Вашего примера не сделал/не переделал - "покромсал" только под свой скин. Из-за незнания языка программирования на ровном месте не вижу очевидных вещей...
...В связях у кнопок прописываем соответственно: 0, 1, 2...Вообще элементарно, оказывается! 8) А я тут уже тройным биндингом каким-то занялся, через мультиплексер что-то начал пробывать ::) ...
...в основном шрифте и шрифте отдельной ветки один и тот же цвет выставлен, вот и происходит конфликт настроек. Просто поменяйте в основном шрифте цвет на другой и текст перестанет темнеть...Вот же ж накладка какая! Действительно, чуть поменял показатели цвета в GroupDetailsColorText и всё наладилось.
(https://i.ibb.co/9g0pTq7/image.png) (https://ibb.co/H4yKzrj)То, что на скрине - это вы правильно указали, взаимосвязано
Вот что это такое - вот эти две настройки, обозначенные красным? Как в Фонотеке их активировать? Где они там появляются? По описанию, я так понял, этими цветами должны выделяться в таблице найденные через поиск символы/слова...Да, но вместо быстрого поиска нужно перевести фокус на дерево и начать набирать текст.
То, что на скрине - это вы правильно указали, взаимосвязаноУже догадался привязать на Фонотеку несколько тысяч композиций и перепроверить теги, чтобы не спеша рассмотреть элемент в работе...
Это индикатор обработки БД фонотеки (добавление/загрузка...)
Да, но вместо быстрого поиска нужно перевести фокус на дерево и начать набирать текст.МудренО :-\ ... В таблице непосредственно самой Фонотеки так толком и не получилось что-то подобное сделать (догадываюсь, что не там фокусируюсь всё время), зато на "древе" всё получилось - можно будет по нему подобрать нужные цвета, потом на всю Фонотеку в аналогичных настройках поставить...
Конкретно, не поддался пониманию раздел StyleTreeListCheckBox: на картинке его элементы, выделенные красными точками - не понятно, где это смотреть. Уже закрасил всё вырвиглазными цветами, думал, может совсем ослеп и просто не вижу, но нет: либо это где-то хорошо спрятано, либо используется в каких-то исключительных ситуациях.
(https://i.ibb.co/zmWd3w2/image.png) (https://imgbb.com/)
Второй день ковыряю настройки двух главных таблиц Фонотеки, столько мелочей, что придётся StyleFilterBox ещё и на завтра оставить - выматывает мозг будь здоров; там ведь 2/3 изменений визуально в редакторе не увидишь - подвинул на пиксель и снова запускаешься через плеер...
Похоже на то, что эти цвета нигде не используется.Это хорошо. В том смысле, что я теперь уверен, что эти цвета не вылезут в процессе задействования куда более продвинутыми пользователями Фонотеки чем я :) . (Самим пунктам, перфекционизма ради, установил цвета, аналогично использующиеся в схожих, по названию, местах)
Ещё заметил, что при переключении вида в фонотеке на короткое время (в зависимости от количества файлов базе) тёмный фон таблицы меняется на светлый и получается неприятное мигание, скрин:Конкретно здесь "шёл по приборам" - назначал цвет по сходным по названию местам из других мест своего скина, чтобы не прогадать где с накладкой и слиянием цветов (у меня их 2 основных и 2 вспомогательных)...
...
Цвет этот берётся из MLTable.Style.ColorContentDisabled. Хорошо бы поменять его на аналогичный цвету ColorContent (так сделано в скине по умолчанию).
:o Круто!!! Хочу такой скин!!!Я вот думаю, как бы теперь финальная версия скина не совпала с релизом плеера 4.60 ;) (вполне вероятно, что раньше уже не успею: нам тут вторые выборы накинули - это опять почти два месяца без выходных на работе торчать где-то до конца июля - дико рад, что Фонотеку успел доделать; доделываю всё остальное мелкими "заплывами").
Похоже на то, что эти цвета нигде не используется.
Это хорошо. В том смысле, что я теперь уверен, что эти цвета не вылезут в процессе задействования куда более продвинутыми пользователями Фонотеки чем я :) . (Самим пунктам, перфекционизма ради, установил цвета, аналогично использующиеся в схожих, по названию, местах)
Кстати, эти свойства уже скрыты в 1063 сборке редактора.Действительно :), с Фонотекой работал на более ранней версии - не успеваю сейчас за обновлениями следить.
Подскажите, пожалуйста, возможно-ли такое, без зверских скриптов, в принципе.Разумеется, возможно, вообще без скриптов, тем более без "зверских", во всех усилителях со стрелочниками так сделано. Понадобятся два коммутатора с такими связями:
Я, правда, не разобрался с prvVolume - что и как он в этой связке делает, за что отвечает - и как-куда подключаться здесь потом TASEGauge-ом? :-\ (Я додумался использовать только Value1 и Value2 на prvVisual и prvBalance, но выражения в коммутаторе у меня совсем не заладились)В той схеме показания индикатора будут зависить как от регулятора баланса, так и от регулятора громкости. В скинах с усилителями так и происходит, если переключатель стоит в положении "OUT", т.е. сигнал как бы берётся с выхода усилителя, как и в реалии.
...Если не получится - у меня в запасе более "деревянный" вариант задуман - просто на трёх кнопках: "левый/стерео/правый". Тогда при нажатии на ту или иную кнопку ("левый" или "правый") можно будет делать видимой текстуру-"крышку", которая попросту будет накрывать соответствующий TASEGauge, пряча под собой анимацию нужного канала.Эта схема автоматом отработает все изменения баланса и громкости, ничего прятать не надо и никакие "крышки" не нужны.
Если не нужна зависимость от громкости (хотя для меня это несколько странно - от баланса должно зависеть, а от громкости нет)...Ну, я по сути ведь обычный "индикатор баланса" делаю только визуально-динамичный и если "Баланс" не искажён, то это простые, полноценные анимированные "уровни сигнала". Громкость потому и не нужна; я сначала было подумал, что prvVolume нужно потому, что TASEGauge будут реагировать только на снижение громкости - типа, баланс смещается на правый канал, а на левом громкость как бы падает. ::)
Gauge подключен к коммутатору, я полагал это и так ясно.Да, с самого начала так и сделал:
Эта схема автоматом отработает все изменения баланса и громкости, ничего прятать не надо и никакие "крышки" не нужны.:) Это на тот случай, если не получится (пока не получается) - чтобы не перерисовывать четверть дизайна "Главного окна", выкидывая управление "Балансом" и заново переформатируя элементы управления плеером ;D
Буду искать, где ошибся.Ошибка может быть только одна - перепутаны входы коммутатора, входные переменные должны совпадать с переменными в его внутреннем выражении.
К слову, индикатор стереобаланса - это несколько иная вещь, хотя его тоже можно реализовать в скине, подав на Gauge через коммутатор разность сигналов LevelR - LevelL, но информативность от такой безделицы нулевая.Мне визуальная безделушка и нужна: очень большие бросающиеся в глаза "уровни", они фактически дублируют мою "бегущую строку" только внизу информационного дисплея - было бы неплохо, чтобы по них было заметно, что "баланс" смещён и приблизительно насколько.
Если есть желание - прошу Вас посмотреть, что я не так делаю:Посмотрел. Счётчик, как я понял ничем не управляется, по крайнеё мере, кнопки, связанной с ним я не нашёл. По умолчанию в нём 0, потому и на Gauge поступает линейный сигнал с Value2, не зависящий от положения регуляторов громкости и баланса, как писал в первом посте.
Ну, коли уж речь зашла об индикаторах баланса (точнее, разбаланса), могу ещё одну идею подарить (см. влож.). ;)Спасибо. Прикольная штука! Жаль не могу уже никуда его поставить... Для скина имитации музыкального центра идеально подошёл бы такой индикатор разбаланса - на отдельную мини-панель/дисплей по управлению колонками-сателитами... кнопки показать/скрыть сателиты, регуляторы "чуек", регулятор и кнопки "баланса", регулятор и кнопки "громкости", индикаторы "уровня сигналов", индикатор "разбаланса" и т.д. ... Эх, вот научусь сносно работать в 3D, чтобы "выпилить" себе приличные "коробки", таки попробую такую музыкальную шкатулку собрать :) .
ИМХО, не стоят все эти затеи такого внимания, регулировкой баланса мало кто пользуется...;D Я Вам скажу, что и мне самому этот "Баланс" на "Главном окне" совершенно не нужен функционально - пользуюсь "Балансом" редко, для предпрослушки, в основном когда попадаются старые аудиокниги, криво оцифрованные с кассет и потом уже в редакторе правлю каналы для дальнейшего комфортного прослушивания на портативном плеере. Для этого вполне хватает ползунка в "Менеджере...".
Короче, я по незнанию шёл от сложного к простому в "Параметрах связи" и пришёл к тому, что прописал там для кнопок выражения Value - 1 и Value + 1.Если кнопки подключены к првайдеру prvVolume, то правильно. Более того, будут работать выражения даже с дробями типа: Value - 0.1 , Value + 0.5.
У меня такой вопрос: это правильные, нейтральные в плане взаимодействия с чем-то ещё в скине, выражения по изменению громкости или надо как-то по другому задавать возможность изменить "шаг" "Громкости" на +/-1%?
Если кнопки подключены к првайдеру prvVolume, то правильно. Более того, будут работать выражения даже с дробями типа: Value - 0.1 , Value + 0.5.О, супер! Спасибо, Black_AVP, про дроби даже и не задумывался; посадил в домашнем скине на кнопки градацию в 0,5 - просто идеально теперь слушать музыку из колонок когда вокруг все спят :)
С провайдерами acPlayerVolumeUp/Down эти выражения игнорируются, т. е. используется значение приращения из настроек плеера.;D Хорошо, что именно с них я не начал, а то бы совсем запутался...
Вопрос по локализации обложки.Естественно, только своё: хинты, метки и т.п., на то они и пользовательские.
Как я понимаю, все стандартные кнопки будут по умолчанию нормально переводиться в скине с использованием английского языка? Правильно-ли я понимаю, что в ручном режиме надо перевести только собственные надписи? Окна настроек "Пользовательские локализации" для такой работы вполне хватит или надо ещё где-то что-то искать и править?