- Rules: something GuitarGame_ChartFormats allows or recommends is required, recommended, deprecated or invalid here, or the reverse.
- Corrections: GuitarGame_ChartFormats says a game does something it doesn’t, or no longer does.
- Additions: this specification covers something GuitarGame_ChartFormats doesn’t.
Song folders
song.iniis required in every song folder: see Files in a song folder. GuitarGame_ChartFormats calls it common.- Only
notes.chartandnotes.midare charts, in lowercase. A custom name, a[Y]or[F]suffix and.midiare invalid, since no game reads them. A folder with both charts usesnotes.mid: see The chart. - Games find audio by its file name alone.
[Song]’sMusicStream,GuitarStreamand the other stream keys are ignored, and no game falls back on them: see Audio. - Every stem plays. A folder with
drumsanddrums_1plays both in Clone Hero and YARG; GuitarGame_ChartFormats saysdrumsis ignored. A folder should hold only one of them. previewandcrowdaudio are deprecated, and a folder holds one file for each audio name: see Deprecated.- Album art is recommended as
album.png, at 512 by 512 pixels. Several background images are allowed, and a game shows one at random.video.webmis the recommended video. Thecover,backgroundandvideokeys ofsong.iniare read by YARG alone. See Art and video. - Additions: the
.sngformat, and the charting guidelines.
song.ini
[Song]doesn’t fill gaps insong.ini. Whensong.iniloads, a scanner takes the song’s text metadata from it alone, even for a key it leaves out.[Song]’sOffset,PreviewStartandPreviewEndare read only whensong.inidoesn’t setdelay,preview_start_timeorpreview_end_time, and the two files must agree: see[Song]. GuitarGame_ChartFormats preferssong.inikey by key.- Deprecated keys:
delay,hopo_frequency,eighthnote_hopo,multiplier_note,fretsandtrack.end_eventsandhopofreqare ignored.pro_drumandstar_power_noteare older names, read only when the main key has no line.sustain_cutoff_thresholdstays standard, though a new chart should leave it out. See Settings and Metadata. - Values are stricter: see Syntax. A blank value and
-1are invalid, and read as a missing key: to leave a value unset, leave its key out. A comment starts with;, and#is invalid. No key takes a decimal number. Recommended:TrueandFalsefor booleans, which are the only booleans in a.sngfile. delaywith a decimal point is invalid, and read as seconds, as Clone Hero reads it:delay = 1.5is 1500 milliseconds. See Settings.yearis the album’s year, andYear = "2002"is the recommended[Song]form. The,before it stays valid.- Additions:
preview_end_time, part credits,explicit_lyrics,diff_keys_ghl,chord_snap_threshold,ignored_issues, the keys only YARG reads, and how style tags show.
.chart files
- The layout is required, where GuitarGame_ChartFormats describes what readers accept: see Syntax.
[Song]comes first and[SyncTrack]second. A section’s header,{and}each stand alone on a line. One space separates the parts of a line. Numbers have no sign. Names match in exact letter case. A section name appears once, and a scanner reads the first copy. - Ticks never go backwards in a section. GuitarGame_ChartFormats recommends it; Clone Hero refuses a file that breaks it.
- A tempo marker and a time signature at tick 0 are recommended, not required. Without them, a chart plays at 120 BPM and 4/4 until its first marker, in every game: see The start of the chart.
- Text events are written without square brackets in both formats, such as
E section Intro, and brackets stay valid: see[Events]. endcomes at least a beat after the last note, and a chart has at most one. See The end of the song.prc_section names are deprecated: writesection.- Ignored: versus phrases,
S 0andS 1;Hevents; and the[Song]keys of older tools. - Additions: a flam,
N 109, and range shifts,E ld_range_shift. Both extend the.chartformat itself, where GuitarGame_ChartFormats advises a new file extension for any extension. - Additions: the byte order marks, the ISO-8859-1 fallback, and the white space a scanner trims, on Syntax, and the five steps of How notes resolve, with chord snapping.
Phrases
- On 5-fret,
S 64at or after the coda is a Big Rock Ending,S 65a tremolo lane andS 66a trill lane, as notes 120, 126 and 127 are in a.midfile. GuitarGame_ChartFormats has lanes on drums only. See Phrases. - A lane covers its end tick, and lanes may overlap.
- A
.midlane has four velocity tiers: 21 to 30 on every difficulty, 31 to 40 on Medium and up, 41 to 50 on Hard and up, and any other velocity on Expert alone. See Lanes. - A Big Rock Ending needs only note 120. Notes 121 to 124 are optional, and span the same ticks as 120. See Drum fills.
- Solos read as star power only in a track with two or more solos and no star power note, on 6-fret too.
multiplier_noteis deprecated: see Solos. - Additions: every phrase covers a note, and one of length 0 covers the notes on its tick; what scanners do with overlapping phrases, nested solos and empty ones.
.mid files
- A track has one name, a track name event as its first event at tick 0, in capitals: see Track names. Clone Hero names a track by its last name at tick 0, not its first. An instrument has at most one track, and with two, the first counts.
- Text is
FF 01, in UTF-8, inEVENTSand instrument tracks. GuitarGame_ChartFormats counts every meta event fromFF 01toFF 0Fas text, which no reader does. Lyrics areFF 05, orFF 01: see Text. - Square brackets around text events are optional, and the recommended form has none, which reverses GuitarGame_ChartFormats’ advice. A range shift keeps its brackets. See EVENTS track.
- Note pairing is new: at a shared tick, the note-off comes first. Overlapping notes of one number are invalid, and read as Clone Hero reads them.
- Running status kept across meta and SysEx events is valid, since every reader keeps it. GuitarGame_ChartFormats calls it a fault.
- The header’s track count must match the tracks, and a scanner reads every track anyway. GuitarGame_ChartFormats calls the count metadata only.
- A Phase Shift SysEx event counts only at exactly 8 bytes: see The Phase Shift SysEx event.
- A tap covers its end tick, as GuitarGame_ChartFormats says. YARG doesn’t tap a note there, so an exporter keeps notes off that tick: see Taps.
T1 GEMSandPART DRUMare deprecated, and theBEATtrack is ignored.
Drums
- A scanner decides the drum type in one fixed order, pro before 5-lane: see Drum types.
pro_drums = Falsemeans the same as no key, andfive_lane_drums = Truewithpro_drums = Trueis invalid, and reads as 5-lane. - A
.midtom marker makes a chart pro only when it covers a note: see Drum types. - Sustained notes don’t make a chart 5-lane in any game, and a drum note’s length has no effect.
- Kicks have no accents or ghosts, in either format.
- A double kick,
N 32, is recommended only inExpertDrums, andN 0withN 32at one tick is invalid. - The recommended disco flip spelling is
mix 3 drums0d, without brackets. Other spellings read as Clone Hero reads them, and a missing configuration digit isn’t “no stems”. Adnoflipwhile adflip is on is invalid, andeasyandeasynokickare ignored. See Disco flip.
Vocals
PART HARMnnames are deprecated: writeHARM1toHARM3, in order. See Vocals and harmonies.- A phrase holds notes and lyrics through its end tick, unless the next phrase starts there.
- Each 106 phrase matches a 105. Note 97 is ignored, and
[range_shift]text is deprecated. - Only Clone Hero’s formatting tags go in angle brackets in a lyric, so
<whistle>is invalid.
Hashes
GuitarGame_ChartFormats doesn’t cover hashes. This specification adds BTrack and TrackHash, SongHash, and the obsolete BTrack 20240320.Not covered
This specification covers the song folders that Clone Hero and YARG play. GuitarGame_ChartFormats also documents Phase Shift, Rock Band, Guitar Hero 1 and 2, Frets on Fire X, Editor on Fire and DJ Hero, and the.mid tracks of pro guitar, pro keys, real drums and venue. A scanner ignores those tracks: see Ignored.