ELPlaylist (foo_uie_elplaylist.dll)

Список разделов foobar2000 Плагины

Описание: Все о плагинах, компонентах, расширениях

Сообщение #1 Eric_The_Red » 20.06.2008, 22:58

Официльный сайт плагина http://foo2k.chottu.net/

Ссылка на foobarWiKi: ELPlaylist (foo_uie_elplaylist.dll)

Английская версия мануала: Manual for ELPlaylist

Если есть проблема в конкретой ситуации с ELPlaylist::::

  • описываем суть проблемы
  • пишем имя сборки (или ссылку на сборку) из которой взят код скрипта ELP и этот код не работает [если это Ваш личный конфиг --- то добавляем код скрипта (а лучше Export ELP установок...) ]
  • приветствуются скриншоты в описаниях и рекомендациях
Последний раз редактировалось Izotop 23.04.2010, 03:00, всего редактировалось 1 раз.
Eric_The_Red M
Автор темы
Откуда: Нижний Новгород
Репутация: 0
С нами: 17 лет 10 месяцев


Сообщение #141 kadvlad » 25.09.2013, 00:59

Izotop,
спасибо за внимание

Прилагаю экспортированную схему.
Для удобства пользования вычистил от неиспользуемых элементов.
Вложения
kadvlad.zip
(1.93 КБ) Скачиваний: 486
kadvlad
Аватара
Репутация: 1
С нами: 15 лет 10 месяцев

Сообщение #142 kgena_ua » 25.09.2013, 17:04

Спойлер
$puts(noAA,$if($not(%album artist%),TRUE))
$puts(noTA,$if($not(%track artist%),TRUE))
$puts(noTC,$if($not(%track composer%),TRUE))
$puts(noC,$if($not(%composer%),TRUE))

Переменные noAA, noTA, noTC, noC всегда будут "TRUE"

Попробуй:
$puts(noAA,$if($not(%album artist%),TRUE,FALSE))
.....

и в строчках
Спойлер

$puts(1,$if($and(%album artist%,%track artist%,$get(noC),$get(noTC)),TRUE))
$puts(2,$if($and(%track artist%,%composer%,$get(noAA),$get(noTC)),TRUE))
$puts(3,$if($and(%track artist%,%composer%,%track composer%,$get(noAA)),TRUE))
$puts(4,$if($and(%album artist%,%track artist%,%composer%,$get(noTC)),TRUE))
$puts(5,$if($and(%track artist%,$get(noAA),$get(noC),$get(noTC)),TRUE))
$puts(6,$if($and(%album artist%,%track artist%,%track composer%,%composer%),TRUE))
$puts(7,$if($and(%album artist%,%composer%,%track composer%,$get(noTA)),TRUE))

Надо пробовать, боюсь не сработает.
Лучше
$puts(noAA,$if($not(%album artist%),1,0))
а дальше проверять значение 0 или 1.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #143 kadvlad » 26.09.2013, 02:37

kgena_ua,

TRUE-FALSE или 1-0 работают здесь в любом варианте, я проверял.
т.е. дело не синтаксисе правила $not(), а в одновременном совпадении условий, наверное.

НЕМНОГО ПРОДВИНУЛСЯ:
упростил первый блок переменных и проверил каждую строку поочерёдно на общем плейлисте с треками из моего сообщения.

Получилось странное:
Спойлер
$if($and(%track artist%,%album artist%,$not(%composer%),$not(%track composer%)),1)
$if($and(%track artist%,%composer%,$not(%album artist%),$not(%track composer%)),2)
$if($and(%track artist%,%composer%,%track composer%,$not(%album artist%)),3)
$if($and(%album artist%,%track artist%,%composer%,$not(%track composer%)),4)
$if($and(%track artist%,$not(%album artist%),$not(%composer%),$not(%track composer%)),5)
$if($and(%album artist%,%track artist%,%track composer%,%composer%),6)
$if($and(%album artist%,%composer%,%track composer%,$not(%track artist%)),7)

1, 4, 6, 7 - работают
2, 3, 5 - не работают
причём трек 3 тоже работает как 7

ХМ. Если бы не работало везде, то понятно, а здесь как-то выборочно получается.
Подозреваю, что очерёдность перебора тегов имеет значение (?)
КОПАЕМ ДАЛЬШЕ.
kadvlad
Аватара
Репутация: 1
С нами: 15 лет 10 месяцев

Сообщение #144 kadvlad » 27.09.2013, 16:56

РЕШЕНО!

Удалось решить проблему некоторым упрощением переменных и заменой всех
%album artist% » $meta(album artist)
%artist% » $meta(artist)

Итого, после упрощения схемы выглядят так:

Универсальный скрипт для корректного отображения разных типов альбомов.

Спойлер
1 - сборник разных артистов (VA)
2 - один артист играет одного композитора
3 - один артист играет разных композиторов
4 - разные артисты играют одного композитора
5 - один артист играет свой альбом
6 - разные артисты играют разных композиторов (VA)
7 - сборник разных композиторов (VA)

// переменные для определения подходящей схемы

$puts(1,$if($and($meta(artist),$not(%composer%),$meta(album artist),$not(%track composer%)),0))
$puts(2,$if($and($meta(artist),%composer%,$not($meta(album artist)),$not(%track composer%)),0))
$puts(3,$if($and($not($meta(album artist)),$meta(artist),%composer%,%track composer%),0))
$puts(4,$if($and($meta(artist),%composer%,$meta(album artist),$not(%track composer%)),0))
$puts(5,$if($and($meta(artist),$not(%composer%),$not($meta(album artist)),$not(%track composer%)),0))
$puts(6,$if($and($meta(artist),%composer%,$meta(album artist),%track composer%),0))
$puts(7,$if($and(%composer%,%track composer%,$meta(album artist),$not($meta(artist))),0))

// переменные для Tracklist

$puts(X,$meta(artist) $char(187) %title%)
$puts(Y,%track composer% $char(187) %title%)
$puts(Z,%track composer% $char(187) $meta(artist) $char(187) %title%)

// переменные для Group Header

$puts(album,$if($strcmp(Soundtrack,$meta(genre,)),OST ,)$if2('“'%album%'”',Unknown Album)[ CD $ifequal(%totaldiscs%,1,,%discnumber%)] ['('%date%')'])

$puts(A,$meta(album artist)$char(10)$get(album))
$puts(B,$meta(album artist)$char(10)%composer%: $get(album))
$puts(C,$meta(artist)$char(10)$get(album))
$puts(D,$meta(artist)$char(10)%composer%: $get(album))

// скрипт для вывода tracklist

$font(Arial,9)
$drawstring(

$if($get(1),$get(X),
$if($get(2),%title%,
$if($get(3),$get(Y),
$if($get(4),$get(X),
$if($get(5),%title%,
$if($get(6),$get(Z),
$if($get(7),$get(Y)
)))))))

,$add($get(rect_w),$get(queue_w),36),3,$sub(%el_width%,$get(queue_w),145),,200-200-200-220,left top elipchar nowrap,)

// скрипт для вывода Group Header

$font(Arial,12)
$drawstring(

$if($get(1),$get(A),
$if($get(2),$get(D),
$if($get(3),$get(C),
$if($get(4),$get(B),
$if($get(5),$get(C),
$if($get(6),$get(A),
$if($get(7),$get(A)
)))))))
,
$get(offset),4,,,230-230-230-200,hq left vcenter elipchar nowrap
)

Прилагаю свою общую схему ELPlaylist (v.3) и для примера - треклист в mp3-виде (6 Мб).
Вложения
kadvlad_3.zip
(2.47 КБ) Скачиваний: 445
kadvlad
Аватара
Репутация: 1
С нами: 15 лет 10 месяцев

Сообщение #145 kgena_ua » 14.11.2013, 13:54

Такой вопрос.
Каким образом можно сделать проверку на наличие или отсутствие "вшитой" в файл обложки ?
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #146 Aum » 15.11.2013, 00:09

Никак наверное не проверить, а какая цель? Насколько помню - можно считывать обложки стандарнтыми средствами CUI: и плейлист понимает переменную artreader_front, которя в свою очередь настраивается в CUI (там же она должна считать и встроенные обложки, если включена опция).
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #147 kgena_ua » 15.11.2013, 00:56

Цель была такая:
- если есть встроенная обложка - > встроенная обложка ;
- если нет - > файл folder.* и.т.д. ;
- если нет ни того ни другого -> изображение no cover.

Решение оказалось простое:

$if3(
$imageabs($get(col_cover),$get(row_cover),%el_width%,$get(cover_height),%el_group_first_path%,left artreader)
,
$imageabs($get(col_cover),$get(row_cover),%el_width%,$get(cover_height),$get(front_path),wc left,,,)
,
$imageabs($get(col_cover),$get(row_cover),%el_width%,$get(cover_height),$get(nocover_pic),wc left,,$if(%el_isplaying%,180,50),)
)

Этот artreader выводит все что нужно, и встроенные обложки, и folder.* covrt.* и пр., и даже album.*.
Мое мнение, ELplayList обладает большими возможностями, нужно только глубже копать.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #148 kgena_ua » 16.11.2013, 11:40

Есть ли возможность вывести в заголовок группы название текущего плейлиста ?
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #149 Izotop » 20.11.2013, 08:46

2kgena_ua,
%playlist_name% - об этом теге речь?

P.S. Вот ещё кое-что информация_о_плейлисте ;)
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #150 kgena_ua » 20.11.2013, 12:37

Izotop, хотя я плейлистами (playlist switcher) не пользуюсь, но хочу решить такую задачу.
Создал плейлист (если ошибаюсь с терминами поправьте) с именем 123456789 (№1 на скрине). Добавил несколько треков из разных альбомов,
разных исполнителей.
В Group Header ELPlaylist прописаны %album% (2) и %artist% (3), который выводят значения тегов album и artist первого трека, что в данном случае "не очень красивенько".
Постановка задачи такая:
Если значения в поле (колонке) %artist% (4) разные, то я считаю что у меня various artists и, к примеру, пишу в (3) "various artists",
нет - %artist%.
Если значения в поле (колонке) %album% (на скрине их нет) разные, я считаю что у меня various albums и вывожу в (2) имя плейлиста (1),
нет - %album% и т.д.
Прошу не путать с прописыванием в теги album artist значения VA, в сборниках которые создаю сам так и делаю, а потом,
проверяя VA или НЕ VA, вывожу значения тегов artist или не отображаю. Т.о. заполнение тега значением VA мне не достаточно.

Вот такой каламбур.Вроде сам понимаю что написал.
Функция %playlist_name% выводит ? (5).
Ваше внимание к вопросу ценю.
Вложения
Безымянный.png
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #151 Izotop » 21.11.2013, 21:28

2kgena_ua,
Разобраться в "каламбуре" я смог :wink: . Понял чего нужно реализовать.
Прямо так пранализировать под Header-ами треки нету возможности у плейлиста, но если есть желание, то можно покопаться и реализовать иными способами Вашу задачу.

1. Давайте начнем с того, какова цель всех этих манипуляций? Для реализации каких идей такие настройки нужны?
2. Как настроена группировка в ELPSettings-->Grouping-->Group by-->Group format:?
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #152 kgena_ua » 21.11.2013, 21:51

Добрый вечер.
Настройки Group format
Вложения
Безымянный del.png
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #153 Izotop » 21.11.2013, 21:53

А на этот вопрос
1. Давайте начнем с того, какова цель всех этих манипуляций? Для реализации каких идей такие настройки нужны?
:smile: :smile: :smile:
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #154 kgena_ua » 21.11.2013, 22:04

Да, да.
Я отображаю исполнителя в плейлисте только если в тегах album artist прописано VA,
проверяя:

$if($or($stricmp($meta(album artist),VA),$stricmp($meta(album artist),various artists)),1,0)

Пример. В плейлист перетягиваю треки из разных альбомов и разных исполнителей, где album artist "нормально" заполнен именем.
Хотелось бы и в этом случае выводить имя исполнителя.

Вопрос не критичный, просто зацепило.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #155 Izotop » 21.11.2013, 22:24

Я так и не смог понять этот "каламбур" мы делаем для того, чтобы проще было привести теги в порядок или чтобы так всегда вперемешку всё и отображалось???
Izotop M
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет

Сообщение #156 kgena_ua » 21.11.2013, 22:34

С тегами все впорядке, их не трогаем.
Через минут пять приведу пример со скринами...

Добавлено спустя 51 минуту 11 секунд:
На первом скрине альбом одного исполнителя. Имя я не вывожу, и так понятно. Тег album artist заполнен именем.

На втором альбом разных исполнителей. В тегах прописан VA и скрипт выводит имя исполнителя для каждого трека.

На третьем. Я перетянул в пустой плейлист треки (используя проводник) из одного альбома и из второго. Все нормально и логично.

Четвертый. Сгруппировал в одну группу (Group format: - пусто, Sort format: %tracknumber% - %title%). Скрипт отработал правильно, проверяя теги:
IS_VA: $if($or($stricmp($meta(album artist),VA),$stricmp($meta(album artist),various artists)),1,0)
$ifequal(%is_va%,1,
$drawtextex($upper($meta(artist)),%col_artist%,%row_artist%,$get(artist_width),,%text_color_3%,left vtop end_ellipsis)
,)
Но получалась группа фактически из разных исполнителей.
И в данном случае хотелось бы видеть результат как на скрине 5 (я убрал условие $ifequal(%is_va%,1, )

Вы правы, скорей всего это не реализуемо.
Вот если была бы функция типа: если тег строки №1 = тег строки №2 = тег строки №3 = тег строки №nn ...
В любом случае спасибо.
Вложения
Безымянный 1.png
Безымянный 2.png
Безымянный 3.png
Безымянный 4.png
Безымянный 5.png
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #157 kgena_ua » 24.11.2013, 12:41

Вопрос по группировке и сортировке в ELplayList.
Гуппирую к примеру по %artist%.
Правильно группирует только исполнителя №2 (на скрине). В случаях 1 и 3 исполнитель отображается в двух группах
Как правильно прописать Group Format и Sort Format?
Вложения
Безымянный.png
Безымянный 3.png
Безымянный 2.png
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #158 Aum » 24.11.2013, 21:23

kgena_ua, я такой строчкой пользуюсь в группировке (мне просто радио нужно было как-то собрать в кучу):
$if($strstr(%path%,'cdda://'),CD,$if($strstr(%_path%,'://'),RADIO,$if(%album artist%,%album artist% [%album%],[%artist%][%album%])))
А сортировку - это как хочешь: по артисту чтоб сортировало или по пути (%path%), как по мне, удобнее - если в папках упорядоченность, если нет, то логичнее постепенно:
$if2([%album artist%][%date%][%album%][%discnumber%][%tracknumber%][%title%],%path_sort%)
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #159 kgena_ua » 24.11.2013, 22:08

Aum,у меня вот при группировке по %album% настройки такие :
Group Format - %album% - %discnumber%
Sort Format - %album artist% - %date% - %album% - %discnumber% - %tracknumber% - %title% - как у Вас.
Вопрос по синтаксису. У меня порядок сортировки прописан через "-", у Вас нет. Иногда я встречаю символ "|".
В чем разница и как правильно.
Я вроде понимаю что такое группировка и сортировка как термины, но в настройках в Foobar я совсем запутался.
Кто может описать или где можно найти руководство по группировке и сортировке в ELplayList для чайников.
как по мне, удобнее - если в папках упорядоченность
У меня структура такая: папки - имя исполнителя а внутри папки с альбомами.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Сообщение #160 kgena_ua » 29.11.2013, 17:35

Столкнулся со "списком" очереди воспроизведения треков, если этот трек был поставлен в очередь более чем один раз.
%queue_indexes%
В этом случае "список" может вырасти до больших размеров : 1,2,3,4,5,6,7,8,9 и т.д.(ситуация конечно редкая, но...).
В строеке с треком может не найтись место для тагого длинного "списка"
Написал скрипт, который уменьшает список в таких случаях до вида: 1,2,…9.
Может кому пригодится.
Код: Выделить всё
$if(%queue_indexes%,
     $puts(col_qi,16)
     $puts(row_tn,3)

     $puts(right_symbol,$substr(%queue_indexes%,$add($strrchr(%queue_indexes%,','),1),$len(%queue_indexes%)))
     $puts(queue,$ifgreater($get(right_symbol),$add(%queue_index%,2),%queue_index%','$add(%queue_index%,1)',..'$get(right_symbol),%queue_indexes%))

     $drawstring($get(queue),$add($get(col_qi),13),$get(row_tn),45,,200-200-200,right,)
)
Вложения
Безымянный 2.png
Безымянный 2.png (67.28 КБ) Просмотров: 2389
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 7 месяцев

Пред.След.

Вернуться в Плагины