I must have been around 10 years old when I first saw an audio waveform on an oscilloscope. There was something magical watching a green line wiggling up and down in time with the music. Deep bass notes would create large sine waves that lazily rolled from side to side; snare drums sharp transient spikes - blink and you’d miss them.
To me, it was better than TV. A low bar, admittedly - TV of the 1970s was pretty awful.
Fast forward to the 90s and I wrote a simple oscilloscope program that could display the same wiggly green lines for music. This was before the days of MP3s - computers back then weren’t powerful enough to decode music in real-time. Instead it was connected to a CD player. But I did manage to squeeze in a spectrogram display as well (using an integer FFT because that was all the CPU could manage in real-time - I was quite proud of that).
These days it’s trivial to decode MP3 - or Opus - on any PC; for many years I've used Foobar2000 as my audio player to do exactly this. It has an oscilloscope. And a spectrogram. I've mostly been able to customise the Windows version as I like. It’s served me well.
But a few months ago I got a MacBook. And Foobar on the Mac is a completely different app. A simpler app. A worse app. No spectrograms. No support for my customised layouts. However, I couldn’t find anything better, so I stuck with it, even getting Claude to build a spectrogram plugin.
Solving my problems
And then last week we got Fable 5.1 and GPT-6. The latter is also known as Astra (although why OpenAI chose to name it after a midrange family car from the 1980s is unclear - maybe we’ll get Cavalier next?). We also got lots of bonus tokens - and the question became: what to build? Perhaps my own audio player?
I had a few pieces already. A home-grown opus codec. A spectrogram plugin. How hard could it be?
Turns out, actually, quite hard. Not least because it required thought to work out what I actually wanted.
I don't like the way playlists and favourites work in foobar. But deciding how they should work took a bit of time. Then there’s different platforms - I wanted the new player to work on Android. And that has a much smaller screen…
Anyway after a bit of back and forth we had a player I was happy with. And, even better, one I could tweak. No longer am I stuck with someone else’s design compromises.
Radio gaga
When I was a kid our family had some records and tapes. But pre-recorded music was expensive. In the early 1980s a tape of a new album cost around £4.99 (~£25 today). By the late 1980s a CD cost £11.99 (a snip at ~£35 today). So we listened to the radio. A lot.
I have happy memories of endless time checks, traffic reports that didn't affect me (no car), silly phone ins and music that ranged from great to utterly awful.
Could I relive those days? Could I add an AI DJ to my audio player?
Fable was only too delighted to help ("What an exciting idea…"). And soon we had a DJ who announces each track and offers regular time checks (surprisingly useful). Every hour we get the news headlines and weather. And, thanks to ElevenLabs, we have a wide range of jingles for Radio Four Delta Four Four, broadcasting on 19.78MHz.
But it gets even better. Because the news is custom news. The stories are about our software dev environment. What changes have landed. How the overnight builds went. What problems the code review found.
It’s silly. But I really like it. I like the time checks. The news on the hour. The weather. The silly jingles. I like being able to skip tracks I don’t enjoy - and I really like the indignation from the DJ when I do: "What, didn’t you like that one?" I like the different shows throughout the day with different presenters.
The tech stack uses the built-in Apple 3B model and Apple’s Text-To-Speech (TTS). I’d be lying if I said they were fantastic. The model gets things wrong. It can repeat itself. It is obsessed with reading out the album artist multiple times. Sometimes it gets the time wrong. But it is good enough. Plus it’s a safe bet that better TTS and local LLM models are just around the corner.
And so?
Six months ago the reward/effort wouldn't have made it worth building this. But now?
Fable and Astra are smarter. And more persistent. Put those together and suddenly it gets even easier to build things. This has been a fun side project for a couple of days. Much of the effort has been figuring out what I actually want.
A bit like my Remote Desktop client, and the PC emulator, and the SDLC tools this is something I’ll use everyday. It’s really cool - it is proper personal software that works just how I want it to. And generating stuff like this is only going to get easier.
The tricky bit is working out what you want. How the features work. How the UI hangs together. Those are things Fable and Astra can’t do. Claude is great at the detail of UIs - designing icons, nice fonts. But it struggles with the big-picture. Toolbar buttons end up in a jumbled order. Access to features are duplicated in multiple places in inconsistent ways. It doesn’t seem able to build intuitive UIs yet.
But if you have an idea and access to Claude or Astra, it can feel a bit Dr Seuss like - oh the places you’ll go…
In the past 12 months AI has generated nearly ten million lines of code for me. And over 200k commits. Five years ago ten thousand lines was a good annual total. What will the next year bring?



AI DJ is *super* cool. Love it.