- Add protobuf (required for google.protobuf in mumble_pb2.py)
- Add pycryptodome (required for Crypto in crypto.py)
- These were lost when pymumble was integrated into the project
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace audioop module (removed in Python 3.13) with NumPy
- Implement _apply_volume() method using NumPy for volume adjustment
- Update RMS calculation in ducking_sound_received() to use NumPy
- Add numpy to requirements.txt
- Add silent flag to CachedItemWrapper for join sounds
- Join sounds now play without channel announcements
- Regular playlist items still respect announce_current_music config
- Update CLAUDE.md to document changes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>