Bose SoundTouch Toolkit

Documentation for controlling and preserving Bose SoundTouch devices

View the Project on GitHub gesellix/Bose-SoundTouch

Parity Analysis: Bose-SoundTouch (Go) vs. SoundCork (Python)

This document provides a comparative analysis of the current Go implementation and the deborahgu/soundcork project, identifying functional gaps and potential improvements.

1. Core Architecture and Language

2. Functional Comparison

Feature Bose-SoundTouch (Go) SoundCork (Python)
Group Management Full CRUD: POST /group, POST /group/{id}, DELETE /group/{id} with XML datastore persistence (Group_{id}.xml). Active group management (groups.py), supporting /addGroup and stereo pairing logic.
ZeroConf Priming Full DH key exchange + encrypted blob; fallback to tokenType=accesstoken for older firmware. Simple tokenType=accesstoken push only; token expires after ~60 minutes.
BMX Services Supports TuneIn, Orion, and custom streams. More modular bmx_services.json registry with broader mock support.
Persistence Mixed JSON/XML datastore. Pure XML-based persistence per device/account.
Admin UI CLI-based (soundtouch-cli) or API-driven. Draft Web UI for device discovery and account management (admin.py).
Discovery Integrated setup tools and SSDP/MDNS awareness. Leverages bosesoundtouchapi Python library for active discovery.

3. Key Strengths of SoundCork

4. Suggested Implementation Steps for Bose-SoundTouch

✅ A. Implement Full Group Support (Completed)

✅ B. Proper ZeroConf Spotify Blob (Completed)

C. Modularize BMX Registry (Medium Priority)

D. Enhanced Source Management (Medium Priority)

E. Basic Admin Web UI (Low Priority)

5. Summary

Group support and ZeroConf Spotify priming are now feature-complete in AfterTouch. The Go implementation is structurally more consistent with recent reference recordings (e.g., buttonNumber, detailed components). SoundCork’s remaining functional advantages are:

For the broader ecosystem context (feature matrix across all community projects, AfterTouch open tasks, and cross-project observations) see docs/analysis/bose-soundtouch-community-tools.md.