@andypiper@andypiper.co.uk

tl;dr I created an extension for the GNOME desktop on Linux, so that folks can stream and listen to music from The Indie Beat – an online radio station powered by independent musicians sharing music in the Fediverse, via Bandwagon.BackgroundIndependent musicians, creatives, artists, makers – these are all folk who often struggle to connect with audiences, and where retail and tech platforms tend towards squeezing their ability to make money from their work (see the excellent Chokepoint Capitalism by Cory Doctorow – essential reading for today’s world and understanding how it systematically squeezes creatives). Over the Christmas period, I finally deleted my Spotify account, after reading about yet more awful ways that company is destroying authentic creativity for their own profit.Cancelled Spotify. One of those things I'd allowed to roll far too long for no good reason (not paying attention), and the "ghost artists" stuff has made me feel particularly unfriendly towards the platform. https://harpers.org/archive/2025/01/the-ghosts-in-the-machine-liz-pelly-spotify-musicians/ — Andy Piper (@andypiper@macaw.social) 2024-12-23T12:31:01.894Z I’ve been a huge fan of independent artists for a very long time. Back in the MySpace / MP3 / Napster days I came across folks who I now count as friends, amazing musicians such as Cindy Alexander, and Alex Cornish. Up until recently there was a wonderful streaming station, RadioFreeFedi, that offered music from artists who had a presence in the Fediverse. Sadly, that has now gone away.Over the past couple of years I’ve been attending Fediforum, an online conference where people building in the Fediverse gather to share projects and ideas. During the events in 2024, I came across two fantastic people with an interest in making things better for artists and musicians: Ben Pate, builder of the Emissary platform, which has a music-centric edition called Bandwagon; and Kirsten Lambertsen, a multi-talented web creative who runs Patron Hunt, and who spun up an alternative streaming station, The Indie Beat. The Indie Beat builds on Bandwagon, so artists who share their music in the Fediverse via Bandwagon, can also choose to add them to rotation on The Indie Beat.Some inspirationsI was nerd-sniped, I mean, inspired, to make something with The Indie Beat, in part through a nice blog post shared by Neil Brown (which was apparently prompted by me, so that’s nice and circular!) about how to add the streams from The Indie Beat into Linux music apps such as mpd.I don’t use mpd, and to be honest I most often live on Apple platforms (but I do keep a Plex server, which I intend to move to Jellyfin this year as I work on improving my self-hosting and homelab situations). I was pretty sure that I’d seen a taskbar music player for GNOME, though. I usually run GNOME on my Linux systems – the exception being my MNT Pocket Reform, which is Sway with a minimal set of other desktop apps.The player I was thinking of is the SomaFM internet radio extension, which is a menubar app that lists the SomaFM station streams, and allows the user to choose between them.The processThe first iteration was a straightforward copy/edit hack of the SomaFM extension, replacing the list of channel streams with the equivalent ones from The Indie Beat. Easy!I excitedly sent a screenshot to Kirsten to show off!There were quite a few things that I felt I could do better, though. First of all, the artwork was missing. Also, I knew that the whole point of The Indie Beat was to be a showcase for the artists on Bandwagon, and that there was supposed to be metadata in the stream header that contained their link information.After a lot of poking at the MP3 stream, I realised that The Indie Beat is built on a streaming server called Azura Cast, which has an API – and The Indie Beat API had that data, and a whole lot more that I could use. In order to use it all though, I had to fully re-think how the extension would work.So, I started over, from scratch.I hand-traced the “catellite” artwork and made a minified icon for the GNOME top bar – the full design was not great at a tiny size.I kept a similar look-and-feel to the SomaFM extension – an icon, a player, a list of channels – but, I removed the settings and favourites options from my scope, to keep things simple. I also have the menu expand to fit the channel names, which I don’t love as it means it changes size, but it works.a little thing that I’m fond of is that the extension uses the configured accent colour – recently added in GNOME 47 – for some of the text.I did a lot of reading and poking around at GNOME Shell and gjs, the JavaScript API that enables extensions to be built. I also learned a lot about GStreamer, the engine that GNOME apps use for access to audio and video media. This was all a long, long way from my past work coding for GNOME, ~20 years ago, back in early Anjuta days! I’m not naturally a JavaScript person at all, so I made a lot of mistakes here.huge shout-out to the author of the JustPerfection extension, who carefully and helpfully reviewed my submissions to the GNOME Extensions site. This thing would be a lot more crashy and messy without that oversight!the extension contains a small cached implementation of the Azura Cast API, which enables the extension to query the available channels, rather than needing to have a static internal list of streams updated if a channel came along or went away (a concept of “mixtapes” is on the roadmap for The Indie Beat in the future).I needed to add a way to access an artist’s page, which comes from a property that’s stored in the now playing data, so building an API layer that sits parallel to the radio stream player seemed to work nicely.The Indie Beat is evolving – within a few days of starting work on this side project, Kirsten switched the branding from pink to green, so I updated the artwork. She also added a Bonk Wave channel – and the extension seamlessly picked it up! That was a nice win.OK… so what does it do?I’ve posted a short video which covers the basic features: choose between channels, play/stop, open the Bandwagon page of the currently playing artist in a web browser, or directly jump to Bandwagon’s Explore page or The Indie Beat main page. I’ve aimed for simple and clean, as befits the GNOME philosophy.Where to get itThe extension is available to install here. You can watch the demo video on my MakerTube. You can follow development on GitHub.If you like it, a comment / review on the GNOME Extensions page would be very welcome. If you have issues or ideas, do leave those on the GitHub project. There is a donation button in the GNOME Extensions page, which is of course entirely optional.Don’t forget to click over to Bandwagon and check out the artists you hear that you like.What’s the future?The world and the internet are kind of bleak right now, but actually – we’ve got the power to make it better.Watch Molly White’s talk from XOXO and get inspired.Also, this:https://andypiper.co.uk/2024/08/29/the-web-made-by-humans/There’s a lot of opportunity for creatives in the Fediverse!Castopod is a great way to self-host a podcast with native ActivityPub federation. Bandwagon exists, where you can create a Fediverse profile for yourself and your music. You can share it through The Indie Beat. I’ve personally got my eye on Libre.FM (like Last.FM, but free, and with a renewed / reinvigorated interest in building new features like ActivityPub and IndieWeb support – here’s my profile). Beyond those, there is also Faircamp, a static site generator that helps musicians self-host their content and avoid enshittification through other channels and platforms. I’m excited! We can work together to make our spaces better for musicians and other artists!More features for the extension?This has been a fun side project!I’ve got a few barely-formed ideas for things I can do with this in the future, as both Bandwagon and The Indie Beat evolve. Stay tuned. 📡Oh, and through making this extension, I found and purchased an album I’m obsessed with, which has inspired me to do some other new things… so watch this space.Where do I get those stickers?Come find me at FOSDEM in Brussels next weekend, I’ll have Bandwagon+The Indie Beat stickers to share 👍🏻 Share this post from your fediverse server https:// Share This server does not support sharing. Please visit .https://andypiper.co.uk/2025/01/25/the-indie-beat-on-your-linux-desktop/#100DaysToOffload #art #bandwagon #Coding #creativity #development #fediverse #GNOME #javascript #Linux #Music #TheIndieBeat

mcoyle

I saw this on Gnome's extensions site. I'll give a try. Thanks for your work.