com.oppzippy.OpenSCQ30 FSFAP GPL-3.0+ OpenSCQ30 Control Soundcore headphones

Cross platform application for controlling settings of Soundcore headphones and earbuds.

https://raw.githubusercontent.com/Oppzippy/OpenSCQ30/f66a292401d8e157ffa3356e2e03eca1e8b7a860/gui/resources/com.oppzippy.OpenSCQ30.svg https://github.com/Oppzippy/OpenSCQ30 https://github.com/Oppzippy/OpenSCQ30/issues https://github.com/Oppzippy/OpenSCQ30 https://translate.codeberg.org/engage/openscq30/ Oppzippy kyle@kylescheuing.com com.oppzippy.OpenSCQ30.desktop https://raw.githubusercontent.com/Oppzippy/OpenSCQ30/f66a292401d8e157ffa3356e2e03eca1e8b7a860/screenshots/gui-sound-modes.png Sound Mode Settings https://raw.githubusercontent.com/Oppzippy/OpenSCQ30/f66a292401d8e157ffa3356e2e03eca1e8b7a860/screenshots/gui-device-selection.png Device Selection https://raw.githubusercontent.com/Oppzippy/OpenSCQ30/f66a292401d8e157ffa3356e2e03eca1e8b7a860/screenshots/gui-equalizer.png Equalizer Settings https://raw.githubusercontent.com/Oppzippy/OpenSCQ30/f66a292401d8e157ffa3356e2e03eca1e8b7a860/screenshots/gui-quick-presets.png Quick Presets com.oppzippy.OpenSCQ30.desktop

Features

  • Add support for Soundcore Q11i
  • Add support for Soundcore C30i
  • Add support for Soundcore AeroClip
  • Add support for Soundcore Liberty 4
  • Add alarms and "Auto-switch Once Asleep" settings for Soundcore Sleep A30
  • When adding a new device, you can now search by model name (for example, a3957 for Soundcore Liberty 5)
  • Add setting to force light/dark theme, overriding the system setting

Fixes

  • Show a message in the Equalizer category when only one earbud is connected indicating that the equalizer settings are only available when both earbuds are connected.

Features

  • Add support for Soundcore Sleep A30
  • Add support for Soundcore Life P2 Mini
  • Add surround sound for Soundcore P30i

Fixes

  • Disabling Soundcore P31i spatial audio messes up EQ

Features

  • Add support for Soundcore C50i

Fixes

  • More closely match the official Soundcore app's behavior when modifying equalizer
  • Fix many devices having incorrect equalizer presets
  • Fix issue preventing connection with newer firmware versions for some devices
  • Equalizer sliders not showing negative sign in the exclusive range -1 to 0

Fixes

  • Soundcore Space One Pro equalizer not working

Features

  • Add support for Soundcore P31i and R60i NC
  • Add support for Soundcore V20i

Fixes

  • Soundcore Liberty 5 equalizer not working

Features

  • Add support for Soundcore Sport X20
  • Add support for Soundcore Liberty 4 Pro
  • Add option to remove devices from dual connections
  • Add Ctrl+F key bind to select search text input when relevant
  • Add Ctrl+, key bind to open settings
  • Add Escape key bind to close dialogs

Fixes

  • Rename "Soundcore Life Q30" to "Soundcore Q30 / Life Q30" to indicate that both names refer to the same device
  • Fix Soundcore Liberty 5 gaming mode not working
  • Fix Soundcore P40i Equalizer not working
  • Buttons that open the context drawer should instead toggle it

Fixes

  • Soundcore Space A40 equalizer not working

Fixes

  • Dual connections not working with some devices
  • Soundcore Space A40 sound modes fail to set properly and lead to the UI being desynchronized from the device
  • Soundcore Space A40's adaptive noise canceling setting is now read only, since the setting is changed by the device automatically and not by the user.

Features

  • Add support for dual connections on all relevant devices
  • Add Voice Prompt, Low Battery Alert, and LDAC for Soundcore Space Q45
  • Add LDAC for Soundcore Liberty 2 Pro+, Liberty Air 2 Pro, and Liberty 3 Pro
  • Add support for Soundcore Liberty 2 Pro. A known issue is that while the device will remember EQ settings between reconnects, the UI won't, and will show the default EQ settings after a reconnect. This will likely never be fixed in OpenSCQ30, since it's due to weirdness with this specific device that I don't want to bother working around.

Fixes

  • Error connecting to devices with serial numbers containing non-hexidecimal characters
  • Soundcore Liberty 2 Pro+ was incorrectly labeled as Soundcore Liberty 2 Pro
  • Another attempt at fixing Soundcore Motion+ connection issues. I don't think it's likely to succeed, but worth a try.
  • Don't show Soundcore P30i/R50i NC's Gaming Mode on older firmware versions that don't support it
  • Remove ANC Personalized to Ear Canal setting for Soundcore Liberty 5, since the device doesn't actually support that setting
  • Battery level for a disconnected earbud is displayed as 2550%

Features

  • Add support for Soundcore Liberty 3 Pro (A3952)
  • Add support for Soundcore Space One Pro (A3062)
  • Add LDAC toggle for relevant devices. If I missed a device that supports LDAC, please open an issue.

Fixes

  • Error connecting on Linux (br-connection-busy)
  • On Linux, when multiple bluetooth adapters are availabe, don't give up if there is an error with only one of them
  • For devices with wind noise suppression, the device not be in normal mode while toggling wind noise suppression, so if you were to toggle it while in normal mode, it would first switch to noise canceling, toggle it, and then switch back. This 3 step process was unnecessarily being done while in transparency mode as well, despite it being possible to it in one step. This is now fixed, so the 3 step process is only done for normal mode.

Features

  • New logo (thanks to Luca Pio Valerio)
  • Update libcosmic, enabling IME support

Fixes

  • Parse error when connecting to Soundcore P40i in some situations
  • Update pop-os/iced, which has been rebased on iced 0.14, fixing various issues
  • Enable Hebrew and Egyptian Arabic languages now that the crash when using RTL languages has been fixed in pop-os/iced

Features

  • Add support for Soundcore Liberty 5

Fixes

  • Resizing causes window to freeze on x11
  • Crash when running with ICED_BACKEND=tiny-skia on x11
  • Attempt at fixing connection issues for Motion+ and Liberty 2 Pro

Features

  • Add power off action for Soundcore Motion+

Fixes

  • Temporarily disable Hebrew language due to text rendering related crash

Localization

  • Add Hebrew translations (thanks to Lotzi)
  • Update Japanese translations

Fixes

  • Bluetooth not working at all on Windows

Features

  • Add support for Soundcore Space One
  • Add support for Soundcore P20i / Soundcore P25i / Soundcore R50i
  • Add support for Soundcore P40i (thanks to JessFairbairn)

Fixes

  • Fix bluetooth adapters other than the default one being ignored on Linux

Fixes

  • Changing from transparency mode to normal mode with the Soundcore Space A40 no longer makes unnecessary intermediate steps, selecting noise canceling along the way

Fixes

  • Soundcore Space A40 case battery should be out of 10
  • Soundcore Space A40 sound modes not working

This includes all changes since v1.19.3. For those that have been using the beta versions, there have been no notable changes since v2.0.0-beta7.

Breaking Changes

  • Custom equalizer profiles are now device specific. To migrate legacy equalizer profiles, see the Legacy Equalizer Profile Migration tab after connecting to a device.
  • Quick presets are now stored in a different format, and no automatic migration is available, so they must be re-created.
  • Device model auto detection is removed, so you now need to select the device model when connecting.
  • Rewrite using libcosmic
  • Executable renamed from openscq30_gui to openscq30-gui

Features

  • All clients now share the same database format, so it is possible to share the sqlite file amongst them.
  • Connecting to a demo device is now a runtime option rather than compile time. As an exmaple of what this can be used for, exporting a custom equalizer profile without physically having your device with you is now possible.
  • Quick presets now include any setting available for the device rather than having to add support for each setting individually.
  • Add support for new devices: Soundcore Q20i, Soundcore A20i, Soundcore R50i, Soundcore Liberty 4 NC, Soundcore Space Q45, Soundcore Motion+, and Soundcore P30i
  • Show case battery level for relevant devices
  • Add toggles for Gaming Mode, Sound Leak Compensation, Surround Sound, Auto Play/Pause, Wearing Tone, Touch Lock, Low Battery Prompt, and Wearing Detection
  • Add settings page with option to change preferred language. Use this if you want OpenSCQ30 to be in a different language than the one your operating system is set to.

Packaging Changes

  • GTK4 and libadwaita are no longer required
  • cosmic-icons is required on Linux

Localization

  • Add German translations (thanks to Ireozar)
  • Add Turkish translations (thanks to ozer4 and Ferry7466)
  • Add Japanese translations

Features

  • Add support for Soundcore Motion+
  • Add support for Soundcore P30i
  • Show battery level as percentage
  • Add settings page with option to change preferred language. Use this if you want OpenSCQ30 to be in a different language than the one your operating system is set to.

Fixes

  • Soundcore R50i NC should not have transparency modes
  • Soundcore R50i NC had manual and automatic nosie canceling mixed up, causing various issues
  • Gaming mode not working on devices other than Soundcore Liberty 4 NC

Features

  • Show case battery level for Life Note 3, Space A40, Life Note 3S, and Liberty 4 NC
  • Add gaming mode toggle for Life Note 3, Space A40, Life Note 3S, Liberty 4 NC, and R50i NC
  • Add sound leak compensation toggle for Liberty 4 NC
  • Add surround sound toggle for Liberty 4 NC
  • Add auto play/pause toggle for Liberty 4 NC
  • Add wearing tone toggle for Liberty 4 NC
  • Add touch lock toggle for Liberty 4 NC
  • Add low battery prompt toggle for Liberty 4 NC and R50i NC
  • Add wearing detection toggle for Life Q35, Life 2 Neo, Life Note 3, Life Note 3S, and Liberty Air 2 Pro
  • Add battery level for Space Q45
  • Add button configuration for Space Q45

Localization

  • Add more Turkish translations (thanks to ozer4)

Features

  • Add support for Soundcore Liberty 4 NC
  • Add support for Soundcore Space Q45

Fixes

  • Disable HearID when modifying the equalizer, since HearID is not shown in the UI and it overrides the equalizer
  • Soundcore A20i incorrectly displaying buttons as disabled in some situations
  • Life Note 3s button configuration displaying incorrect button actions

Localization

  • Add German translations (thanks to Ireozar)
  • Add Turkish translations (thanks to ozer4)

Features

  • Add Reset Buttons to Default action

Fixes

  • Button configuration not working for various devices
  • None option shown for buttons that can't have their actions disabled
  • Equalizer settings shown when only one earbud is connected
  • Soundcore R50i NC missing TWS status in device information category

Fixes

  • R50i NC sound modes not working
  • Life Q30 not working with firmware version 05.19

Breaking Changes

  • Custom equalizer profiles are now device specific. Legacy equalizer profiles can be migrated after connecting to a device. See the Legacy Equalizer Profile Migration tab after connecting to a device.
  • Quick presets are now stored in a different format, and no automatic migration is available, so they must be re-created.
  • Device model auto detection is removed, so you now need to select the device model when connecting.
  • Rewrite using libcosmic
  • Executable renamed from openscq30_gui to openscq30-gui

Features

  • All clients now share the same database format, so it is possible to share the sqlite file amongst them.
  • Connecting to a demo device is now a runtime option rather than compile time. As an exmaple of what this can be used for, exporting a custom equalizer profile without physically having your device with you is now possible.
  • Quick presets now include any setting available for the device rather than having to add support for each setting individually.
  • Add support for new devices: Soundcore Q20i, Soundcore A20i, Soundcore R50i

Fixes

  • Add missing mac address prefix 88:0E:85

Fixes

  • A3936 packet parsing issues
  • Connection issues on Windows when a device is paired with multiple bluetooth adapters

Fixes

  • Fix newer Life Q30's failing to connect due to parsing error

Fixes

  • Fix serial number not being retrieved for some devices, leading to quick presets not working

Fixes

  • Incorrect button action implementation for all devices. Setting actions somewhat worked, but existing actions were parsed incorrectly.
  • Life Note 3 (A3933) sound mode changes by pressing a button on the device not being handled
  • Space A40 (A3936) button action packet serialization mistake
  • State update packet parse error when the right earbud is the TWS host device
  • Connect using BR/EDR instead of BLE. All Soundcore devices support BR/EDR, but only some support BLE.

Features

  • Add Game Mode button action

Fixes

  • Fix service not found error on Linux unless `bluetoothctl connect` was manually run

Fixes

  • Add missing soundcore mac address ranges for device detection
  • Prioritize filtering by GATT service id rather than mac address, since new mac address ranges are showing up. This isn't possible (or implemented yet) on every client, however.
  • Various Space A40 issues that prevented it from working at all

Fixes

  • Fix Space A40 (A3936) state update packet parsing

Features

  • Add support for Space A40 (A3936)
  • Add support for Vortex (A3031)

Fixes

  • Fix Liberty 2 Pro (A3930) packet parse error
  • Quick presets resetting to default values
  • Sound mode options unsupported by the device visible in quick presets

Fixes

  • Remove broken gtk binding that was ignored and had no effect other than a critical log message

Features

  • Add custom equalizer profile importing/exporting

Build

  • Replace `cargo-make` with `just`

Fixes

  • Fix some circumstances where the volume adjustments matching a custom profile would be selected, but the dropdown would not show the profile as selected
  • Custom equalizer profile sorting is now case insensitive
  • Icon colors now adapt when using dark theme
  • Write config file to temp file first before overwriting to work around potential data loss if writing is interrupted
  • The config file is no longer overwritten with the exact same content during every application startup

Fixes

  • Feature not supported error when changing ambient sound mode cycle even when the feature is supported
  • Custom noise canceling option sometimes not visible when it should be, and sometimes visible when it shouldn't be
  • Rename button action "Trans" to "Ambient Sound Mode", since that's what it does, cycles through ambient sound modes
  • Devices other than Q30 potentially not working on Linux

Fixes

  • Fall back to default values when device is in an invalid state rather than failing to connect

Fixes

  • Fix A3933 and A3939 state update packet parsing

Fixes

  • A3933 equalizer not working

Features

  • Support for A3945 (Note 3S), A3933 (Note 3), and A3939 (Life P3)

Features

  • Partial support for A3945, A3933, and A3939. Not ready for general use.

Features

  • Add quick presets
  • Add button keybinding settings
  • Add hear id settings

Fixes

  • Localize equalizer preset names

Dependencies

  • Minimum gtk4 version increased to v4.12 (GNOME 45)
  • Minimum libadwaita version increased to v1.4 (GNOME 45)

Fixes

  • Bluetooth initialization when launching the application will no longer block the window from showing

Features

  • Add experimental support for new devices: A3027, A3028, A3030, A3033, A3033EU, A3926, A3926Z11, A3930, A3931, A3931XR, A3935, A3935W, A3951
  • Add support for custom transparency mode
  • Add support for custom noise canceling mode
  • Add device information tab

Fixes

  • Fix non-soundcore devices showing in device list

Fixes

  • Go back to device selection screen immediately when device disconnects

Fixes

  • Improve handing of device disconnects. How this is implemented varies by platform. The desktop GUI could still use some more work.