Find file
Fetching contributors…
Cannot retrieve contributors at this time
97 lines (82 sloc) 2.87 KB
What to do and how:
+ frontend stuff (hangover-web)
(editor view)
create schedules, see schedule for $time
(dj view)
change schedule
change selector
create, edit playlist
+ backend stuff
couch views:
- find a song by artist/title/album?/tag
really want "all tracks that contain blah"
can have "all tracks where artist or title begins with blah"
or separate dialogs for artist:boo title:bar etc:zoo
or js runs trough all tracks
- for each term, if tag contains term, emit
+ file upload fucks up!:: b/c tracks_path doesnt exist
+ empty searches?! :: b/c lua evals 0 to true + fields is empty
+ empty upload fucks up
+ get nonexistant track fucks up
- edit page :: WIP..
. iterate over fields
. hide some fields
. search -> edit button
- edit page adds tags
- error messages
- (add to .. ) playlist builder
- create program dialog (with sched picker)
- show schedule
- delete track/playlist{track}/playlist/program/
- get_next:
knows about silences, metadata, can queue songs
knows about shows & jingles
knows playtime, repeat count and can warn
knows the song will play
something skips to next to keep schedules
* get_end: increment played
* get_meta: metadata for current song
- metadata switchover
- metadata 2 PAD
* get_program: what is playing, when?
* ls: next (song, metadata, timecode)
- ls<->hangover<->irc
station is a selector and a timeline
one timeline per station (account for multitrack stuff later)
=actualized schedule for given timeperiod is set of schedule:<start,end,{transitions}>
while preserving the most-specific-match-first principle for precedence.
schedule is set of selectors and playlists.
top-down example:
{ station: oslo bass radio,
selector: { random{all songs}} # for random 10 in search()
timeline: {
schedule:morn {{ 5h-14h}, selector: morning songs},
schedule:midd {{14h-21h}, selector: midday songs},
schedule:eve {{21h-04h}, selector: evening songs},
schedule:schizo pinguino {sundays 12}, selector: playlist: {show 1, jingle 2, blah 3}}
schedule: keystone jingle {every 34 min}, selector: {tag: jingles},
schedule: live spot { switch to feed blah at {button / time } if available
how to prevent jingles cutting shows?
- create strict rules of precedence
.never played before
.shorter is better
."strict start/stop? / transitions"
.overlaid? (strict but doesnt cut)
.force people to PLAN. if your show runs overtime, and there is a new show after, well, you were warned.
interface coding:
create program {name= time= endtime= owner=}
search tracks
-> track tagger/editor
-> playlist builder
-> selector builder -> example playlist -> "realized playlist"
program builder \
|| live show scheduler
schedule display