rox

Если бы Foobar2000 сделали в текущем году.

Настольный музыкальный плеер для тех, у кого большая локальная коллекция с аккуратными тегами. Панели вы собираете сами, а тема — это один файл, который можно отдать другому. Нативно на Linux, macOS и Windows.

  • 0,3 s от запуска до окна
  • 134 MB памяти при 50 000 загруженных треках
  • AGPL-3.0 свободный и открытый

Меньше секунды до окна

rox поставляется одним бинарником и запускается раньше, чем вы отпустите мышь.

Запуск, память и CPU в простое у семи музыкальных плееров на одной коллекции в 50 000 треков
ПлеерОкно появилосьПолностью загруженПамятьCPU в простое
rox0,3 s2,3 s 134 MB 0,5 %
Elisa0,7 sникогда не успокаивается 206 MB 74 %
fooyin0,3 s18 s 364 MB 0 %
Quod Libet-19 s 384 MB 0,2 %
Strawberry0,3 s32 s 434 MB 0,8 %
Museeks-3 s 436 MB 0 %
Tauon8,7 s12 s 2,8 GB 0 %

Всё это я мерил сам, на одной машине (Ryzen 9 5950X, Linux/Wayland), с одной и той же коллекцией в 50 000 треков на внешнем SSD, каждый плеер через одну и ту же обвязку с загруженной медиатекой. Память — это PSS по всему дереву процессов. «Загружен» — это момент, когда CPU успокаивается после запуска; простой — это плеер на паузе с видимым окном. DeaDBeeF остановился бы на 44 МБ и выиграл бы по памяти, но строки не получил: его MP3-парсер падает с segfault на середине импорта этой коллекции, каждый раз. rox индексирует все 50 000 треков, включая обрезанные файлы, на которых тот спотыкается.

Медиатека

  • Медиатека, которая держит удар

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

    Что ломается на 50 000 треков
  • Тегам можно доверять

    Полноценный редактор с атомарной записью, пакетными правками и поиском с заменой. Оценки лежат в самих файлах через FMPS и POPM. Поиск через MusicBrainz, iTunes и Deezer.

    Рядом с Mp3tag
  • CUE-рипы играют как треки

    FLAC на целый диск рядом со своим cue-листом индексируется настоящими строками. Каждый участок перематывается, скробблится, сортируется и без паузы переходит в следующий, как это делает файл.

    Как устроены участки
Equalizer Flat
C1C2C3C4C5C6C7C8C9

Воспроизведение

  • Воспроизведение без пауз

    Один поток, с перемешиванием, повтором, «играть следующим» и повтором A-B. Закладки и одноразовые метки сессии сидят на полосе перемотки. Медиаклавиши и «сейчас играет» работают на всех трёх платформах.

  • Десять полос и побитовый вывод

    Эквалайзер в отдельном окне, с пресетами, которые вы сохраняете, и базой наушников AutoEq внутри. Кроссфейд не трогает собственные склейки альбома, а монопольный вывод говорит, на что согласилось железо.

    ReplayGain и побитовый вывод
  • Сортировка по звучанию

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

Внешний вид

  • Панели, которые вы собираете

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

    Рядом с Foobar2000
  • Темы, которые ездят одним файлом

    Рабочее пространство — это один файл с макетом, палитрой, оформлением и шейдерами. Палитра умеет подкрашиваться от играющей обложки, уходя в светлое или тёмное вслед за ней.

    восемь в коробке
  • Картинка, которая слушает

    Пишите WGSL-шейдер поверх одной панели или всего окна, или запускайте пресеты Milkdrop через projectM. Именованные сигналы со спектра идут шейдерам на вход.

    Шейдеры и сигналы

Каждый день

  • Тексты и история

    Синхронизированные или обычные, из файлов рядом, из тегов или с lrclib, с редактором, который пишет туда же, откуда прочитал. Журнал прослушиваний кормит панель истории и статистику, а скроблы с Last.fm импортируются со своими датами.

  • Плейлисты, которые выживают

    Избранное, перетаскивание, M3U, PLS и XSPF внутрь и наружу и умные плейлисты, которые заново прогоняют сохранённый запрос, а не держат снимок. Записи переживают уход файла и его возвращение.

  • Один бинарник, без установщика

    Архив, AppImage, Flatpak, DMG или zip, плюс AUR и Nix flake. Портативный режим держит медиатеку и настройки в папке рядом с исполняемым файлом.

    Скачать

Источники

За пределами окна

Радио, которое можно отмотать

Вставьте URL потока или найдите станцию в каталоге radio-browser. Станция встаёт в очередь и скробблится как трек, а живой буфер позволяет поставить эфир на паузу и отмотать назад.

Ваш сервер в медиатеке

Сервер Subsonic или OpenSubsonic синхронизирует свой каталог сюда, и строки листаются, ищутся и играют как файлы. Потоки просят оригинал, поэтому воспроизведение без пауз и ReplayGain остаются в силе.

Песни прямо из эфира

Запись сохраняет целые песни, которые ставит станция, в вашу папку, в формате потока, с тегами и обложкой рядом. По умолчанию выключена.

Сокет, а не сервер

JSON-RPC через локальный сокет: транспорт, правки очереди, поиск по медиатеке и события по подписке. Вместо авторизации — права на файлы, порт не слушает никто.

Что на этом можно построить

Плеер как инструменты MCP

Прокси рядом с приложением выводит сокет в MCP, и ИИ-клиент может спросить, что играет, или крутить транспорт. Выключено по умолчанию, проверяется на каждом вызове.

Вещает на Icecast

Клиент-источник отдаёт то, что играет rox, в MP3 на вашу точку монтирования. Только наружу: сетевая сторона принадлежит Icecast, а мёртвый сервер не тормозит воспроизведение.

Плагины

И всё остальное

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

  1. Положите папку

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

  2. Включите его

    Включение и есть одобрение. Карточка говорит, что плагин делает и что он запускает, а изменение любого из его файлов снова его выключает.

  3. Просмотрите его

    Он открывается в панели Внешние источники с домашней страницей самого источника, полками обложек, поиском и сортируемыми столбцами, отрисованными в вашей теме.

  4. Играйте, сохраняйте или запускайте радио

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

Плагин-пример Internet Archive в панели Внешние источники: уведомление сверху, строки для просмотра, полки обложек релизов и столбцы загрузок и года.
  1. Собственная панель, пристыкованная и оформленная как остальные
  2. Столбцы, которые знает сервис, сортируются кликом
  3. Строка от плагина со ссылкой
  4. Полки обложек, которые прокручиваются вбок

Пример Internet Archive, просматривающий релизы Creative Commons из коллекции нетлейблов Archive. Он лежит в репозитории rox, готовый к копированию.

Переделайте под себя

В коробке восемь рабочих пространств, каждое в один клик на окне приветствия. Каждое — это один файл с макетом, палитрой и шейдерами, которые оно запускает, так что его можно править, ломать и отдавать другим. Посмотреть все.