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

# Phrases

> Star power, solos, lanes and drum fills in a .mid file.

A phrase marks a stretch of an instrument track, such as a star power phrase or a solo. In a `.mid` file a phrase is a note: it starts at its note-on and ends at its note-off, and it applies to every difficulty of its track:

```text theme={null}
PART GUITAR
  0      Track name  PART GUITAR
  1920   Note on     116  Star power
  1920   Note on     96   Expert green
  2160   Note off    96
  2400   Note on     97   Expert red
  2640   Note off    97
  2880   Note off    116
  3840   Note on     103  Solo
  3840   Note on     98   Expert yellow
  4080   Note off    98
  4320   Note on     99   Expert blue
  4560   Note off    99
  4800   Note off    103
```

Here a star power phrase covers the notes at ticks 1920 and 2400, and a solo covers the notes at ticks 3840 and 4320.

| Note | Phrase | Instruments | Covers its end tick |
| - | - | - | - |
| `116` | [Star power](#star-power) | All | No |
| `103` | [Solo](#solos) | All | No |
| `120` | [Drum fill](#drum-fills) | Drums. On 5-fret, only as a Big Rock Ending | Yes |
| `126` | [Lane](#lanes): a single roll lane on drums, a tremolo lane on 5-fret | Drums and 5-fret | Yes |
| `127` | [Lane](#lanes): a double roll lane on drums, a trill lane on 5-fret | Drums and 5-fret | Yes |

A `.chart` file writes these phrases as `S` events, and solos as text events. See [Phrases](/chart/phrases).

## Rules for every phrase

* A phrase applies to every difficulty of its track, except a lane, whose velocity gives its difficulties. A `.chart` file gives each difficulty its own phrases.
* **Required:** at least one note in each phrase.
* **Recommended:** a note of each difficulty in each phrase, and a length of at least one tick for each phrase.

**Edge case: a phrase of length 0.** A note-on and its note-off at one tick: the phrase covers the notes on its tick.

**Edge case: a phrase without notes on one difficulty.** A phrase can cover notes on Expert and none on Easy, because it applies to both. Clone Hero ignores it on the difficulties where it covers no note, and scan-chart reports it there.

## Star power

Note 116 marks notes the player can earn star power from: hitting every note in it fills a quarter of the star power meter.

Neither game adds star power to a chart that has none, except by reading solos as star power: see [Solos](#solos).

## Solos

Note 103 marks a solo. It covers its notes from its note-on up to, but not including, its note-off.

Unlike a `.chart` solo, which covers its `soloend` tick, a `.mid` solo doesn't cover the tick of its note-off. To cover the same notes as a `.chart` solo, its note-off comes one tick after the `soloend` tick.

**Edge case: solos read as star power.** Guitar Hero 1 charts mark star power with note 103, and don't set `multiplier_note`. So in a 5-fret, 6-fret or keys track with two or more solo notes, 103, and no star power note, 116, Clone Hero, YARG and scan-chart read the solos as star power. A `multiplier_note` of 103 or 116 in `song.ini` turns this off, and its value gives the star power note instead: see [Deprecated](#deprecated). An exporter gives such a track star power on note 116, or writes `multiplier_note = 116`. See [Settings](/ini/settings#deprecated).

## Drum fills

A drum fill marks a stretch where the drummer can play freely and activate star power by hitting the fill's last note. It includes its end tick. An exporter should put a note on the fill's end tick.

**Edge case: a drum fill without a note on its end tick.** The games choose different notes to activate star power, as in a `.chart` file. See [Drum fills](/chart/phrases#drum-fills).

**Edge case: a drums track without drum fills.** The games add their own. Clone Hero adds a star power activation every four measures. YARG adds drum fills when the track has star power.

A drum fill whose tick is at or after the `coda` is a Big Rock Ending instead: a closing freestyle section with no star power activation. See [The coda](/mid/events#the-coda). On 5-fret guitar, bass and keys, note 120 at or after the `coda` is a Big Rock Ending, and has no meaning before it.

**Edge case: where a Big Rock Ending ends.** YARG counts a note on a Big Rock Ending's end tick as part of it, and Clone Hero doesn't. **Recommended:** a note after each Big Rock Ending, which closes it, and the Big Rock Ending ending before that note, as in a `.chart` file. See [Drum fills](/chart/phrases#drum-fills).

Rock Band charts write each drum fill and Big Rock Ending as five notes, 120 to 124. Note 120 is the phrase. Notes 121 to 124 may come with it. **Required:** each starts and ends where a 120 does. Clone Hero and scan-chart read only 120. YARG reads each of 120 to 124 as a drum fill on drums, which gives the same fill when they match.

## Lanes

A lane marks a passage too fast to play note for note. Inside it, the player keeps up the motion at their own speed, and each note counts as hit. A lane includes its end tick, and lanes may overlap.

* **On drums,** 126 is a roll on one pad, and 127 a roll that alternates between two pads. The lane takes its pads from the notes it covers, and never includes the kick. **Recommended:** a roll on one pad starts with a note on one pad, as in a `.chart` file.
* **On 5-fret guitar, bass and keys,** 126 is a tremolo lane: one fret or chord repeated, at least two notes, strummed freely. 127 is a trill lane: two single frets alternating, at least three notes, played freely between them.

A lane's velocity gives the difficulties it applies to:

| Velocity | Difficulties |
| - | - |
| 21 to 30 | Easy, Medium, Hard and Expert |
| 31 to 40 | Medium, Hard and Expert |
| 41 to 50 | Hard and Expert |
| Any other | Expert |

A lane should cover at least two notes, and only notes that fit its pattern, as in a `.chart` file. See [Lanes](/chart/phrases#lanes).

**Edge case: lanes on 5-fret.** YARG plays tremolo and trill lanes on 5-fret, and Clone Hero plays lanes only on drums. On 5-fret, YARG gives a note that two lanes cover to the earlier lane only.

## Deprecated

* **Star power on note 103,** from Guitar Hero 1 and 2 charts, with `multiplier_note = 103` in `song.ini`. Clone Hero and scan-chart then read 103 as star power in 5-fret, keys and 6-fret tracks, and ignore 116 there. YARG does it in every track. Move the star power to note 116 instead, and remove the key. See [Settings](/ini/settings#deprecated).

## Ignored

* **Versus phrases,** notes 105 and 106, which mark the parts each player plays in a face-off in older games. An exporter should keep them when rewriting a file. On a vocal track, these notes are phrases. See [Vocals and harmonies](/mid/vocals#phrases).
* **`solo` and `soloend` text events.** A `.mid` solo is a note.
* **Note 125,** which YARG reads as a kick roll lane on drums.
* **Notes 120, 126 and 127 on 6-fret.**
* **Any other note from 105 to 127** that these pages don't list.

## Invalid forms

<Accordion title="Two phrases of one type at one tick">
  A scanner uses the longer phrase, as Clone Hero and scan-chart do, and as in a `.chart` file. YARG keeps the shorter.
</Accordion>

<Accordion title="Overlapping phrases of one type, other than lanes">
  A scanner cuts the earlier phrase where the later starts, and extends the later one to whichever ends last, as Clone Hero and scan-chart do, and as in a `.chart` file. Overlapping notes of one number pair first, as [Note pairing](/mid/note-pairing#invalid-forms) says. YARG gives each note to the latest phrase that started before it, so the rest of a longer earlier phrase is lost. scan-chart's export writes the cut and extended phrases.
</Accordion>

<Accordion title="A phrase that covers no notes">
  A scanner ignores it. scan-chart reports an empty star power phrase, solo or lane on each difficulty.
</Accordion>

<Accordion title="Notes 121 to 124 without a matching 120">
  Clone Hero and scan-chart ignore them, and YARG reads each as a drum fill on drums. scan-chart writes them back as they are.
</Accordion>


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