Audiofilus
Музыкальный плеер для портативных консолей на Linux

Твоя музыка играет, пока ты играешь.

Audiofilus — пиксельный музыкальный плеер с обложками альбомов, визуализаторами, восемью аркадными играми и чиптюн-трекером. Закрой его, запусти эмулятор — музыка продолжит играть. Выключи экран и управляй плеером из кармана.

Knulli · muOS · ROCKNIX · ArkOS · dArkOS · EmuELEC — а также Linux и Windows на компьютере и iPhone.

Экран «Сейчас играет»: обложка альбома, информация о треке и визуализатор спектра, пульсирующий в такт песне
  • MP3
  • AAC / M4A
  • ALAC
  • FLAC
  • Ogg Vorbis
  • Opus
  • WAV
  • AIFF
  • DSD (DSF · DFF)
  • NSF · SPC · GBS · VGM · HES · KSS · AY · SAP
  • SID · YM · VTX · PT3
  • MOD · XM · IT · S3M
  • CUE-файлы
  • Плейлисты M3U
Поддержка

Пусть играет дальше

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

Купи мне кофе на Ko-fi
Фоновое воспроизведение

Плеер, который не мешает

Звук живёт в отдельном сервисе

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

Управление из любой игры

Удерживай FN и нажми кнопку, чтобы поставить на паузу, переключить трек, вернуться или перемотать. Работает и кнопка воспроизведения на наушниках, по Bluetooth или по проводу: одно нажатие — пауза, два — следующий трек, три — предыдущий.

Режим сна для кармана

Нажми START дважды или кнопку питания: экран выключится, процессор замедлится, а курки станут жестами. Закрой крышку — консоль останется во сне. На RG34XX-SP в этом режиме потребление около 260 мА: примерно 11–12 часов музыки от батареи на 3300 мА·ч.

Подсказка в одно нажатие

Удерживай FN на любом экране, чтобы увидеть, что там делает каждая кнопка.

Справка по кнопкам поверх плеера: кнопки для этого экрана, для всех экранов, для сна и для фона

Справка по кнопкам, пока удерживается FN.

Меню «Ещё» с пунктами Альбом, Исполнитель, В плейлист, Очередь, Перемешать, Повтор, Экран выкл., В фон и Выйти

START открывает меню «Ещё», в том числе «В фон», чтобы выйти из приложения и продолжить слушать.

Визуализаторы и игры

Есть на что посмотреть

Девять визуализаторов, следующих за ритмом: от пиксельных сцен, почти не нагружающих процессор, до MilkDrop с классическими пресетами .milk. Цвета берутся из обложки альбома. Любой из них можно пустить приглушённо за плеером.

Визуализатор Озеро: ночное озеро, кувшинки которого колышутся под музыку
Озеро рябь в ритм
Визуализатор Дрейф: машина едет ночью по освещённой дороге
Дрейф три камеры
Визуализатор Впадина: полёт по городскому каньону
Впадина городской каньон
Визуализатор Плазма: светящаяся плазма с дизерингом
Плазма дизеринг
Визуализатор Тоннель: пульсирующий тоннель из колец
Тоннель пульсирует с басом
Визуализатор Волны: линия осциллографа
Волны осциллограф
Визуализатор Столбцы: столбцы спектра с падающими пиками
Столбцы спектр
Визуализатор Гребни: линии спектра одна над другой, как на обложке Unknown Pleasures
Гребни слои спектра
Визуализатор MilkDrop: светящийся калейдоскоп, который изгибается под музыку
MilkDrop пресеты Winamp
Склеп: герой в капюшоне идёт по подземелью, плитки пола вспыхивают на каждый удар, со слизнями, монетами и полосой ритма
Склеп ритмичный рогалик
Блоки: игра с падающими блоками рядом с мини-плеером
Блоки падающие блоки
Ритм: ноты падают по дорожкам, построенным из барабанов песни, с надписью PERFECT при точном попадании
Ритм барабанные дорожки
Бегун: пиксельный бегун в наушниках перепрыгивает колонки и пригибается под летящими пластинками, которые прилетают в такт барабанам песни, под тусклым плазменным небом
Бегун прыжок на бочку
Змейка: змейка ползёт по долям ритма песни по сетке точек, которые пульсируют вместе с ней
Змейка ползёт в ритм
Корабли: корабль стреляет вверх по пиксельным пришельцам на фоне звёзд
Корабли стреляет восьмыми
Дуэль: однобитный монстр-пластинка стреляет нотами, а сердечко уворачивается внутри рамки
Дуэль битвы в ритм
Угадай песню: четыре песни из библиотеки на выбор, пока одна из них играет
Угадай песню десять раундов
Трекер

Делай свой чиптюн

Трекер в стиле LSDJ для крестовины, с щепоткой PICO-8: цепочки и фразы, инструменты с огибающими и таблицами, грувы со свингом, редактируемые волны, 21 команда эффектов и пиано-ролл. Пиши для четырёх каналов Game Boy или выбери Свободный режим с восемью синтезаторными каналами. Импортируй песни MOD, XM и LSDJ, экспортируй в WAV, XM или MOD, играй и синхронизируй с USB MIDI-клавиатуры или драм-машины. Экспортированное попадает в библиотеку и играет в фоне, как всё остальное. Руководство по трекеру.

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

Игры и трекер собраны в одном пункте Игры на панели экранов, у каждой игры свой рекорд. А ещё в приложении спрятано несколько секретов.

Цвета

Каждый альбом раскрашивает плеер

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

Показано на четырёх альбомах из настоящей библиотеки: каждая обложка даёт два акцентных цвета и оттенок фона.

Плеер переключается между четырьмя альбомами, его акцент становится оранжевым, синим, зелёным и розовым под каждую обложку
Синхронизированный текст на экране «Сейчас играет»: во вступлении заполняются три точки, затем каждая строка окрашивается в цвет альбома по мере пения, а соседние строки тают к краям
Тексты

Пой вместе

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

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

Звук

Настрой как нравится

ReplayGain

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

Графический или параметрический эквалайзер

Десять полос с пресетами для рока, метала, вокала, баса и не только, или параметрический до десяти полос (пик, полки, фильтры среза) с кривой на экране. Ровный, он ничего не стоит.

AutoEQ и кроссфид

Найди модель своих наушников, и её коррекция из AutoEq попадёт в параметрический эквалайзер. Кроссфид делает широкое стерео менее утомительным в наушниках.

Плавный переход, DSD и CUE-файлы

До 12 секунд кроссфейда, который оставляет альбомы без пауз. DSD играет, альбомы, записанные одним файлом с CUE, видны по трекам, а выход работает на 44,1, 48, 96 или 192 кГц, с высококачественным ресемплингом на компьютере (и лёгким на консолях, чтобы беречь батарею).

Эквалайзер: десять вертикальных ползунков от 31 Гц до 16 кГц с пресетом Рок
Статистика: всего прослушиваний и часов, прошлый месяц и самые слушаемые исполнители

Статистика по всему, что ты слушал, — сервис считает её даже при закрытом плеере.

«Сейчас играет» с сердечком у понравившейся песни и луной: до таймера сна осталось 26 минут

Сердечко у понравившихся песен, луна с минутами до таймера сна.

Твои прослушивания

Он помнит, что ты слушаешь

Понравившиеся песни и оценки

Отметь песню как понравившуюся или оцени от одного до пяти. На сервере Subsonic, Navidrome или Jellyfin сердечки и звёзды синхронизируются в обе стороны.

Недавние, самые частые и статистика

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

Скробблинг

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

Таймер сна

Останови музыку через 15–90 минут или в конце песни, даже при закрытом плеере.

Будильник

Просыпайся под плейлист или станцию с постепенно нарастающей громкостью, даже с закрытым плеером.

Источники

Твои файлы, твой сервер, радио

Всё появляется в одной библиотеке и в одном плеере. Песни с сервера кешируются на SD-карте, так что следующее прослушивание бесплатно.

Локально

Твоя библиотека

Папки, теги, встроенные обложки и обложки в папках, плейлисты M3U и твои собственные плейлисты. Сканирует один раз, потом читает только новые файлы. Синхронизированные тексты подсвечиваются строка за строкой — из .lrc, тегов или LRCLIB. И саундтреки консолей тоже: NES, SNES, Game Boy, Genesis и другие, по треку на песню. Исправляй теги и недостающие обложки по MusicBrainz, считай ReplayGain и пусть умные плейлисты заполняются сами.

Сервер

Subsonic

Navidrome и другие серверы Subsonic или OpenSubsonic. Песни стримятся, остаются в кеше для следующего прослушивания и их можно скачать. Редактируй их плейлисты из приложения.

Сервер

Jellyfin

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

В эфире

Интернет-радио

Тысячи станций с radio-browser.info по странам и жанрам, с названием текущей песни из потока. Добавляй свои списки станций .m3u или .pls или станцию по адресу. Потоки HLS тоже играют.

Выпуски

Подкасты

Популярные шоу твоей страны, поиск или любая RSS-лента по адресу. Выпуски скачиваются для прослушивания без сети и помнят, где ты остановился.

Надолго

Аудиокниги

Файлы .m4b и книги в папках: запоминает, где ты остановился в каждой, с главами, прыжками на 30 секунд и скоростью без изменения тона.

Своё

YouTube Music

Положи свой yt-dlp рядом с приложением — и появится поиск: слушай без скачивания или сохраняй песни в библиотеку с обложкой и тегами.

Сцена

Архивы модулей

The Mod Archive, Modland, VGMRips и AMP на одном экране: смотри популярное, новое или случайное, ищи, слушай, сохраняй в библиотеку или открывай модуль в трекере. Они есть и в Поиске.

Отправляй то, что играет, на колонку или телевизор в твоей сети (DLNA/UPnP или Chromecast), делись библиотекой по DLNA или позволь телефону отправлять музыку на консоль. Как это работает.

Поиск с фильтрами Всё, Библиотека и YouTube; песни, которые у тебя уже есть, отмечены галочкой
Один поиск по библиотеке и YouTube. Галочка отмечает песни, которые у тебя уже есть.
Плеер со значком СТРИМИНГ, пока песня загружается
Песни из стриминга получают значок, и их можно оставить себе.
Плеер показывает радиостанцию в эфире с текущей песней
Радио играет в прямом эфире, с названием песни от станции.
Экраны

Сделан для крестовины

SELECT открывает панель со всеми экранами; нажми дважды, чтобы вернуться на прошлый. Экранная клавиатура QWERTY для поиска и названий плейлистов. Звуки интерфейса по желанию — два отдельных переключателя для меню и для действий с музыкой.

Любой экран

От квадрата до ультраширокого

Раскладка подстраивается под реальную ширину экрана, а не выбирает из нескольких фиксированных форм, поэтому заполняет и 1:1 на RGB30, и 3:2 на раскладушке, и монитор 21:9.

Плеер на экране 1:1
1:1
Плеер на экране 4:3
4:3
Плеер на экране 3:2
3:2
Плеер на экране 16:9
16:9
Плеер на экране 21:9
21:9
Установка

Через PortMaster

KnullimuOSROCKNIXArkOSdArkOSEmuELEC
  1. Открой PortMaster на консоли, найди в списке Audiofilus и установи (его страница).
  2. Или скачай audiofilus-portmaster.zip из последнего релиза и распакуй в папку ports.
  3. Открой Audiofilus в разделе Ports и выбери папку с музыкой.
  4. По желанию: положи бинарник yt-dlp в папку приложения yt-dlp/, чтобы включить YouTube Music.

На muOS можно обойтись без PortMaster: скопируй audiofilus.muxapp в папку ARCHIVE на SD-карте и установи его через Archive Manager; он появится в разделе Applications.

На компьютере с Linux или Windows смотри раздел Компьютер.

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

Сборка из исходников

Одна команда

Написан на Go без cgo для портативных консолей. Библиотеки кодеков загружаются во время работы, если они есть в системе.

# с Docker, больше ничего ставить не нужно
git clone https://github.com/juanvillacortac/audiofilus
cd audiofilus
docker build --target dist --output dist .

# или с установленным Go
./build.sh

Обе команды кладут в dist/ бинарники для компьютера и arm64, а также zip для PortMaster.

Компьютер

Как дома на твоём ПК

Тот же плеер работает на Linux и Windows — один маленький бинарник. В Linux он вписывается как родное приложение в GNOME, KDE, Hyprland и Omarchy.

В меню приложений

Audiofilus появляется со своей иконкой, а по правому клику предлагает пауза/воспроизведение, следующую и предыдущую. Правила окон и доки узнают его окно. Файлы и папки открываются в нём из файлового менеджера, в Linux и Windows.

Медиаклавиши и твоя панель

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

Играет и в фоне

Закрой окно — музыка продолжит играть (это настройка, на компьютере включена по умолчанию); открой снова — он продолжит с того же места, без заставки. «Выйти» останавливает всё.

В системном трее

Диск Audiofilus живёт в трее, в Linux и Windows: нажми, чтобы открыть плеер, средней кнопкой — пауза, а в его меню — что играет, пауза/воспроизведение, следующая, предыдущая, перемешивание и выход.

Окно любой формы

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

Linux

Установка одной строкой

curl -fsSL https://juanvillacortac.github.io/audiofilus/install.sh | sh
  1. Скачивает последний релиз для x86_64 или aarch64 в ~/.local/share/audiofilus.
  2. Создаёт ссылку audiofilus в ~/.local/bin.
  3. Добавляет Audiofilus в меню приложений. Запусти снова в любой момент, чтобы обновить; настройки сохранятся.

Или настрой вручную

  1. Скачай audiofilus-linux-amd64.tar.gz (или -arm64) из последнего релиза и распакуй куда угодно.
  2. В этой папке выполни ./audiofilus desktop install. Это добавит пункт меню и иконку в ~/.local/share.
  3. Открой Audiofilus из меню приложений. Если переместишь папку, повтори шаг 2.

Удаление: audiofilus quit; audiofilus desktop uninstall; rm -rf ~/.local/share/audiofilus ~/.local/bin/audiofilus*

Windows 10 и новее: скачай audiofilus-windows-amd64.zip, распакуй куда угодно и запусти audiofilus.exe.

iPhone и iPad

Правда в кармане

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

«Сейчас играет» на iPhone: большая обложка альбома с выглядывающей пластинкой, песня, кнопки и спектр, с крупными сенсорными кнопками внизу
Библиотека на iPhone: кнопка вкладок сверху, список песен и мини-плеер с кнопками «предыдущая», «назад 10 секунд», пауза, «вперёд 10 секунд» и «следующая»
Вкладки библиотеки выпадают из верхней панели по нажатию, выбираются Альбомы, и меню уезжает обратно

Сначала касание

Нажимай на строки, обложки, вкладки и кнопки; тяни списки пальцем; в панели кнопок настоящие кнопки, а у игр своё сенсорное управление. В портретной ориентации вкладки открываются кнопкой.

Экран блокировки и Пункт управления

Обложка, песня и кнопки на экране блокировки, в Пункте управления, на наушниках и в CarPlay. AAC из iTunes и AAC-радио играют через декодер самой Apple.

Твоя музыка — как тебе удобно

Скопируй песни в На iPhone → Audiofilus в приложении «Файлы», выбери любую папку из iCloud Drive или обойдись без локальной музыки и слушай Subsonic, Navidrome или Jellyfin, радио, подкасты и YouTube Music. Песни также открываются в Audiofilus из «Файлов» и других приложений.

Неподписанный audiofilus-ios-unsigned.ipa есть в каждом релизе: установи его через Sideloadly или AltStore, они подпишут его твоим Apple ID. Или добавь источник https://juanvillacortac.github.io/audiofilus/altstore.json в AltStore, SideStore или LiveContainer: новые релизы будут приходить туда как обновления.

Планы

Не только портативные консоли

Тот же плеер на каждом твоём экране.

Работает уже сейчас

Компьютер

Linux и Windows, с меню приложений, треем, медиаклавишами, мышью и касанием, и чётким пиксельным масштабированием при любой форме окна. Дальше: раскладки для больших окон.

Работает уже сейчас

iOS

iPhone и iPad как неподписанное приложение: интерфейс для касаний, фоновое воспроизведение, экран блокировки и Пункт управления. Дальше: подписанная сборка.

В планах

Android

То же мобильное приложение на Android, с фоновым воспроизведением через медиасессию системы.