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

Recently Played Click if you can't hear anything
Other ways to listen

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.


Midtempo, the station and the underlying technology, is a non-commercial personal 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 find great transitions;
  • how to seamlessly blend tracks from different genres and decades;
  • and how to structure the variation of tempos throughout the day.

The AI should move from genre to genre – 1930's Swing to Modern Electronica – gracefully, as though they were meant to be together. 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. Eventually the only manual process should be uploading the song, the system should handle 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 audio while it is streaming, real-time, is either really expensive, or requires someone poking technology in the dark with a stick until something happens. This 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 the future decisions are better.

The next goal is to automate more of the 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 the station should stay fresh... or, at least, won't go stale so quickly.

Please, follow on social media and/or get in touch if you've any questions... oh, and support the station!

Midtempo Radio is on Twitter, occasionally. There's also a Facebook page, but I'd rather not.