Skip to content

HomePodCast 1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Oct 14:08
503fe1f

HomePodCast 1.0.0, the first stable release after 0.2.2. It is the source of 1.0.0 beta 6, tested on a HomePod (2nd generation) with HomePod software 27. Not code-signed yet, so SmartScreen may warn ("More info" → "Run anyway"). With 0.2.2 or a 1.0.0 beta installed: Settings → Updates → Check for updates.

New since 0.2.2

  • Never takes over a speaker another device is playing to. While an iPhone or a Mac plays to the HomePod, Connect asks first, and an automatic connect waits until it is free.
  • Speaker info (Settings → Speaker info): model, system and AirPlay versions, IP address, the Wi-Fi MAC address (find the HomePod in your router to see its band or give it a fixed IP), Bluetooth address, device ID, the group it belongs to, and its processing time.
  • Playback profiles: save a whole setup (speaker, scene and latency, routing, effects, volume limit, night mode) under a name and apply it in one click; it reconnects only when the speaker or the latency changes.
  • A/V calibration that is used: the sync test's result is kept per speaker and audio source and corrects the picture delay for video players and the browser extension.
  • Independent HomePod volume per app in the Mixer (uses per-app routing, about 35 ms more latency).
  • Diagnostics: Settings → Tools → Export diagnostics saves a ZIP with a measurement summary and the log, names and addresses removed (best effort); nothing is uploaded. A global hotkey (no key by default) marks the moment you hear a stutter.
  • Network status on Home: counts the possible dropouts in the last 10 minutes and, when the Wi-Fi delay goes beyond what the latency can absorb, suggests a latency and names the likely cause (the HomePod's Wi-Fi, this PC's Wi-Fi, or an Apple TV home theater).
  • HomePod as an Apple TV's home theater speaker (experimental): HomePodCast takes it over for as long as it is connected, without a PIN and without switching the TV on; Settings can make it ask first. Not yet tried with a real Apple TV, in particular whether the Apple TV takes the HomePod back afterwards.
  • Apple TV as a speaker after a one-time PIN pairing (experimental, not yet tested on a real Apple TV).
  • Browser extension 1.0.0: "Sync fullscreen" keeps the site's controls, captions and danmaku; the controls appear only on hover or Alt; Alt+←/→ (Shift: 20 ms) adjusts the delay with a per-site offset.
  • Clear messages when the microphone is blocked by Windows privacy settings, and Settings → Tools → Open log folder.
  • Ready for the Microsoft Store: the app adapts when installed from the Store (firewall rule from the package, startup task, its own storage, updates by the Store). The Store listing follows.

Fixed since 0.2.2

  • Home showed dropouts at a high latency that couldn't be heard (unanswered pings that say nothing about delay were counted).
  • Switching to a profile for another speaker could later send the previous speaker's volume to the new one.
  • While waiting to reconnect, Home and the tray panel said "Disconnect"; they now say "Connect", and a click connects at once.
  • Layout: drop-down text at 150 % scaling, texts cut off on the speaker card and in the tray panel, the German profile picker, controls cut off at the minimum window width, a misplaced row on the microphone card.
  • The browser extension could throw an error when leaving sync fullscreen.

Verified

  • On the real HomePod: streaming at the Gaming (105 ms) and Recommended (120 ms) scenes, the busy-speaker rules, the network status, the in-app update from one version to the next.
  • On every CI build: the in-app MSI update, the installer (install, upgrade, uninstall, the Chinese wizard), the Microsoft Store package, the browser extension in Chrome, and every page of the app in three languages at 100 and 150 % scaling, besides about 1,100 unit tests.

Known issues

  • While a HomePod is an Apple TV's home theater speaker, the two keep a link that takes up the Wi-Fi at regular intervals; below about 200 ms latency this causes dropouts. For gaming, set the Apple TV's audio output back to the TV.
  • Stereo pairs and multi-room are still experimental: built from protocol research, not yet tested on real speakers.

HomePodCast 1.0.0:0.2.2 之后的第一个正式版,源码就是 1.0.0 测试版 6,在 HomePod 第二代(HomePod 软件 27)上测过。程序未签名,Windows 可能弹出 SmartScreen 提示(点「更多信息」→「仍要运行」)。装着 0.2.2 或 1.0.0 测试版的话,在 设置 →「软件更新」里点「检查更新」就能升级。

0.2.2 以来的新功能

  • 不会挤掉正在用音箱的其他设备:iPhone 或 Mac 正在往 HomePod 推送时,点「连接」会先问;自动连接会等它空闲。
  • 音箱信息(设置 →「音箱信息」):型号、系统和 AirPlay 版本、IP 地址、Wi-Fi MAC 地址(可以在路由器里找到 HomePod,看它连的频段或给它固定 IP)、蓝牙地址、设备 ID、所在分组和它自己的处理时间。
  • 使用配置:把整套设置(音箱、场景和延迟、分流、音效、音量上限、夜间模式)存成一个名字,一键应用;只有换了音箱或延迟才重连。
  • 音画校准真正生效:同步测试的结果按音箱和音源分别保存,用来修正播放器和浏览器插件的画面延迟。
  • 混音器里每个程序单独的 HomePod 音量(会启用按程序分流,多约 35 ms 延迟)。
  • 诊断:设置 →「工具」→「导出诊断」保存一个 ZIP,包含统计摘要和日志,名称和地址会尽量隐藏,不会上传。还可以设一个全局快捷键(默认没有),听到卡顿时按一下记下时间。
  • 首页的网络状态:统计最近 10 分钟可能断音的次数;Wi-Fi 延迟超出延迟余量时会建议一个延迟,并指出可能的原因(HomePod 那边的 Wi-Fi、电脑这边的 Wi-Fi,或 Apple TV 家庭影院)。
  • HomePod 当 Apple TV 的家庭影院音箱时(实验性):HomePodCast 连接期间临时接管它,不需要配对码,也不会打开电视;可以在设置里改成先询问。还没在真实的 Apple TV 上试过,特别是之后 Apple TV 会不会把 HomePod 要回去。
  • 把 Apple TV 当音箱,在电视上配对一次即可(实验性,尚未在真实 Apple TV 上验证)。
  • 浏览器插件 1.0.0:「同步全屏」保留网站自己的控制栏、字幕和弹幕;控制按钮只在鼠标移上去或按 Alt 时出现;Alt+←/→(加 Shift 为 20 ms)调整延迟,按网站保存偏移。
  • 麦克风被 Windows 隐私设置拦住时给出明确的提示;设置 →「工具」→「打开日志文件夹」。
  • 为 Microsoft Store 做好了准备:从商店安装时,防火墙规则、开机启动、存储位置和更新都由商店的方式处理。商店上架随后进行。

0.2.2 以来的修复

  • 延迟设得高时,首页显示了听不出来的断音(没回应的 ping 不代表网络慢,却被算了进去)。
  • 用使用配置切换到另一只音箱后,之后可能把旧音箱的音量发给新音箱。
  • 等待重连时,首页和托盘面板显示「断开」;现在显示「连接」,点一下立刻重连。
  • 界面:150% 缩放下下拉列表的文字位置、音箱卡片和托盘面板里被截断的文字、德语的配置选择框、窗口最窄时被裁掉的控件、麦克风卡片上错位的一行。
  • 浏览器插件退出同步全屏时可能报错。

验证情况

  • 在真实 HomePod 上:「游戏」(105 ms)和「推荐」(120 ms)场景推流、音箱被占用时的规则、网络状态、从上一个版本自动更新。
  • 每次 CI 构建:MSI 应用内更新、安装包(安装、升级、卸载、中文向导)、Microsoft Store 版、Chrome 里的浏览器插件,以及程序每个页面的三种语言、100% 和 150% 缩放,另外还有约 1100 个单元测试。

已知问题

  • HomePod 当 Apple TV 的家庭影院音箱时,两者之间会一直保持一条连接,定时占用 Wi-Fi;延迟低于约 200 ms 时会断音。打游戏时请在 Apple TV 上把音频输出改回电视。
  • 立体声对和多房间仍是实验性功能:根据协议资料实现,还没在真实音箱上测过。