Skip to content

Clementine Extendet - #7412

Open
Wacken2012 wants to merge 5 commits into
clementine-player:masterfrom
Wacken2012:master
Open

Clementine Extendet#7412
Wacken2012 wants to merge 5 commits into
clementine-player:masterfrom
Wacken2012:master

Conversation

@Wacken2012

Copy link
Copy Markdown

Extended Smart Playlist and Audio Backend Improvements

This PR introduces two major enhancements to Clementine:

1. Extended Smart Playlist Functionality

  • Added new ExtSmartPlaylistDialog for enhanced playlist creation
  • Integrated smart playlist dialog into main window UI
  • Added keyboard shortcut (Ctrl+Shift+N) for quick access
  • Improved playlist management options
  • Updated UI text for better clarity

2. Advanced Audio Backend Management

New Features

  • Implemented AudioBackendManager for dynamic backend switching
  • Added IAudioBackend interface for unified audio backend support
  • Introduced BitPerfect playback mode in GstEngine
  • Added support for multiple sample rates (44.1kHz, 48kHz, 96kHz, 192kHz)
  • Added support for multiple bit depths (16-bit, 24-bit, 32-bit)

Audio Quality Improvements

  • BitPerfect mode for pristine audio playback
  • High-resolution audio support up to 32-bit/192kHz
  • Enhanced GStreamer pipeline with format detection
  • Runtime format switching capabilities

User Interface

  • Added audio backend selection menu
  • Implemented backend configuration dialog
  • Added quality settings controls (bit depth, sample rate)
  • Added playback mode selection (Standard/BitPerfect)

Technical Details

  • All new code follows existing code style
  • Added necessary CMake configurations
  • Updated build system for new components
  • All changes are fully backwards compatible

Testing

The changes have been tested with:

  • Various audio formats (MP3, FLAC, WAV)
  • Different sample rates and bit depths
  • Both standard and BitPerfect playback modes
  • Multiple audio backends

Documentation

All new features are documented in the code with appropriate comments and logging for debugging purposes.


These improvements enhance Clementine's audio capabilities while maintaining its user-friendly interface. The changes are designed to be non-intrusive for users who prefer the default settings while providing advanced options for audiophiles.

Stefan added 2 commits September 3, 2025 22:07
- Add ExtSmartPlaylistDialog for enhanced playlist creation
- Integrate new dialog into main window UI
- Add keyboard shortcut (Ctrl+Shift+N) for smart playlists
- Update UI text for better clarity
- Improve playlist management options
- Add AudioBackendManager for dynamic backend switching
- Implement IAudioBackend interface for audio backends
- Add BitPerfect playback mode to GstEngine
- Add support for multiple sample rates and bit depths
- Add backend configuration UI in main window
- Update build system for new audio components
@hatstand

hatstand commented Sep 4, 2025

Copy link
Copy Markdown
Contributor

What are you actually wanting to accomplish here? Do not use AI to answer this question.

@Wacken2012

Copy link
Copy Markdown
Author

What are you actually wanting to accomplish here? Do not use AI to answer this question.

Hey,
im trying to combine the Clementine App with Aimp Features and funktions.

Why should i use AI to answer questions?
I have learned to write myself 😜

@hatstand

hatstand commented Sep 4, 2025

Copy link
Copy Markdown
Contributor

Ok, but why is this attempting to add ffmpeg & was backends?

@Wacken2012

Copy link
Copy Markdown
Author

Ok, but why is this attempting to add ffmpeg & was backends?

Im experimenting with different backends. In the Future im planning to Port this App to different platforms. Thats the Main reason.

@hatstand

hatstand commented Sep 4, 2025

Copy link
Copy Markdown
Contributor

Clementine already runs on Linux, Mac and Windows with Gstreamer though. We used to have different backends and it's too much work to support.

@Wacken2012

Copy link
Copy Markdown
Author

Clementine already runs on Linux, Mac and Windows with Gstreamer though. We used to have different backends and it's too much work to support.

That's correct. You might be right that the support ist to much Work. Aktually i stay with Gstreamer. Maybe i deleted the ffmpeg in the future.

I Set Gstreamer to "bitperfect" to Play Songs as they are with bitrates 16,24 and 32. Also Frequenzies 44,1, 48, 96 and 192kHz Support.

As i wrote, it's Experimental. I'm trying to get it as near as possible to Aimp with it's Features.

Stefan and others added 3 commits September 6, 2025 12:16
🎵 Major Features:
- Offline AI stem separation using Demucs models
- Real-time multitrack mixing with professional controls
- Quick presets (karaoke, instrumental, stem isolation)
- Zero-latency GStreamer playback engine

🔧 Technical Implementation:
- Robust 15-minute timeout with poll-based progress parsing
- GPL v3 compliant with verified dependency licenses
- Professional Qt mixing interface with volume/mute controls
- Python-C++ integration with structured error handling

📦 Package Support:
- DEB package for Debian/Ubuntu
- AppImage for universal Linux distribution
- Comprehensive documentation and license compliance

🎯 Core Components:
- StemSeparator: QProcess orchestration with timeout protection
- GstStemEngine: Multitrack GStreamer mixing engine
- StemMixerWidget: Professional mixing interface
- Python AI scripts with proper GPL v3 license headers

✅ Quality Assurance:
- Full license compliance verification (GPL v3)
- Comprehensive error handling and user feedback
- Memory optimization for large audio files
- Professional packaging with proper metadata
- Updated README.md with realistic Raspberry Pi requirements
- Raspberry Pi 5 (8GB) now recommended for AI stem separation
- Raspberry Pi 4 (8GB) limited to basic playback only
- Added performance notes about CPU-intensive AI operations
- Updated BUILD_STATUS.md and DEVELOPMENT_ROADMAP.md accordingly
- Clarified RAM and storage requirements for optimal performance
Updated download options and links in README.md, replacing references to the original Clementine repository with the extended version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants