Медиатека, которая держит удар
Параллельный сканер читает полные теги, настоящие длительности и собственный кодек каждого файла, а не пробегает по заголовку. Слежение за папками переживает переименования, и ничего не пропадает молча.
Настольный музыкальный плеер для тех, у кого большая локальная коллекция с аккуратными тегами. Панели вы собираете сами, а тема — это один файл, который можно отдать другому. Нативно на Linux, macOS и Windows.
rox поставляется одним бинарником и запускается раньше, чем вы отпустите мышь.
| Плеер | Окно появилось | Полностью загружен | Память | CPU в простое |
|---|---|---|---|---|
| rox | 0,3 s | 2,3 s | 134 MB | 0,5 % |
| Elisa | 0,7 s | никогда не успокаивается | 206 MB | 74 % |
| fooyin | 0,3 s | 18 s | 364 MB | 0 % |
| Quod Libet | - | 19 s | 384 MB | 0,2 % |
| Strawberry | 0,3 s | 32 s | 434 MB | 0,8 % |
| Museeks | - | 3 s | 436 MB | 0 % |
| Tauon | 8,7 s | 12 s | 2,8 GB | 0 % |
Всё это я мерил сам, на одной машине (Ryzen 9 5950X, Linux/Wayland), с одной и той же коллекцией в 50 000 треков на внешнем SSD, каждый плеер через одну и ту же обвязку с загруженной медиатекой. Память — это PSS по всему дереву процессов. «Загружен» — это момент, когда CPU успокаивается после запуска; простой — это плеер на паузе с видимым окном. DeaDBeeF остановился бы на 44 МБ и выиграл бы по памяти, но строки не получил: его MP3-парсер падает с segfault на середине импорта этой коллекции, каждый раз. rox индексирует все 50 000 треков, включая обрезанные файлы, на которых тот спотыкается.
Параллельный сканер читает полные теги, настоящие длительности и собственный кодек каждого файла, а не пробегает по заголовку. Слежение за папками переживает переименования, и ничего не пропадает молча.
Полноценный редактор с атомарной записью, пакетными правками и поиском с заменой. Оценки лежат в самих файлах через FMPS и POPM. Поиск через MusicBrainz, iTunes и Deezer.
FLAC на целый диск рядом со своим cue-листом индексируется настоящими строками. Каждый участок перематывается, скробблится, сортируется и без паузы переходит в следующий, как это делает файл.
Один поток, с перемешиванием, повтором, «играть следующим» и повтором A-B. Закладка ставится одной клавишей и сидит на полосе перемотки. Медиаклавиши и «сейчас играет» работают на всех трёх платформах.
Эквалайзер в отдельном окне, кроссфейд, который не трогает собственные склейки альбома, и монопольный вывод, который говорит, на что согласилось железо.
rox описывает ваши треки по их же звуку, включая темп, и выстраивает дальнейшее по похожести. Всё считается на вашей машине по вашим файлам, без сервисов в цепочке.
Около сорока видов панелей, от медиатеки и очереди до сеток исполнителей, спектра и VU. Дублируйте панель с её настройками, сохраняйте как пресет или выносите в отдельное окно.
Рабочее пространство — это один файл с макетом, палитрой, оформлением и шейдерами. Палитра умеет подкрашиваться от играющей обложки, уходя в светлое или тёмное вслед за ней.
Пишите WGSL-шейдер поверх одной панели или всего окна, или запускайте пресеты Milkdrop через projectM. Именованные сигналы со спектра идут шейдерам на вход.
Синхронизированные или обычные, из файлов рядом, из тегов или с lrclib, с редактором, который пишет туда же, откуда прочитал. Журнал прослушиваний кормит панель истории, статистику и скробблинг.
Избранное, перетаскивание, M3U, PLS и XSPF внутрь и наружу и умные плейлисты, которые заново прогоняют сохранённый запрос, а не держат снимок. Записи переживают уход файла и его возвращение.
Архив, DMG или zip, плюс AUR и Nix flake. Портативный режим держит медиатеку и настройки в папке рядом с исполняемым файлом.
JSON-RPC через локальный сокет: транспорт, правки очереди, поиск по медиатеке и события по подписке. Вместо авторизации — права на файлы, порт не слушает никто.
Прокси рядом с приложением выводит сокет в MCP, и ИИ-клиент может спросить, что играет, или крутить транспорт. Выключено по умолчанию, проверяется на каждом вызове.
Клиент-источник отдаёт то, что играет rox, в MP3 на вашу точку монтирования. Только наружу: сетевая сторона принадлежит Icecast, а мёртвый сервер не тормозит воспроизведение.
В коробке восемь рабочих пространств, каждое в один клик на окне приветствия. Каждое — это один файл с макетом, палитрой и шейдерами, которые оно запускает, так что его можно править, ломать и отдавать другим. Посмотреть все.