Skip to main content
An instrument track holds the notes, modifiers and phrases of one instrument, for all four difficulties. Each difficulty has its own range of note numbers:
Here Expert has a green and red chord at tick 1920, held to tick 2400, then a yellow note with no sustain. Hard has a green note at tick 1920.

Track names

These are the instruments of a .chart file’s section names. A .mid file has one track for each instrument, where a .chart file has a section for each instrument and difficulty. Vocal tracks are on Vocals and harmonies.
  • Required: each name as the table shows it, in capitals. See Track names.
  • Required: one track at most for each instrument.
Edge case: YARG doesn’t read PART KEYS GHL.

Notes

A note is a note-on and the note-off that ends it. See Note pairing. Its number says which note it is, and on which difficulty. Its length, from note-on to note-off, is its sustain.

5-fret

  • The open note is a note only in a track that has ENHANCED_OPENS. See Open notes.
  • The next two numbers of each difficulty, such as 101 and 102 on Expert, are modifiers. See Note modifiers.

6-fret

The 6-fret frets are in two rows: three black frets on top and three white frets below them. The 6-fret open note needs no text event. The next two numbers of each difficulty are modifiers, as on 5-fret.

Drums

Drums gives the kinds of drum chart, and the modifiers for toms, accents, ghosts and flams.

Notes for every difficulty

A note from 103 up applies to every difficulty of its track at once: In a .chart file each difficulty’s section has its own phrases. In a .mid file a phrase applies to every difficulty.

Notes at one tick

  • Notes of different lanes at one tick, in one difficulty, form a chord. Each note ends at its own note-off, so a chord’s sustains can end at different ticks.
  • An open note may be in a chord with fret notes when it’s written as a note: on 5-fret after ENHANCED_OPENS, and on 6-fret. The player holds the fret notes and strums.

Range shifts

A range shift tells the player which frets a stretch of one 5-fret difficulty uses, as in a .chart file. See Range shifts. In a .mid file it’s a text event, FF 01, in the 5-fret track, and its difficulty part says which difficulty it applies to:
  • The parts and their values are the same as in a .chart file.
  • Required: square brackets around the whole text. Unlike other text events, a range shift isn’t read without them.
  • A range shift lasts from its tick until the next range shift of its difficulty.
Edge case: of two range shifts of one difficulty at one tick, a scanner uses the later one in the file.

Difficulties

A difficulty is a track, one instrument at one difficulty, only if it holds at least one note. How notes resolve says how a scanner turns its notes into the notes a player plays, with the .mid differences on Note pairing and Note modifiers.

Deprecated

  • T1 GEMS, the lead guitar track of Guitar Hero 1 charts. Clone Hero, YARG and scan-chart read it as PART GUITAR. Write PART GUITAR instead.
  • PART DRUM, a drums track name from FoFiX. Clone Hero, YARG and scan-chart read it as PART DRUMS. Write PART DRUMS instead.
scan-chart’s export writes both under their new names.

Ignored

  • A note number the tables don’t list, such as 67 to 69, between Easy and Medium. Rock Band charts use notes 40 to 59 on 5-fret tracks, and 24 to 51 on drums, for animations, which YARG reads. Without ENHANCED_OPENS, 59 is one of them.
  • A note’s channel and velocity, except where a page gives them a meaning: drum accents and ghosts, and a lane’s difficulties.
  • Tracks for instruments of other games: Pro keys (PART REAL_KEYS_X, PART REAL_KEYS_H, PART REAL_KEYS_M and PART REAL_KEYS_E), Pro guitar and bass (PART REAL_GUITAR, PART REAL_GUITAR_22, PART REAL_BASS and PART REAL_BASS_22), PART REAL_GUITAR_BONUS, PART ELITE_DRUMS, PART REAL_DRUMS_PS, PART DRUMS_2X, and animation tracks such as PART KEYS_ANIM_LH. Clone Hero reads none of them. YARG reads Pro keys, Pro guitar and Elite drums. An exporter should keep them when rewriting a file, and scan-chart writes them back as they are.

Invalid forms

A scanner reads the first, even when it has no notes, as Clone Hero does. T1 GEMS and PART GUITAR are one instrument, and so are PART DRUM and PART DRUMS. YARG’s song list uses the first track that has a note. YARG’s gameplay uses the last PART GUITAR or PART DRUMS, and otherwise the first track that holds anything, so the song list and the notes played can differ.scan-chart reports multipleMidiTracks. It reads every track, and its TrackHash uses the first. Saving with scan-chart keeps every track. scan-chart’s export writes only the first, under its standard name.
A scanner ignores it, as it ignores the forms that Instrument sections lists for a .chart file. In a .mid file, that also includes a range shift without square brackets, one in another type of text event, and one outside a 5-fret track. A scanner still reads one with white space around the whole text, such as [ld_range_shift 0 1]. scan-chart keeps the text, and writes it back.
Clone Hero, YARG and scan-chart keep the one with the longer sustain, as in a .chart file. See Note pairing.
The difficulty isn’t a track: it gets no hash, and YARG and scan-chart don’t list it. Clone Hero’s song list still offers it, because its song scan counts any note numbered 58 to 66, 70 to 78, 82 to 90 or 94 to 102 as a note of that difficulty. scan-chart keeps the modifiers when saving, and its export leaves them out.