# ISMN

> Source: https://docs.barcoder.ai/docs/standards/ismn
> research date 2026-10-03 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [The ISMN — International ISMN Agency](https://ismn-international.org/ismn/the-ismn/)
- [International Standard Music Number — Wikipedia](https://en.wikipedia.org/wiki/International_Standard_Music_Number)
- [About the ISMN — U.S. ISMN Agency, Library of Congress](https://www.loc.gov/ismn/about.html)
- [BWIPP ISMN symbol reference](https://github.com/bwipp/postscriptbarcode/wiki/ISMN)

## Overview

The **International Standard Music Number (ISMN)** is a unique identifier for notated (printed or digital sheet) music, defined by **ISO 10957** <sup>[1][1]</sup><sup>[2][2]</sup>. Since 1 January 2008 an ISMN is a 13-digit number beginning with the reserved prefix **979-0**, which makes it identical to a GTIN-13 and directly encodable as an [EAN-13](https://docs.barcoder.ai/docs/standards/ean-13) barcode <sup>[1][1]</sup><sup>[2][2]</sup>. It identifies notated music only — not sound recordings — and is administered worldwide by the **International ISMN Agency**, the ISO 10957 registration authority <sup>[1][1]</sup><sup>[3][3]</sup>.

## History

- The ISMN was proposed by the UK Branch of the International Association of Music Libraries (IAML), on the initiative of **Alan Pope** (Blackwell's Music), **Malcolm Lewis** (Nottingham) and **Malcolm Jones** (Birmingham) <sup>[1][1]</sup>.
- A draft was presented at the **1987** IAML conference in Amsterdam and finalised after discussions at the **1989** Oxford conference <sup>[1][1]</sup>.
- Following meetings in Ottawa and Paris, it was published as **ISO 10957**; the Library of Congress dates its introduction as an international standard to **1993** <sup>[1][1]</sup><sup>[4][4]</sup>.
- The original 10-digit form used a letter prefix: **M-[publisher]-[item]-[check]**, e.g. `M-2306-7118-7` <sup>[1][1]</sup><sup>[2][2]</sup>.
- On **1 January 2008** the ISMN moved to a 13-digit format beginning 979-0, with the `0` replacing the old `M` <sup>[1][1]</sup><sup>[4][4]</sup>. Older 10-digit numbers remain valid and "function just as the currently used 13-digit numbers" <sup>[4][4]</sup>.
- The standard is maintained by ISO TC 46/SC 9 <sup>[1][1]</sup>.

## Technical specification

- **Barcode symbology:** the 13-digit ISMN is encoded as a standard EAN-13 (GTIN-13) symbol <sup>[2][2]</sup>; BWIPP lists ISO 10957, ISO/IEC 15420 (EAN/UPC), BS EN 797 and the GS1 General Specifications as the governing references for the ISMN symbol <sup>[5][5]</sup>.
- **Structure (ISMN-13):** four elements — prefix `979-0`, a variable-length **publisher (registrant) element**, a variable-length **item element**, and a single **check digit** <sup>[4][4]</sup><sup>[2][2]</sup>. After `979-0`, 8 digits are shared between publisher and item <sup>[2][2]</sup>; large publishers receive short publisher IDs (down to 4 digits) and small ones long IDs (up to 7 digits), leaving more or fewer item numbers respectively <sup>[2][2]</sup>.
- **Capacity:** the scheme allows about **one billion** distinct items <sup>[2][2]</sup>.
- **No country/language element:** unlike ISBN, the ISMN carries no area or language group, "as music is intrinsically international" <sup>[4][4]</sup><sup>[1][1]</sup>.
- **Check digit:** modulus 10 with alternating weights 1 and 3 — identical to ISBN-13/EAN-13 <sup>[1][1]</sup><sup>[4][4]</sup>. Worked example: `979-0-060-11561-5` gives a weighted sum of 85, so the check digit is 5 <sup>[1][1]</sup>.
- **Legacy conversion:** a 10-digit `M-` number converts to ISMN-13 by replacing `M` with `979-0` and recomputing the check digit; python-stdnum's `to_ismn13()` implements this <sup>[7][7]</sup>.
- **Add-ons:** encoders such as BWIPP accept an optional EAN-2 or EAN-5 add-on after the primary data (see [EAN Add-on (EAN-2, EAN-5)](https://docs.barcoder.ai/docs/standards/ean-add-on)) <sup>[5][5]</sup>.
- **Human-readable text:** BWIPP renders the hyphenated ISMN as a text line *above* the symbol (configurable via `ismntextfont`, `ismntextsize`, etc.), with the plain EAN-13 digits below <sup>[5][5]</sup>.

**Sample:** `979-0-2600-0043-8` — the reference example used by BWIPP; omitting the final digit (`979-0-2600-0043`) makes the encoder compute it <sup>[5][5]</sup>.

## Use cases

- **Music publishing and trade:** the system exists to "rationalize the processing and handling of notated music" across production, inventory, ordering and billing for publishers and music traders <sup>[2][2]</sup><sup>[4][4]</sup>.
- **Libraries:** ISMNs support library cataloguing, circulation and inter-library loans <sup>[4][4]</sup>; music libraries (IAML) originated the standard <sup>[1][1]</sup>.
- **Rights management:** rights organisations use ISMNs for rights assessment and royalty processing <sup>[4][4]</sup><sup>[2][2]</sup>.
- **Digital and multi-format scores:** ISMNs apply to notated music in all formats — print, online and other media — with each edition, version and separately available part receiving its own number <sup>[4][4]</sup>.
- **Free registration in the US:** the U.S. ISMN Agency at the Library of Congress assigns ISMNs to American music publishers at no charge <sup>[4][4]</sup>.

## Implementations

- **[bwip-js](https://github.com/metafloor/bwip-js)** — JavaScript, ~2.4k stars, active 2026. Native JS port of BWIPP; lists `ismn` as a supported `bcid`, running in browsers, Node.js, React and CLI <sup>[6][6]</sup>. Powers this site's playground.
- **[bwipp/postscriptbarcode](https://github.com/bwipp/postscriptbarcode)** — PostScript, ~504 stars, active 2026. Reference ISMN encoder: accepts 12/13-digit hyphenated or legacy `M-` input, auto-computes or verifies the check digit, upgrades ISMN-10 to ISMN-13 unless the `legacy` option is set, and supports EAN-2/EAN-5 add-ons <sup>[5][5]</sup>.
- **[zxing-cpp](https://github.com/zxing-cpp/zxing-cpp)** — C++, ~2.0k stars, active 2026. Reads and writes EAN-13 (which an ISMN barcode is) <sup>[8][8]</sup>.
- **[python-stdnum](https://github.com/arthurdejong/python-stdnum)** — Python, ~598 stars, active 2026. `stdnum.ismn` validates 10- and 13-digit ISMNs, detects type, converts to ISMN-13, splits into prefix/publisher/item/check and formats with hyphens — useful for post-scan validation <sup>[7][7]</sup>.

## Comparison

- **ISMN vs. ISBN / [Bookland EAN (ISBN)](https://docs.barcoder.ai/docs/standards/bookland-ean):** both use the same 13-digit EAN-13 barcode and check-digit algorithm <sup>[1][1]</sup>. ISBN encodes a registration group (country/language area); ISMN deliberately does not <sup>[4][4]</sup><sup>[1][1]</sup>. A publication can carry both an ISBN and an ISMN <sup>[1][1]</sup>; ISMN is the choice when the item is notated music and should be traded and catalogued through music channels.
- **ISMN vs. generic EAN-13:** physically indistinguishable — the `979-0` prefix alone tells a scanner the item is a music edition <sup>[1][1]</sup><sup>[2][2]</sup>.
- **ISMN vs. recording identifiers:** ISMN covers printed/notated music only, not recordings <sup>[1][1]</sup>.

## Fun facts

- The 979 prefix space is informally called **"Musicland"**, an echo of the 978/979 "Bookland" used for ISBNs <sup>[1][1]</sup>.
- When the format changed in 2008, the old letter `M` was simply replaced by the digit `0` — so `979-0` is literally "Musicland, M" <sup>[1][1]</sup><sup>[4][4]</sup>.

## Status

**Active.** About 60 countries and regions participate in the ISMN system <sup>[2][2]</sup>. The International ISMN Agency continues to coordinate it and held its **18th Annual General ISMN Meeting in São Paulo in September 2025** <sup>[3][3]</sup>. Encoders and validators remain actively maintained in 2026 <sup>[5][5]</sup><sup>[6][6]</sup><sup>[7][7]</sup>.

## Sources

[1] [International Standard Music Number](https://en.wikipedia.org/wiki/International_Standard_Music_Number) — Wikipedia, accessed 2026.
[2] [The ISMN](https://ismn-international.org/ismn/the-ismn/) — International ISMN Agency, accessed 2026.
[3] [International ISMN Agency](https://www.ismn-international.org/) — International ISMN Agency, accessed 2026.
[4] [About the ISMN](https://www.loc.gov/ismn/about.html) — U.S. ISMN Agency, Library of Congress, accessed 2026.
[5] [ISMN — BWIPP symbol reference](https://github.com/bwipp/postscriptbarcode/wiki/ISMN) — Barcode Writer in Pure PostScript wiki, accessed 2026.
[6] [bwip-js](https://github.com/metafloor/bwip-js) — GitHub (metafloor/bwip-js), accessed 2026.
[7] [stdnum/ismn.py](https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/ismn.py) — GitHub (arthurdejong/python-stdnum), accessed 2026.
[8] [zxing-cpp](https://github.com/zxing-cpp/zxing-cpp) — GitHub (zxing-cpp/zxing-cpp), accessed 2026.

[1]: https://en.wikipedia.org/wiki/International_Standard_Music_Number
[2]: https://ismn-international.org/ismn/the-ismn/
[3]: https://www.ismn-international.org/
[4]: https://www.loc.gov/ismn/about.html
[5]: https://github.com/bwipp/postscriptbarcode/wiki/ISMN
[6]: https://github.com/metafloor/bwip-js
[7]: https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/ismn.py
[8]: https://github.com/zxing-cpp/zxing-cpp

## Deployments

_No country reports mention this standard by name._

## Regions / aggregations not mapped to a single country

- Universal
