> ## Documentation Index
> Fetch the complete documentation index at: https://chart-spec.enchor.us/llms.txt
> Use this file to discover all available pages before exploring further.

# Instrument tracks

> The track names, and the note numbers for each instrument and difficulty, in a .mid file.

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:

```text theme={null}
PART GUITAR
  0      Track name  PART GUITAR
  1920   Note on     84   Hard green
  1920   Note on     96   Expert green
  1920   Note on     97   Expert red
  2400   Note off    84
  2400   Note off    96
  2400   Note off    97
  2880   Note on     98   Expert yellow
  2880   Note off    98
  2880   End of track
```

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

| Track name | Instrument | Kind |
| - | - | - |
| `PART GUITAR` | Lead guitar | 5-fret |
| `PART GUITAR COOP` | Co-op guitar | 5-fret |
| `PART BASS` | Bass guitar | 5-fret |
| `PART RHYTHM` | Rhythm guitar | 5-fret |
| `PART KEYS` | Keys, played on a guitar controller | 5-fret |
| `PART DRUMS` | Drums | Drums |
| `PART GUITAR GHL` | 6-fret guitar | 6-fret |
| `PART BASS GHL` | 6-fret bass | 6-fret |
| `PART RHYTHM GHL` | 6-fret rhythm guitar | 6-fret |
| `PART GUITAR COOP GHL` | 6-fret co-op guitar | 6-fret |
| `PART KEYS GHL` | 6-fret keys | 6-fret |

These are the instruments of a `.chart` file's [section names](/chart/instrument-sections#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](/mid/vocals).

* **Required:** each name as the table shows it, in capitals. See [Track names](/mid/structure#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](/mid/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

| Note | Easy | Medium | Hard | Expert |
| - | - | - | - | - |
| Open | 59 | 71 | 83 | 95 |
| Green | 60 | 72 | 84 | 96 |
| Red | 61 | 73 | 85 | 97 |
| Yellow | 62 | 74 | 86 | 98 |
| Blue | 63 | 75 | 87 | 99 |
| Orange | 64 | 76 | 88 | 100 |

* The open note is a note only in a track that has `ENHANCED_OPENS`. See [Open notes](/mid/modifiers#open-notes).
* The next two numbers of each difficulty, such as 101 and 102 on Expert, are modifiers. See [Note modifiers](/mid/modifiers#forced).

### 6-fret

The 6-fret frets are in two rows: three black frets on top and three white frets below them.

| Note | Easy | Medium | Hard | Expert |
| - | - | - | - | - |
| Open | 58 | 70 | 82 | 94 |
| White 1 | 59 | 71 | 83 | 95 |
| White 2 | 60 | 72 | 84 | 96 |
| White 3 | 61 | 73 | 85 | 97 |
| Black 1 | 62 | 74 | 86 | 98 |
| Black 2 | 63 | 75 | 87 | 99 |
| Black 3 | 64 | 76 | 88 | 100 |

The 6-fret open note needs no text event. The next two numbers of each difficulty are modifiers, as on 5-fret.

### Drums

| Note | Easy | Medium | Hard | Expert |
| - | - | - | - | - |
| Double kick | 59 | 71 | 83 | 95 |
| Kick | 60 | 72 | 84 | 96 |
| Red | 61 | 73 | 85 | 97 |
| Yellow | 62 | 74 | 86 | 98 |
| Blue | 63 | 75 | 87 | 99 |
| Green, or orange in 5-lane | 64 | 76 | 88 | 100 |
| Green tom in a pro chart, or green in 5-lane | 65 | 77 | 89 | 101 |

[Drums](/mid/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:

| Note | Meaning | See |
| - | - | - |
| 103 | Solo | [Phrases](/mid/phrases#solos) |
| 104 | Tap, on 5-fret and 6-fret | [Note modifiers](/mid/modifiers#taps) |
| 109 | Flam, on drums | [Drums](/mid/drums#flams) |
| 110, 111, 112 | Tom markers, on drums | [Drums](/mid/drums#toms) |
| 116 | Star power | [Phrases](/mid/phrases#star-power) |
| 120 | Drum fill, or Big Rock Ending | [Phrases](/mid/phrases#drum-fills) |
| 126, 127 | Lanes | [Phrases](/mid/phrases#lanes) |

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](/chart/instrument-sections#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:

```text theme={null}
<tick>  Text  [ld_range_shift <difficulty> <position>]
<tick>  Text  [ld_range_shift <difficulty> <position> <size>]
```

* 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](/chart/note-resolution) says how a scanner turns its notes into the notes a player plays, with the `.mid` differences on [Note pairing](/mid/note-pairing#the-sustain-cutoff) and [Note modifiers](/mid/modifiers#natural-hopos).

## 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

<Accordion title="Two tracks for one instrument">
  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.
</Accordion>

<Accordion title="A range shift in another form, or with a value out of range">
  A scanner ignores it, as it ignores the forms that [Instrument sections](/chart/instrument-sections#invalid-forms) 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.
</Accordion>

<Accordion title="Two notes of one number at one tick">
  Clone Hero, YARG and scan-chart keep the one with the longer sustain, as in a `.chart` file. See [Note pairing](/mid/note-pairing#invalid-forms).
</Accordion>

<Accordion title="Modifiers in a difficulty without notes">
  The difficulty isn't a track: it gets no [hash](/hashes/btrack#which-tracks-have-one), 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.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.