Lily# Get started — install, a first score, and where next

01

Install

Lily# works inside Visual Studio Code, a free editor. Two downloads, a few minutes, and nothing else to set up — no programming and no command line. (For the curious: the extension brings its own runtime, compiler and fonts — Emmentaler, three SMuFL music fonts and the TeX Gyre text faces.)

  1. Get Visual Studio Code — free Lily# runs inside Visual Studio Code, a free editor from Microsoft (“VS Code”). You don't need to know programming to use it: here it is simply the window you write music in. On its website, click the download button for your computer — Windows, Mac or Linux — open the file that downloads, and accept the installer's suggestions.
  2. Add Lily# to it Start VS Code. On its left edge, click the Extensions icon — four small squares, one coming loose — or press Ctrl+Shift+X (Cmd+Shift+X on a Mac). Type Lily# in the search box at the top, and click Install next to Lily# by yotsuda. Everything it needs comes with it, the music fonts included; there is nothing else to download.
  3. Start a score In the menu, choose File → New File… and pick Lily# Score (.lys). A short tune appears on the left, and its printed score on the right. Change a note on the left and the score changes as you type. Save it with File → Save, under a name that ends in .lys (my-song.lys).
  4. Hear it Click the score once, then press ▶ at its top: it plays, and each note lights as it sounds. (A computer lets a page make sound only after you have clicked in it — that first click is what it waits for.) Out of the box it uses the instrument sounds your computer already has; for fuller ones, install a free sound font — a download and a few clicks.
  5. Learn the rest as you go On an empty line at the end of the file, type lesson and press Ctrl+Space: a list of twelve short lessons appears. Pick lesson-01-completion to begin — it takes the place of the tune (VS Code asks first) and shows you one thing at a time. The same lessons are on the Learn pages.
From the Extensions view to a first engraved score.

02

A first score

New Score gives you this file, with the title selected so you can type over it:

title "Untitled"

tempo 100
time 4/4
key c major

part melody {
  clef treble
  section A { c'4 d e f | g2 g | }
}

form { A }

score {
  staff melody
}

Read it from the top: the piece's settings, then a part (who plays) holding a section of music, then the form (in what order the sections play) and the score (what is printed). The music is c'4 d e f | g2 g |: note names, a duration after a note (4 a quarter, 2 a half) that the next notes keep until you write another, and | at each bar line.

  • Change a note — the score redraws as you type, not when you save. Put the caret on a note: it lights up in the score, and sounds.
  • Add a bar — type e4 d c2 | before the closing brace.
  • Hear it — press ▶ at the top of the preview. Alt+P plays the note under the caret, Alt+M the bar.
  • Make a mistake — type a bar that is too long. A squiggle appears; hover it to read what is wrong, and the lightbulb (Ctrl+.) fixes it where there is one obvious repair.
  • Export — Lily#: Export as PDF (or SVG, PNG, MIDI, MusicXML, LilyPond) from the command palette or the preview.
A first score: typing, hearing it, and the first squiggle.

03

The lessons

Twelve short lessons live in the editor. On an empty line at the top level of a .lys file, type lesson and press Ctrl+Space: picking one puts it in the file. Each is a playable score with its steps marked in red in the preview — completion and the preview, notes and octaves, rhythm, keys, expression, form and repeats, lyrics, chords, piano, drums, a band, and a jazz chart. The same lessons are on the Learn pages.

04

Where next

ToRead
learn step by stepLearn — the twelve lessons
look something upReference — the language, in four pages, and chords and chord diagrams
know the editorEditor — the preview, typing aids, stepping, audition, AI — and every command
work outside VS CodeThe lysc command line and scores in Markdown
coming from LilyPondComing from LilyPond and what Lily# owes it