diff --git a/README.md b/README.md
index d67476958..04da68f47 100644
--- a/README.md
+++ b/README.md
@@ -39,22 +39,22 @@ translators for Pygments lexers and styles.
| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Agda, AL, Alloy, AMPL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, ATL, AutoHotkey, AutoIt, Awk
| B | Ballerina, Bash, Bash Session, Batchfile, Beef, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck
| C | C, C#, C++, C3, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Core, Crystal, CSS, CSV, CUE, Cython
-| D | D, Dart, Dax, Desktop file, Diff, Django/Jinja, dns, Docker, DTD, Dylan
-| E | EBNF, Elixir, Elm, EmacsLisp, Erlang
+| D | D, Dart, Dax, Desktop file, Devicetree, Diff, Django/Jinja, dns, Docker, DTD, Dylan
+| E | EBNF, Elixir, Elm, EmacsLisp, ERB, Erlang
| F | Factor, Fennel, Fish, Forth, Fortran, FortranFixed, FSharp
| G | GAS, GDScript, GDScript3, Gemtext, Genshi, Genshi HTML, Genshi Text, Gettext, Gherkin, Gleam, GLSL, Gnuplot, Go, Go HTML Template, Go Template, Go Text Template, GraphQL, Groff, Groovy
| H | Handlebars, Hare, Haskell, Haxe, HCL, Hexdump, HLB, HLSL, HolyC, HTML, HTTP, Hy
| I | Idris, Igor, INI, Io, ISCdhcpd
| J | J, Janet, Java, JavaScript, JSON, JSONata, Jsonnet, Julia, Jungle
-| K | Kakoune, Kotlin
-| L | Lean4, Lighttpd configuration file, LLVM, lox, Lua, Luau
-| M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonScript, MorrowindScript, Myghty, MySQL
+| K | Kakoune, KDL, Kotlin
+| L | Lateralus, Lean4, Lighttpd configuration file, LilyPond, LLVM, lox, Lua, Luau
+| M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, microcad, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonBit, MoonScript, MorrowindScript, Myghty, MySQL
| N | NASM, Natural, NDISASM, Newspeak, Nginx configuration file, Nim, Nix, NSIS, Nu
| O | Objective-C, ObjectPascal, OCaml, Octave, Odin, OnesEnterprise, OpenEdge ABL, OpenSCAD, Org Mode
| P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Plutus Core, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerQuery, PowerShell, Prolog, Promela, PromQL, properties, Protocol Buffer, Protocol Buffer Text Format, PRQL, PSL, Puppet, Python, Python 2
| Q | QBasic, QML
| R | R, Racket, Ragel, Raku, react, ReasonML, reg, Rego, reStructuredText, Rexx, RGBDS Assembly, Ring, RPGLE, RPMSpec, Ruby, Rust
-| S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, Spade, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog
+| S | SAS, Sass, Scala, scdoc, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, Spade, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog
| T | TableGen, Tal, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, Typst
| U | ucode
| V | V, V shell, Vala, VB.net, verilog, VHDL, VHS, VimL, vue
diff --git a/lexers/embedded/lilypond.xml b/lexers/embedded/lilypond.xml
new file mode 100644
index 000000000..fe4ac8ed3
--- /dev/null
+++ b/lexers/embedded/lilypond.xml
@@ -0,0 +1,133 @@
+
+
+
+ LilyPond
+ lilypond
+ *.ly
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lexers/testdata/lilypond/chords.actual b/lexers/testdata/lilypond/chords.actual
new file mode 100644
index 000000000..87d5d3389
--- /dev/null
+++ b/lexers/testdata/lilypond/chords.actual
@@ -0,0 +1,17 @@
+% Chord example
+
+\new ChordNames {
+ \chordmode {
+ c1 | f | g:7 | c |
+ c:m | f:dim | g:aug | c:maj7 |
+ }
+}
+
+\new Staff {
+ \relative c' {
+ c4 e g c |
+ f, a c f |
+ g, b d f |
+ c e g c |
+ }
+}
diff --git a/lexers/testdata/lilypond/chords.expected b/lexers/testdata/lilypond/chords.expected
new file mode 100644
index 000000000..5a9ff5b26
--- /dev/null
+++ b/lexers/testdata/lilypond/chords.expected
@@ -0,0 +1,119 @@
+[
+ {"type":"CommentSingle","value":"% Chord example"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"\\new"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameBuiltin","value":"ChordNames"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Keyword","value":"\\chordmode"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"LiteralNumber","value":"1"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"Punctuation","value":":"},
+ {"type":"LiteralNumber","value":"7"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Punctuation","value":":"},
+ {"type":"Operator","value":"m"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"Punctuation","value":":"},
+ {"type":"Operator","value":"dim"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"Punctuation","value":":"},
+ {"type":"Operator","value":"aug"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Punctuation","value":":"},
+ {"type":"Operator","value":"maj"},
+ {"type":"LiteralNumber","value":"7"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"\\new"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameBuiltin","value":"Staff"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\relative"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"f,"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g,"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"}
+]
diff --git a/lexers/testdata/lilypond/melody.actual b/lexers/testdata/lilypond/melody.actual
new file mode 100644
index 000000000..890342a8e
--- /dev/null
+++ b/lexers/testdata/lilypond/melody.actual
@@ -0,0 +1,19 @@
+% From lilypond.org examples
+
+\header {
+ title = "Simple Song"
+ composer = "Composer Name"
+}
+
+\relative c' {
+ \time 3/4
+ \key g \major
+
+ % Melody with dynamics
+ g8\mf( a b c d4) |
+ e8( d c b a g) |
+ a4 b8( c) d4 |
+ g,2.~ |
+ g4 r r |
+ \bar "|."
+}
diff --git a/lexers/testdata/lilypond/melody.expected b/lexers/testdata/lilypond/melody.expected
new file mode 100644
index 000000000..8cdd1ac00
--- /dev/null
+++ b/lexers/testdata/lilypond/melody.expected
@@ -0,0 +1,109 @@
+[
+ {"type":"CommentSingle","value":"% From lilypond.org examples"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"\\header"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"title"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"\"Simple Song\""},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"composer"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"\"Composer Name\""},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"NameBuiltin","value":"\\relative"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\time"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralNumber","value":"3/4"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\key"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameBuiltin","value":"\\major"},
+ {"type":"TextWhitespace","value":"\n \n "},
+ {"type":"CommentSingle","value":"% Melody with dynamics"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"LiteralNumber","value":"8"},
+ {"type":"NameBuiltin","value":"\\mf("},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"NameBuiltin","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"LiteralNumber","value":"8"},
+ {"type":"NameBuiltin","value":"("},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"NameBuiltin","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"LiteralNumber","value":"8"},
+ {"type":"NameBuiltin","value":"("},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"NameBuiltin","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g,"},
+ {"type":"LiteralNumber","value":"2."},
+ {"type":"NameBuiltin","value":"~"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"r"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"r"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\bar"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"\"|.\""},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"}
+]
diff --git a/lexers/testdata/lilypond/simple.actual b/lexers/testdata/lilypond/simple.actual
new file mode 100644
index 000000000..6f0b5cb0b
--- /dev/null
+++ b/lexers/testdata/lilypond/simple.actual
@@ -0,0 +1,25 @@
+% Simple LilyPond example
+\version "2.24.0"
+
+\relative c' {
+ \key c \major
+ \time 4/4
+
+ % A simple melody
+ c4 d e f |
+ g2 a |
+ b4 c8 d e4 f |
+ g1 |
+
+ % Dynamics and articulations
+ c4\p d\< e f\! |
+ g2\f a-> |
+
+ % Chords
+ 4 |
+}
+
+\addlyrics {
+ Do re mi fa
+ sol la ti do
+}
diff --git a/lexers/testdata/lilypond/simple.expected b/lexers/testdata/lilypond/simple.expected
new file mode 100644
index 000000000..5a812ace8
--- /dev/null
+++ b/lexers/testdata/lilypond/simple.expected
@@ -0,0 +1,150 @@
+[
+ {"type":"CommentSingle","value":"% Simple LilyPond example"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Keyword","value":"\\version"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"\"2.24.0\""},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"NameBuiltin","value":"\\relative"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\key"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameBuiltin","value":"\\major"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameBuiltin","value":"\\time"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralNumber","value":"4/4"},
+ {"type":"TextWhitespace","value":"\n \n "},
+ {"type":"CommentSingle","value":"% A simple melody"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"LiteralNumber","value":"2"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"LiteralNumber","value":"8"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"LiteralNumber","value":"1"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n \n "},
+ {"type":"CommentSingle","value":"% Dynamics and articulations"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"NameBuiltin","value":"\\p"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"NameBuiltin","value":"\\\u003c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"NameBuiltin","value":"\\!"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"LiteralNumber","value":"2"},
+ {"type":"NameBuiltin","value":"\\f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"NameBuiltin","value":"-\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n \n "},
+ {"type":"CommentSingle","value":"% Chords"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"\u003c"},
+ {"type":"NameVariable","value":"c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"Punctuation","value":"\u003e"},
+ {"type":"LiteralNumber","value":"4"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"\u003c"},
+ {"type":"NameVariable","value":"d"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"Punctuation","value":"\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"\u003c"},
+ {"type":"NameVariable","value":"e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"g"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"Punctuation","value":"\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"\u003c"},
+ {"type":"NameVariable","value":"f"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Punctuation","value":"\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"|"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Keyword","value":"\\addlyrics"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Text","value":"Do"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"re"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mi"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"fa"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"sol"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"la"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Text","value":"ti"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"do"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"}
+]