QML frontend to Clementine Music Player for Raspberry Pi with touchscreen
Create a dedicated, standalone and connected music player/repository based on Clementine and Raspberry Pi.
The aim is to house a Raspberry Pi 4 with touchscreen, SSD drive and rotary encoder control knob into a HiFi component form factor, maybe as follows:
The desktop Clementine UI is replaced by a QML-based version suitable for an embedded system with a small 800 x 480 touchscreen.
My development setup looks currently as follows:
QML files have been created that provide basic Clementine functionality such as:
- Playback control
- File browsing
- Playlist
- Library
- Album Art
- Internet: Icecast and Radio-Browser.info
- Basic player settings
- Audio control: Balance, Volume, Equalizer
- Analyzer: Bar, Block, Boom, Turbine
In addition, the following non-Clementine features were added:
- Audio Compressor
- VU meter Analyzer option
- Performance Monitor for the Pi4
This section contains a few screenshots made directly from the Pi4, showing the QML interface.
Files and directories can be viewed in List View and Flow View mode:
Navigation and selection through the File, Library and Playlist views can be done using the touchscreen or via the rotary encoder.
Art embedded in the audio files is also shown:
Of the online radio streaming services accessible in Clementine, only Icecast and Radio-Browser.info are currently implemented.
RadioBrowser.info was included in older versions of Clementine.
Unlike Clementine, selected radio channels are not added to the current playlist but to the dedicated Internet Radio playlist.
Playlists can be created by selecting files or folders in File Explorer or by selecting songs and albums from the Library.
Internet radios are automatically added to a dedicated playlist:
A QML interface to the Gstreamer equalizer plugin used by Clementine is provided, and an audio (dynamic range) compressor was added.
The Bar, Block, Boom and Turbine analyzers from Clementine have been reused in simplified form and a VU meter was added.
Currently only a limited subset of the Clementine settings is provided:
A simple performance monitor for CPU, memory, network and disk and process usage was added for fun.
The network monitor can be used for instance to get the IP address of the Pi device, in case you wish to SSH into it.