Revisions/Modifications to Playlist Entry

mattrock - March 26, 2007 - 16:26
Project:Station
Version:5.x-2.x-dev
Component:Playlists
Category:feature request
Priority:normal
Assigned:Unassigned
Status:active
Description

Drewish, What are your plans for the future of playlist entry? I would like to start working on some sort of universal entry page and I am interested in what your plans are. Right now, we have a master entry page which drops the current play into a simple table. I would like to develop this into drupal and the station module in order to start addressing issues for MusicXchange reporting. In order to do this, there is going to need to be some interaction with icecast. Here is what I would like to capture at the time of entry:

  • Artist-Title-Album-Label
  • Show Name (can be overridden from what is in schedule for one-offs and subs)
  • Genre/New Release/Local/Request
  • Current # Stream Listeners
  • Optional tag line (which I think would be cool instead of advertising for FM RDS encoder metadata)

If there is going to be interaction with icecast, I think there are other features which could be added as well;

  • Auto build of .m3u or .pls files by weighting the preferred relays
  • Summing the listener count off of multiple relays
  • Updating the "Now Playing" metadata in the icecast streams (some perl scripts for this here... http://www.dnalounge.com/backstage/src/icecast/)

I still would like to figure out a switching mechanism for pulling the necessary input fields from a static file when no human host is present. I think this is important for people running automated stations as well. I am guessing this would require an additional cron job and script. And finally, I would still like to anticipate the possibility of musicbrainz lookup with the entry page as this will allow for some cool future http-request options in the final display. Also, I would like to investigate whether this module could be restricted to specific IP's for access (in other words, only station terminals get access to the entry page.)
My goal is to get feedback to help guide me with design templates for this project. Any feedback is welcome.

#1

drewish - March 27, 2007 - 06:32

it was great to get to talk to you on the phone about this and i think i've got a system in mind that'll do a good chunk of this. i like the idea of a unified log of events (show begin, played track, played track, show ends, show starts). from which you're able to determining a record of what program played when and build playlists of the track events.

#2

zas - May 30, 2007 - 17:10

hey just a quick link in responce to the icecast stuff. here´s what i´ve managed to come up with in terms of using the station.module to automate a radio station. it uses mpd as a streaming client and a simple python script actually calls the programs a the correct times with checking in case the program starts late. the live content actually comes from other streamings . participants in the project publish their own streaming url when they publish their url, and the script loads the apropriate url for the given time. station.module patch and script are in the link. i´m fairly new at this sort of thing, so certainly their are improvements to be made.

station module patch and script are here:
http://drupal.org/node/79968#comment-237098

#3

drewish - December 24, 2007 - 00:39

Here's part of a proposal I worked up for WSUM. I don't know if they'll end up sponsoring it but I wanted to make the

Overview
This project will revamp the playlist functionality of the Drupal Station module to provide a system for DJs to record information about
the songs they play as they play them. This information is used for several purposes:

  • Logging and licensing purposes (i.e. future use in SoundExchange reports)
  • Displaying current and recent songs on WSUM's website
  • Broadcast metadata (RDF for radio and ID3 for Icecast stream)

Data Entry
DJs will be presented with a form allowing them to enter the following details for each song:

  • Artist name
  • Track title
  • Album title
  • Label
  • A URL
  • The time it began playing
  • Musical genres

Additionally the system will record:

  • The DJ's id
  • Time of posting
  • The schedule their program is on

Automation software is used at times when no DJ is available and the songs it plays must also be able to be recorded. The module will not do the importing itself but provide a function to allow an external script to pass in data from the automation software.

DJs will indicate the first and last songs of their program. This time range will be used to create a playlist node which will be listed on their program's web page.

The admin needs to be able to who is allowed to post playlist entries. This should be done by specifying user roles and providing a white list of IP addresses or subnets.

Data Display
The station module's "Now playing" block will display the artist and title of the song with the greatest start time that is not in the future.

In addition to viewing the songs through the existing program playlist nodes, a page will be provided to enable listeners to view what was played at a given day and hour.

It would be great to be able to push the currently playing song title to the Icecast stream but I'm not certain it would be feasible. More investigation would be needed.

Migration
There needs to be a a migration path for WSUM's playlist history. Since this schema is based on the existing WSUM system this should be straight forward. This will be provided as a separate script that, because of it's custom design, will not become part of the official module.

Proposed database tables

  • plays: play_id, schedule_id, user_id, artist, album, title, label, link, posted_timestamp, start_timestamp
  • plays_term table: play_id, term_id
  • playlist table: node_id, schedule_id, start_timestamp, end_timestamp

#4

drewish - December 24, 2007 - 00:40

that intro sentence got cut off. it should have read: I don't know if they'll end up sponsoring it but I wanted to post it incase other groups were interested in sponsoring the work.

 
 

Drupal is a registered trademark of Dries Buytaert.