Подписка на блог

В Телеграме помимо ссылок на заметки делюсь околодизайнерскими наблюдениями.

В Твиттере помимо ссылок на заметки пишу всякую чушь.

В Тумблере и Же-же есть автоматические трансляции. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

По РСС и Джейсон-фиду трансляции для автоматических читалок

Проигрыватель: Beta

Если вы ещё не скачали и не установили себе Foobar 2000, самое время сделать это. Скачать его можно прямо на главной странице официального сайта.

На данный момент там висит версия 0.9.4.1, именно она нам и нужна. Совместимость компонентов, входящих в мою «сборку», с другими версиями не то, что не гарантируется, а вообще не волнует меня совершенно.

Слово «сборка» я взял в кавычки, потому, что это не сборка в привычном смысле, когда люди закидывают в zip-архив все компоненты, которые им удалось найти, и думают, что это очень круто. Я доверяю вам, дорогие читатели, найти себе нужный мусор самим. Вот я себе, например, поставил foo_alarm — позволяет начать проигрывание в определённое время. Он, конечно, в «сборку» не входит. Кому надо — сами поставят себе такой же.

Результат моих трудов называется просто Проигрывателем. Проигрыватель — это комплект, состоящий из трёх ключевых элементов:
  • программа Foobar 2000, которая, собственно, является стержнем для компонентов, и которая умеет играть музыку и работать с плейлистами;
  • компонент foo_ui_gfx, который позволяет написать интерфейс полностью самому на языке программирования Lua;
  • скрипт birman.lua, который и реализует весь тот сказочный интерфейс, который я придумал.
Также в комплект входит набор из 5 скинов и компонент foo_notaskbar, который убирает кнопку Фубара с Панели задач.

Поскольку сегодня у нас бета, то в качестве дистрибутива я выкладываю урезанную версию, не включающую сам Фубар (именно поэтому я и предложил вам в самом начале скачать его). Теперь скачайте дистрибутив беты (231 КБ).

Дистрибутив — это zip-архив, внутри которого лежит две папки. Обе их нужно закинуть в папку установленного Фубара (предположительно в C:\Program Files\foobar2000). Папка components там есть и так, но нужно просто, чтобы файлы из моей components попали в вашу. Там как раз лежат foo_ui_gfx.dll и foo_notaskbar.dll. Папка birman-interface содержит скрипт birman.lua и пять картинок в формате BMP. Это скины. Посмотрев на эти, вы, возможно, догадаетесь, как легко делать свои. А если не догадаетесь, то к финальному релизу я это, скорее всего, опишу.

После установки Фубара вам надо будет зайти в его Preferences и там, где Display, в качестве интерфейса выбрать gfx_window. После этого Фубар придётся перезапустить. По Ctrl+P (или по правой кнопке к трей-иконке, Preferences) вы можете снова попасть в Preferences. В ветке gfx_window находятся настройки интерфейса. Там можно выбрать скин и разные другие параметры. Нажимайте Reload, чтобы изменения как-то проявились. Не забудьте также назначить себе удобные горячие клавиши в ветке Keyboard Shortcuts.

Наслаждайтесь (если что-то этому мешает, пишите в комментарии).

Update: Дописал про то, что после изменения настроек gfx_window нужно нажимать Reload.
Подписаться на блог
Поделиться
Отправить
31 комментарий
Spectator
Никогда не думал, что увижу в своей жизни файл birman.lua.
Oleg Andreev
Первое, что хочется сделать — нажать правую кнопку мыши. Но ничего не происходит :-(
Илья Бирман
Может вы по бегунку попадаете просто?
Владимир Игонин
Установил на работе, всё отлично работает. А дома меню gfx так и не появилось, возможно причина в версии фубара.
Лёха Скрипник
Если активно другое приложение, то при наведении на панель фубара и промотке колесом мыши ничего не происходит — чтобы изменить громкость, нужно сначала щёлкнуть на панель. Это неудобно.
Илья Бирман
Знаю. Не могу придумать, как это исправить. Можно сделать, чтобы активировалось само при наведении мышки, но это может иметь какие-нибудь другие побочные эффекты неприятные. Могу лишь посоветовать щёлкать не левой, а средней кнопкой — тогда можно даже в бегунок щёлкать, и трек не перепрыгнет никуда, то есть, целиться не надо. Я так делаю.
Mike Camino
Мешает наслаждаться следующее:
1. В настройках на закладке «gfx_window» не работают выпадающие списки (ни один — выпадают списки нулевой длины).
2. Так и не догадался, чем вызвать на экран плейлист.
3. Мелкая придирка: при наведении на левый край плеера хорошо бы было менять курсор на horz_resize, а то непонятно, можно ли уже ресайзить или нет.

А в остальном — очень хорошо, спасибо.
Илья Бирман
1. Чёрт его знает, странный глюк. А если руками туда писать значения — работать будет? Например, в Skin написать «Glamour» или «Hamburger»? Только осторожно, не сделайте опечатку ;-)

2. GestureDown. Либо вы можете на даблклик по плейеру повесить, выбрав в Doubleclick action значение «Show / Hide playlist».

3. Рад бы сделать, но не знаю как.
Лёха Скрипник
Обнаружил ещё небольшой баг у скина.
Илья Бирман
Раз у вас в формате плейлиста прописан именно этот цвет, то он его и отображает. Вы можете поменять цвет названия альбома плейлисте или сделать другой цвет полоски выделения в скине.
Mike Camino
1. Написал значение руками. Значение сохранилось, а эффект нулевой.
2. Gesture Down — это супер :) Отличное решение. Только плейлист покрасился другим скином (плеер черный, а плейлист белый).

Еще пара нудных мелочей:
- Хорошо бы, если бы правый край плейлиста прилипал бы к правому краю плеера при ресайзе.
- Пока плейлист пустой работает gesture up (закрывает плейлист). После заполнения перестает работать.
- Ползунок скроллбара ведет себя странно: в пустом плейлисте он был, после заполнения (список влез в окно) остался, но при попытке за него дернуть — исчез :)
Илья Бирман
1. А вы нажимаете Reload после изменения значений? Это может быть неочевидно ;-)
2. Именно так выглядит плейлист в стандартном скине, потому, что мне удобнее читать именно так.

Мелочи:
  • хорошо бы, но я не знаю как это сделать;
  • не знаю, как отслеживать события внутри объекта playlist, но жесты продолжают работать на краях окна;
  • так бывает, да и чёрт с ним.
(Если вы используете маркированный список, начинайте строчки с маленькой буквы и ставьте «;» в конце строк; либо используйте нумерованный)
Mike Camino
Скин у плеера сменился по нажатии кнопки «Reload». Кто бы мог подумать.
А плейлист по-прежнему белый.
Илья Бирман
Ещё раз повторяю: плейлист такой и должен быть. Только в скине Hamburger у него желтоватый фон.
andrus
Не нашел как сделать shufle.
Илья Бирман
Повесить горячую клавишу на него. В следующей бете (или в финальном релизе) включение/выключение Shuffle или Repeat будет отображаться в правом поле. В самом интерфейсе не планируется никаких контролов для этого.
Илья Новиков
В ветке gfx_window ничего нет. В чем может быть дело?
Илья Бирман
Не знаю, а у вас точно Фубар нужной версии?
KDA
В ветке gfx_window написано буквально следующее: Could not create preferences page: Bug check
Как быть и что делать?
Илья Бирман
Какая версия Фубара?
KDA
0.9.4.1
Скачал 20 минут назад с офсайта.
До этого стоял тот же, но сборкой Др. Детха. Был снесён полностью.

Кстати, а не хочешь попробовать Columns UI?
Илья Бирман
Я тогда не знаю. Но эта проблема у нескольких людей уже проявилась.

Зачем Columns UI? У меня в Проводнике отличные колонки.
42
Очень хотел поюзать плеер, но обнаружил тот же глюк с gfx_window =(
tovarisch_ru
Длина трека не умещается, хотя место есть. Я на скриншоте специально уменьшил ширину, чтобы было видно как имя композиции обрезается за 15-20 точек до времени:
http://www.ufasite.ru/birman’s-player.gif

Но позже увидел в birman.lua строчку «Right-aligned text width». Еще позже я увидел ее же, но уже в настройках. Браво. Спасибо.
Илья Бирман
Я буду рад придумать, как автоматически определять ширину, которую занимает время, чтобы не заставлять пользователя считать пиксели. Но пока я придумать этого не могу.
_
где документацию для foo_ui_gfx взять? http://www.youngpixel.de/foobar/doc.php уже померло; да и сам foo_ui_gfx.zip найти не могу
Илья Бирман
Мне не удалось найти к нему никакой документации.
Илья Новиков
Foobar последний, скачан по вашей ссылке.
Илья Бирман
Понятно. Пока ничего конкретного вам ответить не могу.
KDA
Так и не увидел ни одного отзыва в общем. Илья, отличная идея и хорошая реализация беты. Очень свежо. Надеюсь, баги будут отчекены и тогда полку удобного прибудет.
Илья Бирман
Спасибо. А окно настроек-то так и не удалось победить?
_
дорабатываю birman.lua напильником...
кто нибудь может обьяснить почему
if (foobar.get_order() == ’Shuffle’)
всегда ложь?
Илья Бирман
А что именно вы пытаетесь сделать?

Кстати, вам не кажется, что знак подчёркивания — довольно хреновый псевдоним?
chw
Ура! Просто супер.
У меня полёт нормальный, всё работает так, как и задумывалось...

Не хватает такой штучки: чтобы можно было выбирать положение seek bar’а — вверху и внизу.
Т. к. у меня, например, панель задачь располагается сверху и мне удобнее было бы располагать плеер внизу экрана, и хотелось бы чтобы сик-бар был снизу, чтобы можно было легко в него попадать.
Было бы замечательно, если бы вы реализовали данную настройку.

Спасибо!
Илья Бирман
Найдите в birman.lua строчку slider_place = rect.new (0, 0, 0, 4); и исправьте второе число в скобках на 14 (получится 0, 14, 0, 4). Теперь найдите строку r_pressed_in_slider = (y <= 4); и исправьте выражение в скобках на y >= 14. Всё готово.

Добавил в начало файла slider_on_bottom = false, поэтому в следующюих релизах вы сможете сделать это проще.

Скины я перерисовывать под это дело не буду, правьте сами ;-)
Slaver
Даже не ожидал, что будет так удачно реализовано :)
Единственное, чего не хватает — табов в плейлисте…
Илья Бирман
Если я узнаю, как это можно сделать, то может быть и сделаю.
pablito
http://ilnovikov.ru/pics/foobar2000.gif
Could not create preferences page: Bug check

Это появляется, если User Interfave Module использовать что-либо, кроме gfx_window.
haruspex
А прикрутить к нему album list принципиально возможно?
Илья Бирман
Я даже приблизительно не представляю.
Егор
Использую BBLaen, как замену експлореру, плагин foo_notaskbar у меня ничего не делал и иконка оставалась. Закомментировал функцию
add_tray_icon ("foobar2000.exe", 0, 
  function () foobar.run_menu_command ("Activate or hide"); end,
  function () foobar.show_main_menu ("System"); end
);

и все заработало нормально.

ЗЫ: а еще у меня не отображались английские кавычки в плейлисте и в баре, пришлось заменить их на русские (хотя это и неправильно)
Егор
проблему с кавычками решил при помощи $char(8220) и $char(8221)

целиком выглядит так:
[%artist% $char(8212) ]%title%[ '('$char(8220)%album%$char(8221)[, %date%]')']
Lev Serebryakov
А зачем foo_notaskbar? У меня он и так в трей прячется нормально.

С foobar 0.9.x есть одна неприятность — он ТРЕБУЕТ юникода в тэгах. 0.8 eмеет как настроишь — и в local codepage и в юникоде, а вот в 0.9.x так и написано — всё, что не ASCII — в юникод. Это очень раздражает — уже есть колелкция в 60 гигов музыки, там чуть не половина русского, и лопатить всё в юникод нет никакого желания. К тому же я предпочитаю (мягко говоря предпочитаю) ID3v1, а в него пихать юникод совсем глупо. Как результат — после установки 0.9 пришлось забыть о редактировании тегов с помощью фубара Ж(
Егор
foo_notaskbar — чтобы иконка из трея исчезала
с юникодом у меня никогда проблем не было
Егор
ой не то, то другой плагин
Lev Serebryakov
Что значит «с юникодом проблем не было»? Вот я беру 0.9.0 и ввожу русский в тег. Сохраняю — и вижу юникод на диске в ID3v2. А если я снимаю отказываюсь от ID3v2, то не вижу на диске вообще ничего, кроме вопросиков. Собственно, официальный FAQ:

* Q: foobar2000 writes question marks to my ID3v1 tags. What’s going on?
* A: only ASCII characters are allowed in ID3v1. Any other characters are replaced by question marks on rewrites.

И вот это — ЖОПА. Потому что мне нужен русский в ID3v1 и нафик не нужны ID3v2!
Илья Бирман
Зачем вам ID3v1? Нравится, когда ничего не вле
KDA
Нужны ли дополнительные библиотеки для Lua?
Илья Бирман
Я ничего не ставил, кроме того, что включил в дистрибутив.
Lev Serebryakov
Ну, у меня «не вле» треках в 5 из многих тысяч. И то — концертных треков, где 2-3 вещи слеплены в один трек.
А переделывать 60Gb в другой формат (и переписывать DVD-диски) не хочется. А начиналось онов сё когда v2 Не было еще.
Seigiard
Проигрыватель — суперштука.

Только не могу найти в хоткеях опцию показа/сокрытия плейлиста. :(

Пользовательский интерфейс
Доступны три раздела
электронного учебника

Популярное