> ## 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, cymbals, accents, ghosts, double kicks, flams and disco flip of a .chart drums section.

A drums section, such as `ExpertDrums`, holds notes for each pad and the kick, and modifiers that change how those notes are hit:

```text theme={null}
[ExpertDrums]
{
  0 = N 0 0
  0 = N 2 0
  0 = N 66 0
  192 = N 1 0
  192 = N 34 0
}
```

Here the kick and a yellow cymbal come at tick 0, then an accented red at tick 192.

## Drum types

One drums chart is written for one of three kinds of kit:

* **4-lane:** a kick and four pads, with no difference between toms and cymbals.
* **Pro:** the same lanes as 4-lane, with cymbals on yellow, blue and green.
* **5-lane:** a kick and five pads, in the layout of a kit with three toms and two cymbals.

A scanner decides a chart's type from `song.ini` and from the notes of every drums section, in this order:

1. `five_lane_drums = True` in `song.ini`: 5-lane.
2. `pro_drums = True`, or a cymbal marker in any drums section: pro.
3. An `N 5` in any drums section: 5-lane.
4. Otherwise: 4-lane.

**Recommended:** leave both keys out of `song.ini` when the notes already give the type, and set one only when they don't. `False` means the same as leaving the key out.

### Playing one type on another kit

A game plays any type of chart on any kit:

* **Pro on a 4-lane kit:** cymbals are played as plain pads.
* **5-lane on a 4-lane or pro kit:** the five pads become red, a yellow cymbal, a blue tom, a green cymbal from `N 4`, and a green tom from `N 5`.
* **4-lane or pro on a 5-lane kit:** red stays red, a yellow cymbal is yellow, a yellow or blue tom is blue, a blue or green cymbal is orange, and a green tom is green. A yellow tom beside a blue tom becomes red, and a blue cymbal beside a green cymbal becomes yellow. A 4-lane chart's pads are toms.

**Edge case: chords on a 5-lane kit.** Clone Hero also makes a yellow tom red when a blue cymbal shares its tick, and a blue cymbal yellow when a green tom does. YARG doesn't.

**Edge case: `N 4` and `N 5` at one tick.** In a 5-lane chart played on a pro kit, Clone Hero and scan-chart give a green cymbal and a blue tom, and YARG a blue cymbal and a green tom. In a pro chart, Clone Hero and scan-chart move the `N 5` to a blue tom, and YARG plays both in the green lane: as two green notes, or with `N 68` as a green cymbal and a green tom. **Recommended:** `N 4` and `N 5` on different ticks in a pro chart.

## Notes

| N value | 4-lane and pro | 5-lane |
| - | - | - |
| `0` | Kick | Kick |
| `1` | Red | Red |
| `2` | Yellow | Yellow |
| `3` | Blue | Blue |
| `4` | Green | Orange |
| `5` | Green tom, in a pro chart | Green |
| `32` | Double kick | Double kick |

A drum note's length doesn't change how it's played: drums have no sustains. An exporter should write 0. A length still counts wherever a note's end does: in [the end of the song](/chart/events#the-end-of-the-song), the song's [duration](/hashes/songhash#duration) and the [TrackHash](/hashes/btrack#notes). Of `N 0` and `N 32` at one tick, a scanner keeps the longer: see [Invalid forms](#invalid-forms).

### Double kicks

`N 32` is a kick that a scanner plays only when the player has the double kick modifier enabled, because these kicks realistically need a double kick pedal to play properly. Charters alternate `N 0` and `N 32` in fast kick passages.

**Recommended:** `N 32` only in `ExpertDrums`. **Required:** `N 0` and `N 32` not at one tick.

**Edge case:** Clone Hero plays `N 32` in `EasyDrums`, `MediumDrums` and `HardDrums` as a double kick, when the double kick modifier is on. YARG never plays it there, and scan-chart reports it as `difficultyForbiddenNote`.

**Edge case: a section whose only notes are double kicks.** An `ExpertDrums` section whose only notes are `N 32` is a track. Clone Hero offers Expert, which plays nothing unless the double kick modifier is on. YARG offers only Expert+, where those notes play.

## Modifiers

A modifier is an `N` event that changes how the pad notes at its tick are hit, instead of adding a note. It applies only to notes at its own tick. **Required:** the note a modifier applies to, at the modifier's tick.

### Cymbals

In a pro chart, a pad note is a tom unless a cymbal marker at its tick makes it a cymbal:

| N value | Makes a cymbal of |
| - | - |
| `66` | Yellow, `N 2` |
| `67` | Blue, `N 3` |
| `68` | Green, `N 4` |

Red is always the snare, and `N 5` is always a tom.

### Accents and ghosts

An accent is a note hit harder than the ones around it, and a ghost is one hit softer:

| Pad | Accent | Ghost |
| - | - | - |
| Red, `N 1` | `34` | `40` |
| Yellow, `N 2` | `35` | `41` |
| Blue, `N 3` | `36` | `42` |
| Green or orange, `N 4` | `37` | `43` |
| Green in 5-lane, `N 5` | `38` | `44` |

Kicks have no accents or ghosts.

**Edge case:** a note with both an accent and a ghost marker is an accent.

### Flams

`N 109` makes every drum note at its tick a flam: two hits of the pad in quick succession. It's the `.chart` form of MIDI note 109.

### Disco flip

A `mix` event sets up the drum audio for one difficulty, and its `d` flag turns on disco flip: a stretch, such as a disco beat, charted with red and yellow swapped. It's an `E` event in the drums section of the difficulty it names:

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

| Part | Values |
| - | - |
| Difficulty | `0` Easy, `1` Medium, `2` Hard, `3` Expert |
| Configuration | `0` to `5`: which drum audio stems the song has. Games find the stems from the audio files, and ignore it |
| Flag | `d` turns disco flip on, and no flag turns it off. `dnoflip` swaps the snare and the other drum audio, as `d` does on 4-lane drums, without swapping notes |

```text theme={null}
3072 = E mix 3 drums0d
6144 = E mix 3 drums0
```

* 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.
* **Required:** one `mix` event of a difficulty at most at a tick.
* On pro drums, a scanner swaps red and yellow back: red becomes a yellow cymbal, and yellow becomes red. On 4-lane drums the notes don't change. The snare and the other drum audio swap instead, so yellow plays the snare.
* **Required:** single spaces between the parts, and a configuration from `0` to `5`.
* **Required:** a flag from the table, or `easy` or `easynokick`.
* **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.

**Edge case: `dnoflip` in Clone Hero.** Clone Hero swaps no audio for `dnoflip`, in a `.chart` or `.mid` file: red still plays the snare, as with no flip. YARG swaps the audio.

**Edge case: disco flip in a 5-lane chart.** Clone Hero and scan-chart mark the red and yellow notes as flipped, and Clone Hero swaps them when the chart is played on a pro kit. YARG ignores `mix` events in a 5-lane chart.

## Ignored

* **A `mix` event that names another difficulty** than its section's.
* **The `mix` flags `easy` and `easynokick`,** which have no effect on the notes.
* **`N 33` and `N 39`,** which some charts write for kick accents and ghosts. No scanner gives them a meaning.

## Invalid forms

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

<Accordion title="N 0 and N 32 at one tick">
  A scanner keeps the longer, or the double kick when they're the same length, as Clone Hero and scan-chart do. YARG keeps both: one kick on Expert, and two on Expert+.
</Accordion>

<Accordion title="A mix event spelled another way">
  A scanner reads other spellings as Clone Hero does, as the `.mid` [Drums](/mid/drums#invalid-forms) page describes. So `mix 3  drums0d`, with two spaces, and `mix 3 drumsxd`, with `x` as the configuration, are flips. Saving with scan-chart keeps the text as written. YARG reads more than one space or `_` too, but only a digit from `0` to `5` as the configuration, so it doesn't read `mix 3 drumsxd` as a `mix` event.
</Accordion>

<Accordion title="A mix event with another flag, such as drums0x">
  A scanner ignores it, as Clone Hero and YARG do, and scan-chart writes it back as it is.
</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. YARG uses the one written last.
</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>

<Accordion title="A modifier on a tick without its note">
  Clone Hero, YARG and scan-chart ignore it, except that a cymbal marker still makes the chart pro, as [Drum types](#drum-types) says. scan-chart reports it as `chartModifierWithoutNote` only with the `styleNotes` option. Saving removes it either way, unless it's a cymbal marker whose removal would change the drum type.
</Accordion>


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