RGMP версия 1.11 (бета)

Продолжаю писать музыкальный плейер RGMP как замену AIMP для MacOS. В этот раз в следующую бету попали 50/50 как новый функционал, так и фиксы по автоматически присланным отчетам и тем, которые я сам обнаружил в процессе использования.

Оформление

Наконец заработал раздел "Оформление". До сих пор плеер был только тёмным и только оранжевым, а сам раздел в настройках стоял пустой заглушкой.

Теперь там четыре вещи. Первая - тема: светлая, тёмная или как в системе, и тогда плеер переключается вместе с macOS. Светлую палитру пришлось собирать заново, цвет за цветом.

Cветлая и темная темы
Cветлая и темная темы

Вторая - цвет, как в AIMP, двумя ползунками: один крутит оттенок, другой насыщенность. "Поворачивается" всё сразу: вкладки, выделение, волна трека, громкость, заголовки групп, "Спектр" в окне визуализации.

Настройки оформления 
Настройки оформления 

А можно ничего не крутить и поставить галочку "Как в системе": плеер возьмёт акцентный цвет macOS и поменяется следом, если сменить его в системных настройках.

Цвет, который берется из настроек системы.
Цвет, который берется из настроек системы.

Третья - масштаб, от 90 до 150 %, для тех, кому на большом мониторе всё мелко (или наоборот, тесно на ноутбуке). Он применяется после перезапуска, и плеер сам предложит перезапуститься.

Четвёртая - шрифт: любой из установленных в системе, меняется сразу.

Различные варианты настроек акцентного цвета для темной темы 
Различные варианты настроек акцентного цвета для темной темы 

Отображение записей

Ожил раздел настроек "Отображение записей". Раньше там стояли шесть галочек, которые ничего не делали, и перед первой бетой я спрятал весь раздел за заглушкой. Теперь в нём работает всё.

Настройка отображения записей в плейлисте
Настройка отображения записей в плейлисте

Главное - у каждого трека в плейлисте появился свой флажок, как в AIMP.

Снял флажок - трек остаётся в списке, но плеер его пропускает, а строка становится бледной. Флажок у заголовка группы показывает чёрточку, если выключена только часть треков, и одним щелчком включает их обратно.

Попутно доделал старую недоработку: флажок группы срабатывал с задержкой примерно в треть секунды. Весь заголовок каждый раз ждал, не будет ли второго щелчка, потому что двойным щелчком группа сворачивается. Теперь двойной щелчок ловит только название группы, а флажок отвечает сразу.

Дальше мелочи, но приятные. Вторую строку с форматом и битрейтом можно спрятать, и плейлист станет однострочным и плотным. Если файл пропал, его строка всё равно вырастет и скажет "Файл не найден". Номер и длительность тоже прячутся.

RGMP версия 1.11 (бета)

Список теперь сам едет за играющим треком - но только если вы на него смотрели. Если прокрутили плейлист в другое место, чтобы выбрать, что поставить дальше, он вас оттуда не утащит.

Ещё можно включить сворачивание групп: открытой остаётся только та, где сейчас играет.

Звёзды

Звезды для треков 
Звезды для треков 

Точнее, сначала пять точек: они стоят справа в строке трека, под длительностью, как в AIMP, и каждая поставленная звезда превращает точку в звёздочку. Рейтинг плеер умел читать из тегов и раньше, но увидеть его можно было только в редакторе тегов, а это совсем не то.

Оценка ставится щелчком: ткнул в третью точку - три звезды. Щелчок по последней поставленной звезде оценку снимает. Под курсором точки заранее загораются до той, на которую придётся щелчок, так что видно, что именно поставишь. А если навести на последнюю звезду, звёзды гаснут - честно предупреждают, что щелчок их уберёт.

Самое интересное - где эта оценка живёт. У MP3, FLAC и большинства форматов она пишется прямо в теги файла, и её увидит любой другой плеер. А у M4A и WAV записать её некуда (теги M4A плеер не трогает, слишком велик риск испортить файл), поэтому такие оценки плеер хранит у себя. Так же с треками Яндекс Музыки и YouTube: файла у них нет, и оценка привязана к самому треку. Он может лежать в трёх плейлистах, но звёзды у него одни, и они никуда не денутся, даже если трек удалить и добавить снова.

По оценке можно отсортировать плейлист, а ИИ-ассистент, подключённый к плееру, видит те же звёзды, что и вы. Кому звёзды не нужны, их выключает галочка "Оценка" в настройках плейлиста - раньше она стояла серой и ничего не делала.

Управление (плеер)

Новый раздел "Управление"
Новый раздел "Управление"

Появился раздел настроек "Управление" - про колесо мыши и среднюю кнопку. В AIMP это всё живёт на странице "Плеер", и мне давно хотелось перенести его целиком, но, к сожалению, целиком пока не очень получилось. Вынес самое актуальное на первое время.

Главное там - на сколько сдвигает один щелчок колеса. Колесо и раньше перематывало трек над полосой позиции, меняло громкость над регулятором и крутило ручки скорости и темпа. Только числа были зашиты внутри, и с AIMP совпадало одно из четырёх. Теперь их можно поменять, а по умолчанию громкость шагает по 2 %, как в оригинале, а не по 5 - вдвое с лишним мельче. Скорость и темп по-прежнему идут по 0.05x, хотя в AIMP там 0.01x: кому хочется мельче, это теперь одна цифра в настройках.

Те же числа работают и для горячих клавиш - в AIMP группа так и называется: "горячими клавишами / колесиком мыши". Поэтому глобальные "Вперёд" и "Назад" теперь перематывают на 5 секунд, а не на 15, ровно как колесо над полосой.

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

Одну группу из AIMP я сознательно не стал делать - прокрутку плейлиста колесом по строкам (одна строка за щелчок, с Alt и Ctrl быстрее). На маке у прокрутки своя инерция и ускорение, отбирать их у системы не хочется, а Ctrl с колесом там вообще увеличивает экран.

Эквалайзер на устройство

У эквалайзера появилась память на устройства. Кривая, которая хорошо звучит в наушниках, на колонках может гудеть, а на хорошем ЦАПе эквалайзер вообще хочется выключить.

Теперь в настройках эквалайзера есть галочка "Общий для всех устройств". Пока она стоит, всё как раньше: эквалайзер один на всё. Снимаешь её - и всё, что дальше крутишь, запоминается только для того устройства, куда сейчас идёт звук: полосы, общее усиление, пресет и даже сам выключатель эквалайзера. Так у наушников будет своя кривая, у колонок своя, а ЦАП будет играть звук как есть.

Новая опция, выключающая общий эквалай для устройства 
Новая опция, выключающая общий эквалай для устройства 

Самое приятное - руками ничего переключать не нужно. Вставил наушники, macOS перекинула звук на них, и плеер сам достал их настройки. Выбрал другое устройство в настройках звука - то же самое. Над кривой написано, чьи настройки сейчас на экране, а под галочкой - на какое устройство идёт звук. Без этой подписи было бы непонятно: снимаешь галочку и не знаешь, для чего сейчас всё крутишь.

Если галочку вернуть, устройство снова играет с общим эквалайзером, но его собственные настройки никуда не деваются и вернутся, если снять её ещё раз.

Узнаёт плеер устройство по имени. Сначала я хотел по системному идентификатору, но оказалось, что у USB-интерфейса в нём зашит номер порта: воткнёшь в соседний - и плеер его не узнает. Обратная сторона - два одинаково названных устройства будут делить один эквалайзер, но такое встречается редко.

И одна находка по дороге: в отладочной сборке ползунки эквалайзера двигались рывками. Оказалось, график для каждой из своих 240 точек заново пересчитывал всю кривую целиком. В обычной сборке этого видно не было, но лишнюю работу я всё равно убрал.

Очередь воспроизведения

Очередь воспроизведения в полном функционале и логике переехала из AIMP. Ничего нового не добавлял и ничего не убавлял.

Дополнительная очередь воспроизведения 
Дополнительная очередь воспроизведения 

Работает она так. Выделяешь трек в любом плейлисте и жмёшь Q (или "Добавить в очередь" в меню трека) - он сыграет сразу после текущего. Можно поставить несколько, можно в начало очереди, можно один и тот же трек дважды. Сам трек остаётся на своём месте в плейлисте, просто рядом с длительностью у него появляется номер: [1], [2], а если он стоит в очереди ещё раз - [1+], как в AIMP. Option-Q убирает из очереди. Клавиши работают и в русской раскладке.

RGMP версия 1.11 (бета)

Когда очередь доиграла, плеер возвращается туда, откуда ушёл, и продолжает по порядку. Слушаешь, например, аудиокнигу, вставил между главами пару песен из другого плейлиста - и после них снова книга, со следующей главы. А если поставил в очередь главу, которая и так шла следующей, второй раз она не сыграет. Случайный порядок при этом не перемешивается заново.

Для остального есть "Менеджер очереди" (Control-Q): список с плейлистом и длительностью каждого трека, общее время, перестановка перетаскиванием, сохранение очереди файлом плейлиста и галочка "Приостановить" - очередь остаётся, но плеер её не берёт, и номера со строк пропадают, пока галочка стоит. Очередь переживает перезапуск, а ИИ-ассистент, подключённый к плееру, умеет её читать, пополнять и чистить.

На этом пока всё. Тестируйте, пишите отзывы. Присылайте баг-репорты и недоработки, если возникнут.

22
11