-
A playlist can now be aired with similar records mixed in, the way Spotify's smart shuffle does it. Every few records of the playlist, the station adds a record by an artist who sounds like the one just played, found through a similarity plugin such as Last.fm; the playlist itself still plays in full and in its own order around them. Choose Air with similar records mixed in from the arrow beside Air this playlist, or turn on Mix similar records into a playlist under Settings, Rotation to have every playlist do it, with the spacing beside it (four of the playlist's records between mixed-in ones by default). It is off by default, a setlist or a feature never has anything mixed in, and every mixed-in record passes the same rules and dislikes as anything else the station picks. A mixed-in record never lands beside a break, so nothing the presenter has already said about the next record is made wrong. The activity feed says how many were found, and says so when none could be.
PutOnAirInputandPlayoutPlaylistInputgain an optionalmixInSimilar.On the Desk, a record the station mixed in carries a mixed in badge, so you can tell it from the ones the playlist named.
StationOrderItemgains an optionalmixedIn. -
A similarity plugin can now name records that sound like one record, not only artists who sound like one artist.
SimilarityProvidergains an optionalsimilarTracks(ref, limit), taking the enrichment capability'sTrackRefand answeringArtistTracks, each with its own lead artist. The Last.fm plugin implements it withtrack.getSimilar, asking by MusicBrainz recording id when the catalog has one. When a playlist mixes similar records in, the station now asks about the record each one follows first, and falls back to that record's artist when nothing usable comes back or no plugin can answer. A plugin without the method behaves exactly as before. -
A schedule block that plays a playlist can now ask for similar records to be mixed in among it. The block editor shows Mix in similar records whenever the block plays from a playlist; ticked, every changeover to that block mixes neighbours in the same way Air with similar records mixed in does, and left unticked the station's own Mix similar records into a playlist setting decides.
ScheduleSlotgains an optionalmixInSimilar, stored in a new nullableschedule_slots.mix_in_similarcolumn (migration 0029).