Skip to content

About

🎧 Modern macOS controller for Sony headphones β€” Noise Cancelling, Ambient Sound, EQ & battery β€” with support for newer models (WH-CH720N, WH-1000XM4/XM5) via Sony's v2 Bluetooth protocol. Native SwiftUI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Β 
Β 

Latest commit

Β 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎧 SonyBridge

Control your Sony headphones from your desktop β€” the way the mobile app won't let you.

A modern, native macOS app (with cross-platform roots) to control Sony headphones over Bluetooth: Noise Cancelling, Ambient Sound, Equalizer, and Battery β€” including newer models like the WH-CH720N and WH-1000XM4/XM5 that speak Sony's second-generation protocol.


Platform UI Language License PRs Welcome


SonyBridge connected to WH-CH720N

Why

Sony locks headphone settings behind their mobile-only Sound Connect app. If you live on a laptop, you're stuck. SonyBridge talks to the headphones directly over Bluetooth RFCOMM using Sony's reverse-engineered binary protocol β€” no phone required.

The original SonyHeadphonesClient only spoke Sony's first-generation protocol, so newer headsets (WH-CH720N, XM4/XM5, WF-series, LinkBuds…) just timed out on connect. SonyBridge adds full second-generation ("v2") protocol support and a clean SwiftUI interface built for those devices.

✨ Features

  • 🎚️ Ambient Sound Control β€” Noise Cancelling Β· Ambient Sound (0–20 levels) Β· Off
  • πŸ—£οΈ Focus on Voice passthrough
  • πŸŽ›οΈ Equalizer β€” presets and a full Manual mode with 5 bands + Clear Bass sliders
  • ✨ DSEE β€” toggle Sony's audio upscaling for compressed sources
  • πŸ”‹ Battery level β€” live percentage, right in the header
  • πŸ–ΌοΈ Device banner β€” your headphones' official Sony product image
  • πŸ”Œ Auto-connect β€” finds your already-paired Sony headset, no fiddly device picker
  • πŸŒ‘ Native SwiftUI β€” dark, minimal, and shaped after Sony's own app
  • 🧩 Dual-protocol β€” automatically detects and speaks either protocol generation
Disconnected state

🎧 Supported headphones

Status Devices
βœ… Verified WH-CH720N
🟒 Expected (v2, over-ear β€” NC/Ambient/battery/EQ) WH-1000XM5, WH-1000XM6, WH-XB910N, WH-CH520
🟑 v2 earbuds (controls work; battery format differs) WF-1000XM4, WF-1000XM5, WF-C700N, LinkBuds S
πŸ”΅ Legacy (v1 protocol β€” NC/Ambient only) WH-1000XM4, WH-1000XM3, WH-1000XM2, WH-XB900N, MDR-XB950BT

Only the WH-CH720N is hardware-verified. Others share the same protocol family, so the basics should work β€” per-model quirks are untested. Each supported model shows its official product image in the app. Reports and PRs for other devices are very welcome.

πŸ“¦ Install (macOS)

Homebrew

brew tap AmitRajput-Dev/tap
brew install --cask sonybridge

Homebrew asks you to trust the tap the first time (brew trust AmitRajput-Dev/tap) β€” it's a third-party tap. The cask clears the Gatekeeper quarantine flag for you on install.

Direct download

Grab SonyBridge-macOS.zip from the latest release, unzip, and move SonyBridge.app to /Applications. The app is ad-hoc signed (not notarized β€” no paid Apple Developer account), so allow it once:

xattr -dr com.apple.quarantine /Applications/SonyBridge.app

…or right-click the app β†’ Open β†’ Open.

Then: connect your headphones in macOS Bluetooth settings first, open SonyBridge, and hit Connect.

πŸ’‘ Keep audio playing while you use the app β€” Sony headsets drop the Bluetooth control link when idle to save power.

πŸš€ Build from source

macOS (native SwiftUI app)

Requires Xcode 14+.

git clone --recurse-submodules https://github.com/AmitRajput-Dev/SonyBridge.git
open SonyBridge/Client/macos/SonyHeadphonesClient.xcodeproj

Then ⌘R.

Windows / Linux (Dear ImGui UI, inherited from upstream)

Build instructions

Windows (CMake + MSVC, from a Developer Command Prompt):

cd Client && mkdir build && cd build
cmake .. && cmake --build .

Linux (sudo apt install libbluetooth-dev libglew-dev libglfw3-dev libdbus-1-dev):

cd Client && mkdir build && cd build
cmake .. && cmake --build .

The macOS SwiftUI interface is macOS-only; Windows/Linux use the original Dear ImGui GUI.

πŸ”¬ How it works

Sony headphones expose a vendor RFCOMM/SPP service. Commands are framed as:

<START 0x3e> ESCAPE( <TYPE> <SEQ> <4-byte BE length> <PAYLOAD> <checksum> ) <END 0x3c>

Two protocol generations exist, distinguished by their SDP service UUID:

  • v1 β€” 96CC203E-… β€” WH-1000XM3 and older
  • v2 β€” 956C7B26-… β€” WH-CH720N, XM4/XM5, WF-series, LinkBuds…

SonyBridge tries v1 first, falls back to v2, and remembers which succeeded. The v2 path adds the mandatory init handshake and per-frame host-ACK the newer devices require, plus battery and equalizer inquiry/response commands.

Protocol details were reverse-engineered by the community. Battery and EQ byte layouts in particular were cross-referenced against GadgetBridge's excellent Sony implementation.

πŸ™ Credits

SonyBridge builds directly on the work of:

  • SonyHeadphonesClient by Plutoberth, Mr-M33533K5, and contributors β€” the original cross-platform client and protocol foundation
  • semvis123 β€” the original macOS port
  • GadgetBridge β€” reverse-engineered v2 protocol reference (battery, EQ)

⚠️ Disclaimer

This project is not affiliated with, endorsed by, or connected to Sony. It talks to your headphones using a reverse-engineered protocol, for interoperability. Use at your own risk.

πŸ“„ License

MIT β€” see the LICENSE file. Original copyright retained; see Credits.

About

🎧 Modern macOS controller for Sony headphones β€” Noise Cancelling, Ambient Sound, EQ & battery β€” with support for newer models (WH-CH720N, WH-1000XM4/XM5) via Sony's v2 Bluetooth protocol. Native SwiftUI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages