Skip to main content
[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:
A scanner matches every event below in the letter case shown. It reads the text as Syntax describes, so 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 _ between section and 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.
Edge case: the names Clone Hero shows. Clone Hero has a table of Rock Band section names, and shows a name from it when it finds one there, such as 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_start to the next phrase_start or phrase_end. It holds the lyrics from its start tick through its end tick.
  • Required: every lyric inside a phrase.
  • Required: a phrase_end at the end of the last phrase.
  • On a tick where one phrase ends and the next starts, a phrase_end is optional. Required: if there is one, it comes before the phrase_start.
  • Required: a phrase_end only where a phrase is open.
  • Required: no other text that starts with phrase_start or phrase_end.
A .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: end at least one beat after the end of the last note, sustain included.
  • Required: one end at most.

Deprecated

  • prc, an older word for section: prc_verse_1 is a practice section named verse_1. Write section instead.

Ignored

  • Any other text, except text that starts with phrase_start or phrase_end. YARG acts on a few more events, such as crowd_clap; other scanners ignore them.
  • A lyric with no text, such as E "lyric ".

Invalid forms

Clone Hero, YARG and scan-chart use the later one.
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.
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.
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 scanner ignores it.
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.
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.
It has no effect in Clone Hero and scan-chart. YARG starts a phrase there, which the next phrase_start or phrase_end ends.
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.
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.
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.