Repository navigation
Expand file tree
/
Copy pathclassifiers.json
More file actions
158 lines (158 loc) · 7.33 KB
/
Copy pathclassifiers.json
File metadata and controls
158 lines (158 loc) · 7.33 KB
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
{
"non_song": [
{
"pattern": "no[uw]n?c",
"why": "Al's between-song announcements, in every spelling tapers reach for. This replaces \"nounc\" and \"nownc\", which were added one at a time as each new misspelling surfaced -- and the first of them claimed in this very field to \"catch the lot\", while \"al.noucements\", \"Alnoucemnts\", \"annoucements\" and \"more annoucements\" all walked straight past it and into the vocabulary as songs with medians. The pattern now allows the 'n' to go missing and the 'u' to be typed as a 'w', which is the whole family: 136 distinct corpus entries match, against zero titles in vocabulary.json and zero in protected.json. Anchoring is not needed and would hurt -- these arrive welded to other stage business (\"Crowd/Banter/al.nouncements\", \"break/raffle/al.nouncements\")."
},
{
"pattern": "^callback",
"why": "Al calling back to something said earlier in the night -- \"callback\", \"call back\", \"Callback / Crowd\". It was published as a song with n=6 and a median of 3:40. Anchored, because a call-back is always what the entry OPENS with, and free-floating it would eventually reach a lyric-shaped title."
},
{
"pattern": "introduction",
"why": "Not a moe. song. It is a hype MC introducing the band, and he does it with very consistent timing -- which is exactly what makes it dangerous: it looks like a tight, reliable 90-second opener and a length model would believe it."
},
"^tunn?ing",
"tunn?ing$",
"^tuneup$",
{
"pattern": "banter",
"why": "Between-song stage talk, never a titled performance. Free-floating so it also catches \"Crowd Banter\" and \"Break/Banter\"."
},
{
"pattern": "greeting",
"why": "\"Greeting By Al\" -- Al saying hello to the room. This lived in setlistkit's generic junk filter, which DROPS, and that was the wrong side of the line: a greeting happened on the stage and is not music, which makes it a tag. Dropped, the corpus lost the fact that the band opened by talking. Free-floating so it also catches \"Greetings\" and \"Al's Greeting\"; checked against all 306 squashed titles for an accidental cross-word match (\"The Ogre Eating\" squashes to theogreeating, not theogreeting) and there is none."
},
"^crowd",
"^applause$",
"^setbreak$",
"^soundcheck$",
"intros$",
"^inro$",
{
"pattern": "comments",
"why": "Stage business, not a song: \"adjustments & comments\", \"comments & calling up Andy\"."
},
{
"pattern": "shoutouts",
"why": "Stage business: \"Break/ Shout Outs\"."
},
{
"pattern": "changerobsamp",
"why": "Gear business. Spelled out in full rather than reaching for a pattern like \"amp$\", which would take Vamp and anything else ending that way with it."
},
"^happybirthday",
"^goodnight",
"speaks$",
"^shtick$",
"^odeto",
{
"pattern": "proclamation",
"why": "moe.day is the band's own festival and a \"moe.day Proclamation\" is Al reading it out, not a song."
},
"^jam$",
"^chat$",
{
"pattern": "performingas",
"why": "A note the description parser mistook for a song."
},
"teases?$",
"^bringingout",
"^noodling",
"^intro",
"intro$",
"^encorebreak$",
{
"pattern": "reprise",
"why": "The setlist sometimes labels a reprise outright -- \"Moth (reprise)\". Take it at its word: a reprise is real music but it is not a performance of the song, and it drags the median down exactly like the unlabelled ones we catch by ear."
},
{
"pattern": "^break$",
"why": "A set break, written bare. The pack already tags ^setbreak$ and ^encorebreak$; this is the same event with the qualifier left off, and it is the single most common non-song token on these tapes. Anchored because 'break' is a substring of ordinary words and a free-floating version would reach a title eventually."
},
{
"pattern": "^drum[sz]$",
"why": "A drum segment. Tagged and not dropped because it happened on stage: Rule Two says a DROP may only answer 'is this an entry', and this was one. Covers the 'drumz' spelling, which is the same segment written by a different taper."
},
{
"pattern": "^drumsolo$",
"why": "As ^drum[sz]$: a performance segment, not a titled song."
},
{
"pattern": "^basssolo$",
"why": "As ^drumsolo$."
},
{
"pattern": "^outro$",
"why": "The closing counterpart to the intro rules already here. Stage business."
},
{
"pattern": "^audience$",
"why": "A note that the recording is of the room, not a performance under this name."
},
{
"pattern": "^acoustic$",
"why": "A segment marker: the band played acoustic, which is a fact about how the music was played rather than a song."
},
{
"pattern": "^oneset$",
"why": "A note that the show was played as a single set."
},
{
"pattern": "^afternoon(set)?$",
"why": "An afternoon set at a festival. A label for a performance, not a title."
},
{
"pattern": "^night$",
"why": "A set label on multi-night runs. Anchored: several moe. titles are single generic words and a free-floating 'night' would reach them."
},
{
"pattern": "^(nye)?countdown$",
"why": "The New Year's Eve countdown. It happens on stage and is not a song."
},
{
"pattern": "^alonmandolin$",
"why": "Al on mandolin: an instrument note. All three spellings in the corpus squash to this."
},
{
"pattern": "^untitled$",
"why": "A performance the taper had no name for. Tagged and not dropped: something was played, and Rule Two reserves DROP for text that was never an entry."
},
{
"pattern": "^newchucksong$",
"why": "An unnamed new song, annotated rather than titled. A tag and not a drop, because something was performed -- the taper just had no name for it."
},
{
"pattern": "^ledzeppelin$",
"why": "A cover artist's name leaking in on its own, from an annotation the description parser did not fully absorb -- not a moe. song. Found by cross-referencing the unknown-title lookup against the 2020+ measurement in the songbook design doc; classifier gap, not an alias gap."
},
{
"pattern": "^steelydan$",
"why": "As ^ledzeppelin$: a cover artist credited beside a song, surviving as its own entry."
},
{
"pattern": "^blindmelon$",
"why": "As ^ledzeppelin$."
},
{
"pattern": "^genesis$",
"why": "A cover artist credit (\"= Genesis\") that survived as its own entry once the leading = was squashed away by squash()."
},
{
"pattern": "^ateamdirtysouthrecording$",
"why": "A taper crew credit (\"A Team Dirty South Recording\"), not a song."
},
{
"pattern": "^robclarke$",
"why": "A taper credit, not a song."
},
{
"pattern": "^adobeaudition$",
"why": "The editing software a taper credits in their post-production notes, not a song."
},
{
"pattern": "^totaltracks$",
"why": "A tracklist header (\"Total tracks =\") that survived as its own entry. Stored non_song = 0 AND out-of-vocab in the 2020+ measurement -- the classifier missed it and only the unknown-title lookup caught it, which is why both checks are run and neither is treated as subsuming the other."
}
]
}