跳到正文
OpusPlayer

本地优先 · 古典音乐 · 桌面端

每个乐章,各归其位。每一比特,原样送达。

OpusPlayer 是为古典音乐收藏者设计的播放器。它理解作品、乐章与演绎者,而不是「曲目」与「歌手」。它以 bit-perfect 的方式播放无损文件,让每个乐章无缝衔接,并且从不改动任何一个文件。

Windows · macOS 开发中 · FLAC、ALAC、WAV、AIFF、AAC、MP3、Ogg Vorbis

‹ LibraryEsc
NOW PLAYING · EXCLUSIVE · BIT-PERFECT
LUDWIG VAN BEETHOVEN
Symphony No. 5 in C minor
Op. 67“Fate”c小调第五交响曲「命运」
  1. I.Allegro con brio7:21
  2. II.Andante con moto9:52
  3. III.Allegro2:41 / 5:14
    ATTACCA — NEXT MOVEMENT IS ALREADY DECODED
  4. IV.Allegro11:02
WORK 19:54 / 33:29 · MOVEMENT III OF IV
2:41
−2:33

「正在播放」界面的设计稿。独占模式下的 bit-perfect 播放已实现;乐章结构随匹配功能(M4)一同上线。

01 — 曲库开发中

作曲家、作品、演绎。而不是歌手与专辑。

主流播放器是为歌曲设计的:一部交响曲被拆成四首互不相干的曲目,指挥、乐团与独奏家被挤进同一个「艺术家」字段。OpusPlayer 按音乐人的方式编目——作品有乐章,演绎有各司其职的音乐家,而发行版只是你手里的那个版本。

  • Work作品
    Symphony No. 5 in C minor, Op. 67

    连同它的乐章、调性、作品编号,以及各种语言的别名。

  • Performance演绎
    Kleiber · Wiener Philharmoniker · 1974

    指挥、乐团、独奏与合唱,各有各的角色。

  • Release发行
    Symphonien Nrn. 5 & 7 · DG

    你买下的那张唱片或那套套装,完全保持你打的 tag。

  • Person人物
    Beethoven · 贝多芬 · Бетховен

    同一个人,任何拼写、任何文字。

Composers / Ludwig van Beethoven / Symphonies
BEETHOVEN · SYMPHONY · 1804–1808
Symphony No. 5 in C minor, Op. 67“Fate”
c小调第五交响曲「命运」 · 4 movements · ≈ 33 min
Play · Kleiber 1974Compare versions
Movements
I.Allegro con brio7:21
II.Andante con moto9:52
III.Allegro5:14
ATTACCA — PLAYED GAPLESS, SILENCE UNTOUCHED
IV.Allegro11:02
Timings from your default recording — Kleiber, 1974.
Also known as
Schicksals-Sinfonie · 運命 · 命运交响曲
Fifth Symphony · Symphonie Nº 5
Your recordings5Sort: Year ⌄
Carlos KleiberWiener PhilharmonikerDEFAULT1974 · Deutsche Grammophon · FLAC 96/24 · 33:29
Herbert von KarajanBerliner Philharmoniker1963 · Deutsche Grammophon · FLAC 44.1/16 · 31:22
Nikolaus HarnoncourtChamber Orchestra of Europe1991 · Teldec · FLAC 44.1/16 · 30:47
John Eliot GardinerOrch. Révolutionnaire et Romantiqueperiod instruments1994 · Archiv Produktion · FLAC 44.1/16 · 29:58
Wilhelm FurtwänglerBerliner Philharmonikerlive, Berlin1943 · DG · live · FLAC 44.1/16 · mono · 35:10
3 selected · Compare⏎

乐章是结构,不是曲目:从任一乐章开始播放,会把整部作品从该处排入队列。你设为默认的那个录音,就是全 app 里「播放」的含义。

02 — 版本开发中

你拥有的每个录音,并排对照。

同一部第五交响曲的五个录音,是五种诠释,而不是五份重复。OpusPlayer 把它们归到同一部作品之下,由你决定「播放」默认用哪一版,并把各乐章时长并排列出——时长本身就是诠释的数据。

  1. 01每一行里最快的乐章以粗体标出,不用任何评判性的颜色。
  2. 02在任一录音中试听任一乐章,队列不会丢失位置。
  3. 03就在证据旁边,把另一版设为新的默认。
Compare — Symphony No. 5 in C minor, Op. 673 of 5 versions
Carlos KleiberDEFAULT ★
1974 · studio
John Eliot Gardiner
1994 · period instruments
Wilhelm Furtwängler
1943 · live, Berlin
SourceFLAC 96/24FLAC 44.1/16FLAC 44.1/16 · monoLabel · editionDeutsche GrammophonArchiv ProduktionDG · HistoricTotal33:2929:5835:10
I. Allegro con brio7:216:548:41
II. Andante con moto9:528:4711:20
III. Allegro5:144:315:49
IV. Allegro11:029:469:20
Click any movement cell to audition it in that recording — the queue keeps your place.Set Gardiner as default ★
04 — 播放已实现

引擎做了什么,原原本本告诉你。

bit-perfect 的意思是:从你的文件到 DAC,没有任何东西碰过采样。OpusPlayer 的 Rust 引擎以独占模式接管设备,跟随每个文件的原生采样率,把整数采样原样直通。信号路径是一张收据,而不是一枚徽章:绿色要逐个环节挣来,任何一次处理——ReplayGain、系统混音器——都会被点名,并写明原因。

Signal pathBIT-PERFECT
  1. SourceFLAC · 96,000 Hz · 24-bit · stereo
  2. Decodebit-exact integer passthrough · no dither · no resampling
  3. Volumebypassed — fixed volume mode, 0 dB
  4. Output — WASAPI exclusive96 kHz native · event-driven
  5. Device — USB DACheld by OpusPlayer · other apps silent
Untouched from file to DAC.96/24 · BIT-PERFECTEXCL
无缝,有据可查
同采样率的两个文件经完整管线渲染,在 CI 中逐样本比对,接缝处的差值为零。
静默也是音乐的一部分
永不 crossfade,永不裁剪乐章间的静音。attacca 处严格按录音原样连续播放。
采样率跟随文件
独占输出会把 DAC 切换到每个文件的原生采样率,绝不重采样到某个固定速率。
自行恢复
拔掉 DAC,播放停在精确的位置;插回去即可继续。睡眠唤醒之后无需重启。

目前 Windows 上的独占输出基于 WASAPI;macOS 的 CoreAudio 独占输出(hog mode)正在开发中。

05 — 信任开发中

你的文件,永远不会被改动。

收藏者会花好几年整理自己的 tag。OpusPlayer 只读取它们,并保持原样;所有匹配结果都存放在它自己的数据库里。没有把握的匹配会附上平实的理由等你确认;你 pin 过的任何结果都是永久的——不会被重新扫描、版本更新或「更好的猜测」覆盖。

Review queue12 clusters need your eye · 1,893 matched automatically
Low-confidence matches wait here. Nothing below is applied until you confirm it — and your files are never modified either way.
Pinned yesterday: Bruckner Symphony No. 8 → Celibidache · Münchner Philharmoniker (1993 live). Pinned matches are never auto-changed — not by rescans, not by better guesses, not ever.
YOUR FILES · 5 TRACKS · 79:44
…/Mahler/Sym 2 (Klemperer)/
01 Allegro maestoso.flac
02 Andante moderato.flac
03 Scherzo.flac · title differs
04 Urlicht.flac · 05 Im Tempo….flac
PROPOSED MATCH92% HIGH
Symphony No. 2 in C minor “Resurrection” — Mahler
Klemperer · Philharmonia Orchestra & Chorus · 1962 · EMI
Why: movement count and durations align within ±2 s; disc layout matches the 1962 EMI edition. Your tag for movement 3 says “Scherzo”; the canonical title is “In ruhig fließender Bewegung”. Your tag stays untouched.
Accept & pinChoose different…Keep as files
YOUR FILES · 7 TRACKS · 68:12
…/貝多芬鋼琴奏鳴曲全集/CD3/
3-01 悲愴 第一樂章.flac
3-02 悲愴 第二樂章.flac
+ 5 more
TWO CANDIDATES54% · NEEDS YOU
Kempff — Beethoven sonatas, 1965 stereoDG · durations match 6 of 7
Kempff — Beethoven sonatas, 1951 monoDG · durations match 5 of 7
Why we can’t decide: both Kempff cycles fit these track lengths. The 1965 fits slightly better, but your folder name doesn’t say which edition. One click from you settles it for good.
Matching writes only to OpusPlayer’s database. Files, tags and folders are never modified. Pins survive rescans, updates and re-matching — permanently.
  • 只读,是设计使然

    文件、tag 与文件夹从不被修改、移动或重命名。

  • pin 即永久

    你确认过的匹配,经得起重新扫描、版本更新与重新匹配。

  • 每个决定都有依据

    每一条自动匹配都标明来源,并附上一句话的理由。

  • 以开放数据为根

    作品、作曲家及其别名来自 MusicBrainz。已带 MusicBrainz ID 的文件直接查表命中。

  • 语言模型提议,你来拍板

    可选的云端辅助匹配只在你要求时、一次一张专辑地运行;只在真实的目录候选中做选择,并在任何 tag 文本离开你的电脑之前征得你的同意。

  • 默认离线

    播放、浏览与基于规则的匹配,都无需联网。

06 — 规格

可以核验的事实。

格式
FLAC · ALAC · WAV · AIFF · AAC-LC · MP3 · Ogg Vorbis
输出
WASAPI 独占(事件驱动)与共享 · CoreAudio 开发中
信号
音量 100% 时整数直通 · 每个文件使用原生采样率 · 一旦触碰信号即施加 TPDF dither
无缝
双槽预解码 · 接缝在 CI 中逐样本验证
定位
FLAC 上样本级精确 seek
处理
仅有音量与可选的 ReplayGain · 无 crossfade、无响度归一化
曲库
为 10 万+ 曲目设计 · 增量重扫 · 文件夹监听 · NAS 离线时曲库不会被清空
匹配
MusicBrainz 作品、作曲家与别名 · 可复核、有解释的决定
检索
任何语言 · 变音符折叠 · BWV、K.、D.、Hob.、Op.
平台
Windows · macOS 开发中 · 移动端遥控规划中
07 — 路线图

先做引擎,再让曲库读懂音乐。

OpusPlayer 按照「风险最早排除」的顺序施工:在画出任何曲库功能之前,先验证音频引擎。每个里程碑都以客观的验收测试收尾。

  1. M0骨架已完成

    Electron 外壳、Rust 内核与原生桥接;由 CI 构建 Windows 与 macOS 安装包。

  2. M1引擎出声已完成

    解码、带明确错误码的状态机、无爆音的暂停与 seek。

  3. M2曲库直通已完成

    扫描 10 万曲目级曲库,按文件夹与专辑浏览,支持 AAC、MP3 与 Vorbis。

  4. M3引擎硬化已完成

    WASAPI 独占与 bit-perfect 输出、在 CI 中证明的无缝播放、拔线与睡眠后的自动恢复。

  5. M4匹配上线进行中

    基于 MusicBrainz 识别作品、作曲家与演绎,并为没有把握的匹配提供复核队列。

  6. M5检索下一步

    任何语言、任何拼写、任何作品编号。

  7. →之后之后

    macOS 独占输出 · 按 Picard 惯例写回 tag · iOS 与 Android 移动端遥控,支持 CarPlay 与 Android Auto。

08 — 常见问题

收藏者常问的问题。

OpusPlayer 会修改我的 tag 或移动我的文件吗?

不会。文件、tag 与文件夹都是只读的,匹配结果存放在 OpusPlayer 自己的数据库里。按 MusicBrainz Picard 惯例把匹配写回 tag 的功能已在规划中,而且只会在你明确操作时执行。

我需要无损文件吗?

不需要。AAC、MP3 与 Ogg Vorbis 都以 full fidelity 呈现:解码输出原样送达设备,信号路径会以绿色标明。无损文件则在此之上做到 bit-perfect。

需要联网吗?

不需要。播放、浏览与基于规则的匹配都可以离线使用。只有可选的云端辅助匹配需要网络,而且只在你要求时运行。

支持哪些系统?

首先是 Windows,支持 WASAPI 独占输出。macOS 支持(包括 CoreAudio 独占输出)正在开发中。iOS 与 Android 移动端遥控会在桌面版之后推出。

能处理大型套装吗?

它按 10 万曲目、上百张碟的套装来设计。匹配功能上线后,跨碟拆分的作品会被归并回同一部作品。

可以播放在线流媒体吗?

不可以。OpusPlayer 为你拥有的音乐而做,它的智能都用在理解你的收藏上。

抢先体验

把 OpusPlayer 指向你的音乐。

你的收藏留在原处,保持原样。

  • 文件与 tag 只读——从不修改,从不移动
  • 从第一分钟起就是 bit-perfect、无缝播放
  • 作品与作曲家稍后出现,且只在你复核之后
下载 Windows 版· 尚未开放下载 macOS 版· 尚未开放

OpusPlayer 正在积极开发中,公开版本尚未发布。