Independent open source · Linux · Windows · macOS

Your Sony headphones.
Without the phone.

Noise cancelling, ambient sound, a five‑band equalizer, DSEE and battery — all from your desktop. No mobile app, no Sony account.

MIT licensed · not affiliated with Sony · C++20 SDK, daemon and CLI included
Sony Device Center showing a connected WH-1000XM5 with an 87 percent battery ring, ambient sound active and a Bass Boost equalizer preset

Sony put your headphones
behind a phone app.
This takes them back.

The app

Every control, one window.

A native Qt 6 desktop app. It reads capabilities from the device profile, so you only ever see the controls your headphones actually have.

Noise Control page with noise cancelling, ambient sound and off modes, an ambient level slider set to 10 and a Focus on Voice toggle Equalizer page with preset chips, five band sliders and a Clear Bass slider Sound and device features page with DSEE Extreme, Speak-to-Chat, Adaptive Volume and Auto Power-Off Settings page with launch at startup, display language, app version and community links
Isolation

Let in as much of the world as you want.

Switch between active noise cancelling, ambient sound and off. Ambient runs the full 1–20 range Sony's own app exposes, and Focus on Voice lifts speech while the low rumble stays out.

ANCAmbient 1–20Focus on Voice
Signature

Five bands, plus Clear Bass.

Every built-in preset — Bright, Excited, Mellow, Relaxed, Vocal, Bass Boost, Treble Boost, Speech — or dial your own curve across 400 Hz to 16 kHz with a dedicated sub-bass control.

8 presets5-band ±10 dBClear Bass
Behaviour

The settings buried three menus deep.

DSEE Extreme upscaling, Speak-to-Chat, Adaptive Volume and Auto Power-Off. Each one is enabled from the device's capability profile, so nothing here pretends to work on hardware that doesn't support it.

DSEESpeak-to-ChatAdaptive VolumeAuto Power-Off
Yours

Starts with your session. Speaks your language.

Launch at login, six interface languages, and a dark UI that respects your desktop rather than fighting it. No account, no telemetry, nothing phoning home.

AutostartEN · PT · ES · DE · FR · JANo telemetry
Under the hood

Two protocol generations. One codebase.

Sony headphones expose a vendor RFCOMM service. Device Center frames commands on the wire, handles the alternating-bit ACK the newer models require, and reads state straight back from the headset.

3E ESCAPE( TYPE SEQ LENGTH·4·BE PAYLOAD… CHECKSUM ) 3C

Escaped framing

Start and end markers bound every frame; 3C, 3D and 3E inside the body are escaped so they can never be mistaken for a delimiter. Checksums are verified on the way in.

106 tests · no hardware required

V1 and V2, kept apart

The generations disagree dangerously: opcode 0x22 requests battery on V2 and means power off on V1. They live behind separate implementations, with a regression test proving V1 never emits it.

ProtocolV1 · ProtocolV2 · shared session

Reliable transport

A single reader thread parses the byte stream into frames, matches responses to requests, ACKs notifications and survives fragmentation, timeouts and mid-frame disconnects.

Fault injection · sanitizers in CI
Compatibility

Across the Sony lineup.

Devices are only marked verified after real hardware confirms them — never on protocol similarity alone. The full matrix lives in the repository.

VerifiedWH-1000XM5
VerifiedWH-1000XM4
VerifiedWH-1000XM3
V2 expectedWH-1000XM6
V2 expectedWF-1000XM5
V2 expectedWF-1000XM4
V2 expectedWH-CH720N
V2 expectedULT WEAR
V2 expectedLinkBuds S
V2 expectedWF-C700N
Legacy V1WH-XB900N
Legacy V1MDR-1000X
More than a window

An app, a daemon, a CLI and an SDK.

The desktop app is one client. Everything underneath is a reusable C++20 library you can build against.

sonyctl

Bind noise cancelling to a keyboard shortcut. Check battery from your status bar. Script anything the app can do.

$sonyctl anc on
$sonyctl eq bass-boost

sonyd

A background daemon that owns the Bluetooth link and serves the app and the CLI over a local socket, so they never fight over the connection.

systemd user unit included

The libraries

sony-transport, sony-protocol and sony-core — transport abstraction, framing and device state, with a deterministic fake transport for tests.

C++20 · no Qt dependency
Get started

Install in a minute.

Pair your headphones in your system Bluetooth settings first, then open Device Center.

Linux

$sudo dnf install ./sony-device-center-*-Linux.rpm
$sudo apt install ./sony-device-center-*-Linux.deb
RPM, DEB and tarball · needs Qt 6, BlueZ and D-Bus
Latest release →

Windows

Run the MSI, or unpack the ZIP. Qt and the MSVC runtime are bundled — there is nothing else to install.

The daemon is Linux-only for now; on Windows the app talks to the headset directly.
Download MSI →

macOS

Open the DMG and drag Sony Device Center to Applications. One universal build for Apple silicon and Intel, Qt included.

macOS 13+ · not yet signed with a Developer ID, so the first launch is right-click → Open
Download DMG →

From source

CMake and a C++20 compiler. Builds the app, the daemon, the CLI and the libraries together.

$cmake -B build && cmake --build build
Build guide →