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 Placeholder handlers (return <group/> or 404). Active group management (groups.py), supporting /addGroup and stereo pairing logic.
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 (High Priority)

B. Modularize BMX Registry (Medium Priority)

C. Enhanced Source Management (Medium Priority)

D. Basic Admin Web UI (Low Priority)

5. Summary

While our Go implementation is structurally more consistent with recent reference recordings (e.g., buttonNumber, detailed components), SoundCork provides better coverage of multi-device coordination (Groups) and service emulation (BMX) that we should adopt for a more complete offline experience.