[Events] holds the text events that apply to the whole song: practice sections, lyrics, the coda and the song’s end. Each is an E event with its text in quotation marks:
E "[section Intro]" means the same as E "section Intro".
Practice sections
A practice section marks where a part of the song starts, such as the intro or a verse. It runs until the next practice section:- Required: a space or
_betweensectionand a name, and no spaces at the name’s ends. Recommended: a space. - Recommended: at least one practice section in a chart.
- Required: one practice section at most at a tick.
Verse 1 for verse_1. It shows any other name with each _ replaced by a space. It does the same in a .mid file.
Edge case: a chart with no practice sections. When a song with no practice sections is played, Clone Hero makes ten, named 0% - 10% to 90% - 100%. They start at tenths of the chart’s length, which ends a beat after the last note. It does the same in a .mid file. YARG makes none. scan-chart reports noSections.
Lyrics
A lyric is one syllable or word of the vocals. Vocal phrases group lyrics into the lines a scanner shows:- A lyric is
lyric, a space, and the text. - A phrase runs from a
phrase_startto the nextphrase_startorphrase_end. It holds the lyrics from its start tick through its end tick. - Required: every lyric inside a phrase.
- Required: a
phrase_endat the end of the last phrase. - On a tick where one phrase ends and the next starts, a
phrase_endis optional. Required: if there is one, it comes before thephrase_start. - Required: a
phrase_endonly where a phrase is open. - Required: no other text that starts with
phrase_startorphrase_end.
.chart file holds one set of lyrics, without pitches.
Lyrics use the symbols and formatting tags of .mid lyrics, which change how a lyric is shown. See Lyric symbols and Formatting tags. Required: angle brackets only around those tags.
Edge case: a lyric on a phrase’s last tick. A lyric on the tick where its phrase ends belongs to that phrase, unless the next phrase starts on that tick: then it belongs to the next phrase.
Edge case: the same lyric twice at one tick. Clone Hero shows it twice. YARG and scan-chart keep one.
The coda
coda marks where the song’s big ending starts. A drum fill at or after it is a Big Rock Ending: see Drum fills. Required: one coda at most.
The end of the song
end ends the song before its audio does. When the audio runs on long past the last note, such as a long fade-out or a recording that keeps going, a scanner ends the song at end and shows the results sooner.
- Required:
endat least one beat after the end of the last note, sustain included. - Required: one
endat most.
Deprecated
prc, an older word forsection:prc_verse_1is a practice section namedverse_1. Writesectioninstead.
Ignored
- Any other text, except text that starts with
phrase_startorphrase_end. YARG acts on a few more events, such ascrowd_clap; other scanners ignore them. - A lyric with no text, such as
E "lyric ".
Invalid forms
Two practice sections at one tick
Two practice sections at one tick
Clone Hero, YARG and scan-chart use the later one.
No separator after section or prc
No separator after section or prc
Clone Hero skips the character after
section or prc, so E "sectionIntro" is a section named ntro there. YARG reads a section named Intro. scan-chart doesn’t read it as a section, and keeps it as text.A practice section name with spaces at its ends
A practice section name with spaces at its ends
YARG and scan-chart remove them. Clone Hero removes the spaces at the end of the text, but keeps those after the separator, so
E "section Intro " is a section named Intro there.A practice section with no name
A practice section with no name
YARG and scan-chart ignore
E "section" and E "section ". Clone Hero reads them as a section named "", and fails to load a chart that has E "prc" alone. A scanner that reads such a chart reads no section there, as YARG and scan-chart do.A lyric outside every phrase
A lyric outside every phrase
A scanner ignores it.
A phrase that never ends
A phrase that never ends
A scanner ignores a last
phrase_start that no phrase_end closes, and the lyrics after it. YARG keeps it only when nothing in [Events] comes after it.phrase_start before phrase_end on one tick
phrase_start before phrase_end on one tick
Clone Hero and scan-chart read them in the order written, so the new phrase ends at once and holds nothing. YARG reads them as the end of one phrase and the start of the next.
A phrase_end with no open phrase
A phrase_end with no open phrase
It has no effect in Clone Hero and scan-chart. YARG starts a phrase there, which the next
phrase_start or phrase_end ends.Text that starts with phrase_start or phrase_end
Text that starts with phrase_start or phrase_end
Clone Hero reads any text that starts with
phrase_start, such as phrase_start_2, as a phrase start, and any text that starts with phrase_end as a phrase end. YARG and scan-chart read only the exact words. scan-chart keeps such text, and writes it back.More than one coda or end
More than one coda or end
A scanner uses the first
coda, as Clone Hero and scan-chart do. Clone Hero and scan-chart also use the first end. YARG looks for end among the song’s last 10 song-wide events, and uses the last one it finds there. scan-chart reports badEndEvent for each end after the first, and saves them as written.An end less than a beat after the last note ends
An end less than a beat after the last note ends
Clone Hero ignores it, and plays until the later of the end of the audio and the end of the last note. YARG uses it when it comes after the end of every note, phrase and lyric, with no one-beat margin. scan-chart reports
badEndEvent when it comes before the last note starts, and saves it as written.