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

# Drums

> Drum types, and the pads, toms, accents, ghosts, double kicks, flams and disco flip of a .mid drums track.

The `PART DRUMS` track holds the notes of every difficulty for each pad and the kick, and modifiers that change how those notes are hit:

```text theme={null}
PART DRUMS
  0      Track name  PART DRUMS
  0      Text        ENABLE_CHART_DYNAMICS
  1920   Note on     96   Expert kick
  1920   Note on     98   Expert yellow
  1920   Note off    96
  1920   Note off    98
  2400   Note on     97   Expert red, velocity 127
  2400   Note off    97
  2880   Note on     99   Expert blue
  2880   Note on     111  Blue tom marker
  2880   Note off    99
  2880   Note off    111
```

Here the kick and a yellow cymbal come at tick 1920, then an accented red at tick 2400, then a blue tom at tick 2880.

## Drum types

A drums chart is 4-lane, pro or 5-lane, as [Drum types](/chart/drums#drum-types) describes for a `.chart` file. A scanner decides the type in the same order, from `song.ini` and the drums track, with two differences:

* A tom marker, 110, 111 or 112, that covers a note makes the chart pro, where a `.chart` file has a cymbal marker. The note may be of any difficulty, and may be a kick.
* A 5-lane green note, 65, 77, 89 or 101, makes it 5-lane, where a `.chart` file has `N 5`.

Playing one type on another kit works as in a `.chart` file, with 100 and 101 in place of `N 4` and `N 5`. See [Playing one type on another kit](/chart/drums#playing-one-type-on-another-kit).

**Edge case: 100 and 101 at one tick in a pro chart.** Clone Hero and scan-chart move 101 to a blue tom, and YARG plays both in the green lane, as a green cymbal and a green tom. **Recommended:** 100 and 101 on different ticks in a pro chart.

## Notes

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

A drum note's length doesn't change how it's played, as in a `.chart` file. See [Notes](/chart/drums#notes).

### Double kicks

Note 95 is a kick that a scanner plays only when the player has the double kick modifier enabled, as `N 32` is in a `.chart` file. See [Double kicks](/chart/drums#double-kicks).

**Recommended:** double kicks only on Expert, as note 95. **Required:** 95 and 96 not at one tick.

**Edge case:** Clone Hero plays 59, 71 and 83 as double kicks on Easy, Medium and Hard, when the double kick modifier is on. YARG's song list doesn't count them, and scan-chart reports them as `difficultyForbiddenNote`.

## Modifiers

A drum modifier is a note that changes how the pad notes it covers are hit. It covers the notes of every difficulty that start at or after its note-on and before its note-off, and one of length 0 covers the notes on its tick. Its velocity and channel have no effect.

* **Required:** at least one note under each modifier.

A `.chart` modifier applies only to the notes at its own tick. See [Modifiers](/chart/drums#modifiers).

### Toms

In a pro chart, a yellow, blue or green note is a cymbal, unless a tom marker covers it. This is the reverse of a `.chart` file, where a cymbal marker makes a cymbal of a tom.

| Note | Makes a tom of |
| - | - |
| `110` | Yellow, 98 on Expert |
| `111` | Blue, 99 on Expert |
| `112` | Green, 100 on Expert |

* Red is always the snare, and 101 is always a tom.
* In a 5-lane chart, tom markers have no effect: each pad is a tom or a cymbal by its lane.
* **Required:** tom markers of one color don't overlap.

### Accents and ghosts

An accent is a note hit harder than the ones around it, and a ghost is one hit softer. In a `.mid` file, a pad note's velocity makes it one, after the text event `ENABLE_CHART_DYNAMICS`:

| Velocity | Note |
| - | - |
| 127 | Accent |
| 1 | Ghost |
| Any other | A normal note |

* `ENABLE_CHART_DYNAMICS` is a text event, `FF 01`, in the drums track. It's written `ENABLE_CHART_DYNAMICS`, **Recommended**, or `[ENABLE_CHART_DYNAMICS]`.
* It covers the notes that come after it in the track, on every difficulty. **Required:** before the track's first note. **Recommended:** at tick 0.
* Without it, velocity has no effect.
* Every pad note may be an accent or a ghost, 101 included. Kicks have no accents or ghosts. **Recommended:** after the event, kicks at a velocity other than 127 and 1.

In a `.chart` file, accents and ghosts are markers, `N 34` to `N 44`, and need no event. See [Accents and ghosts](/chart/drums#accents-and-ghosts).

### Flams

Note 109 makes every drum note it covers a flam: two hits of the pad in quick succession. It's the `.mid` form of `N 109`, and covers a range instead of one tick. See [Flams](/chart/drums#flams).

### Disco flip

A `mix` event sets up the drum audio for one difficulty, and its `d` flag turns on disco flip, as in a `.chart` file. See [Disco flip](/chart/drums#disco-flip). In a `.mid` file it's a text event in the drums track:

```text theme={null}
<tick>  Text  mix <difficulty> drums<configuration><flag>
```

* The difficulty in the text, `0` to `3`, picks the difficulty it applies to. In a `.chart` file, the event must also be in that difficulty's section.
* A flip lasts from its tick, notes on it included, until the event that turns it off, or the end of the track.
* **Required:** a `d` flip turned off before a `dnoflip` event of its difficulty.
* **Recommended:** single spaces between the parts, and no square brackets: `mix 3 drums0d`.
* **Recommended:** disco flip events only in 4-lane and pro charts.

**Edge case:** a scanner also accepts `_` between the parts, and square brackets around the text.

## Deprecated

* **`PART DRUM`,** an older name for the drums track. Write `PART DRUMS`. See [Instrument tracks](/mid/instrument-tracks#deprecated).

## Ignored

* **The `mix` flags `easy` and `easynokick`.** Clone Hero, YARG and scan-chart ignore them.
* **`ENABLE_CHART_DYNAMICS` in another track.**
* **Notes 24 to 51,** which Rock Band charts use for animations, and YARG reads.
* **Phase Shift SysEx events,** which have no meaning in a drums track.
* **Other drum tracks,** such as `PART DRUMS_2X` and `PART ELITE_DRUMS`. See [Instrument tracks](/mid/instrument-tracks#ignored).

## Invalid forms

<Accordion title="A modifier that covers no note">
  It changes no note, and a tom marker that covers no note doesn't make the chart pro. YARG reads the chart as pro. scan-chart's export writes such a tom marker back, so the chart stays pro there.
</Accordion>

<Accordion title="Both five_lane_drums and pro_drums set to True">
  A scanner reads the chart as 5-lane.
</Accordion>

<Accordion title="Overlapping tom markers of one color">
  A scanner reads a tom, as Clone Hero and scan-chart do. YARG switches a note between cymbal and tom once for each marker over it, so a note under two markers is a cymbal there. scan-chart's export writes one marker for each tom.
</Accordion>

<Accordion title="95 and 96 at one tick">
  Clone Hero, YARG and scan-chart keep the longer, or the double kick when they're the same length. scan-chart's export writes one of them.
</Accordion>

<Accordion title="ENABLE_CHART_DYNAMICS after the track's first note">
  A scanner gives accents and ghosts only to the notes after it in the track, as Clone Hero and scan-chart do. YARG gives them to every note whose note-off comes after it, so a note that starts before the event and ends after it can be an accent there. scan-chart's export writes the event at tick 0, with velocity 127 or 1 only on the notes that had an accent or ghost.
</Accordion>

<Accordion title="ENABLE_CHART_DYNAMICS spelled another way">
  A scanner reads only the two standard spellings, in a text event, as Clone Hero and scan-chart do. YARG also reads the event with spaces around it, and in other types of text event.
</Accordion>

<Accordion title="A mix event spelled another way">
  A scanner reads other spellings as Clone Hero does. It reads more than one space or `_` between the parts, and a difficulty with a leading zero. It takes the character after `drums` as the configuration, whatever it is. After the configuration, it reads `dnoflip` as no-flip, any other text that starts with `d` as a flip, and no text as an event that turns the flip off, and it ignores the event otherwise. So `[mix  3 drums0d]`, with two spaces, `[mix 03 drums0d]`, `[mix 3 drums6d]` and `[mix 3 drums0dx]` are flips, and `[mix 3 drumsd]`, with no configuration, turns the flip off. YARG reads `[mix  3 drums0d]`, `[mix 3 drums 0d]` and `mix3drums0d` as a flip, `[mix 3 drums0dx]` as turning the flip off, and the others as no `mix` event. Saving with scan-chart keeps the text as written, and its export writes every mix event it reads as `mix <difficulty> drums<configuration><flag>`.
</Accordion>

<Accordion title="Two mix events of one difficulty at one tick">
  A scanner uses an event that turns the flip off, then `d`, then `dnoflip`, as Clone Hero and scan-chart do, and as in a `.chart` file. YARG sorts the events at one tick by their text, so it uses `dnoflip`, then `d`, then an event that turns the flip off. scan-chart's export writes one event.
</Accordion>

<Accordion title="A dnoflip while a d flip is on">
  Clone Hero, YARG and scan-chart start no-flip at the `dnoflip`. scan-chart reports the pair as `discoNoflipDuringFlip`. Saving writes an event that turns the flip off on the tick before the `dnoflip`, unless a red or yellow note, or the `d` event, is on that tick.
</Accordion>


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