Audiofilus
Linux 掌机音乐播放器

边玩游戏,音乐不停。

Audiofilus 是一款像素风音乐播放器,带专辑封面、可视化效果、八款街机小游戏和一个芯片音乐编曲器(tracker)。关掉它、打开模拟器,音乐照样继续。关掉屏幕,放在口袋里也能控制。

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 再按一个键,即可暂停、下一首、上一首或快进快退。耳机上的播放键也能用,蓝牙或有线都行:按一下暂停,按两下下一首,按三下上一首。

放进口袋的熄屏方式

按两下 START 或电源键:屏幕关闭,CPU 降频,肩键变成手势操作。合上翻盖也会保持睡眠。在 RG34XX-SP 上,这个模式的电流约为 260 mA:3300 mAh 电池大约能放 11 到 12 小时音乐。

帮助只需一个按键

在任何界面按住 FN,就能看到每个按键在这里的作用。

播放器上方的操作指南,列出当前界面、全局、睡眠和后台使用的按键

按住 FN 时显示的操作指南。

“更多”菜单:专辑、艺人、加入歌单、队列、随机、循环、关闭屏幕、后台和退出

START 打开“更多”菜单,其中的“后台”可以退出应用并继续收听。

可视化与游戏

有东西可看

九种随节拍律动的可视化效果,从对 CPU 很友好的像素场景,到运行经典 .milk 预设的 MilkDrop。颜色取自专辑封面。任何一种都可以变暗后显示在播放器后面。

Lake 可视化:夜晚的湖面,睡莲随音乐泛起涟漪
Lake 随节拍泛起涟漪
Drift 可视化:一辆车在夜晚灯光照亮的公路上行驶
Drift 三种镜头
Trench 可视化:在城市峡谷中飞行
Trench 城市峡谷
Plasma 可视化:带抖动效果的发光等离子
Plasma 抖动像素
Tunnel 可视化:脉动的环形隧道
Tunnel 随低音脉动
Waves 可视化:示波器波形
Waves 示波器
Bars 可视化:带下落峰值的频谱柱
Bars 频谱
Ridges 可视化:层层堆叠的频谱线,像《Unknown Pleasures》的封面
Ridges 堆叠频谱
MilkDrop 可视化:随音乐扭动的发光万花筒
MilkDrop Winamp 预设
Crypt:戴兜帽的英雄在地牢中前进,地砖随每个节拍闪烁,还有史莱姆、金币和节奏条
Crypt 节奏 Roguelike
Blocks:在迷你播放器旁边玩的方块下落游戏
Blocks 俄罗斯方块
Rhythm:音符沿着由歌曲鼓点生成的轨道落下,并显示 PERFECT 提示
Rhythm 鼓点轨道
Runner:戴耳机的像素小人跳过音箱、躲开随歌曲鼓点飞来的黑胶唱片,背景是昏暗的等离子天空
Runner 踩着底鼓跳
Snake:蛇按照歌曲节拍的细分移动,网格上的圆点随之跳动
Snake 随节拍移动
Ships:一艘飞船在星空中向上射击像素外星人
Ships 按八分音符开火
Duel:一只单色黑胶怪物发射音符,一颗心在方框里闪躲
Duel 随节拍对战
猜歌名:一首歌播放时,从音乐库中的四首歌里选出答案
猜歌名 十个回合
Tracker

做你自己的芯片音乐

一款 LSDJ 风格、用十字键操作的 tracker,带点 PICO-8 的味道:链(chain)与乐句(phrase)、带包络和表(table)的乐器、带摇摆感的律动(groove)、可编辑波形、21 种效果指令和钢琴卷帘。可以为 Game Boy 的四个声道写曲,也可以切到自由模式,用八个合成器声道。可以导入 MOD、XM 和 LSDJ 歌曲,导出为 WAV、XM 或 MOD,还能用 USB MIDI 键盘或鼓机演奏和同步。导出的文件会出现在你的音乐库里,像其他歌一样在后台播放。Tracker 指南。

播放 Pocket Pop 的 tracker:一个乐句中的音符、乐器和音量随播放点亮,然后切换到歌曲视图,每个声道都有实时示波器

游戏和 tracker 都在屏幕栏的 游戏 入口里,每个游戏都有自己的最高纪录。应用里还藏着几个彩蛋。

配色

每张专辑都为它上色

界面的颜色取自正在播放的封面。换一张专辑,整个播放器、可视化效果和游戏都会跟着变色。

以真实音乐库中的四张专辑为例:每张封面提供两种强调色和一种背景色调。

播放器在四张专辑之间切换,强调色随每张封面变成橙色、蓝色、绿色和粉色
正在播放界面上的同步歌词:前奏时三个圆点逐渐填满,随后每一行在演唱时被染成专辑的颜色,周围的行向边缘渐隐
歌词

跟着唱

同步歌词会随着演唱逐字上色,间奏部分用圆点倒数。歌词来自歌曲旁的 .lrc 文件、歌曲标签,或在线的 LRCLIB。

可以从列表中选择其他版本,以半秒为单位微调时间,或者只用离线歌词。此动画中的歌词是虚构的。

音质

按你喜欢的方式调音

ReplayGain

每首歌同样响度,或每张专辑同样响度,或自动:按顺序播放时按专辑,随机播放时按歌曲。绝不会把歌曲推过峰值。

图形或参数均衡器

十个频段,带摇滚、金属、人声、低音等预设;或者最多十个频段的参数均衡器(峰值、搁架、通滤波),曲线显示在屏幕上。平直时不消耗任何资源。

AutoEQ 与交叉馈送

搜索你的耳机型号,它的 AutoEq 校正会放进参数均衡器。交叉馈送让声道分得很开的立体声用耳机听也不累。

淡入淡出、DSD 和 CUE 文件

最长 12 秒的淡入淡出,同时保持专辑无缝播放。支持 DSD 文件;用 CUE 文件整轨抓取的专辑会按曲目显示;输出采样率可选 44.1、48、96 或 192 kHz。桌面上使用高质量重采样器(掌机上为了续航使用轻量的)。

均衡器:从 31 Hz 到 16 kHz 的十个垂直滑块,使用摇滚预设
统计:总播放次数和时长、上个月的数据,以及最常播放的艺人

根据你播放过的所有内容生成统计,即使播放器关闭,服务也会照常计数。

正在播放界面,喜欢的歌上有红心,月亮显示睡眠定时还剩 26 分钟

红心表示喜欢的歌,月亮显示睡眠定时剩余的分钟数。

你的收听

它记得你听过什么

喜欢的歌和评分

给歌曲点红心或打一到五星。在 Subsonic、Navidrome 或 Jellyfin 服务器上,红心和星级双向同步。

最近播放、最常播放和统计

自动生成的列表,还有你的收听时长、最常听的艺人、专辑和歌曲。

播放记录

用二维码登录 Last.fm,或粘贴你的 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 复制到应用旁边,搜索功能就会出现:无需下载即可收听,也可以把歌曲连同封面和标签保存到音乐库。

Demoscene

模块资料库

The Mod Archive、Modland、VGMRips 和 AMP 集中在一个界面:浏览热门、最新或随机内容,搜索、收听、存入音乐库,或在 tracker 中打开模块。它们也会出现在搜索里。

把正在播放的音乐发送到网络上的音箱或电视(DLNA/UPnP 或 Chromecast),用 DLNA 共享你的音乐库,或者让手机把音乐发到掌机上。了解原理。

搜索,带“全部”、“音乐库”和 YouTube 筛选;已拥有的歌曲带勾
一次搜索同时覆盖音乐库和 YouTube。已拥有的歌曲会打勾。
歌曲加载时,播放器上显示 STREAMING 标记
流媒体歌曲带有标记,你可以把它们保存下来。
播放器显示一个直播电台及其当前歌曲
电台实时播放,并显示电台提供的歌名。
界面

为十字键而生

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. 在 Ports 中打开 Audiofilus,然后选择你的音乐文件夹。
  4. 可选:把 yt-dlp 程序放进应用的 yt-dlp/ 文件夹,即可启用 YouTube Music。

在 muOS 上可以不用 PortMaster:把 audiofilus.muxapp 复制到 SD 卡的 ARCHIVE 文件夹,然后在 Archive Manager 中安装;它会出现在“应用程序”里。

在 Linux 或 Windows 电脑上,请看桌面版。

启动时会自动识别系统。翻盖、电源键、省电和音量都使用该系统自带的工具;在桌面上这些都会跳过。

从源码构建

一条命令

用 Go 编写,掌机版不使用 cgo。解码库在运行时加载(如果系统中有的话)。

# with Docker, nothing else to install
git clone https://github.com/juanvillacortac/audiofilus
cd audiofilus
docker build --target dist --output dist .

# or with Go installed
./build.sh

两种方式都会在 dist/ 中生成桌面版和 arm64 程序,以及 PortMaster 压缩包。

桌面版

在电脑上也得心应手

同一个播放器可在 Linux 和 Windows 上运行,只是一个小小的程序文件。在 Linux 上,它在 GNOME、KDE、Hyprland 和 Omarchy 中都像原生应用一样。

出现在应用启动器中

Audiofilus 带着自己的图标出现在启动器中,右键可以播放/暂停、下一首和上一首。窗口规则和程序坞都能识别它的窗口。在 Linux 和 Windows 上,都可以从文件管理器用它打开文件和文件夹。

媒体键和状态栏

它支持 MPRIS,因此键盘媒体键、耳机和桌面的媒体小部件都能控制它,并显示封面和歌名。在 Omarchy 上无需任何设置即可使用。

依然可以后台播放

关闭窗口后音乐继续播放(这是一个设置项,桌面版默认开启);再次打开时会接着当前状态,不显示启动画面。“退出”会停止一切。

在系统托盘中

Audiofilus 的 CD 图标会出现在 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 中。来自 iTunes 的 AAC 和 AAC 电台通过 Apple 自己的解码器播放。

你的音乐,你做主

在“文件”应用中把歌曲复制到 我的 iPhone → Audiofilus,从 iCloud 云盘选择任意文件夹,或者不用本地音乐,直接收听 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,通过系统的媒体会话实现后台播放。