gfxgfxEpic Rock Radiogfxgfx
gfx gfx
gfx
Welcome, Guest. Please login or register.
December 15, 2019, 11:08:56 pm

Login with username, password and session length
It costs over $600 a month to keep Epic Rock Radio on the air.  Please head to our Patron page and make a donation to help keep us on the air!  The site is http://patreon.com/kailef and we really appreciate your help!
gfx
gfx
*
gfxgfx
gfxgfx gfxgfx
Search:     Advanced search
gfxgfx Home Help Search Calendar Login Register   gfxgfx
gfx gfx
gfx
Pages: [1]
Print
Author Topic: Inside ERR: How does the auto-DJ decide what songs to play? (As of 25 Feb 2008)  (Read 13274 times)
Kailef
The Boss
Post Rank 5
******
Posts: 1925


Symphonic Powermetal Rules!


View Profile WWW
« on: February 19, 2008, 10:55:09 am »

Modified as of 27 March 2010.


Here is how the popularity (weight) of individual tracks is determined.

When a song is requested, there is a hidden value called "weight" which is incremented by 5.  (Max value 100)
When a song is actually played on the air (requested or not) it subtracts 2 from the "weight".  (Min value 1)
(When a song is first added to the station, by the way, it has a default weight of "70")


These are the restrictions that are placed on the Auto-DJ with regards to what it can select, regardless of the weight, et cetera.

(This also applies to requested songs as well, by the way)

Do not select the same track or track name within 12 hours of the last time it was played. (Previously the 'same track' limit was 8 hrs)
Do not select the same album within 3 hours of the last time it was played.
Do not select the same artist within 3 hours of the last time it was played.  (Previously the 'same artist' limit was 2 hrs)

(Songs that are shorter than 2 minutes, and a few other albums and bands that I don't want in the regular rotation are also excluded and the Auto-DJ cannot select them to play.  This makes up the list of what I refer to as the "Eligible Track List".   Listeners who who are requesting songs are not restricted to the eligible track list)


Here is how I  have programmed the auto-DJ's logic system to select what song to play on ERR.

The DJ selects the next song to play using the following sequence.  The first song selected uses method 1, the next uses method 2, then 3, and until it reaches the end and goes back to method 1.  Requests do not advance the counter, it just "puts it on hold".  Basically, any time the queue of upcoming songs drops below 4 tracks, the Auto DJ will add a song using the following methods:

1 - The DJ selects the least recently played song with a "Weight" of 80 or higher.

2 - The DJ system selects the next song to be played using weighted random logic.  What it does is it adds up all the songs in the current set of eligible tracks and creates a table for itself.  

To make it simple, let's pretend we only had three songs in ERR's library.  Chosen by Adagio, The Regality Dance by Elvenking, and Tempest by Kailef.  Lets say that, for example, the songs had the following weights:  Chosen has a weight of 100 since it's requested constantly.  The Regality Dance has a weight of 10 because that's where I manually set it to be.  Tempest has a value of 70.

The DJ system would then create the following table:

1-100 .. Chosen
101-170 .. Tempest
171-180 .. The Regality Dance

And it would then generate a random number between 1 and 180, and use the table as an index to determine which song it selects.

3 - The Auto DJ will select a completely random song from the entire library of "EligibleTracks".  It does not account for any sort of popularity or weight.

4 - The exact same process used in #2 is used here.

5 - The Auto DJ will select the least recently played track in the list of "Eligible Tracks".  This insures that no song will be completely forgotten.

..... The overall goal here is for newly added music, in general, to be played more frequently than older music, and for songs that are requested to be selected more frequently than songs that aren't.  Then, we have the "every 5th song" that selects something that hasn't been heard in a long time to help keep the rotation from becoming too stale.
« Last Edit: May 21, 2016, 07:51:22 am by Kailef » Logged

Guildmaster
  
Creator
  
Warlord
  
Guildmaster
  
ONBE
  
Music Composer
  
SysOp
PIF Silvergate
  
Epic Rock Radio
  
House Jurai
  
The Poets' Circle
  
Recipient
  
Shroud of the Avatar
  
Sanctum II BBS
  
  
     
  
  
JayPeeG
ERR Champion
Post Rank 3
***
Posts: 192


Rocking out, one day at a time.


View Profile
« Reply #1 on: February 25, 2008, 10:19:02 pm »

Nice tweaking.

Me and Fabio seemed to agree that it was running pretty well how you had it set up last week.  But with these minor improvements, I do believe the song rotation is in excellent hands!
Logged

~ Powerquest makes me want to grow a mullet and drive a Trans-Am.   - Creed
Lamneth
Newbie

Posts: 1


View Profile Email
« Reply #2 on: April 07, 2008, 07:19:36 am »

If I might make a suggestion here... as I am familiar with the inner workings of SAM:

The inherent problem with increasing song weight by request is that the SAM software does not differentiate between a successful request and an unsuccessful one (at least not on the version I'm using 3.3.2).  For instance, if an artist is queued up or has been recently played and someone tries to request them, they will get a request failed message.  However SAM still increases the song weight of the track!  Now as an extreme case if that person were to request the same track 10 times in a row, receiving all failed requests, the resulting song weight is pegged at 99 and the track hasn't even played.  This system is flawed IMO because it doesn't really gauge the true popularity of the song, only the requester's tenacity.  You might notice that with newly added CDs the song weight increases very rapidly because of all the people receiving failed requests due to the 'recently played' rule.

Secondly, I never understood why SAM decided to set the default weight at 70.  That only leaves a 30-point margin, which is quite small IMO for deciding what are the truly popular tracks. What I suggest doing is this:  reset the song weight of every track in the library at 15 and set the default for new tracks at 15 as well.  (there's an option under Tools to reset the song weight and I think it's called 'rare rotation' or something like that in SAM -- don't use the lowest setting of 10, as songs set at 'no rotation' willl never be queued by SAM, even if they are requested).  After all songs start with a song weight of 15 you now have an 85-point margin in your weighting scheme instead of 30. 

Now - set the song weight rule as follows:  Increase on request: 0  Decrease on play: -1.  This is a perverted double-negative scheme, but it actually works and avoids the increase on failed-request flaw that's built in to SAM.  With these settings the song weight increases by one point each time the song plays.  It's still not a perfect system because the song weight is increased with 'puter picks... but it's still far more accurate than increasing the weight by request as described above.  How many 'puter pics does the 'puter make a day anyway?  Probably not too many.  It will take some time to rebuild the stats, but over time you will see the system pay off:  for example: the mildly popular songs will have a weight of 20 - 30, the more popular songs 31 - 50, and the really popular tracks will be 51+.  Some may eventually even hit 99.  As a broadcaster you can see the advantage to this scheme.  When you set up which songs the 'puter pics, you can sort your playlist by song weight and take ONLY the most popular tracks based on a time-earned system (put them in a separate category called "top weighted songs" or something).  Your 'puters picks will only be from those cream of the crop tracks.  Our ears will be happy.

« Last Edit: April 07, 2008, 08:32:33 am by Lamneth » Logged
Kailef
The Boss
Post Rank 5
******
Posts: 1925


Symphonic Powermetal Rules!


View Profile WWW
« Reply #3 on: April 07, 2008, 12:40:49 pm »

Fortunately, that bug (requests being counted even if they fail) was fixed in SAM version 4.  I ran into it before, but it's no longer a problem.

The reason that I have left new songs at 70 is because I want newly added songs to be played more frequently than old, infrequently requested songs.  If they aren't popular, they'll play for a while and slowly fade into the low priority group.  But when first added, I want them to show up at least somewhat frequently.

Logged

Guildmaster
  
Creator
  
Warlord
  
Guildmaster
  
ONBE
  
Music Composer
  
SysOp
PIF Silvergate
  
Epic Rock Radio
  
House Jurai
  
The Poets' Circle
  
Recipient
  
Shroud of the Avatar
  
Sanctum II BBS
  
  
     
  
  
Guidrummist
Post Rank 4
****
Posts: 301


Yes, those drums are made of cheese.


View Profile
« Reply #4 on: June 17, 2008, 02:26:17 pm »

Kailef, is there any way that the extra half-hour wait can be repealed on bands that only have one album on the station? This seems to me like it may be a good idea, since many such bands are fairly new groups just starting out, and if they're able to get more plays, it's more likely that more potential fans would discover them, and consequently these bands would be able to get a better jump on their careers.

Of course, I understand that the auto-DJ is a complicated system, and not one that you made up, so it's entirely possible and reasonable that you wouldn't be able to do this for some artists without doing it for all, but if you can, I am of the opinion that it would be a good idea.
Logged

Paranoia is the only rational approach to a conspiracy world.
Kailef
The Boss
Post Rank 5
******
Posts: 1925


Symphonic Powermetal Rules!


View Profile WWW
« Reply #5 on: June 17, 2008, 06:38:51 pm »

I am afraid I can't do that - Not without reducing the 'same album' limit to 1 hour for every band.  :-(
Logged

Guildmaster
  
Creator
  
Warlord
  
Guildmaster
  
ONBE
  
Music Composer
  
SysOp
PIF Silvergate
  
Epic Rock Radio
  
House Jurai
  
The Poets' Circle
  
Recipient
  
Shroud of the Avatar
  
Sanctum II BBS
  
  
     
  
  
Oseriduun
ERR Staff
Post Rank 4
*
Posts: 407

Canadian Code Monkey


View Profile
« Reply #6 on: June 18, 2008, 05:49:04 am »

imo, just make it 2hrs flat for same-album and for same-artist.. or 90mins for both, whichever.. give everyone an equal chance to be heard.
Logged

CCM: Canadian Code Monkey.
Its not just a bike manufacturer anymore Tongue
Creed
Post Rank 4
****
Posts: 368


CreedP
View Profile
« Reply #7 on: June 19, 2008, 10:12:44 am »

Armory keeps hanging on to the Top Ten despite having only one album.  Lowering the time is NOT a good idea.

I'd much rather have the option open to hear the same band but at least a different album, then to keep cycling through the same 8-12 songs of a band with only one album.  Variety and such.

CREED
A little worn out on Armory anyway...
Logged

Perception of reality is a matter of opinion.
Oseriduun
ERR Staff
Post Rank 4
*
Posts: 407

Canadian Code Monkey


View Profile
« Reply #8 on: June 22, 2008, 06:50:41 pm »

I like armory, and i can't wait fo rthem to have more than 1 album available, and the same goes for so many other bands on ERR.

I agree that lowering the timer is not a good idea, but i would like to see it 'equalized' across them all, same album / same band both at a 2hr limit.. there's enough variety, but this at least allows a band with 1 album the same *potential* airtime as any other band on ERR with 1 or more albums. 

Just my 2 Cents.
Logged

CCM: Canadian Code Monkey.
Its not just a bike manufacturer anymore Tongue
Hatchy
ERR Champion
Post Rank 4
****
Posts: 250

chris_hatch_2004@hotmail.com
View Profile Email
« Reply #9 on: December 15, 2008, 04:03:59 am »

Always did wonder how the automatic dj played the songs.
Logged

Are they afraid of what we see, they draw their own conclusions
This twist of fate between you and me is far beyond illusion
Far Beyond Illusion
Pages: [1]
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines
Cerberus design by Bloc
Valid XHTML 1.0! Valid CSS!
gfx
gfxgfx gfxgfx