Web based internet radio station control software; both a dynamic listener interface and an administrative interface. Features include multiple channels, user requests and ratings of songs, several types of queuing and show scheduling.
Essentially, tunequeue just tells Ices what to play (Ices is nice enough to ask after each song when used in playlist mode). tunequeue decides what to play based on a number of criteria, including user input via a web interface. There are a number of scheduling methods which can be used to determine which song to play next, including random, sequential, least played, newest, highest rated, etc. tunequeue also allows you to schedule different playlists and method combinations to be used at different time periods, effectively creating "shows" at different times.
For example, my channel on Spogbiper plays current indie music from my collection. From 8AM to 5PM, it usually plays a random mix of songs that I like to hear while working, picking the next song from a set of the songs that haven't been heard for the longest amount of time. However, from 11:30AM to 12:30PM, it plays early 90's alternative songs that I enjoyed ten years ago. From 5PM to 7PM it plays a select subset of the normal mix, all songs that are faster and more upbeat (got to start the party, work is done :). At 8PM it plays the highest rated songs according to users voting on the website until 9PM, and then it plays randomly from the newest additions to the library for an hour. Finally, at 1AM it switches to the sleepy time playlist, a mix of slow songs from the main playlist and an additional set of songs only played during the night.
In addition to the automatic scheduling, I allow users to request any song from the library at any time. Users can see the next few upcoming songs and cancel them or move them forward in the queue. Occasionally I will define a set playlist I like in Winamp and have the channel play through it sequentially. (tool to import winamp playlists is still very alpha but coming in next release).
In contast to my largely random style, a religious station currently testing tunequeue plays a set sequential playlist from start to finish each day, the order being defined in advance by church members. Thanks to the work of Jacint Balint, tunequeue has a nice web interface where they are able to easily create schedules for each day. Also added by Jacint is the ability to log the date and time that each song plays for use in reporting to licensing agencies.
Tunequeue is written in perl. It is designed to use the excellent Icecast streaming server and Ices to stream the audio to listeners, but it should be trivial to use tunequeue to control other streaming systems. The song library and channel configuration is stored in a SQL database, currently we have only tested with MySQL.