parent
f07449a82c
commit
315a590bd9
|
@ -115,7 +115,7 @@ class Application(object):
|
||||||
'latex', 'insertmini', 'conf', 'haskell', 'erlang',
|
'latex', 'insertmini', 'conf', 'haskell', 'erlang',
|
||||||
'iperl', 'iperlmini', 'ipython', 'ipythonmini', 'awk',
|
'iperl', 'iperlmini', 'ipython', 'ipythonmini', 'awk',
|
||||||
'shell', 'shellmini', 'fstab', 'yacc', 'pipe',
|
'shell', 'shellmini', 'fstab', 'yacc', 'pipe',
|
||||||
'mbox', 'error', 'lua',
|
'mbox', 'error', 'lua', 'lily'
|
||||||
)
|
)
|
||||||
for name in names:
|
for name in names:
|
||||||
exec("import mode.%s; mode.%s.install(self)" % (name, name))
|
exec("import mode.%s; mode.%s.install(self)" % (name, name))
|
||||||
|
|
|
@ -0,0 +1,180 @@
|
||||||
|
%% Generated by lilypond-book.py
|
||||||
|
%% Options: [quote,alt=[image of music],indent=0\mm]
|
||||||
|
\include "lilypond-book-preamble.ly"
|
||||||
|
|
||||||
|
|
||||||
|
% ****************************************************************
|
||||||
|
% Start cut-&-pastable-section
|
||||||
|
% ****************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\paper {
|
||||||
|
#(define dump-extents #t)
|
||||||
|
|
||||||
|
line-width = 160\mm - 2.0 * 0.4\in
|
||||||
|
indent = 0\mm
|
||||||
|
force-assignment = #""
|
||||||
|
line-width = #(- line-width (* mm 3.000000))
|
||||||
|
}
|
||||||
|
|
||||||
|
\layout {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% ****************************************************************
|
||||||
|
% ly snippet:
|
||||||
|
% ****************************************************************
|
||||||
|
\sourcefilename "pitches-headword.ly"
|
||||||
|
\sourcefileline 0
|
||||||
|
\version "2.12.0"
|
||||||
|
\include "english.ly"
|
||||||
|
#(set-global-staff-size 15)
|
||||||
|
\paper{
|
||||||
|
ragged-right=##t
|
||||||
|
line-width=17\cm
|
||||||
|
indent=0\cm
|
||||||
|
}
|
||||||
|
|
||||||
|
\layout {
|
||||||
|
\context { \Score
|
||||||
|
\override PaperColumn #'keep-inside-line = ##t
|
||||||
|
\override NonMusicalPaperColumn #'keep-inside-line = ##t
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
% NR 1.1 Pitches
|
||||||
|
|
||||||
|
% L. v. Beethoven
|
||||||
|
% Piano sonata 21 - Dem Grafen von Waldstein Gewidmet
|
||||||
|
% chorale at measures 34 - 40+
|
||||||
|
|
||||||
|
\new PianoStaff <<
|
||||||
|
|
||||||
|
% RH Staff
|
||||||
|
\new Staff <<
|
||||||
|
|
||||||
|
% RH Voice 1
|
||||||
|
\new Voice {
|
||||||
|
\set Score.currentBarNumber = #34
|
||||||
|
\voiceOne
|
||||||
|
gs''2 ( ^ \markup \italic { dolce e molto ligato }
|
||||||
|
fs''4
|
||||||
|
e''4
|
||||||
|
|
|
||||||
|
ds''2
|
||||||
|
cs''2 )
|
||||||
|
|
|
||||||
|
ds''2 (
|
||||||
|
e''4
|
||||||
|
fs''4
|
||||||
|
|
|
||||||
|
<gs'' e''>2
|
||||||
|
<fs'' ds''>2 )
|
||||||
|
|
|
||||||
|
\oneVoice
|
||||||
|
\clef bass
|
||||||
|
<gs' e' b>2 (
|
||||||
|
<fs' ds' a>4
|
||||||
|
<e' cs' gs>4
|
||||||
|
|
|
||||||
|
<ds' bs fs>2
|
||||||
|
<cs' a e>2 )
|
||||||
|
|
|
||||||
|
\voiceOne
|
||||||
|
b2 %(
|
||||||
|
cs'4
|
||||||
|
ds'4
|
||||||
|
|
|
||||||
|
\clef treble
|
||||||
|
<e' gs>4 %)
|
||||||
|
r4 r2
|
||||||
|
}
|
||||||
|
|
||||||
|
% RH Voice 2
|
||||||
|
\new Voice {
|
||||||
|
\voiceTwo
|
||||||
|
\override Staff.DynamicLineSpanner #'staff-padding = #2.5
|
||||||
|
<e'' b'>2 \p
|
||||||
|
<ds'' a'>4
|
||||||
|
<cs'' gs'>4
|
||||||
|
|
|
||||||
|
<bs' fs'>2
|
||||||
|
e'2
|
||||||
|
|
|
||||||
|
\once \override TextScript #'staff-padding = #2.5
|
||||||
|
<b'! a'>2 _ \markup \italic { cresc. }
|
||||||
|
b'4
|
||||||
|
<e'' cs''>4
|
||||||
|
|
|
||||||
|
b'2. ( \sf \>
|
||||||
|
a'4 )
|
||||||
|
\clef bass
|
||||||
|
| \break
|
||||||
|
s1 \p
|
||||||
|
|
|
||||||
|
s1
|
||||||
|
|
|
||||||
|
<gs e>4 (
|
||||||
|
<a fs>2. )
|
||||||
|
|
|
||||||
|
s4
|
||||||
|
r4 r2
|
||||||
|
}
|
||||||
|
|
||||||
|
>>
|
||||||
|
|
||||||
|
% LH Staff
|
||||||
|
\new Staff {
|
||||||
|
\override Staff.SustainPedalLineSpanner #'staff-padding = #5
|
||||||
|
<gs' e'>2 ( \sustainOn
|
||||||
|
<fs' ds' b>4 \sustainOff
|
||||||
|
<e' cs'>4
|
||||||
|
|
|
||||||
|
<ds' bs gs>2
|
||||||
|
<cs' a>2 ) \sustainOn
|
||||||
|
|
|
||||||
|
\clef bass
|
||||||
|
\slurDown
|
||||||
|
<ds' b! a fs>2 ( \sustainOff
|
||||||
|
<e' b gs>4
|
||||||
|
<fs' cs' a>4 \sustainOn
|
||||||
|
|
|
||||||
|
\clef treble
|
||||||
|
\voiceOne
|
||||||
|
<<
|
||||||
|
{
|
||||||
|
<gs' e'>2
|
||||||
|
<fs' ds'>2 )
|
||||||
|
}
|
||||||
|
\new Voice {
|
||||||
|
\voiceTwo
|
||||||
|
b1 \sustainOff
|
||||||
|
}
|
||||||
|
>>
|
||||||
|
\oneVoice
|
||||||
|
|
|
||||||
|
%\break
|
||||||
|
\clef bass
|
||||||
|
<gs e>2 (
|
||||||
|
<fs ds b,>4
|
||||||
|
<e cs>4
|
||||||
|
|
|
||||||
|
<ds bs, gs,>2
|
||||||
|
<cs a,>2 ) \sustainOn
|
||||||
|
|
|
||||||
|
<b,! b,,!>1 ( \sustainOff
|
||||||
|
|
|
||||||
|
<e e,>4 )
|
||||||
|
r4 r2
|
||||||
|
}
|
||||||
|
|
||||||
|
>>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% ****************************************************************
|
||||||
|
% end ly snippet
|
||||||
|
% ****************************************************************
|
17
mode/lily.py
17
mode/lily.py
|
@ -1,6 +1,7 @@
|
||||||
import color, mode
|
import color, mode
|
||||||
from lex import Grammar, PatternRule, RegionRule
|
from lex import Grammar, PatternRule, RegionRule
|
||||||
from mode.scheme import SchemeGrammar
|
from mode.scheme import SchemeGrammar
|
||||||
|
from mode.python import StringGrammar1, StringGrammar2
|
||||||
|
|
||||||
class CommentGrammar(Grammar):
|
class CommentGrammar(Grammar):
|
||||||
rules = [PatternRule(r'data', r'(?:[^%]|%[^}])+')]
|
rules = [PatternRule(r'data', r'(?:[^%]|%[^}])+')]
|
||||||
|
@ -10,13 +11,17 @@ class LilyGrammar(Grammar):
|
||||||
PatternRule(r'comment', r'%.*$'),
|
PatternRule(r'comment', r'%.*$'),
|
||||||
RegionRule(r'comment', r'%\{', CommentGrammar, r'%\}'),
|
RegionRule(r'comment', r'%\{', CommentGrammar, r'%\}'),
|
||||||
|
|
||||||
|
RegionRule(r'string', r'"', StringGrammar2, r'"'),
|
||||||
|
|
||||||
PatternRule(r'delimiter', r'(?:[=(){}\[\];:,.])'),
|
PatternRule(r'delimiter', r'(?:[=(){}\[\];:,.])'),
|
||||||
|
|
||||||
PatternRule(r'note', r'[a-g'),
|
PatternRule(r'note', r"[a-g][sf]?[',]*(?![a-z-])"),
|
||||||
|
|
||||||
|
PatternRule(r'measure', r'(?:[0-9]+\.)?[0-9]+\\(?:mm|cm|in)'),
|
||||||
|
|
||||||
RegionRule(r'scheme', r'#\(', SchemeGrammar, '\)'),
|
RegionRule(r'scheme', r'#\(', SchemeGrammar, '\)'),
|
||||||
PatternRule(r'directive', r'\\[a-zA-Z_][a-zA-Z_0-9]*'),
|
PatternRule(r'directive', r'\\[a-zA-Z_][a-zA-Z_0-9]*'),
|
||||||
PatternRule(r'bareword', r'[a-zA-Z_][a-zA-Z_0-9]*'),
|
PatternRule(r'bareword', r'[a-zA-Z][a-zA-Z_0-9-]*[a-zA-Z0-9]'),
|
||||||
]
|
]
|
||||||
|
|
||||||
class Lily(mode.Fundamental):
|
class Lily(mode.Fundamental):
|
||||||
|
@ -24,7 +29,13 @@ class Lily(mode.Fundamental):
|
||||||
extensions = ['.ly']
|
extensions = ['.ly']
|
||||||
grammar = LilyGrammar
|
grammar = LilyGrammar
|
||||||
commentc = '%'
|
commentc = '%'
|
||||||
colors = {}
|
colors = {
|
||||||
|
'note': ('yellow', 'default'),
|
||||||
|
'directive': ('cyan', 'default'),
|
||||||
|
'scheme.start': ('magenta', 'default'),
|
||||||
|
'scheme.end': ('magenta', 'default'),
|
||||||
|
'measure': ('green', 'default'),
|
||||||
|
}
|
||||||
opentokens = ('delimiter',)
|
opentokens = ('delimiter',)
|
||||||
opentags = {'(': ')', '[': ']', '{': '}'}
|
opentags = {'(': ')', '[': ']', '{': '}'}
|
||||||
closetokens = ('delimiter',)
|
closetokens = ('delimiter',)
|
||||||
|
|
Loading…
Reference in New Issue