Why I think TUI music players suck; and maybe someone agrees with me
I've always been a Youtube music listener, never downloaded any music or even audio file to my computer, always listening what I think was good and also what the shitty algorithm of Youtube thinks is good. But then, after seeing that one of my favourite recordings (Mendelssohn Violin Concerto, played by Hilary Hahn) was basically removed, I've decided I'd download every music I think I should.
Android music players are cool; ngl.
That happened back when I didn't care about what software I run at all; Also, it happened before I hate smartphones. At that time, I wouldn't knew NewPipe yet, since I didn't care about FOSS and things like that, so I used a really, really, *really* shit app called Snaptube to download music to my phone. It was fucking clunky, probably took 3 ton of data from me and also sent me 2 ads per hour in my notifications. But we're not talking about ways to download audio files from Youtube.
At that time, Google Play Music was a thing, it was great as a software, it worked really, really, *really* well, even for my today standarts, it literally rocks. I guess most of Google consoomerists will agree with me, literally the best player that ever came to existance in Android (besides being non-free). That helped me to know what was a decent music player; and probably still influenciates me until this day.
But then, FOSS come along in my life: I switched to NewPipe, and the desire of a free music player come too. Then I found Simple Apps, with it's music player. When I installed it, it recgonized all my music, it played it, just normal. About the UI: a bit ugly, ngl. But, that doesn't matter, the UX does: doesn't have a way to "drag up" to see the current playing file and some player options, categorizes folders as albums, doesn't play a file I have (a_hisa's Star Prism, the song) completely, somehow it only works with one specific player (that's not Play Music, didn't tested it there). At all, it works pretty great for what a project it is, since the Simple Apps guys don't work specifically on one thing, but rather a set of utilities. They have my compliment.
After some time, the UX failures really hit me hard: it was time for seeking an alternative. As usual, I got to F-Droid and just searched "Music Player". I found Music Player GO, which was imensly bad. First, it lags a lot, my phone just can't handle it. Second, the UX is really messed up, I took around 4 days just to find the "shuffle" option on it. Also some controls are weirdly placed. Finally the most personal complain is that the album art is pretty small, but that's not really a problem. It functions, but it's completely weird and doesn't work well.
After that failed attempt, I got once again to F-Droid, to find Music (literally the app name), the app I use now. It works, it is the only player that really plays that file I mentioned above, it has good licensing (GPLv3) and the UX really shines at it. This piece of software is literally perfect, in my opinion. The UI is also great, it works flawlessly and I don't have anything to pick on.
What you want to read about: TUI players.
Ok, but all that mumble about Android and things like that; wasn't this about TUI music players? Yes, it is. But you need to understand my background at this matter, because I'm really a "normie" at this. I still think the best UI/UX is Google Play Music, and a huge amount of people do think this as well. Maybe, if you follow some of my opinions, you would also help them to get into local storage (since Youtube Music is the thing that substituted GPM) of music and reliable, free software.
I will mention the things I've tried (and miserably failed) to use: Cmus, mpd+ncmpcpp and moc. I also somewhat tackled Emacs' EMMS, but that really didn't work for me.
Those are the most famous TUI music players someone could think of, but all of them don't satisfy me. Starting with CMUS: MPRIS isn't installed on my system, and every time I start it, it complains about it. Every. Single. Time. Ok, so getting into the player, it really ticks me off that you can't set a music directory which it recursively searches to find music files. It is just more simple! I don't want to use that annoying Browser tab to add every single file that I added to my local storage so that I can play it. Just fucking add this option. Another complain I have is that the interface is really ugly. It is /really/ ugly. Just compare it with ncmpcpp: it is imensly better. So please, make a decent UI. About the UX, the bindings are just messed up. The bindings are just messed up. What else could I say?
Leaving mpd for later, let's talk about moc: it doesn't have pulseaudio support. Seriously? 2022 and you don't even put support to the most common sound system in the whole Linux community? Even Pipewire users will agree, since it doesn't have support for that too. When I tried (to try) moc, that threw me off. And I know, there's moc-pulse, but that didn't compiled when I tried to install from the AUR. It doesnt make sense. Then, there's the UI problem again: that blue background is just dumb. Dumb, dumb, dumb. If I wanted a blue background for things, I'd set the background color to blue. Stop being a weirdo and start thinking about user preference.
Now, for mpd: it is definetively the one I most liked, since it's a daemon. My problem with it is that it's overcomplicated, just look at the number of comments in mpd.conf. Hey, mpd! Did you know people invented a thing called "manual pages"? Did you know you could put almost everything commented in there in a manual page and if a user needs help he just type "man mpd" or "man mpd.conf" in their terminal? It would be great if you implemented it. Since I'm talking about the daemon, let's talk about the client: ncmpcpp has the same problem mpd does. Just simplify it; do something better, maybe just use a shell command for configuration, just like bspc in bspwm. It would be really great if you did it.
The problem is there; what about the solution?
Make a new player, or fork something. I want to do that sometime in the future, possibly writing it in V (my favourite language, as far as how it works) with the miniaudio lib (Thanks Bowuigi for letting me know that), with the following mindset:
- It should work: it must play that a_hisa song that doesn't work on anything. What will help with this is Music, probably, but what makes me :/ is that it's license isn't what I want. AGPL supremacy.
- It should look decent: ncmpcpp would probably be something I would inspire off. With some tweaking, it should have some inspiration on some GUI players too, like Rhythmbox.
- Simple: It should be as simple as writing a .bashrc, with shell scripting and maybe something like bspwm's bspc. With that, it would be really easy to make a status module for your window manager, or a shell extension to GNOME, or even a GUI interface to it.
It isn't hard, I think; Maybe I'm just being picky.