author | Lorenzo Bettini <bettini@dsi.unifi.it> | 2012年04月14日 17:11:29 +0200 |
---|---|---|
committer | Lorenzo Bettini <bettini@dsi.unifi.it> | 2012年04月14日 17:11:29 +0200 |
commit | 7356b4a61659d2031034eff21c9ca2745e2a1e21 (patch) | |
tree | eb8f90679e50bd60aec6d14ede54966516056613 | |
parent | c65db3fa0978ca32926d46f09db10738332d7b49 (diff) | |
download | src-highlite-7356b4a61659d2031034eff21c9ca2745e2a1e21.tar.gz |
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | completion/source-highlight | 2 | ||||
-rw-r--r-- | doc/index.html | 5 | ||||
-rw-r--r-- | src/Makefile.am | 5 | ||||
-rw-r--r-- | src/lang.map | 4 | ||||
-rw-r--r-- | src/lilypond.lang | 143 | ||||
-rw-r--r-- | src/lilypond.style | 21 | ||||
-rw-r--r-- | tests/Makefile.am | 9 | ||||
-rw-r--r-- | tests/lang.list | 2 | ||||
-rw-r--r-- | tests/test.ly | 109 | ||||
-rw-r--r-- | tests/test.ly.html | 114 |
@@ -12,6 +12,7 @@ Version 3.1.7 * fixed compilation bugs in MacOsX systems (thanks to Trevor Spiteri) + * language definition for Lilypond (thanks to Federico Bruni) Version 3.1.6 diff --git a/completion/source-highlight b/completion/source-highlight index c621507..998a972 100644 --- a/completion/source-highlight +++ b/completion/source-highlight @@ -31,7 +31,7 @@ _source_highlight() -s|--src-lang) COMPREPLY=($(compgen -W "C H ac ada am applescript asm autoconf awk bat bib bison c caml cc changelog clipper cls cobol conf cpp cs csh csharp css \ d diff docbook dtx el eps erlang fixed-fortran flex fortran free-fortran glsl h haskell haxe hh hpp htm html hx in ini java javalog javascript js kcfg kdevelop kidl ksh l lang \ - langdef latex ldap ldif lex lgt lisp ll log logtalk lsm lua m4 manifest ml mli moc opa outlang oz pas pascal patch pc perl php php3 php4 php5 \ + langdef latex ldap ldif lex lgt lilypond lisp ll log logtalk lsm lua m4 manifest ml mli moc opa outlang oz pas pascal patch pc perl php php3 php4 php5 \ pl pm po pot postscript prolog properties proto ps py python rb rc ruby scala scheme sh shell sig sl slang slsh sml spec sql sty style syslog tcl tcsh texinfo \ tex tk tml txt ui upc vala vbscript xhtml xml xorg y yacc yy" -- "${cur}")) ;; diff --git a/doc/index.html b/doc/index.html index a35a86b..653c00a 100644 --- a/doc/index.html +++ b/doc/index.html @@ -4,7 +4,7 @@ <meta name="Author" content="Lorenzo Bettini"><title>GNU Source-highlight - GNU Project - Free Software Foundation (FSF)</title></head> <body style="background-color: rgb(255, 255, 255);"> <h1><a name="mozTocId593827"></a> -GNU Source-highlight 3.1.6</h1> +GNU Source-highlight 3.1.7</h1> <p>by <a href="http://www.lorenzobettini.it">Lorenzo Bettini</a> </p> <p>This program, <i>given a source file, produces a @@ -88,6 +88,7 @@ supported <li> <i>KDE desktop files</i></li> <li> <i>Latex</i></li> <li> <i>Ldap files</i></li> +<li> <i>Lilypond</i> <font color="red">(new)</font></li> <li> <i>Lisp</i></li> <li> <i>Logtalk</i></li> <li> <i>Log files</i></li> @@ -116,7 +117,7 @@ supported <li> <i>Shell</i></li> <li> <i>S-Lang</i></li> <li> <i>Sql</i></li> -<li> <i>T/Foswiki TML markup</i> <font color="red">(new)</font></li> +<li> <i>T/Foswiki TML markup</i></li> <li> <i>Tcl</i></li> <li> <i>Texinfo</i></li> <li> <i>UPC (unified parallel C)</i></li> diff --git a/src/Makefile.am b/src/Makefile.am index 0f2bf1f..d3fc9a2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -83,7 +83,8 @@ texinfo.lang haskell.lang haskell_literate.lang \ manifest.lang asm.lang todo.lang applescript.lang \ vbscript.lang awk.lang bat.lang clipper.lang cobol.lang d.lang \ errors.lang erlang.lang proto.lang vala.lang lisp.lang \ -scheme.lang po.lang opa.lang javalog.lang upc.lang tml.lang +scheme.lang po.lang opa.lang javalog.lang upc.lang tml.lang \ +lilypond.lang LANGFILES_NOTTOCHECK= \ tml_formatting_all.lang tml_macrolinks.lang tml_macrosdelayed2.lang \ @@ -115,7 +116,7 @@ odf.outlang \ mediawiki.outlang -STYLEFILES = texinfo.style esc.style +STYLEFILES = texinfo.style esc.style lilypond.style source_highlightdata_DATA = \ $(LANGFILES) $(LANGFILES_NOTTOCHECK) $(OUTLANGFILES) \ diff --git a/src/lang.map b/src/lang.map index ee05df7..2eefacd 100644 --- a/src/lang.map +++ b/src/lang.map @@ -150,4 +150,6 @@ pot = po.lang opa = opa.lang javalog = javalog.lang upc = upc.lang -tml = tml.lang
\ No newline at end of file +tml = tml.lang +lilypond = lilypond.lang +ly = lilypond.lang
\ No newline at end of file diff --git a/src/lilypond.lang b/src/lilypond.lang new file mode 100644 index 0000000..e75655d --- /dev/null +++ b/src/lilypond.lang @@ -0,0 +1,143 @@ +# LilyPond v2.16.0 +# Federico Bruni + +string delim "\"" "\"" multiline + +comment delim "%{" "%}" multiline nested +comment start "%" + +# Scheme +environment scheme delim '#\'?\(' ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + environment scheme delim "(" ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + end +end + +vardef SCHEME_VALUE = '##(t|f)', '#{1,2}\'?[[:alnum:]\.:+-]+' +scheme_value = $SCHEME_VALUE + + +# Symbols +vardef CBRACKET = "{|}|<<|>>" +cbracket = $CBRACKET + +symbol = "(|)|~|^|_" +dynamic = '\\(<|>|!|f{1,5}|p{1,5}|m(f|p)|fp|(r|s)fz|s(f|p){1,2})(?!\w)' + +# Numbers +specialchar = '(?<!#)-[1-5]\b', '\\[0-9]\b' # strings and fingerings +note_duration = '(?<=[a-zR\',!?>\*])(1|2|4|8|16|32|64|128)(\.+|\b)' +value = '[[:digit:]/]+' + +# Markup commands (any \command inside \markup{}) +environment markup delim '\\markup\s*\{' "}" multiline nested begin + # definitions I want to preserve in this environment + cbracket = $CBRACKET + string delim "\"" "\"" multiline + comment delim "%{" "%}" multiline nested + comment start "%" + scheme_value = $SCHEME_VALUE + environment scheme delim '#\'?\(' ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + environment scheme delim "(" ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + end + end + # actual definition + markup_command = '\\[[:alpha:]-]+' + + # needed for nested blocks inside \markup{} + environment markup delim "{" "}" multiline nested begin + cbracket = $CBRACKET + string delim "\"" "\"" multiline + comment delim "%{" "%}" multiline nested + comment start "%" + scheme_value = $SCHEME_VALUE + environment scheme delim '#\'?\(' ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + environment scheme delim "(" ")" multiline nested begin + string delim "\"" "\"" multiline + comment start ";" + end + end + markup_command = '\\[[:alpha:]-]+' + end +end + +lyric_command = '\\(lyricmode|lyrics(to)?)' + +# Main commands +preproc = '\\(book(part)?|context|consists|header|include|language|layout', + 'midi|once|override(Property)?|paper|remove(WithTag)?', + 'revert|score|(un)?set|version|with)\b' + +# Variables of music functions +variable = '(alto|baritone|bass|french|mezzosoprano|percussion', + 'soprano|subbass|tenor|treble|varbaritone', + 'percent|tremolo|unfold|volta', + '\\(aeolian|dorian|ionian|lydian|locrian|minor|major|mixolydian|phrygian))\b' + +header_variable = 'arranger', 'breakbefore', 'composer', 'copyright', 'date', + 'dedication', 'enteredby', 'filename', 'footer', 'instrument\b', 'lastupdated', + 'maintainer(Email|Web)?', 'meter', 'moreInfo', + 'mutopia(composer|instrument|opus|poet|title)?', + 'opus', 'poet', 'piece', 'source(url)?', 'style', '(sub){0,2}title', + 'tagline', 'texidoc' + +# Contexts +# old regexp: '([A-Z][a-z]+){2,}' <-- too greedy, a list is better +context = '\\?(ChoirStaff|ChordNames|CueVoice|Devnull|Drum(Staff|Voice)', + 'Dynamics|FiguredBass|FretBoards|Global|GrandStaff', + 'GregorianTranscription(Staff|Voice)|Lyrics|Mensural(Staff|Voice)', + 'NoteNames|PianoStaff|RhythmicStaff|Score|Staff(Group)?', + 'Tab(Staff|Voice)|Vaticana(Staff|Voice)|Voice)\b' + +# Layout objects +layout_object = 'Accidental(Cautionary|Placement|Suggestion)?', + 'Ambitus(Accidental|Line|NoteHead)?', 'Arpeggio', 'BalloonTextItem', + 'Bar(Line|Number)?', 'BassFigure(Alignment(Positioning)?|Bracket|Continuation|Line)?', + 'Beam', 'BendAfter', 'Break(AlignGroup|Alignment)?', 'BreathingSign', + 'ChordName', 'Clef', 'Cluster(Spanner(Beacon)?)', 'CombineTextScript', + 'Cue(Clef|EndClef)?', 'Custos', 'Dot(Column|s)?', + 'Double(PercentRepeat(Counter)?|RepeatSlash)?', + 'Dynamic(LineSpanner|Text|TextSpanner)?\b', 'Episema', 'Fingering', 'Flag', + 'Footnote(Item|Spanner)', 'FretBoard', 'Glissando', 'GraceSpacing', + 'Grid(Line|Point)', 'Hairpin', 'HorizontalBracket', + 'Instrument(Name|Switch)', 'Key(Cancellation|Signature)', + 'Laissez(VibrerTie(Column)?)', 'LedgerLineSpanner', + 'LeftEdge', 'LigatureBracket', + 'Lyric(Extender|Hyphen|Space|Text)', 'MeasureGrouping', + 'MelodyItem', 'MensuralLigature', 'MetronomeMark', + 'MultiMeasureRest(Number|Text)?', 'NonMusicalPaperColumn', + 'Note(Collision|Column|Head|Name|Spacing)', 'OctavateEight', + 'OttavaBracket', 'PaperColumn', 'ParenthesesItem', + 'Percent(Repeat(Counter)?)', 'PhrasingSlur', 'PianoPedalBracket', + 'RehearsalMark', 'Repeat(Slash|Tie(Column)?)', 'Rest(Collision)?', + 'Script(Column|Row)?', 'Slur', 'Sostenuto(Pedal(LineSpanner)?)', + 'SpacingSpanner', 'SpanBar', 'Staff(Grouper|Spacing|Symbol)', + 'StanzaNumber', 'Stem(Tremolo)?', 'StringNumber', 'StrokeFinger', + 'SustainPedal(LineSpanner)?', + 'System(StartBar|StartBrace|StartBracket|StartSquare)?', + 'TabNoteHead', 'Text(Script|Spanner)', 'Tie(Column)?', 'TimeSignature', + 'TrillPitch(Accidental|Group|Head)', 'TrillSpanner', + 'Tuplet(Bracket|Number)', 'UnaCordaPedal(LineSpanner)?', + 'VaticanaLigature', 'Vertical(Alignment|AxisGroup)', 'VoiceFollower', + 'VoltaBracket(Spanner)?' + +# Context properties +context_property = '\b[a-z]+([A-Z]+[a-z]+)+', + 'ottavation|output|stanza|timing|tonic' + +# Layout properties +layout_property = '\b[a-z]+(-[a-z]+)+', 'indent' + +# All the other commands (including variables defined by users). +# It must be at the end, otherwise the other \command definitions are overwritten. +function = '\\[[:alpha:]-]+' + diff --git a/src/lilypond.style b/src/lilypond.style new file mode 100644 index 0000000..bc9d407 --- /dev/null +++ b/src/lilypond.style @@ -0,0 +1,21 @@ +symbol "#C000C0" b ; +cbracket, preproc black b ; +dynamic "#FF8000" b ; + +string "#C20F0F" ; +scheme, scheme_value "#A04900" ; +comment gray i ; + +note_duration teal ; +value "#808000" ; +specialchar "#FF8000" ; + +function "#0000C0" b ; +markup_command "#008000" ; +lyric_command "#006000" b ; + +header_variable, variable blue ; +context "#C000C0" b ; +layout_object "#C000C0" ; +context_property, layout_property blue ; + diff --git a/tests/Makefile.am b/tests/Makefile.am index 628a113..c5625fe 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -321,7 +321,8 @@ test.po test.po.html \ test.opa test.opa.html \ test.javalog test.javalog.html \ test.upc test.upc.html \ -test.tml test.tml.html +test.tml test.tml.html \ +test.ly test.ly.html LINERANGE1EXE=$(JAVA2HTML) --line-range="12-18","29-34" --line-number LINERANGE2EXE=$(JAVA2HTML) --line-range="12-18","29-34" --line-number --range-context=3 @@ -457,6 +458,7 @@ check_po \ check_opa \ check_javalog \ check_upc \ +check_lilypond \ check_tml \ check-output-dir \ check_stop \ @@ -873,6 +875,11 @@ check_upc: @echo expect no output from diff $(DIFF) $(srcdir)/test.upc.html test.upc.out.html +check_lilypond: + $(PROGNAME) --style-file $(top_srcdir)/src/lilypond.style -i $(srcdir)/test.ly -o test.ly.out.html + @echo expect no output from diff + $(DIFF) $(srcdir)/test.ly.html test.ly.out.html + check_tml: $(PROGNAME_STD) -i $(srcdir)/test.tml -o test.tml.out.html @echo expect no output from diff diff --git a/tests/lang.list b/tests/lang.list index 1641cdf..64e520e 100644 --- a/tests/lang.list +++ b/tests/lang.list @@ -72,12 +72,14 @@ ldif = ldap.lang lex = flex.lang lgt = logtalk.lang lhs = haskell_literate.lang +lilypond = lilypond.lang lisp = lisp.lang ll = flex.lang log = log.lang logtalk = logtalk.lang lsm = lsm.lang lua = lua.lang +ly = lilypond.lang m4 = m4.lang makefile = makefile.lang manifest = manifest.lang diff --git a/tests/test.ly b/tests/test.ly new file mode 100644 index 0000000..42337bd --- /dev/null +++ b/tests/test.ly @@ -0,0 +1,109 @@ +\version "2.14.2" + +#(define (naturalize-pitch p) + "Strings should be read" + (let ((o (ly:pitch-octave p)) + (a (* 4 (ly:pitch-alteration p))) + ;; alteration, a, in quarter tone steps, + ;; for historical reasons + (n (ly:pitch-notename p))) + (cond + ((and (> a 1) (or (eq? n 6) (eq? n 2))) + (set! a (- a 2)) + (set! n (+ n 1))) + ((and (< a -1) (or (eq? n 0) (eq? n 3))) + (set! a (+ a 2)) + (set! n (- n 1)))) + (cond + ((> a 2) (set! a (- a 4)) (set! n (+ n 1))) + ((< a -2) (set! a (+ a 4)) (set! n (- n 1)))) + (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7)))) + (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))) + (ly:make-pitch o n (/ a 4)))) + +\header { + title = "Maple Leaf Rag" + composer = "Scott Joplin" + piece = "Tempo di marcia" + tagline = + \markup { + \override #'(box-padding . 1.0) \override #'(baseline-skip . 2.7) \box + \center-column { + \small \line { Sheet music from \with-url #"http://www.MutopiaProject.org" + \line { \teeny www. \hspace #-0.5 MutopiaProject \hspace #-0.5 \teeny .org \hspace #0.5 } + } + } + } +} + +\paper { + top-margin = 15 + ragged-right = ##t + system-system-spacing #'padding = #8 + score-system-spacing = + #'((basic-distance . 12) + (minimum-distance . 6) + (padding . 1) + (stretchability . 12)) +} + +top = \relative c' { + \override TextScript #'padding = #2 + + \key as \major + \time 2/4 + \clef treble + \partial 8 + r8 \f | + \repeat volta 2 { + r16 as' <es' es,> as, c <es es,>8 g,16 | + <es' es,>16 g, bes <es es,> ~ <es es,>4 | + r16 as, <es' es,> as, c <es es,>8 g,16 | + <es' es,>16 g, bes <es es,> ~ <es es,>8 r16 <es es,> | + r16 as, ces <fes fes,> r16 <es es,> r16 <es es,> | + r16 as, ces <fes fes,> r16 <es es,> r8 | + \change Staff = "down" + \stemUp r16^\p as,,,-( ces as'-) r as-( ces as'-) \stemNeutral | + \change Staff = "up" + r16 as-( ces as'-) r as-( ces as'-) | + } +} + +bottom = \relative c { + \key as \major + \time 2/4 + \clef bass + \partial 8 + <es es,>8 | + \repeat volta 2 { + <as as,> <c as es> <c as es> <a a,> | + <bes bes,> <des g, es> <des g, es> <es, es,> | + <as as,> <c as es> <c as es> <a a,> | + <bes bes,> <des g, es> <des g, es> <es, es,> | + <fes fes,>4 <es es,>8 <es es,> | + <fes fes,>4 <es es,>8 r | + \stemDown as,, r as' r \stemNeutral | + as' r as' r \clef treble | + } +} + +\score { + \context PianoStaff << + \context Staff = "up" + \applyMusic #unfold-repeats \top + \context Staff = "down" + \applyMusic #unfold-repeats \bottom + >> + + \midi { + \context { + \Score tempoWholesPerMinute = #(ly:make-moment 120 4) + } + \context { + \Voice + \remove Dynamic_performer + } + } + \layout{} +} + diff --git a/tests/test.ly.html b/tests/test.ly.html new file mode 100644 index 0000000..dbe06ad --- /dev/null +++ b/tests/test.ly.html @@ -0,0 +1,114 @@ +<!-- Generator: GNU source-highlight +by Lorenzo Bettini +http://www.lorenzobettini.it +http://www.gnu.org/software/src-highlite --> +<pre><tt><b><font color="#000000">\version</font></b> <font color="#C20F0F">"2.14.2"</font> + +<font color="#A04900">#(define (naturalize-pitch p)</font> +<font color="#A04900"> </font><font color="#C20F0F">"Strings should be read"</font> +<font color="#A04900"> (let ((o (ly:pitch-octave p))</font> +<font color="#A04900"> (a (* 4 (ly:pitch-alteration p)))</font> +<font color="#A04900"> </font><i><font color="#808080">;; alteration, a, in quarter tone steps,</font></i> +<font color="#A04900"> </font><i><font color="#808080">;; for historical reasons</font></i> +<font color="#A04900"> (n (ly:pitch-notename p)))</font> +<font color="#A04900"> (cond</font> +<font color="#A04900"> ((and (> a 1) (or (eq? n 6) (eq? n 2)))</font> +<font color="#A04900"> (set! a (- a 2))</font> +<font color="#A04900"> (set! n (+ n 1)))</font> +<font color="#A04900"> ((and (< a -1) (or (eq? n 0) (eq? n 3)))</font> +<font color="#A04900"> (set! a (+ a 2))</font> +<font color="#A04900"> (set! n (- n 1))))</font> +<font color="#A04900"> (cond</font> +<font color="#A04900"> ((> a 2) (set! a (- a 4)) (set! n (+ n 1)))</font> +<font color="#A04900"> ((< a -2) (set! a (+ a 4)) (set! n (- n 1))))</font> +<font color="#A04900"> (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))</font> +<font color="#A04900"> (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))</font> +<font color="#A04900"> (ly:make-pitch o n (/ a 4))))</font> + +<b><font color="#000000">\header</font></b> <b><font color="#000000">{</font></b> + <font color="#0000FF">title</font> = <font color="#C20F0F">"Maple Leaf Rag"</font> + <font color="#0000FF">composer</font> = <font color="#C20F0F">"Scott Joplin"</font> + <font color="#0000FF">piece</font> = <font color="#C20F0F">"Tempo di marcia"</font> + <font color="#0000FF">tagline</font> = + \markup { + <font color="#008000">\override</font> <font color="#A04900">#'(box-padding . 1.0)</font> <font color="#008000">\override</font> <font color="#A04900">#'(baseline-skip . 2.7)</font> <font color="#008000">\box</font> + <font color="#008000">\center-column</font> <b><font color="#000000">{</font></b> + <font color="#008000">\small</font> <font color="#008000">\line</font> <b><font color="#000000">{</font></b> Sheet music from <font color="#008000">\with-url</font> #<font color="#C20F0F">"http://www.MutopiaProject.org"</font> + <font color="#008000">\line</font> <b><font color="#000000">{</font></b> <font color="#008000">\teeny</font> www. <font color="#008000">\hspace</font> <font color="#A04900">#-0.5</font> MutopiaProject <font color="#008000">\hspace</font> <font color="#A04900">#-0.5</font> <font color="#008000">\teeny</font> .org <font color="#008000">\hspace</font> <font color="#A04900">#0.5</font> } + <b><font color="#000000">}</font></b> + <b><font color="#000000">}</font></b> + <b><font color="#000000">}</font></b> +<b><font color="#000000">}</font></b> + +<b><font color="#000000">\paper</font></b> <b><font color="#000000">{</font></b> + <font color="#0000FF">top-margin</font> = <font color="#808000">15</font> + <font color="#0000FF">ragged-right</font> = <font color="#A04900">##t</font> + <font color="#0000FF">system-system-spacing</font> <font color="#A04900">#'padding</font> = <font color="#A04900">#8</font> + <font color="#0000FF">score-system-spacing</font> = + <font color="#A04900">#'((basic-distance . 12)</font> +<font color="#A04900"> (minimum-distance . 6)</font> +<font color="#A04900"> (padding . 1)</font> +<font color="#A04900"> (stretchability . 12))</font> +<b><font color="#000000">}</font></b> + +top = <b><font color="#0000C0">\relative</font></b> c' <b><font color="#000000">{</font></b> + <b><font color="#000000">\override</font></b> <font color="#C000C0">TextScript</font> <font color="#A04900">#'padding</font> = <font color="#A04900">#2</font> + + <b><font color="#0000C0">\key</font></b> as <font color="#0000FF">\major</font> + <b><font color="#0000C0">\time</font></b> <font color="#808000">2/4</font> + <b><font color="#0000C0">\clef</font></b> <font color="#0000FF">treble</font> + <b><font color="#0000C0">\partial</font></b> <font color="#808000">8</font> + r<font color="#008080">8</font> <b><font color="#FF8000">\f</font></b> | + <b><font color="#0000C0">\repeat</font></b> <font color="#0000FF">volta</font> <font color="#808000">2</font> <b><font color="#000000">{</font></b> + r<font color="#008080">16</font> as' <es' es,> as, c <es es,><font color="#008080">8</font> g,<font color="#008080">16</font> | + <es' es,><font color="#008080">16</font> g, bes <es es,> <b><font color="#C000C0">~</font></b> <es es,><font color="#008080">4</font> | + r<font color="#008080">16</font> as, <es' es,> as, c <es es,><font color="#008080">8</font> g,<font color="#008080">16</font> | + <es' es,><font color="#008080">16</font> g, bes <es es,> <b><font color="#C000C0">~</font></b> <es es,><font color="#008080">8</font> r<font color="#008080">16</font> <es es,> | + r<font color="#008080">16</font> as, ces <fes fes,> r<font color="#008080">16</font> <es es,> r<font color="#008080">16</font> <es es,> | + r<font color="#008080">16</font> as, ces <fes fes,> r<font color="#008080">16</font> <es es,> r<font color="#008080">8</font> | + <b><font color="#0000C0">\change</font></b> <b><font color="#C000C0">Staff</font></b> = <font color="#C20F0F">"down"</font> + <b><font color="#0000C0">\stemUp</font></b> r<font color="#008080">16</font><b><font color="#C000C0">^</font></b><b><font color="#FF8000">\p</font></b> as,,,-<b><font color="#C000C0">(</font></b> ces as'-<b><font color="#C000C0">)</font></b> r as-<b><font color="#C000C0">(</font></b> ces as'-<b><font color="#C000C0">)</font></b> <b><font color="#0000C0">\stemNeutral</font></b> | + <b><font color="#0000C0">\change</font></b> <b><font color="#C000C0">Staff</font></b> = <font color="#C20F0F">"up"</font> + r<font color="#008080">16</font> as-<b><font color="#C000C0">(</font></b> ces as'-<b><font color="#C000C0">)</font></b> r as-<b><font color="#C000C0">(</font></b> ces as'-<b><font color="#C000C0">)</font></b> | + <b><font color="#000000">}</font></b> +<b><font color="#000000">}</font></b> + +bottom = <b><font color="#0000C0">\relative</font></b> c <b><font color="#000000">{</font></b> + <b><font color="#0000C0">\key</font></b> as <font color="#0000FF">\major</font> + <b><font color="#0000C0">\time</font></b> <font color="#808000">2/4</font> + <b><font color="#0000C0">\clef</font></b> <font color="#0000FF">bass</font> + <b><font color="#0000C0">\partial</font></b> <font color="#808000">8</font> + <es es,><font color="#008080">8</font> | + <b><font color="#0000C0">\repeat</font></b> <font color="#0000FF">volta</font> <font color="#808000">2</font> <b><font color="#000000">{</font></b> + <as as,> <c as es> <c as es> <a a,> | + <bes bes,> <des g, es> <des g, es> <es, es,> | + <as as,> <c as es> <c as es> <a a,> | + <bes bes,> <des g, es> <des g, es> <es, es,> | + <fes fes,><font color="#008080">4</font> <es es,><font color="#008080">8</font> <es es,> | + <fes fes,><font color="#008080">4</font> <es es,><font color="#008080">8</font> r | + <b><font color="#0000C0">\stemDown</font></b> as,, r as' r <b><font color="#0000C0">\stemNeutral</font></b> | + as' r as' r <b><font color="#0000C0">\clef</font></b> <font color="#0000FF">treble</font> | + <b><font color="#000000">}</font></b> +<b><font color="#000000">}</font></b> + +<b><font color="#000000">\score</font></b> <b><font color="#000000">{</font></b> + <b><font color="#000000">\context</font></b> <b><font color="#C000C0">PianoStaff</font></b> <b><font color="#000000"><<</font></b> + <b><font color="#000000">\context</font></b> <b><font color="#C000C0">Staff</font></b> = <font color="#C20F0F">"up"</font> + <b><font color="#0000C0">\applyMusic</font></b> <font color="#A04900">#unfold-repeats</font> <b><font color="#0000C0">\top</font></b> + <b><font color="#000000">\context</font></b> <b><font color="#C000C0">Staff</font></b> = <font color="#C20F0F">"down"</font> + <b><font color="#0000C0">\applyMusic</font></b> <font color="#A04900">#unfold-repeats</font> <b><font color="#0000C0">\bottom</font></b> + <b><font color="#000000">>></font></b> + + <b><font color="#000000">\midi</font></b> <b><font color="#000000">{</font></b> + <b><font color="#000000">\context</font></b> <b><font color="#000000">{</font></b> + <b><font color="#C000C0">\Score</font></b> <font color="#0000FF">tempoWholesPerMinute</font> = <font color="#A04900">#(ly:make-moment 120 4)</font> + <b><font color="#000000">}</font></b> + <b><font color="#000000">\context</font></b> <b><font color="#000000">{</font></b> + <b><font color="#C000C0">\Voice</font></b> + <b><font color="#000000">\remove</font></b> Dynamic<b><font color="#C000C0">_</font></b>performer + <b><font color="#000000">}</font></b> + <b><font color="#000000">}</font></b> + <b><font color="#000000">\layout</font></b><b><font color="#000000">{}</font></b> +<b><font color="#000000">}</font></b> + +</tt></pre> |