I WILL make music great again. (My next project)

2022-12-20

Finally something worth your time?

Time for something a little different than usual. Today I'm going to talk about my next project that I am working on as we speak. It usually starts with 'boo this program sucks, let's write something that does what I need it to do better than the current options and this time, it's no exception.

As you know, I've been working rather heavily on my dwm build; speedwm. I've been trying to iron out bugs with it and generally make it the window manager (or computer setup in general) of my dreams. After I reached 800 commits just a few days on the new speedwm repository alone, not to mention the many more on the old repositories, which adds up to over a thousand commits, I realized that I am trying to improve something that doesn't really desperately need improvement.

Now that I'm fairly happy with it, I am going to start a new project. I might work slowly on speedwm, and hope to have a 1.9 release out soon but I don't plan on making any more massive changes to it. So as usual when it's new project time, what happens is I think of a piece of software that sucks and then I try to make something that fixes the flaws. What is it this time?

Make music great again

Yes, you heard me right. I am going to write a music player. Or rather a mpd frontend, because it would be stupid to reimplement something that already works well, right?

Now, I am listening to music through cmus as I am writing this blog post for you, and I have to say it's generally a great music player. It's light, fast, Vim-like and fairly polished and clean. Unlike the mocp I was using earlier, it has a UI more like.. you know, a music player than a file manager which is one of the reasons why I much, much prefer cmus. So why does this need change then?

cmus is not built for window managers

Yeah, I said it. One of the problems with cmus is how difficult it is to manage it through the command-line. There is cmus-remote, however even with this you often have to use lots of slow awk commands to get the format you want.

I plan on solving this by adding window manager/status friendly syntax which allows the user to specify a format, no slow awks or seds in your status script.

Lack of extensibility

None of the music players/mpd frontends I've looked at are extensible enough for my taste. I want to be able to make it extremely minimal or command-line Spotify without any delay or external programs.

It doesn't help that cmus and a lot of other music players don't seem to be maintained very much. Most of them seem to be written for TTY users, and don't have a lot of fancy features. This is not great when you want a light (but feature rich) music experience.

I plan to solve this by keeping the base small and clean, as well as a very well documented codebase unlike suckless software. While I for the most part like their philosophy, I am not a fan of how they refuse to add any meaningful comments to their code.

Cool planned features

None of these have been implemented yet but I might end up implementing them. Some as modules, some built into it.

Ideas

If you have any ideas for this project, please consider emailing me it. I want to make this project as good as it can be.

Naming?

I have no idea what to name this mpd frontend, if you have any suggestions feel free to send me a suggestion.

End.

Going to end the blog post here as I've already rambled on and on about how music players suck and what I want it to do. Thank you for reading and have a great rest of your day!