Skip to content

Releases: boxter007/lefu

v1.0.5

Choose a tag to compare

@github-actions github-actions released this 15 Sep 00:08

Full Changelog: v1.0.4...v1.0.5

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 13 Sep 13:00

Full Changelog: v1.0.3...v1.0.4

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 11 Sep 10:25

Full Changelog: v1.0.2...v1.0.3

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 03:54

乐府 v1.0.2 — 安装链路加固与健壮性

这一版不动界面、不动录制逻辑,只做底层加固:安装第三方组件前先核验真伪、诊断日志加上容量上限、打包签名去掉废弃用法并纳入强制校验,另把 Homebrew cask 的同步做成自动化。

安全

  • 安装包双重校验(#9)
    一键安装 BlackHole 时,下载完成先比对字节级 SHA256,再经 pkgutil --check-signature 核验签名链为 Developer ID Installer: Existential Audio Inc. (Q5C99V536K) 且已被 Apple 公证。任一不过即中止,不再进入提权安装。此前只有「HTTP 200 + 体积 > 100KB」两道形同虚设的门,一个被投毒的同名文件即可长驱直入。

修复

  • 诊断日志无上限(#10)
    单文件超过 2MB 即归档为 lefu-diag.log.1,归档采用覆盖式不堆叠。挂机常驻场景不再会一路写大;顺带把每次调用都新建的 DateFormatter 提为静态复用。

  • 签名流程规范化(#11)
    去掉已废弃的 codesign --deep,改为显式签 Contents/Frameworks 内的动态库,再签主 bundle;签名失败不再被 || true 静默吞掉,codesign --verify --strict 不过就中止打包,避免产出「以为签了、其实没签」的包。

    关于 hardened runtime:本版刻意不启用 --options runtime。实测 ad-hoc 签名(无 Team ID)下启用它会触发 library validation,拒绝 dlopen 内置的 libmp3lame,导致 MP3 编码静默回落到 M4A。此项须随 #2 的真实开发者证书一起启用。

构建

  • 仓库卫生(#12):design/ 下 6 个图标生成过程中的临时中间产物(约 4MB)移出版本控制并补上 .gitignore 规则。
  • Homebrew tap 自动同步:新增 scripts/bump_cask.sh,按发布版本同步 boxter007/homebrew-lefu 的版本号与 sha256;发布流程增加 Bump Homebrew cask 一步。此前 cask 曾落后一个版本,根因已消除。

安装

# Homebrew(推荐)
brew install --cask boxter007/lefu/lefu

# 或手动下载
# 下载下方 Lefu-v1.0.2.zip,解压后把「乐府.app」拖入「应用程序」

首次启动会被 Gatekeeper 拦下(当前为 ad-hoc 签名)。放行方式任选其一:

  • 在「访达 → 应用程序」中右键点乐府,选「打开」并确认;
  • 或终端执行 xattr -cr "/Applications/乐府.app"。

通用二进制(arm64 + Intel)。已知问题:包内置的 libmp3lame 目前仅 arm64,Intel 机器上 MP3 编码不可用(见 #13,计划 v1.0.3 修复)。

完整变更日志:https://github.com/boxter007/lefu/blob/main/CHANGELOG.md
对比:v1.0.1...v1.0.2

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 11 Sep 02:36

乐府 v1.0.1

这一版主要治「长时间挂机录制越跑越卡」的性能病,另修列表定位与波形渲染两处回归,并补上版本号体系。

修复

  • 长时间录制后 CPU 长期占满、界面卡顿 —— #4
    用 sample 采样定位到两处热点:① 音频电平每秒 20+ 次写入主模型 @Published 属性,触发录制台整树重算,而会话队列是上百行的非惰性 VStack,行数越多越贵;② .repeatForever 呼吸动画每帧(60Hz)dirty 视图图,引发根布局全树重算(约占主线程 25%)。
    修法:电平拆到独立 LevelMeter 并做发布节流、会话队列改 LazyVStack;呼吸/脉冲动效与电平波形改由 Core Animation 层动画直驱,SwiftUI 视图图不再被高频 dirty。
  • 关闭主窗口后重新打开,曲目列表回到顶部、不跟随正在采录的行 —— #5
    重开时主动滚动到当前采录行,并兼顾 LazyVStack 首帧尚未铺好的情况。
  • 波形柱状图生长方向与渐变色序错误 —— #6
    改回底对齐向上生长;渐变色序还原为 accent 在下、live 在上(此回归仅存在于本地开发过程,未进入旧发行版)。
  • 曲目序号列在 100 首以上折行、新增行不自动滚动到底部 —— #7

新增

  • 版本号体系 —— #8
    打包时构建号自动递增;应用内「设置 → 引擎(高级)→ 版本」与导出诊断日志都会显示当前版本,反馈问题时可直接附上。

安装

  1. 下载下方 Lefu-v1.0.1.zip,解压得到 乐府.app
  2. 拖入「应用程序」
  3. 首次打开若被 Gatekeeper 拦住,右键 →「打开」(当前为 ad-hoc 签名,托管签名与公证见 #2)

构建信息

项 值
版本 1.0.1(构建号 4)
架构 通用二进制(Apple Silicon + Intel)
系统要求 macOS 13.0+
构建来源 GitHub Actions,tag v1.0.1
MP3 编码器 已内置 libmp3lame,无需 Homebrew

完整变更记录:CHANGELOG.md | v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 02:29

乐府 Lefu v1.0.0 — 首个正式版本

乐府(Lefu)是一款开源免费的 macOS 应用:在 Mac 上边听汽水音乐,边按歌自动录制、裁曲、入库。 每首歌自动保存为内嵌封面与标签的 320kbps MP3,附带同步 .lrc 歌词文件,切歌即出片,无需事后剪辑。纯 Swift / SwiftUI 原生开发,MIT 协议开源。

乐府,汉代掌管音乐的官署,采民间歌谣配乐入府库。这个 App 做的事一模一样:听歌,采诗,收卷入库。

✨ 功能亮点

  • 实时裁歌:逐首录制架构,切歌瞬间自动分段,一首一收卷,不产生"散落的长录音"
  • 歌词四路抓取:自家缓存 → 汽水本地 → LRCLIB → 网易云,抓到即存缓存,离线也有
  • 挂机监听:菜单栏常驻,开播自动采诗,停播自动收卷,全程无人值守
  • 成品即发布级:LAME 320k 编码,ID3 封面标签内嵌,成品旁挂同步歌词
  • 府库一目了然:按日期归档,App 内直接看今日成果与最近入库

📦 安装(无需编译)

  1. 下载下方 Lefu-v1.0.0.zip(通用二进制:Apple Silicon + Intel 双架构)
  2. 解压得到 乐府.app,拖进 Applications
  3. 首次打开:右键 → 打开(绕过 Gatekeeper,ad-hoc 签名)
  4. 跟着 App 内「指南」页走:一键装 BlackHole → 建多输出设备「乐府 通道」(30 秒,一次生效)→ 状态变绿 → 开始采诗

🖥 系统要求

  • macOS 13.0 或更高
  • 汽水音乐 Mac 版(内录对象)
  • BlackHole 2ch 虚拟声卡(App 内一键下载安装)
  • 无需 Homebrew,无需 Xcode——MP3 编码器(LAME)已内置

🏗 工作原理

汽水音乐(正常放歌)
      │
      ▼
「乐府 通道」多输出设备
      ├──► BlackHole 2ch(虚拟声卡)──► 乐府从这里录
      └──► Mac 扬声器 ──────────────► 你照常听

🔍 关键词

macOS 内录归档 · 汽水音乐 Mac 按歌保存 MP3 · 自动裁曲 · LRC 同步歌词下载 · BlackHole 录音 · CoreAudio 音频采集 · SwiftUI 开源音乐工具 · LAME 320kbps · ID3 封面标签 · MIT 开源

License

MIT · 源码与构建方法见 README