/SonyHeadphonesClient

A {Windows, macOS, Linux} client recreating the functionality of the Sony Headphones app

Primary LanguageC++MIT LicenseMIT

Sony Headphones Client

This project features a PC alternative for the mobile-only Sony Headphones app.

Program Showcase


macOS Linux & Windows Github all releases Donate

Table of Contents

Disclaimer

THIS PROGRAM IS NOT AFFILIATED WITH SONY. YOU ARE RESPONSIBLE FOR ANY DAMAGE THAT MAY OCCUR WHILE USING THIS PROGRAM.

Download

You can download compiled versions of the client from the releases page.

Note: If you're getting an error like VCRUNTIME140_1.dll was not found, you need to install the Microsoft VC++ Redistributable.

Motivation

I recently bought the WH-1000-XM3s, and I was annoyed by the fact that I couldn't change their settings while using my PC. So I reverse-engineered the application (for intercompatibility purposes, of course), defined the protocol, and created with an alternative application with Mr-M33533K5.

Features

  • Ambient Sound Control
  • Disabling noise cancelling
  • Virtual Sound - VPT and Sound Position
  • Display battery life and fetch existing settings from device
  • Equalizer

Supported Platforms And Headsets

Please report about your experiences using other Sony headsets in the Headset Reports issue.

  • Windows
  • Linux
  • macOS
  • TempleOS

For Developers

git clone --recurse-submodules https://github.com/Plutoberth/SonyHeadphonesClient.git

Issue this incantation to fix submodule issues:

git submodule sync
git submodule update

Protocol Information

Some enums and data are present in the code. The rest has to be obtained either statically or dynamically.

Sniffing messages - See this helpful comment by @guilhermealbm.

Compiling

Windows

Install cmake (3.29.3 works) and install Visual Studio Community 2022 the C++ components:

  • MSVC - VS 2022 C++ x64/x86 build tools
  • Windows SDK

From within Visual Studio Run the Tools --> Command Line --> Developer Command Prompt and then:

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

Linux

Debian / Ubuntu:

sudo apt install libbluetooth-dev libglew-dev libglfw3-dev libdbus-1-dev

Fedora:

sudo dnf install bluez-libs-devel glew-devel glfw-devel dbus-devel

macOS

Use the provided xcodeproj file.

Contributors

License

Distributed under the MIT License. See LICENSE for more information.