Great music from an eclectic library
Seamlessly blended by an evolving AI




Other ways to listen
Show recently played

artist  album


artist  album


artist  album


artist  album

Midtempo is an automated radio station, managed by a sophisticated AI that selects the next track based on what it thinks will sound best.

It analyses the harmonics at the end of the current song – key, intensity, instrumentation, ending style – and looks for another to follow gracefully, either blending or sequencing, so you barely notice the transition. It doesn't get it right all of the time, but it's getting there.

Unlike other streaming platforms, there's no tracking, advertising, or harvesting your data. The focus is purely on improving the AI's selection skills.

Invisible Audience


Telling you all about the recent changes is, apparently, too dull for a newsletter. Instead, let me explain why I don't want to know whether you're here...

I want to create [...] without fear of judgement, pressure, or demand. Midtempo is not a commercial product, and I've no intention of making it so. Today's audience figures, and whether that's more or fewer listeners than yesterday, serve no purpose other than as an anxiety-inducing distraction.

Continue reading...


Midtempo, the station and the underlying technology, is a non-commercial project. My name is Chris, I write code for a living, and I used to work in radio and with music festivals. This place is a mix of what I do and love.

track management

The station is built to be...

Autonomous – broadcast constantly, without fail, and without oversight.

Elegant – sound like it is carefully curated by a great DJ with a deep understanding of the music they play. It should flow, evolve, and sound both professional and effortless.

Unpredictable – no discernible patterns or awareness of what may play next. That means selections have to happen real-time (so no advance scheduling) with carefully balanced rules; great sounding choices yet relaxed enough for surprises.

Midtempo has been the name of a few online and offline projects of mine, all the way back to '95. It fits as a description of the music style too – I was always more comfortable as a Sunday-afternoon dj. Blues, electronic, ambient, soul, hip-hop, swing, folk, dub, R&B, psychedelia, jazz, funk, reggae... if you're here for the music, hello.

The station is free of ads and sponsorship. The development – server costs, music license fees, bandwidth – is mostly self-funded. I'm conscious that the costs rise as the audience develops so, if you find yourself listening for any length of time, your financial support is most welcome.



The Midtempo platform was created from scratch. There are a couple of code libraries to help with some heavy lifting, and a few external resources to add depth, but the rest is hand-built.

Schedule Reports

The goal of the technology is to automate the selection and blending of tracks:

  • how to identify two tracks that might sound great together;
  • what properties does a broadcast system need to seamlessly blend those tracks;
  • and how to structure the flow of music throughout the day, manage tempos and rotation times, and use track weighting and other features to maximise the library's longevity.

The AI should move from genre to genre – 1930's Swing to Modern Electronica – gracefully, as though everything was planned in advance. It should consider what has played before, how long ago the track/artist played and how often each potential combination has been together, then throw in a little chaos to keep things fresh. It should automatically find and insert album covers and artist biographies. The only manual process should be uploading the song, the system must manage everything from there.

Midtempo has no user tracking, no Google Analytics, and no visitor metrics. The focus is how it might work, rather than whether there is an audience.

Manipulating an audio file after it has started streaming, real-time, is either really expensive, or requires someone poking things in the dark with a stick until something happens. Midtempo is very much the latter – what you're listening to has evolved from months of manual track processing and years of code development.

Back-end Structure

The management and the broadcast systems are separate in case it grows beyond one station (old developer habits, rather than a goal). This structure enables near-continuous improvements to the code and the AI without interrupting the music – everything happens elegantly in the background.

There is total visibility over the AI, with a "Producer's Dashboard" providing real-time track and algorithm control. Every decision can be reviewed, understood, and adjusted so that each iteration improves.

The next goal is to further automate track analysis, which should speed up the time required to get each song uploaded. Which means it will be easier to add more music. Which means I hopefully won't get tired of the current library so quickly...


Any questions, please email me at .

I post (very) occasionally on Mastodon, or LinkedIn for the more business minded. There are also Facebook, Twitter, and Instagram profiles out there, but those places are increasingly toxic, so I tend to avoid.

Oh, and another reminder that your financial support would be most welcome!