Repository navigation
Releases
Sona 1.1.1
Sona 1.1.1 · build 15 · 2026-10-25
适用于 macOS 26 或更高版本的 Apple Silicon Mac。此维护版本精简音频处理和偏好保存路径,保留 1.1.0 的设备选择界面与路由语义。
Requires macOS 26 or later on Apple Silicon. This maintenance release reduces work in audio processing and preference saving while retaining the device picker and routing behavior from 1.1.0.
优化与修正
- 降低空闲唤醒。 音频 IO 停止后保留约 2 秒的尾部处理时间,随后暂停混音线程的周期唤醒;IO 恢复时唤醒线程并重置混音时间锚点。保持音频 IO 的应用仍继续处理。
- 减少混音复制。 累加缓冲直接分段写入输出环形缓冲,移除中间 PCM 副本;跳过干净且不活跃的输出,仍清除不活跃输出已提交的数据。
- 精简重采样计算。 将固定比例乘法移出 FIR 内循环,保留现有滤波器、抽头数和精度路径。离线对照检查覆盖启动、分数相位、环绕和采样率比例边界。
- 合并偏好保存。 应用音量控件立即更新,音频配置保留现有发送节奏;磁盘偏好按约 250 毫秒静默间隔合并保存,拖动结束或退出时保存最终值。相同设置不重复更新,移除逐事件日志与未调用代码。
- 修正驱动快照读取。 在持锁后读取并保留共享快照,避免并发替换时先读取旧指针;仅在没有快照时创建空值或离线状态。
Improvements and fixes
- Fewer idle wakeups. After audio IO stops, the mixer drains for approximately two seconds before parking its periodic wakeups. Starting IO wakes the thread and resets the mix timeline anchor. Apps that keep audio IO running continue to be processed.
- Less audio copying. Mixed samples are written from the accumulator into the output ring in spans, removing an intermediate PCM copy. Clean inactive outputs are skipped, while committed samples on inactive outputs are still cleared.
- Simpler resampling calculations. A fixed scale multiplication moves out of the FIR tap loop. The existing filter, tap count and precision path remain in place; offline comparisons cover startup, fractional phases, wrap and sample-rate ratio limits.
- Coalesced preference writes. App volume controls update immediately; audio configuration keeps its existing send cadence. Preference serialization waits for approximately 250 milliseconds without new input, with a final save on gesture completion or app exit. Unchanged settings, per-event logs and unused code are removed.
- Safer driver snapshot reads. Shared snapshot pointers are read and retained under the snapshot lock, avoiding a stale-pointer read during concurrent replacement. Empty or offline fallback values are created only when needed.
安装与升级 / Installation and upgrade
- 从本 Release 下载 Sona-1.1.1.pkg 和 Sona-1.1.1.pkg.sha256,放在同一目录并校验。
- 升级前从菜单栏退出 Sona,再打开完整安装包并完成管理员认证。安装包会同时更新 App、HAL 驱动和音频服务,并短暂重启系统音频、中断播放。
- 安装完成后打开
/Applications/Sona.app。升级请使用完整安装包,确保三个组件一并更新。
Download Sona-1.1.1.pkg and its SHA-256 file from this release into the same directory and verify them. Quit Sona from its menu bar before upgrading, open the complete package and authenticate as an administrator. Installation updates the app, HAL driver and audio service together and briefly restarts system audio, interrupting playback. Open /Applications/Sona.app afterward.
shasum -a 256 -c Sona-1.1.1.pkg.sha256预期输出 / Expected output: Sona-1.1.1.pkg: OK.
安装包大小 / Package size: 1,242,480 bytes.
SHA-256: 3e58a5eeaea026290a31e568c3fa029c523599200f3532a8e04c2037bf4356b6
签名 / Signing
三个二进制采用 ad-hoc 签名;安装包未签名,未使用 Developer ID,也未经过 Apple 公证。若 macOS 阻止打开且你信任本 Release 的文件,可先尝试打开,再前往「系统设置 → 隐私与安全性 → 仍要打开」继续安装。
All three binaries use ad-hoc signatures. The installer package is unsigned; this release is not Developer ID signed or notarized. If macOS blocks the package and you trust the files from this release, first try opening it, then use System Settings → Privacy & Security → Open Anyway.
验证范围与已知边界 / Validation and known limits
本版源码已通过 make test-all、隔离 launchd 域的 make test-e2e、驱动快照的 O2/AddressSanitizer/ThreadSanitizer 检查,以及引擎的 AddressSanitizer+UndefinedBehaviorSanitizer 检查。隔离 IPC 检查覆盖获准签名的回环客户端、拒绝未获准客户端、会话替换与旧共享区域回收。
清理后重新构建的发布包已通过版本、架构、签名与安装脚本检查;解包后的 10 个 payload 文件与暂存文件逐字节一致,未发现 AppleDouble 或本机个人路径。打包仍输出四条已知的 write: Permission denied 告警,最终归档完整性检查未发现异常。
已在本机使用完整安装包从 1.1.0 升级至 1.1.1,核对安装收据、App/Driver 的 1.1.1 / build 15、三个已安装二进制与该次构建暂存文件一致、服务连接及驱动握手;App 从 /Applications/Sona.app 运行。当时 ioRunning=false,没有以此宣称新的听音或多设备验收结果。
本次重建发布包中的三个二进制也已核对,与当前本机已安装的 1.1.1 逐字节一致。
自动回归覆盖混音环绕与溢出、空闲等待与唤醒、重采样参考对照、偏好合并与最终保存、驱动快照并发替换。离线基准只比较指定算法路径的执行时间,不代表整机 CPU、能耗、真实音频回调时限或实际听感的改善幅度。
旧队列未排空的快速重启仍是既有边界。 若同一客户端与格式的旧高时间戳数据仍位于队首,重启后从零开始的数据可能被阻挡;原版和本版均存在此情形。本版修复队列已排空时短音频重启的混音时间锚点复位,不应解读为快速重启问题已全部修复。
The source passed make test-all, make test-e2e in an isolated launchd domain, driver snapshot checks with O2, AddressSanitizer and ThreadSanitizer, and engine checks with AddressSanitizer plus UndefinedBehaviorSanitizer. Isolated IPC checks cover authorized signed loopback clients, rejection of an unauthorized client, session replacement and retired shared-region reclamation.
The release package was rebuilt after cleanup. Version, architecture, signature and installer-script checks passed; all 10 extracted payload files match the staged files byte for byte, with no AppleDouble files or local personal paths found. Packaging still emitted four known write: Permission denied warnings; final archive integrity checks found no anomalies.
A local full-package upgrade from 1.1.0 to 1.1.1 completed. Checks covered the installation receipt, App/Driver 1.1.1 / build 15, all three installed binaries matching that build's staged files, service connection and driver handshake. The app runs from /Applications/Sona.app. Audio IO was stopped during these checks (ioRunning=false); this is not a new listening or multi-device acceptance result.
All three binaries in the rebuilt release package also match the currently installed 1.1.1 binaries byte for byte.
Automated coverage includes mixer wrap and overflow, idle waits and wakeups, resampler reference comparisons, coalesced preferences and final saves, and concurrent driver snapshot replacement. Offline benchmarks compare execution time in specific algorithm paths; they do not establish whole-system CPU, energy, live audio callback deadlines or listening improvements.
Rapid restarts before the previous queues have drained remain an existing limitation. Under the same client instance and audio format, an old block at the ring head with a high sample time can hold up new blocks whose sample time restarts at zero. This occurs in both the previous and current versions. This release fixes mix timeline reset for short-audio restarts after the queue has drained; it does not claim to fix all rapid-restart cases.
本机升级核对也不能替代干净环境安装、完整卸载、蓝牙/多物理设备、长期运行和听音验收;这些项目仍未形成完整的系统化覆盖。多设备播放不保证采样级同步。
A local upgrade check does not replace clean-machine installation, complete uninstall, Bluetooth or multiple-physical-device testing, long runs or listening acceptance. Systematic coverage of those cases remains incomplete. Multiple outputs are not guaranteed to be sample-synchronized.
源码采用 FSL-1.1-ALv2 授权。
Sona 1.1.0
Sona 1.1.0 · build 14 · 2026-10-25
适用于 macOS 26 或更高版本的 Apple Silicon Mac。
设备选择与界面优化
- 默认输出和逐应用输出改用图标入口,悬停或点击后在主卡片右侧展开设备列表,移出图标与列表后短暂延迟收起。
- 顶部默认输出保持单选;逐应用输出支持连续多选、再次点击取消和全部取消,多选时列表保持打开。
- 多路输出的音量条显示小号设备名,方便区分同类设备;单路维持紧凑布局。
- 列表与主卡片共享同一窗口中的原生 Clear Liquid Glass。逐应用列表只显示设备行,不显示顶部标题或说明。
- 菜单宽度收紧至 220pt、行高 32pt,并缩小图标、字号、圆角与留白;声音模块入口采用 AirPlay 音频图标。
- 列表随布局变化的位置更新改用屏幕同步回调,缓存尺寸并跳过重复布局;支持系统“减少动态效果”。
Device selection and interface improvements
- Hover over or click an output icon to open a device list beside the main cards. The list dismisses shortly after the pointer leaves both the icon and list.
- The default output remains single-select. Per-app routing supports multiple outputs, deselecting every output, and repeated selections without closing the list.
- Multiple output sliders show small device names; single-output cards retain their compact layout.
- Device lists share the main cards' native Clear Liquid Glass window. Per-app lists contain device rows with no heading or instructions.
- Menus use a compact 220pt width and 32pt rows, with smaller icons, type, corners and padding. The Sound module uses an AirPlay audio icon.
- Display-synchronized callbacks track layout changes, with cached size measurements and duplicate layout updates skipped. Reduce Motion is respected.
安装与升级 / Installation
- 下载 Sona-1.1.0.pkg,打开安装包并完成管理员认证。完整安装包会更新 App、HAL 驱动和音频服务,期间短暂重启系统音频。
- 安装完成后打开
/Applications/Sona.app。升级请使用完整安装包。 - 取消某应用的全部设备即让该应用无输出;明确选择的设备断开时不会自动回退到默认扬声器。
Download Sona-1.1.0.pkg, open it and authenticate as an administrator. The complete package updates the app, HAL driver and audio service, briefly restarting system audio. Then open /Applications/Sona.app. Clearing all of an app's outputs silences it; an explicitly selected device disconnecting does not redirect its audio to the default speakers.
签名 / Signing
二进制采用 ad-hoc 签名,安装包未使用 Developer ID 签名,也未经过 Apple 公证。若 macOS 阻止打开来自本 Release 的安装包,可在尝试打开后前往「系统设置 → 隐私与安全性 → 仍要打开」继续安装。
The binaries use ad-hoc signatures. The installer is not Developer ID signed or notarized. If macOS blocks the package downloaded from this release, try opening it, then use System Settings → Privacy & Security → Open Anyway.
SHA-256 校验 / Verify download
将 Sona-1.1.0.pkg.sha256 与安装包放在同一目录,运行 / Place the checksum beside the package and run:
shasum -a 256 -c Sona-1.1.0.pkg.sha256预期 / Expected: Sona-1.1.0.pkg: OK.
验证范围 / Validation
make test-all、Release 构建和驱动边界检查通过。最终安装包为 1,238,975 bytes;App/Driver 均为 1.1.0 / build 14,平台限定为 macOS 26+、Apple Silicon。10 个解包 payload 文件与构建暂存源完全一致,29 个 Payload/BOM 条目及 root:wheel 所有权核对通过,三个二进制的严格 ad-hoc 签名有效;包内未发现 AppleDouble 或本机用户/构建路径。另已验证共享窗口布局、列表尺寸与常见设备名宽度。
本机已完成从 0.6.2 到 1.1.0 的完整安装包升级,并核对安装收据、已安装 App/Driver 的版本与签名、音频服务运行状态及驱动连接。实际运行路径为 /Applications/Sona.app;本次状态检查时没有正在运行的音频流,未以此宣称新的听音或多设备验收结果。
pkgbuild 输出四条 write: Permission denied 告警,根因尚未定位;最终归档完整性检查未发现缺失或损坏文件。
Automated tests (make test-all), Release builds and driver boundary checks passed. The final 1,238,975-byte package contains App/Driver 1.1.0 / build 14, requires macOS 26+ on Apple Silicon, and matches all 10 staged payload files. All 29 Payload/BOM entries and root:wheel ownership were checked. Strict ad-hoc signature checks passed for all three binaries, with no AppleDouble or local user/build paths in the package. Shared-window layout, compact list sizing and common device-name widths were also checked.
A local upgrade from 0.6.2 to 1.1.0 completed using the full package. The installation receipt, installed App/Driver versions and signatures, running audio service and driver connection were checked. The app runs from /Applications/Sona.app. No audio stream was running during the status check; this is not a new listening or multi-device acceptance result.
Four unresolved pkgbuild warnings (write: Permission denied) occurred; final archive integrity checks found no missing or damaged files.
多物理设备、干净环境安装、完整卸载和长期运行的系统化验收仍未补齐。多设备播放不保证采样级同步。显示同步回调的约 60Hz 自检结果并不是实际界面动画帧率测量。
Systematic multi-device, clean-machine installation, complete uninstall and long-run acceptance remain incomplete. Multi-device playback is not guaranteed to be sample-synchronized. The native callback timing smoke test at approximately 60Hz does not measure the app's rendered animation frame rate.
源码采用 FSL-1.1-ALv2 授权。
Sona 1.0.0
Sona 1.0.0 · build 13 · 2026-10-22
适用于 macOS 26 或更高版本的 Apple Silicon Mac。
首个稳定版本
Sona 1.0.0 是首个稳定版本,将现有 0.6.3 的功能与使用体验确立为 1.0 基线。本次未新增功能。
- 在菜单栏为每个应用的各个输出设备独立调节音量,支持单设备、多设备和无输出。
- 应用默认跟随当前默认输出;手动输出选择在暂停和同一进程重建音频客户端后保留,直到该应用退出或 Sona 重启。
- 应用音量、静音和各设备音量继续保存。
- 默认输出变化时,跟随默认的应用立即切换;手动选择其他设备、多设备或无输出的应用保持原选择。仅选中当前默认设备时恢复跟随默认。
新建的辅助音频进程在识别其所属应用之前可能短暂跟随默认输出。请使用完整安装包升级,同时更新 App、驱动和音频服务。
First stable release
Sona 1.0.0 is the first stable release, establishing the existing 0.6.3 feature set and experience as the 1.0 baseline. This release does not add new features.
- Control each app's volume separately for each output from the menu bar, with one, several or no outputs selected.
- Apps follow the current default output unless manually configured. Manual output choices survive pauses and audio-client recreation within the same live process, and reset when the app quits or Sona restarts.
- App volume, mute and per-device levels remain saved.
- Apps following the default switch as soon as it changes; manual selections of other outputs, multiple outputs or no output remain in place. Selecting only the current default resumes following it.
New helper audio processes may briefly follow the default before Sona identifies their owner app. Upgrade with the complete package to update the app, driver and audio service together.
安装与升级 / Installation
中文
- 下载本页的 Sona-1.0.0.pkg。适用于 macOS 26 或更高版本的 Apple Silicon Mac。
- 双击安装包,按照安装器提示输入管理员凭据。安装包会同时更新 App、HAL 驱动和 Sona Audio Service;安装期间会短暂重启系统音频并中断播放。升级也请使用完整安装包,以确保 App 和服务都支持各路独立音量。
- 安装完成后打开
/Applications/Sona.app,点击菜单栏图标开始使用。
签名与 macOS 提示
二进制采用 ad-hoc 签名,安装包未使用 Developer ID 签名,也未经过 Apple 公证。如果 macOS 提示无法验证开发者或无法检查恶意软件,且你确认安装包来自本页,可在尝试打开安装包后前往「系统设置 → 隐私与安全性」,点击「仍要打开」,再确认打开并继续安装。
可选:校验下载文件
将本页的 Sona-1.0.0.pkg.sha256 与安装包放在同一目录。以下以默认下载目录为例:
cd ~/Downloads
shasum -a 256 -c Sona-1.0.0.pkg.sha256预期输出为 Sona-1.0.0.pkg: OK。此步骤用于核对下载文件是否与发布文件一致;如果校验失败,请重新下载并复核。
选中多个设备可同时输出;取消全部设备即让该应用无输出。明确选择的设备断开时,不会自动把声音送回默认扬声器。旧服务不能提供各路独立音量,对应控件会禁用,需一并升级服务。
卸载步骤见 中文 README。
English
- Download Sona-1.0.0.pkg from this release. Requires macOS 26 or later on Apple Silicon.
- Open the package and follow the installer prompts, providing administrator credentials when requested. It installs or updates the app, HAL driver and Sona Audio Service, and briefly restarts system audio, interrupting playback. Use the complete package when upgrading so both the app and service support independent output volumes.
- Open
/Applications/Sona.appand click its menu bar icon to get started.
Signing and macOS prompts
The binaries use ad-hoc signatures. This release is not Developer ID signed or notarized. If macOS says the developer cannot be verified or Apple cannot check for malicious software, and you trust the package downloaded from this release, first try opening it, then go to System Settings → Privacy & Security, click Open Anyway, and confirm that you want to open it to continue installation.
Optional: verify the download
Download Sona-1.0.0.pkg.sha256 into the same folder as the package. For the default Downloads folder, run:
cd ~/Downloads
shasum -a 256 -c Sona-1.0.0.pkg.sha256Expected output: Sona-1.0.0.pkg: OK. This checks that the download matches the published file. If verification fails, download the files again and recheck.
Select multiple devices to play through them simultaneously; clearing every device silences that app. An explicitly selected device becoming unavailable does not send its audio back to the default speakers. Older services cannot provide independent output volumes, so update the service together with the app.
For removal instructions, see the English README.
验证范围 / Validation
本次已完成 make test-all、Release 构建及驱动边界检查;安装包解包后核对了 1.0.0 / build 13、macOS 26+ 与 Apple Silicon 限制、10 个 payload 文件与构建暂存文件一致、29 个 BOM 条目的 root:wheel 所有权、安装脚本与资源、文件权限、二进制架构和严格 ad-hoc 签名。最终包不含 AppleDouble 或本机构建路径,SHA-256 校验通过。
打包过程中 pkgbuild 仍输出四条 write: Permission denied 警告;上述最终归档检查通过,尚未定位该警告的根因。
完整安装包的干净环境安装、旧包升级、卸载、多物理设备及长期运行的系统化验收尚未补齐。日常使用反馈、自动测试和静态包检查不能代替这些验收;多设备播放不保证采样级同步。本次未重新执行生产域服务验收或隔离 XPC 测试。
Automated tests (make test-all), release builds and driver boundary checks passed. The extracted 1.0.0 / build 13 package matches all 10 staged payload files. Checks covered the macOS 26+ and Apple Silicon limits, all 29 BOM entries' root:wheel ownership, installation scripts and resources, file permissions, binary architectures and strict ad-hoc signatures. The package contains no AppleDouble files or local build paths, and its SHA-256 checksum passed.
The build still emitted four unresolved pkgbuild warnings (write: Permission denied); final archive checks passed. Clean-machine installation, upgrade, uninstall, multiple physical outputs and systematic long-term acceptance remain incomplete. Daily-use feedback, automated tests and static package checks do not replace those checks. Multiple outputs are not guaranteed to be sample-synchronized. System-domain service acceptance and isolated XPC tests were not rerun for this release.
源码采用 FSL-1.1-ALv2 授权。
Sona 0.6.3
Sona 0.6.3 · build 12
适用于 macOS 26 或更高版本的 Apple Silicon Mac。
更新
- 修复应用暂停、源音频静音或同一进程重建音频客户端后,手动输出选择意外丢失的问题。
- 手动输出选择保留到当前应用退出或 Sona 重启;下次运行时恢复跟随默认输出。应用音量、静音与各设备音量继续保存。
- 默认输出变化时,跟随默认的应用立即切换;手动选择其他设备、多设备或无输出的应用保持原选择。仅选中当前默认设备时恢复跟随默认。
- 在 macOS 中选择物理输出后,同步 Sona 的默认设备并恢复虚拟输出,以继续逐应用控制。已知音频服务离线时保留物理输出,便于恢复声音。
新建的辅助音频进程在识别其所属应用之前可能短暂跟随默认输出。请使用完整安装包升级,同时更新 App、驱动和音频服务。
What's changed
- Keep manual output choices across pauses, silent source audio and audio-client recreation within the same live process.
- Reset output choices to the current default when the app relaunches or Sona restarts, while retaining app volume, mute and per-device levels.
- Switch apps following the default as soon as it changes; retain manual selections of other outputs, multiple outputs or no output. Selecting only the current default resumes following it.
- Synchronize physical-output changes made in macOS back to Sona, then restore the virtual output so per-app controls continue to apply. Keep a physical-output recovery path when the audio service is known to be offline.
New helper audio processes may briefly follow the default before Sona identifies their owner app. Upgrade with the complete package to update the app, driver and audio service together.
安装与升级 / Installation
中文
- 下载本页的 Sona-0.6.3.pkg。适用于 macOS 26 或更高版本的 Apple Silicon Mac。
- 双击安装包,按照安装器提示输入管理员凭据。安装包会同时更新 App、HAL 驱动和 Sona Audio Service;安装期间会短暂重启系统音频并中断播放。升级也请使用完整安装包,以确保 App 和服务都支持各路独立音量。
- 安装完成后打开
/Applications/Sona.app,点击菜单栏图标开始使用。
签名与 macOS 提示
二进制采用 ad-hoc 签名,安装包未使用 Developer ID 签名,也未经过 Apple 公证。如果 macOS 提示无法验证开发者或无法检查恶意软件,且你确认安装包来自本页,可在尝试打开安装包后前往「系统设置 → 隐私与安全性」,点击「仍要打开」,再确认打开并继续安装。
可选:校验下载文件
将本页的 Sona-0.6.3.pkg.sha256 与安装包放在同一目录。以下以默认下载目录为例:
cd ~/Downloads
shasum -a 256 -c Sona-0.6.3.pkg.sha256预期输出为 Sona-0.6.3.pkg: OK。此步骤用于核对下载文件是否与发布文件一致;如果校验失败,请重新下载并复核。
选中多个设备可同时输出;取消全部设备即让该应用无输出。明确选择的设备断开时,不会自动把声音送回默认扬声器。旧服务不能提供各路独立音量,对应控件会禁用,需一并升级服务。
卸载步骤见 中文 README。
English
- Download Sona-0.6.3.pkg from this release. Requires macOS 26 or later on Apple Silicon.
- Open the package and follow the installer prompts, providing administrator credentials when requested. It installs or updates the app, HAL driver and Sona Audio Service, and briefly restarts system audio, interrupting playback. Use the complete package when upgrading so both the app and service support independent output volumes.
- Open
/Applications/Sona.appand click its menu bar icon to get started.
Signing and macOS prompts
The binaries use ad-hoc signatures. This release is not Developer ID signed or notarized. If macOS says the developer cannot be verified or Apple cannot check for malicious software, and you trust the package downloaded from this release, first try opening it, then go to System Settings → Privacy & Security, click Open Anyway, and confirm that you want to open it to continue installation.
Optional: verify the download
Download Sona-0.6.3.pkg.sha256 into the same folder as the package. For the default Downloads folder, run:
cd ~/Downloads
shasum -a 256 -c Sona-0.6.3.pkg.sha256Expected output: Sona-0.6.3.pkg: OK. This checks that the download matches the published file. If verification fails, download the files again and recheck.
Select multiple devices to play through them simultaneously; clearing every device silences that app. An explicitly selected device becoming unavailable does not send its audio back to the default speakers. Older services cannot provide independent output volumes, so update the service together with the app.
For removal instructions, see the English README.
验证范围 / Validation
本次已完成 make test-all、Release 构建及驱动边界检查;安装包解包后核对了 0.6.3 / build 12、平台要求、10 个 payload 文件与构建暂存文件一致、29 个 BOM 条目、安装脚本、权限、root:wheel 所有权、二进制架构和严格签名校验。最终包不含 AppleDouble 或本机构建路径。
打包过程中 pkgbuild 仍输出四条 write: Permission denied 警告;上述最终归档检查通过,尚未定位该警告的根因。
完整安装包的干净环境安装、旧包升级、卸载、多物理设备及长期运行验收尚未补齐。自动测试和静态包检查不能代替这些验收;多设备播放不保证采样级同步。本次未重新执行生产域服务验收或隔离 XPC 测试。
Automated tests, release builds, driver boundary checks and package inspection passed. The extracted package matches all 10 staged payload files, with checked versions, architectures, scripts, permissions, ownership and strict ad-hoc code signatures. The build emitted four unresolved pkgbuild warnings (write: Permission denied); final archive checks passed. System-domain service acceptance and isolated XPC tests were not rerun for this release. Clean-machine installation, upgrade, uninstall, multiple physical outputs and long-term operation remain unverified. Multiple outputs are not guaranteed to be sample-synchronized.
源码采用 FSL-1.1-ALv2 授权。
Sona 0.6.2
Sona 0.6.2 · build 11
适用于 macOS 26 或更高版本的 Apple Silicon Mac。
更新
- 应用 × 设备独立音量:选中应用的输出设备后,分别调节各路音量。重新选择设备可恢复之前的音量,并支持迁移旧版偏好。
- 更自然的界面过渡:设备切换、设备行增减和面板高度变化采用连贯缓动,已有设备行保持稳定;响应系统“减少动态效果”设置。
- 修复顶部跳动:逐应用选择或取消输出设备时,顶部声音模块保持稳定,避免文字、滑块和边缘短暂偏移。
- 设备按钮使用中性透明玻璃、蓝色选中图标,统一不同设备图标的尺寸与留白。
- 改善音量拖动期间的后台写入与服务重连后的配置恢复,清理重复设计资源和安装包中的 macOS 扩展元数据。
安装与升级 / Installation
中文
- 下载本页的 Sona-0.6.2.pkg。适用于 macOS 26 或更高版本的 Apple Silicon Mac。
- 双击安装包,按照安装器提示输入管理员凭据。安装包会同时更新 App、HAL 驱动和 Sona Audio Service;安装期间会短暂重启系统音频并中断播放。升级也请使用完整安装包,以确保 App 和服务都支持各路独立音量。
- 安装完成后打开
/Applications/Sona.app,点击菜单栏图标开始使用。
签名与 macOS 提示
二进制采用 ad-hoc 签名,安装包未使用 Developer ID 签名,也未经过 Apple 公证。如果 macOS 提示无法验证开发者或无法检查恶意软件,且你确认安装包来自本页,可在尝试打开安装包后前往「系统设置 → 隐私与安全性」,点击「仍要打开」,再确认打开并继续安装。
可选:校验下载文件
将本页的 Sona-0.6.2.pkg.sha256 与安装包放在同一目录。以下以默认下载目录为例:
cd ~/Downloads
shasum -a 256 -c Sona-0.6.2.pkg.sha256预期输出为 Sona-0.6.2.pkg: OK。此步骤用于核对下载文件是否与发布文件一致;如果校验失败,请重新下载并复核。
选中多个设备可同时输出;取消全部设备即让该应用无输出。明确选择的设备断开时,不会自动把声音送回默认扬声器。旧服务不能提供各路独立音量,对应控件会禁用,需一并升级服务。
卸载步骤见 中文 README。
English
- Download Sona-0.6.2.pkg from this release. Requires macOS 26 or later on Apple Silicon.
- Open the package and follow the installer prompts, providing administrator credentials when requested. It installs or updates the app, HAL driver and Sona Audio Service, and briefly restarts system audio, interrupting playback. Use the complete package when upgrading so both the app and service support independent output volumes.
- Open
/Applications/Sona.appand click its menu bar icon to get started.
Signing and macOS prompts
The binaries use ad-hoc signatures. This release is not Developer ID signed or notarized. If macOS says the developer cannot be verified or Apple cannot check for malicious software, and you trust the package downloaded from this release, first try opening it, then go to System Settings → Privacy & Security, click Open Anyway, and confirm that you want to open it to continue installation.
Optional: verify the download
Download Sona-0.6.2.pkg.sha256 into the same folder as the package. For the default Downloads folder, run:
cd ~/Downloads
shasum -a 256 -c Sona-0.6.2.pkg.sha256Expected output: Sona-0.6.2.pkg: OK. This checks that the download matches the published file. If verification fails, download the files again and recheck.
Select multiple devices to play through them simultaneously; clearing every device silences that app. An explicitly selected device becoming unavailable does not send its audio back to the default speakers. Older services cannot provide independent output volumes, so update the service together with the app.
For removal instructions, see the English README.
验证范围
已完成 Release 构建、make test-all、隔离 XPC 握手与会话替换检查,以及安装包版本、架构、签名、权限和 payload 文件核对。隔离 XPC 测试使用独立服务名和离线设备配置;不替代生产域服务或实际输出设备测试。本次界面改动对应的开发构建已在本地安装,由项目作者实际体验并确认动效问题解决;这不是对 0.6.2 完整安装包安装流程的验收。
完整安装包的干净环境安装、旧包升级、卸载、多物理设备及长期运行验收尚未补齐;多设备播放不保证采样级同步。
源码采用 FSL-1.1-ALv2 授权。
Sona 0.6.1 Preview
Sona 0.6.1 Preview · build 10
适用于 macOS 26 或更高版本的 Apple Silicon Mac。
更新
- 重新设计菜单栏声音面板,统一默认输出和逐应用音量、设备选择布局。
- 更新 Flow S 应用与菜单栏图标,采用原生玻璃面板与 SwiftUI 音量滑块,改善展开动画。
- 驱动连接后自动启用音频控制,更新安装完成指引、中英文 README 与实机截图。
- 修复当前 Swift 工具链下的构建产物路径,清理重复开发资源。
下载与安装
下载本页的 Sona-0.6.1.pkg。安装包包含 App、HAL 驱动和后台音频服务,安装需要管理员权限,并会短暂重启系统音频。
这是预览版:二进制采用 ad-hoc 签名,安装包未使用 Developer ID 签名,也未经过 Apple 公证。 如 macOS 阻止打开,请到「系统设置 → 隐私与安全性」选择「仍要打开」。
可同时下载校验文件,在下载目录执行:
shasum -a 256 -c Sona-0.6.1.pkg.sha256安装、使用与卸载步骤见构建与安装指南。
验证范围
已完成构建、自动测试、安装包解包、版本与架构核对、二进制签名校验及 payload 文件比对。完整的干净环境安装、旧版升级、卸载和设备兼容性验收仍待补齐;不以这些检查承诺所有设备兼容或多设备采样级同步。
源码采用 FSL-1.1-ALv2 授权。