Making a better interface for listening to music
So for a very very very looong time I've wanted to write a custom music player, and now (along with my dad) I've started that project!
Kiku
Kiku (Japanese for "listen"), is the name of our client-server based music player. It supports very generic tag-based organization and search (though a custom query expression format, even!), currently only has a commandline interface and is written in 100% pure Rust (I love that language now)!
Goals
Before this project I'd laid out a few goals and I have to say that I think we're doing pretty well
- [x] Arbitrary categorization schemes and tags.
- [ ] Spotify-like automatic rating system based on listen counts, like button clicks, skips, etc...
- [x] Easy library management and organization.*
- [ ] A web version for use on any device plus PWA with local caching for offline play.
- [x] A CLI version.
*I actually wrote a separate project for managing the metadata in my music library, but it works fairly well so I'll count it as checked for now.
Server
The server is designed to be as generic and minimal as possible...
Client
Currently the only client is a command line interface but it contains a tree-based tag explorer...
The way the UI's state is stored was one of the hardest parts...