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

# About this specification

> What this specification covers, and the words it uses.

This specification defines the song folders that rhythm games such as Clone Hero and YARG play, and the files inside them. A song folder holds the song's chart, written as a `.chart` file or a `.mid` file, a `song.ini` file with its metadata and chart parsing settings, and its audio and album art.

It's written for two groups of people:

* charters, who want to know exactly what each part of a file does, and how to write it;
* developers of programs that scan or export song folders, such as games, chart editors, converters and chart sites.

## Requirements

Two words carry the requirements:

* **Must** marks a requirement. A file that breaks one is **invalid**, and a scanner may reject it.
* **Should** marks a recommendation. A file that doesn't follow one is still valid.

For each requirement a file can break, the page says what each scanner does with the file. Where a hash depends on it, the page also says what a scanner does, so that even an invalid file hashes the same everywhere.

## Terms

These words have one meaning throughout the specification, except where the table gives a second:

| Term | Meaning |
| - | - |
| Scanner | Code that scans for song folders and reads their files, such as a game, a chart site, or a library like scan-chart. |
| Exporter | Code that exports song folders, such as a chart editor or a converter. |
| Tick | The unit of position in a chart. A chart's events are placed at whole ticks. |
| Resolution | The number of ticks in a beat, which is a quarter note. |
| Track | One instrument at one difficulty, such as Expert guitar. A `.chart` file writes each track as a section. A `.mid` file writes all of an instrument's difficulties in one MIDI track. The `.mid` pages call a MIDI track a track, as the MIDI standard does. |
| Event | One line of a `.chart` section, or one MIDI event: a note, a modifier, a phrase, a tempo marker, or a text event. |


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