Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Markdown MusicNew to Visual Studio Code? Get it now.
Markdown Music

Markdown Music

alpelito7

|
47 installs
| (0) | Free
Editor for .mdm files: Markdown, equations and music scores in one rendered, editable document.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Markdown Music

Markdown Music is an editor for .mdm files: Markdown with equations, code and playable scores, drawn as you write. Scores are written in ABC notation inside a ```abc block, so the file stays plain Markdown. To try it, download example.mdm (or read it on GitHub), save it with the .mdm extension and open it in VS Code.

The toolbar sets the document in Latin Modern, switches it to MDM Light, draws the staff lines in ink and lets Ctrl+D match inside words. A click on the score opens its ABC, and Ctrl+D selects its four E's, which typing turns into E flats an octave up while the drawing follows. The player sounds the edited tune with a brass playhead on the staff, and the score's export button offers it as MIDI or WAV.

Writing a score

With a caret inside a score's block, the editor shows its ABC in the extension's colours and the score drawn under it, as below; the grey comments say what each line does.

A score block as the editor shows it with a caret inside, its ABC coloured and the score engraved under it. X:1 % reference number, the first line of a tune / T:Four bars % title / M:4/4 % metre / L:1/8 % unit note length: a plain letter is an eighth / Q:1/4=100 % tempo, in quarter notes a minute / K:C % key, the last line of the header / % C is middle C and c the octave above; a 2 after a note doubles its length / % ^ sharp, _ flat, = natural, z a rest, [CEG] a chord, |] the end / CDEF GABc | c2 B2 A2 G2 | ^F2 _B2 =B2 z2 | [CEG]8 |]

Repeats, ties, lyrics, several voices and the rest of the notation are in the ABC standard. The headphones on a score open a player, whose piano comes with the extension and is the only instrument it has. Under them, a third button writes that score's audio beside the document as MIDI or as WAV: the WAV is the piano you hear, the MIDI the notes at the tempo the editor plays them at, and neither needs anything installed. A block fenced as ```{.abc .play} also gets a player on the exported page.

Writing Markdown

In Latin Modern on MDM Light, the toolbar justifies the text, and English chosen from the hyphenation menu divides its words and writes lang: en into the YAML header that the YAML button shows and hides. Three words turn bold as two asterisks are typed over them, three lines become a list, a phrase is highlighted, a table is filled cell by cell and a pasted picture is saved beside the document. Under an equation numbered at the margin, a citation typed as its key is drawn as the page prints it, and a click on its work, listed at the end, opens the bibliography beside the document at its entry.

The text is the file, and the editor reads it as the export does: Pandoc's Markdown, with CommonMark's blank lines. Lists, quotes, callouts, tables, footnotes, numbered equations, figures, tables and sections are drawn in place, and a line shows its source while the caret is on it. With a bibliography in the header and Quarto installed, a citation reads as the page prints it, "Knuth (1984)". A pasted picture is saved in a folder beside the document. Ctrl+B and Ctrl+I mark words, Ctrl+1 to Ctrl+6 set a heading's level and Ctrl+F searches.

The toolbar

The first row writes: headings, marks on words, blocks, and what a document holds beside its words (a music symbol, an equation, a table, a picture, a footnote, a rule). A tooltip names the button's key where it has one. The two buttons at its left open the outline of the headings and export the document.

The second row holds settings shared by every document, except the hyphenation, which each file keeps:

  • Multicursor: Ctrl+D adds the next match of the selection, whole words only unless this button is on. Alt+click adds a caret.
  • Theme: follows VS Code by default; MDM Light, MDM Dark and MDM White are the editor's own.
  • Font: Latin Modern Roman, the face of a LaTeX document, which comes with the extension, or the system's sans. Code keeps its monospace.
  • Justify: paragraphs justified, or ragged on the right. The lines break on the same words either way.
  • Hyphenation: words stay whole until a language is chosen here. It is written into the YAML header as lang:, in a new, hidden header if the file had none; the hyphen is only drawn, never saved.
  • YAML: a header with a title, an author or an abstract is drawn as the page's title block, and a click on the block opens its YAML, as a table opens. The button shows the YAML in place of the block, in every document, until it is pressed again.
  • Score fill, staff lines and score alignment: a paper, slate or brass ground under the scores, staff lines in gray or in ink, and scores centred or at the left.
  • Follow: while a tune plays, the page scrolls to keep the sounding system in view; turned off, it stays where you are reading.

Export

Document writes HTML or PDF with the editor's font, justification and hyphenation, and needs Quarto 1.4 or later. The PDF is the HTML page printed by Chrome, Chromium or Microsoft Edge, so it needs no TeX: its sheets are numbered, its headings are its bookmarks and it is printed on the header's papersize (Letter when none is named), with its notes at the end of the document. Set mdm.pdfEngine to latex to have LaTeX typeset it instead, which needs TeX. Audio writes every score beside the document as MIDI or WAV and needs nothing installed. The editor itself needs none of these.

Documentation and licence

The documentation is in the markdown_music repository. The extension is under the MIT licence, and the third-party work it includes is credited in THIRD-PARTY-NOTICES.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft