What ISMN is
ISMN (International Standard Music Number) is the print-music sibling of ISSN, structurally similar to ISBN: both are "Bookland/Musicland"-style codes with a fixed EAN-13 prefix ("979-0-" for ISMN). bwip-js delegates ISMN's own bar-pattern drawing entirely to its EAN-13 encoder -- confirmed directly by reading to the end of the function, and confirmed by rendering: an ISMN example's bars are byte-identical to calling the EAN-13 encoder directly with the same 13 digits.
Generate it now
Enter your ISMN in either the current 13-character form ("979-0-XXXX-XXXX-X") or the legacy 10-character form ("M-XXXXXX-X") to see a live preview.
Valid input
ISMN-13 must be 15 or 17 characters including dashes, starting with "979-" and containing exactly 2 dashes and 7 digits in the middle segment. ISMN-10 must be 11 or 13 characters including dashes, starting with the literal "M-" prefix and containing exactly 1 dash and 6 digits in its own middle segment ("ISMN-10 prefix must be M-" is the most common input mistake). bwip-js computes its own EAN-13-style Mod-10 check digit (alternating weights of 1 and 3) over the converted 13-digit form and rejects a supplied check digit that does not match.
Key options
Supported options include includetext (show the human-readable ISMN text), height, and legacy. bwip-js's own real default for includetext is false. legacy only affects the printed text when includetext is on, for an ISMN-10 or short-form ISMN-13 input: off (default) prints the converted "ISMN 979-0-..." form; on prints the original, un-converted "ISMN M-..." form instead -- it does not change the encoded barcode data.
Output and printing
Export SVG for print-shop cover artwork or PNG for a quick proof.
Common uses
ISMN appears on printed sheet music, scores, and other notated-music publications for retail and library identification, the music-publishing equivalent of an ISBN.
Example
See the live preview above, seeded with a bwip-js-verified valid ISMN-13 value.
Size guidance
Since bwip-js draws ISMN's bars using its EAN-13 encoder, it shares that symbology's own bar-width and quiet-zone conventions.
Troubleshooting
A rejected value is usually the wrong dash/digit count for the chosen form ("Incorrect number of dashes and digits for ISMN-13/ISMN-10"), a missing "979-" or "M-" prefix, or a check digit that does not match bwip-js's own computed value ("Incorrect ISMN check digit provided").
Related formats
Related formats: ISBN (the book equivalent, already in this catalog) and ISSN (the periodical equivalent, already in this catalog) -- all three share the same EAN-13-based structure with a different fixed prefix.
FAQ
Is ISMN the same encoding as EAN-13?
At the bar-drawing level, yes -- bwip-js delegates ISMN's own bars entirely to its EAN-13 encoder after converting the ISMN's own dash/prefix format to a plain 13-digit code. ISMN adds its own validation (the 979-0-/M- prefix rules) and its own printed-text formatting on top of that shared encoder.
What does the legacy option change?
It only affects the printed human-readable text (when includetext is on) for an ISMN-10 or short-form ISMN-13 input: off prints the converted "979-0-..." form, on prints the original "M-..." form. It never changes the encoded barcode data itself.