F00F's Adventures in Free Software

Friendly explorations into free and open-source projects, and other random infodumps.

vgy.me

I'm a big music nerd. I currently have over 25GB of music stored on my Pixel 5 phone running the stock Android ROM, and I'm constantly adding to that number by downloading new albums from Bandcamp, and buying new CDs, to add to that number. Since I'm constantly listening to music at any spare moment, I use my phone's music player app very regularly, and am accordingly very picky about which I use.

Most Android users are reliant on streaming services like Spotify, which I avoid because they typically underpay their artists. I also prefer to own my music collection, and have all the control that comes with digital files. There are a great many local music players for Android, but possibly due to Android's infamous audio stack, they all leave something to be desired. Most of the commercial offerings have ads and paywalled features, two things I'd like to avoid. Among the free software players, many of them are missing gapless playback, a feature that is essential to me, as most of my favorite albums rely on unbroken transitions between songs. Many of them fall far short of my expectations for library management features, some seemingly unable to detect certain files while refusing to remove others from the library. And many will crash randomly, or strange audio playback issues. For most people, an app like VLC or Phonograph will be sufficient, but I'm too picky for those.

After trying several apps from F-Droid, eventually I found a rather unique music player called mucke, a hobby project of German developer Moritz Weber. The inclusion of gapless playback without the aforementioned bug was enough to put it above all others I'd tried. But not only did it have all the features I expected, it had several unique and useful features I wasn't expecting.

Feature overview

mucke has all the standard features necessary for managing a medium-sized music collection. It scans a user-provided list of folders for music for files with certain extensions, and allows the user to browse the collection by artist, album, or song. Custom playlists can be created from songs in the library, songs and albums can be looped, and albums and playlists can be shuffled. Every time a new song or album is added, the library must be manually rescanned from the settings menu; thankfully, this process is surprisingly fast, and in my experience always detects the new albums.

Designed for shuffle

vgy.me

Most of mucke's distinguishing features come into play in shuffle mode. On most music players, shuffle mode is near unusable for me; long suites are broken up, interludes play out of context, and bonus tracks like “demos” are mixed in between quality songs. mucke fixes all those problems, with features that allow the user to curate their shuffled playlists: * The ability to “link” adjacent songs on an album, so they will always appear together in shuffle mode * The ability to exclude songs from shuffle-all, shuffle, or while playing the album. * A song can be “favorited” up to three times, increasing the likelihood of its appearing in “favorite shuffle” mode. (There is also a standard shuffle mode which ignores “favorites”.)

In addition to the standard “shuffle all”, a user can create smart playlists (“Smartlists”) which include all songs in the library meeting certain criteria, and have a default shuffle mode. Getting into the wealth of options available for these would take a long time – suffice it to say, they're very useful for filtering the library to music appropriate for various occasions.

Problems

Most of my issues with the app amount to nitpicks. The app doesn't seem to save progress within a song while exiting, meaning that if it crashes or I accidentally close it, I have to restart a song. I don't particularly like the look of the playlist icons (a white symbolic icon on a color background). Furthermore, mucke's library management could be improved; it seems to entirely ignore each song's “artist” tag in favor of the “album artist”, many albums are tagged with a release year of “null” despite all its tracks having proper “year” tags. Lastly, there's no built-in tag editor, a feature I made great use of in Metro, the music player I used before discovering mucke.

I have encountered one notable bug, though I do not yet know its cause. I seem unable to view certain albums; where I would ordinarily see a list of their tracks, I instead see a grey screen. This bug happens inconsistently, and I can find no commonalities between the broken albums which may be the cause.

Conclusion

mucke is the exact sort of project I created this blog to discuss. It's a low-profile hobby project that shows great dedication on the part of its developer, and it scarcely receives widespread attention, but does unique things that no other software replicates. Despite its humble origins, it looks professional and is quite easy to use. mucke is close to the perfect Android music player for me, which is saying a lot given my pickiness. If you're looking to play your local music collection on Android, this is the first app I'd recommend.

mucke's source code and bug tracker are hosted on GitHub. Pre-built packages are available from F-Droid. Many thanks to Moritz Weber et al. for developing it and releasing it under a free license.

P.S. Don't expect me to write this much in every post.

Feel free to suggest apps and services to review, and I might review them.

My main Fediverse presence is at the handle (at)f00fc7c8(at)0w0.is. You can also contact me on XMPP at c16deeptread(at)hookipa.net. Feel free to ask for other socials, but know that I'm not on the majority of large proprietary platforms.

Ever since I first installed Linux Mint in 2015, I've been enthusiastic about free software, or open-source software – that is, software whose source code which is free to share and modify without restriction, not exploiting its users through secrecy and artificial restrictions. There are tens of thousands of free software projects, with tens of thousands of contributors. Some of them are wonderful, and some are deeply frustrating. Some I couldn't live without, and some just aren't for me.

One of my pastimes is to browse the software repositories of Linux distributions, looking for interesting programs to try out. I've also followed the blogs of contributors to free software, and seen inside the development process. By those means I have found many projects I enjoy using, many of which are hobby projects of single developers of small groups, and virtually unknown outside of a their circle. At the same time, I've seen developers express a feeling of not being appreciated for their work, and I've seen users express frustration in finding software for their needs. I want to show appreciation for everyone who makes software for the public interest, and help users find that software.

As someone who navigates this world just for fun, I thought I could do my part to help other people navigate the free software world by writing accessible articles about it. Sure, there are plenty of articles about Linux and all the other software in the world, but so much of it has a robotic flavor, as if written by an AI or using a copy-pasted script. Alternatively, so many blogs have a toxic, critical, discourse-y flavor, containing not so many recommendations as scathing condemnations of everything the author doesn't personally enjoy using. My goal with this blog is to be a kind, human voice in the world of free software, and share my passion for the software I use daily.

Another issue I have with other free software writers is that they tend to focus on the big, popular projects: Linux distributions, desktop environments, and enterprise software. Here, I'm just reviewing whatever software I'm interested in. That's going to include a lot of video games, simplistic single-purpose apps, and hobby projects that are more funny than useful. And yes, it will include some of those popular projects, wherever I think I have a unique take about them.

I know that pretty much everyone who encounters this blog will be highly exposed to free software already, and at least half of you will already run Linux as a daily driver, but I hope this blog will help even the most dedicated GNU fanatic find more software to enjoy, and transition further away from proprietary software

Expectation management

For the time being, this blog will be hosted on a WriteFreely instance. WriteFreely is full of SEO spam and the exact sort of robotic writing I criticize, and it limits my ability to create a unique identity for my blog, but it's free software and costs nothing to use. I have a tendency to impulsively start projects and then never finish them – it's my autism at work, or maybe ADHD – and I'd rather not pay for something I know I won't keep up; I've made that mistake before, and now I'm paying $30/month for a website I haven't updated since 2019 and am afraid to take down. If this blog lasts a while, gains an audience, and I'm still interested in it, I may give it a proper home. I've also been thinking of adding on a PeerTube channel, but I've never been confident in front of a microphone, so I think blogs will be a better start.

My goal will be to post as frequently as I can, up to once a day. I have lots of other interests, as well as university and a job, so if I fail to keep this blog up or fall short on quality sometimes, that's just to be expected. There's a possibility that I'll never post to this blog again, and in that case, I'm sorry.

Also, I'm pretty sure I'm not the first person to call a blog “Adventures in Free Software.” Better name ideas would be appreciated. I thought of “FOSS Program of the Day” or “Package of the Day”, but that would imply an obligation to post daily, and I don't do well with schedules.

Ending thoughts

Personal problems aside, this is the sort of project I've been wanting to do for a while. Something to share my enthusiasm for Linux and free software, and help other people find their way through this wonderfully confusing space. I've already done some work on this with my previous blogs and my fediverse accounts, but I hope this particularly has the potential I've imagined. See you soon with my first proper review!

Feel free to suggest apps and services to review, and I might review them.

My main Fediverse presence is at the handle (at)f00fc7c8(at)0w0.is. You can also contact me on XMPP at c16deeptread(at)hookipa.net. Feel free to ask for other socials, but know that I'm not on the majority of large proprietary platforms.