# @tonaljs/progression

> Build musical chord progressions

Latest version **4.9.2** (published 2026-01-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install @tonaljs/progression
pnpm add @tonaljs/progression
yarn add @tonaljs/progression
bun add @tonaljs/progression
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.9.2 |
| Published | 2026-01-18 |
| First published | 2019-07-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 10.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | danigb@gmail.com |
| Maintainers | danigb |
| Keywords | chord, progression, music, theory, music-theory, tonal |

## Links

- npm: https://www.npmjs.com/package/@tonaljs/progression
- npm.io page: https://npm.io/package/@tonaljs/progression

## Dependencies (5)

- [@tonaljs/chord](https://npm.io/package/@tonaljs/chord.md) 6.1.2
- [@tonaljs/pitch-note](https://npm.io/package/@tonaljs/pitch-note.md) 6.1.0
- [@tonaljs/roman-numeral](https://npm.io/package/@tonaljs/roman-numeral.md) 4.9.1
- [@tonaljs/pitch-distance](https://npm.io/package/@tonaljs/pitch-distance.md) 5.0.5
- [@tonaljs/pitch-interval](https://npm.io/package/@tonaljs/pitch-interval.md) 6.1.0

## Recent versions

- 4.9.2 (latest) — 2026-01-18
- 4.9.1 — 2025-01-03
- 4.9.0 — 2024-07-23
- 4.8.4 — 2024-02-03
- 4.8.3 — 2024-02-03
- 4.8.2 — 2024-01-04
- 4.8.1 — 2023-06-13
- 4.8.0 — 2022-11-29
- 4.7.3 — 2022-11-29
- 4.7.2 — 2022-11-29
- 4.7.1 — 2022-11-29
- 4.7.0 — 2022-11-28
- 4.6.10 — 2022-11-18
- 4.6.5 — 2021-09-05
- 4.6.4 — 2021-09-05
- … 30 more at https://npm.io/package/@tonaljs/progression/versions

## README

# @tonaljs/progression ![tonal](https://img.shields.io/badge/@tonaljs-progression-yellow.svg?style=flat-square) [![npm version](https://img.shields.io/npm/v/@tonaljs/progression.svg?style=flat-square)](https://www.npmjs.com/package/@tonaljs/progression)

> Convert chord list to roman numerals analysis chord and reverse

## Usage

ES6:

```js
import { Progression } from "tonal";
```

node:

```js
const { Progression } = require("tonal");
```

## API

### `Progression.fromRomanNumerals(keyTonic: string, chordProgression: string[]) => string[]`

Given a tonic and a chord progression expressed in roman numeral analysis chords, returns the progression expressed in leadsheet chords.

```js
Progression.fromRomanNumerals("C", ["IMaj7", "IIm7", "V7"]);
// => ["CMaj7", "Dm7", "G7"]
```

### `Progression.toRomanNumerals(keyTonic: string, chordProgression: string[]) => string[]`

The opposite of `fromRomanNumerals`. Given a tonic and a chord progression expressed in leadsheet chords, returns the progression using roman numeral analysis chords.

```js
Progression.toRomanNumerals("C", ["CMaj7", "Dm7", "G7"]);
// => "IMaj7", "IIm7", "V7"]
```

## Resources

- [Roman numeral analysis](https://en.wikipedia.org/wiki/Roman_numeral_analysis)
- [Leadsheet chord symbols](https://en.wikipedia.org/wiki/Lead_sheet)

---
_Source: https://npm.io/package/@tonaljs/progression · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
