En show som börjar 18:00 kan inte börja 18:06 bara för att låten råkade vara lång.
Det här var ett av problemen som tvingade fram riktig showlogik. Om ett program börjar vid en viss tid måste musikplaneringen ta hänsyn till gränsen innan den väljer en lång låt.
Jag testade först hårda avbrott. Det gav rätt tid men kunde låta brutalt. Sedan testade jag att bara låta låten spela klart. Det lät fint men gjorde schemat ungefärligt.
Den bättre lösningen var att göra showgränsen synlig för flera moduler. Picker kan undvika val som är olämpliga nära gränsen. Analyzer kan ge information som hjälper en mjuk cue-out. Show Engine kan förbereda intro och handoff innan själva klockslaget.
Det här är ett bra exempel på varför en “scheduler” inte räcker som ensam lösning. Showbyte är både musikbeslut, ljudbeslut, statebeslut och pratbeslut.
Showgränsen blev en deadline som hela systemet kan se
Jag vill på sikt att Picker ska kunna väga in hur många sekunder som finns kvar till en gräns, Analyzer ska kunna ge lämpliga cue-punkter och Show Engine ska kunna börja förbereda nästa intro. Det betyder att showgränsen måste representeras som data, inte bara som ett cronjobb.
Det är ett exempel på hur en tidsregel blir mycket kraftfullare när den görs synlig för flera lager.
Jag började planera bakåt från showgränsen
En bättre lösning på exakta programstarter är inte att bli aggressiv exakt 18:00. Det är att börja fatta bättre beslut före 18:00.
Om det är sex minuter kvar kan Picker exempelvis undvika en låt som sannolikt är sju minuter lång om showen kräver en ren gräns. Om en utgående låt ändå spänner över gränsen kan Analyzer hjälpa till med en musikalisk cue-out. Samtidigt kan Show Engine förbereda handoff och intro.
Det här är fortfarande ett område jag vill utveckla mer, men tankesättet är viktigt: realtidsradio blir bättre när systemet känner till framtida deadlines.