-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
96 lines (82 loc) · 2.87 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
What to do and how:
+ frontend stuff (hangover-web)
schedules:
(editor view)
create schedules, see schedule for $time
--->
schedule:
(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
wishlist:
- 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