Not sure how to best title this.
The basic idea is this:
On the "song" side - supply "DJ" metadata in the audio file, either audio metadata with a human DJ or text metadata for the DJ purpose.
One the "player" side - have a "DJ button that can be toggled.
If the button is engaged before a song starts playing, the DJ will announce the song before playing the song.
If the button is engaged while a song is playing, the DJ will announce the song that just played after it ends and then switch to the previous mode of announcing before the songs.
If the button is engaged and released while a song is playing, the DJ will announce the song that just played after it ends but will not announce further songs as the button is not engaged.
If the button is not engaged, only the songs will play.
The "DJ" metadata could not only give song title, artist, album but give artist influences and the other info a good radio DJ gives.
If the DJ metadata is audio, the player can play it like it plays the song itself. If it is text, the player will need to be able to do text to speech.
Actually, it might make sense to have text metadata along with any audio metadata and have the player scroll that during song playback no matter the state of the DJ button.
Thoughts and improvement ideas please.