webview-mpd-player
A lightweight MPD (Music Player Daemon) client built with Crystal and Webview. Features a web-based interface for controlling MPD playback, managing playlists, and displaying album artwork. Includes a music library browser with artist/album organization.
This application serves as a demonstration of building real-time applications using Crystal and Webview. It showcases how to create responsive desktop applications that can handle live updates and user interactions while maintaining a lightweight footprint. The integration with MPD provides a practical example of managing real-time events, state synchronization, and UI updates in a Crystal-based desktop application.
Name Origin
The name "Garnetune" is a playful combination of "Garnet" and "tune". Garnet is a type of crystal, which references the Crystal programming language used to build this application. Combined with "tune" for its music-playing capabilities, the name reflects both the technical foundation and musical purpose of the application.
Development Notes
The user interface for the player was developed with assistance from ChatGPT and Cursor AI Code Editor.
Installation
-
Clone the repository:
git clone git@github.com:mamantoha/webview-mpd-player.git cd webview-mpd-player
-
Install dependencies:
- Crystal (>= 1.15.0)
- MPD (Music Player Daemon)
- pkg-config
- WebKit2GTK development files
-
Build the application:
shards install shards build ./bin/garnetune
Screenshots
Contributing
- Fork it (https://github.com/mamantoha/webview-mpd-player/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Anton Maminov - creator and maintainer
webview-mpd-player
- 1
- 0
- 0
- 0
- 2
- about 6 hours ago
- April 11, 2025
MIT License
Mon, 15 Sep 2025 15:36:07 GMT