Skip to content

Latest commit

 

History

History
163 lines (133 loc) · 4.95 KB

File metadata and controls

163 lines (133 loc) · 4.95 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Initial project setup
  • Complete installation automation
  • USB Audio Class 2 gadget configuration
  • Automatic audio routing via ALSA
  • Systemd service integration
  • Comprehensive documentation
  • Hardware compatibility testing
  • Troubleshooting guides

[1.0.0] - 2024-09-27

Added

  • Core Functionality

    • USB Audio Class 2 (UAC2) gadget implementation
    • Automatic audio routing from USB to audio hardware
    • Support for Merus audio HATs, HiFiBerry devices, USB audio interfaces
    • Systemd service management for reliability
    • Stereo audio support at 48kHz/16-bit
  • Installation System

    • One-command installation script (install.sh)
    • Automatic hardware detection and configuration
    • Boot configuration management (dwc2 overlay, kernel modules)
    • Service enablement and startup automation
    • Clean uninstallation support (cleanup.sh)
  • Documentation

    • Comprehensive README with quick start guide
    • Detailed installation instructions
    • Hardware compatibility guide
    • Troubleshooting documentation
    • Contributing guidelines
  • Validation and Testing

    • Setup validation script (validate-setup.sh)
    • Manual routing script for testing (start-routing.sh)
    • Service status monitoring
    • Audio device detection and verification
  • Hardware Support

    • Raspberry Pi Zero W (primary target)
    • Raspberry Pi Zero 2 W
    • Raspberry Pi 4 (with OTG configuration)
    • Merus Amp HAT (MA120x0P)
    • HiFiBerry DAC/Amp series
    • USB Audio Class 1/2 devices
    • Built-in 3.5mm audio output
  • Host OS Compatibility

    • Linux (PulseAudio, ALSA, PipeWire)
    • Windows 10/11 (native UAC2 support)
    • macOS 10.14+ (Core Audio)
    • Android 5.0+ (USB OTG)
  • Legal and Licensing

    • GNU General Public License v3.0
    • Copyright attribution system
    • Contributor guidelines

Technical Details

  • USB Gadget Framework configuration via configfs
  • ALSA loopback using alsaloop for real-time audio forwarding
  • Composite USB device with UAC2 audio function
  • Automatic service dependency management
  • Error handling and restart policies
  • Audio format negotiation and conversion

Performance

  • Low latency audio routing (10-50ms typical)
  • <5% CPU usage on Pi Zero W during playback
  • Stable 24+ hour operation
  • Automatic recovery from power cycling
  • Bus-powered operation

Known Issues

  • Some USB 3.0 ports may require USB 2.0 compatibility mode
  • Audio quality limited by Pi Zero's power delivery capabilities
  • Manual configuration required for non-standard audio hardware
  • Windows 7/8 not supported (no UAC2 driver)

Breaking Changes

  • None (initial release)

Development Notes

Version Numbering

  • MAJOR.MINOR.PATCH (Semantic Versioning)
  • MAJOR: Breaking changes requiring user intervention
  • MINOR: New features, hardware support, significant improvements
  • PATCH: Bug fixes, documentation updates, minor improvements

Release Process

  1. Test on multiple hardware configurations
  2. Update documentation and changelog
  3. Validate all scripts and services
  4. Create release notes
  5. Tag release in Git
  6. Update project README if needed

Planned Features for Future Releases

v1.1.0 (Minor Release)

  • Web-based configuration interface
  • Automatic audio hardware detection
  • Multiple audio endpoint support
  • Sample rate negotiation improvements
  • Audio effects processing pipeline

v1.2.0 (Minor Release)

  • MIDI support
  • Volume control integration
  • Advanced buffer management
  • Multi-channel audio support (>2 channels)
  • Configuration file system

v2.0.0 (Major Release)

  • Python-based management system
  • REST API for configuration
  • Multiple simultaneous host connections
  • Audio streaming protocols (AirPlay, DLNA)
  • Mobile app for configuration

Compatibility Promise

  • v1.x releases will maintain backwards compatibility
  • Configuration files and service names will remain stable
  • Breaking changes only in major version updates
  • Migration guides provided for major version changes

Support Policy

  • v1.x: Active development and bug fixes
  • Previous versions: Security fixes only
  • End-of-life: 12 months after major version release

Contributing to Changelog

When contributing, please:

  1. Add entries to [Unreleased] section
  2. Use consistent formatting
  3. Group changes by type (Added, Changed, Deprecated, Removed, Fixed, Security)
  4. Include issue/PR references where applicable
  5. Write clear, user-focused descriptions

Change Categories

  • Added: New features
  • Changed: Changes in existing functionality
  • Deprecated: Soon-to-be removed features
  • Removed: Removed features
  • Fixed: Bug fixes
  • Security: Vulnerability fixes