From: fred Date: Wed, 27 Mar 2002 00:57:29 +0000 (+0000) Subject: lilypond-1.3.137 X-Git-Tag: release/1.5.59~870 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6931652cf77a3bb7b64e430601f8269c399479f7;p=lilypond.git lilypond-1.3.137 --- diff --git a/buildscripts/GNUmakefile b/buildscripts/GNUmakefile index 3a24a75973..875833e447 100644 --- a/buildscripts/GNUmakefile +++ b/buildscripts/GNUmakefile @@ -1,10 +1,14 @@ # bin/Makefile depth = .. -STEPMAKE_TEMPLATES=script +STEPMAKE_TEMPLATES=script install include $(depth)/make/stepmake.make +INSTALLATION_FILES=$(outdir)/gettext.py +INSTALLATION_DIR=$(datadir)/python + +all: $(outdir)/gettext.py diff --git a/buildscripts/gettext.py.in b/buildscripts/gettext.py.in new file mode 100644 index 0000000000..e34cc77a2e --- /dev/null +++ b/buildscripts/gettext.py.in @@ -0,0 +1,329 @@ +"""This module allows python programs to use GNU gettext message catalogs. + +Author: James Henstridge +(This is loosely based on gettext.pl in the GNU gettext distribution) + +The best way to use it is like so: + import gettext + gettext.bindtextdomain(PACKAGE, LOCALEDIR) + gettext.textdomain(PACKAGE) + _ = gettext.gettext + print _('Hello World') + +where PACKAGE is the domain for this package, and LOCALEDIR is usually +'$prefix/share/locale' where $prefix is the install prefix. + +If you have more than one catalog to use, you can directly create catalog +objects. These objects are created as so: + import gettext + cat = gettext.Catalog(PACKAGE, localedir=LOCALEDIR) + _ = cat.gettext + print _('Hello World') + +The catalog object can also be accessed as a dictionary (ie cat['hello']). + +There are also some experimental features. You can add to the catalog, just +as you would with a normal dictionary. When you are finished, you can call +its save method, which will create a new .mo file containing all the +translations: + import gettext + cat = Catalog() + cat['Hello'] = 'konichiwa' + cat.save('./tmp.mo') + +Once you have written an internationalized program, you can create a .po file +for it with "xgettext --keyword=_ fillename ...". Then do the translation and +compile it into a .mo file, ready for use with this module. Note that you +will have to use C style strings (ie. use double quotes) for proper string +extraction. +""" +import os, string + +prefix = '/usr/local' +localedir = prefix + '/share/locale' + +def _expandLang(str): + langs = [str] + # remove charset ... + if '.' in str: + langs.append(string.split(str, '.')[0]) + # also add 2 character language code ... + if len(str) > 2: + langs.append(str[:2]) + return langs + +lang = [] +for env in 'LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG': + if os.environ.has_key(env): + lang = string.split(os.environ[env], ':') + lang = map(_expandLang, lang) + lang = reduce(lambda a, b: a + b, lang) + break +if 'C' not in lang: + lang.append('C') + +# remove duplicates +i = 0 +while i < len(lang): + j = i + 1 + while j < len(lang): + if lang[i] == lang[j]: + del lang[j] + else: + j = j + 1 + i = i + 1 +del i, j + +if os.environ.has_key('PY_XGETTEXT'): + xgettext = os.environ['PY_XGETTEXT'] +else: + xgettext = None + +del os, string + +error = 'gettext.error' + +def _lsbStrToInt(str): + return ord(str[0]) + \ + (ord(str[1]) << 8) + \ + (ord(str[2]) << 16) + \ + (ord(str[3]) << 24) +def _msbStrToInt(str): + return (ord(str[0]) << 24) + \ + (ord(str[1]) << 16) + \ + (ord(str[2]) << 8) + \ + ord(str[3]) +def _intToLsbStr(int): + return chr(int & 0xff) + \ + chr((int >> 8) & 0xff) + \ + chr((int >> 16) & 0xff) + \ + chr((int >> 24) & 0xff) + +def _getpos(levels = 0): + """Returns the position in the code where the function was called. + The function uses some knowledge about python stack frames.""" + import sys + # get access to the stack frame by generating an exception. + try: + raise RuntimeError + except RuntimeError: + frame = sys.exc_traceback.tb_frame + frame = frame.f_back # caller's frame + while levels > 0: + frame = frame.f_back + levels = levels - 1 + return (frame.f_globals['__name__'], + frame.f_code.co_name, + frame.f_lineno) + +class Catalog: + def __init__(self, domain=None, localedir=localedir): + self.domain = domain + self.localedir = localedir + self.cat = {} + if not domain: return + for self.lang in lang: + if self.lang == 'C': + return + catalog = "%s//%s/LC_MESSAGES/%s.mo" % ( + localedir, self.lang, domain) + try: + f = open(catalog, "rb") + buffer = f.read() + del f + break + except IOError: + pass + else: + return # assume C locale + + strToInt = _lsbStrToInt + if strToInt(buffer[:4]) != 0x950412de: + # catalog is encoded with MSB offsets. + strToInt = _msbStrToInt + if strToInt(buffer[:4]) != 0x950412de: + # magic number doesn't match + raise error, 'Bad magic number in %s' % (catalog,) + + self.revision = strToInt(buffer[4:8]) + nstrings = strToInt(buffer[8:12]) + origTabOffset = strToInt(buffer[12:16]) + transTabOffset = strToInt(buffer[16:20]) + for i in range(nstrings): + origLength = strToInt(buffer[origTabOffset: + origTabOffset+4]) + origOffset = strToInt(buffer[origTabOffset+4: + origTabOffset+8]) + origTabOffset = origTabOffset + 8 + origStr = buffer[origOffset:origOffset+origLength] + + transLength = strToInt(buffer[transTabOffset: + transTabOffset+4]) + transOffset = strToInt(buffer[transTabOffset+4: + transTabOffset+8]) + transTabOffset = transTabOffset + 8 + transStr = buffer[transOffset:transOffset+transLength] + + self.cat[origStr] = transStr + + def gettext(self, string): + """Get the translation of a given string""" + if self.cat.has_key(string): + return self.cat[string] + else: + return string + # allow catalog access as cat(str) and cat[str] and cat.gettext(str) + __getitem__ = gettext + __call__ = gettext + + # this is experimental code for producing mo files from Catalog objects + def __setitem__(self, string, trans): + """Set the translation of a given string""" + self.cat[string] = trans + def save(self, file): + """Create a .mo file from a Catalog object""" + try: + f = open(file, "wb") + except IOError: + raise error, "can't open " + file + " for writing" + f.write(_intToLsbStr(0x950412de)) # magic number + f.write(_intToLsbStr(0)) # revision + f.write(_intToLsbStr(len(self.cat))) # nstrings + + oIndex = []; oData = '' + tIndex = []; tData = '' + for orig, trans in self.cat.items(): + oIndex.append((len(orig), len(oData))) + oData = oData + orig + '\0' + tIndex.append((len(trans), len(tData))) + tData = tData + trans + '\0' + oIndexOfs = 20 + tIndexOfs = oIndexOfs + 8 * len(oIndex) + oDataOfs = tIndexOfs + 8 * len(tIndex) + tDataOfs = oDataOfs + len(oData) + f.write(_intToLsbStr(oIndexOfs)) + f.write(_intToLsbStr(tIndexOfs)) + for length, offset in oIndex: + f.write(_intToLsbStr(length)) + f.write(_intToLsbStr(offset + oDataOfs)) + for length, offset in tIndex: + f.write(_intToLsbStr(length)) + f.write(_intToLsbStr(offset + tDataOfs)) + f.write(oData) + f.write(tData) + +_cat = None +_cats = {} + +if xgettext: + class Catalog: + def __init__(self, domain, localedir): + self.domain = domain + self.localedir = localedir + self._strings = {} + def gettext(self, string): + # there is always one level of redirection for calls + # to this function + pos = _getpos(2) # get this function's caller + if self._strings.has_key(string): + if pos not in self._strings[string]: + self._strings[string].append(pos) + else: + self._strings[string] = [pos] + return string + __getitem__ = gettext + __call__ = gettext + def __setitem__(self, item, data): + pass + def save(self, file): + pass + def output(self, fp): + import string + fp.write('# POT file for domain %s\n' % (self.domain,)) + for str in self._strings.keys(): + pos = map(lambda x: "%s(%s):%d" % x, + self._strings[str]) + pos.sort() + length = 80 + for p in pos: + if length + len(p) > 74: + fp.write('\n#:') + length = 2 + fp.write(' ') + fp.write(p) + length = length + 1 + len(p) + fp.write('\n') + if '\n' in str: + fp.write('msgid ""\n') + lines = string.split(str, '\n') + lines = map(lambda x: + '"%s\\n"\n' % (x,), + lines[:-1]) + \ + ['"%s"\n' % (lines[-1],)] + fp.writelines(lines) + else: + fp.write('msgid "%s"\n' % (str,)) + fp.write('msgstr ""\n') + + import sys + if hasattr(sys, 'exitfunc'): + _exitchain = sys.exitfunc + else: + _exitchain = None + def exitfunc(dir=xgettext, _exitchain=_exitchain): + # actually output all the .pot files. + import os + for file in _cats.keys(): + fp = open(os.path.join(dir, file + '.pot'), 'w') + cat = _cats[file] + cat.output(fp) + fp.close() + if _exitchain: _exitchain() + sys.exitfunc = exitfunc + del sys, exitfunc, _exitchain, xgettext + +def bindtextdomain(domain, localedir=localedir): + global _cat + if not _cats.has_key(domain): + _cats[domain] = Catalog(domain, localedir) + if not _cat: _cat = _cats[domain] + +def textdomain(domain): + global _cat + if not _cats.has_key(domain): + _cats[domain] = Catalog(domain) + _cat = _cats[domain] + +def gettext(string): + if _cat == None: raise error, "No catalog loaded" + return _cat.gettext(string) + +_ = gettext + +def dgettext(domain, string): + if domain is None: + return gettext(string) + if not _cats.has_key(domain): + raise error, "Domain '" + domain + "' not loaded" + return _cats[domain].gettext(string) + +def test(): + import sys + global localedir + if len(sys.argv) not in (2, 3): + print "Usage: %s DOMAIN [LOCALEDIR]" % (sys.argv[0],) + sys.exit(1) + domain = sys.argv[1] + if len(sys.argv) == 3: + bindtextdomain(domain, sys.argv[2]) + textdomain(domain) + info = gettext('') # this is where special info is often stored + if info: + print "Info for domain %s, lang %s." % (domain, _cat.lang) + print info + else: + print "No info given in mo file." + +if __name__ == '__main__': + test() + diff --git a/input/bugs/mmrest-collide.ly b/input/bugs/mmrest-collide.ly new file mode 100644 index 0000000000..74578070ec --- /dev/null +++ b/input/bugs/mmrest-collide.ly @@ -0,0 +1,15 @@ +% +% multi-measure-rests should collide with notes, just as normal rests. +% +\score { + \notes\context Staff < + \context Voice=one \relative c''{ + d d d d + d d d d + } + \context Voice=two { + r1 + R + } + > +} \ No newline at end of file diff --git a/input/bugs/pc-rest-collide.ly b/input/bugs/pc-rest-collide.ly new file mode 100644 index 0000000000..1818d1ac51 --- /dev/null +++ b/input/bugs/pc-rest-collide.ly @@ -0,0 +1,24 @@ +% +% when part-combining, rests should collide as in normal case +% +\score { + \notes < + \context Staff < + \context Voice=one \relative c''{ + d4 d d d + d d d d + } + \context Voice=two { + r1 + R + } + > + \context Staff = Viole < + \context Voice=one \partcombine Voice + \context Thread=one \relative c''{ d4 d d d d d d d } + \context Thread=two { r1 R1 } + > + > + \paper { + } +} \ No newline at end of file diff --git a/input/bugs/tie-break-accidental.ly b/input/bugs/tie-break-accidental.ly index 88a35de6d4..94b7e3d3b6 100644 --- a/input/bugs/tie-break-accidental.ly +++ b/input/bugs/tie-break-accidental.ly @@ -8,6 +8,8 @@ should get an accidental, but others should not"; \notes { bes1 ~ | \break bes2 ~ bes4 ~ bes4 ~ | bes1 + \key f\major; + bes1 ~|bes2 b ~|b ~ b ~|b1 } \paper { linewidth = 40*\staffspace; diff --git a/input/test/coriolan-margin.ly b/input/test/coriolan-margin.ly index f16b1dce13..ce54cc16fd 100644 --- a/input/test/coriolan-margin.ly +++ b/input/test/coriolan-margin.ly @@ -30,7 +30,8 @@ oboi = \notes \relative c' { } clarinetti = \notes \relative c' { - \property Staff.instrument = #`(lines "2 Clarinetti" (rows "(B" ,raisedflat ")")) + \property Staff.instrument = #`("Clarinetti in B" ,text-flat) +% \property Staff.instrument = #`(lines "2 Clarinetti" (rows "(B" ,raisedflat ")")) \property Staff.instr = #`(lines "Cl." (rows "(B" ,raisedflat ")")) c1 c diff --git a/mutopia/Coriolan/bassi.ly b/mutopia/Coriolan/bassi.ly index 9dbd9eda37..9053f3cdf4 100644 --- a/mutopia/Coriolan/bassi.ly +++ b/mutopia/Coriolan/bassi.ly @@ -38,7 +38,7 @@ bassiGroup = \context PianoStaff = bassi_group \notes < bassiGroup = \context PianoStaff = bassi_group \notes < \context Staff=violoncelloStaff < \property Staff.midiInstrument = #"cello" - \property Staff.instrument = #"Violoncello " + \property Staff.instrument = #"Violoncello " \property Staff.instr = #"Vc. " \clef "bass"; \global @@ -46,7 +46,7 @@ bassiGroup = \context PianoStaff = bassi_group \notes < > \context Staff=contrabassoStaff < \property Staff.midiInstrument = #"contrabass" - \property Staff.instrument = #"Contrabasso " + \property Staff.instrument = #"Contrabasso " \property Staff.instr = #"Cb. " \property Staff.transposing = #-12 \clef "bass"; diff --git a/mutopia/Coriolan/clarinetti.ly b/mutopia/Coriolan/clarinetti.ly index d1a656133d..f0b2be8559 100644 --- a/mutopia/Coriolan/clarinetti.ly +++ b/mutopia/Coriolan/clarinetti.ly @@ -7,8 +7,7 @@ clarinettiStaff = \context Staff = clarinetti < \property Staff.midiInstrument = #"clarinet" - \property Staff.instrument = #`(lines - "2 Clarinetti" (rows "(B" ,text-flat ")")) + \property Staff.instrument = #`("Clarinetti in B" ,text-flat) \property Staff.instr = #`(lines "Cl." (rows "(B" ,text-flat ")")) \property Staff.transposing = #-2 diff --git a/mutopia/Coriolan/clarinetto-1.ly b/mutopia/Coriolan/clarinetto-1.ly index 907ee9bb5d..6f7317ecca 100644 --- a/mutopia/Coriolan/clarinetto-1.ly +++ b/mutopia/Coriolan/clarinetto-1.ly @@ -163,14 +163,14 @@ clarinettoI = \notes \relative c { cis2.\ff()d4| cis(d cis)d| es2.()d4| - c(bis c)bes| + c(bes c)bes| es2.()d4| - c(bis c)bes| + c(bes c)bes| r2 es4\sf()d| r2 es4\sf()d| r2 es4\sf()d| r2 es4\sf()d| - es2 bis| + es2 cis| d b| cis d| e d| diff --git a/mutopia/Coriolan/clarinetto-2.ly b/mutopia/Coriolan/clarinetto-2.ly index 795abe0ce9..204ef819aa 100644 --- a/mutopia/Coriolan/clarinetto-2.ly +++ b/mutopia/Coriolan/clarinetto-2.ly @@ -25,15 +25,12 @@ clarinettoII = \notes \relative c { cis\sf r| c1\sf| b| - g2. as4\sf(| - )g2. as4\sf(| - )g2. as4\sf(| - )g2. as4\sf(| - )g4 r r2| - R1*9| - %a deux; urg: copied clarinetto-1(60,61)| - a'2.(bes4| - a g e)c| + g2. as4\sf| + g2. as4\sf| + g2. as4\sf| + g2. as4\sf| + g4 r r2| + R1*11| c2\ff es,| d1~| d\p~| diff --git a/mutopia/Coriolan/contrabasso.ly b/mutopia/Coriolan/contrabasso.ly index b2b60555d3..e8669deb56 100644 --- a/mutopia/Coriolan/contrabasso.ly +++ b/mutopia/Coriolan/contrabasso.ly @@ -3,15 +3,15 @@ contrabasso = \notes \relative c { % copied 21 from cello - c1\ff ~| + c1\ff~| c| f,4-. r r2| R1| - c'1\ff ~| + c'1~| c| f,4-. r r2| R1| - c'1\ff ~| + c'1~| c| fis,4-. r r2| R1| @@ -57,17 +57,17 @@ contrabasso = \notes \relative c { %40 fis2\sf r| fis2\sf r| - f!2\sf r| + f2\sf r| f2\sf r| e2\sf r| %45 - es!2\sf r| - des2. es4\sf(| - )d2. es4\sf(| - )d2. es4\sf(| - )d2. es4\sf(| + es2\sf r| + des2. es4\sf| + d2. es4\sf| + d2. es4\sf| + d2. es4\sf| % 50 - )d4 r r2| + d4 r r2| R1 es'4\p r r r8 es(| )as,4 r r r8 as(| @@ -122,7 +122,7 @@ contrabasso = \notes \relative c { a(g a)g| c2.()bes4| a(g a)g| - f!2.()es4| + f2.()es4| d(c d)c| %90 f2.()es4| @@ -150,7 +150,7 @@ contrabasso = \notes \relative c { % copied 8 from cello %110 [g'8:8 bes d es][f, a cis d]| - [es,8: g: b: c!:][d,: f: a: bes:]| + [es,8: g: b: c:][d,: f: a: bes:]| [c,: es: g: a:][cis,: e: g: bes:]| [d,: g: bes: d:][d,: fis: a: d:]| g,,2 ~ g4. g8| @@ -160,7 +160,7 @@ contrabasso = \notes \relative c { g4. g8 g4 r8 g| g4\p r r2| % urg, this is *rest*, not skip: - % need own staff for rests, mustn't collapse to one cello staff! + % need own staff for rests, mustn't collapse to one cello staff %120 - 1 R1*21| % copied 4 frorm cello @@ -230,18 +230,16 @@ contrabasso = \notes \relative c { %195 )g,4 r r r8 g(| -%% \!)d2\ff e'| -%% dis b| - \!)d2\ff e| - dis b'| - es4\p r r r8 es(| + \!)d2\ff e'| + dis b| + e4\p r r r8 es(| )a,4 r r r8 a(| )g1| %200 f| % copied 18 from cello - es'!4\fp r e r| + es'4\fp r e r| f r g r| as r g r| f r fis r| @@ -291,10 +289,10 @@ contrabasso = \notes \relative c { R1*3| %copied 59 from cello - [c8\f e g as][bes, d fis g]| + [c8\f es g as][bes, d fis g]| %240 - [as, c e f!][g, bes d es]| + [as, c e f][g, bes d es]| f4 r r2| R1*3| c4\p r r r8 c(| @@ -319,7 +317,7 @@ contrabasso = \notes \relative c { \!ges\f| f\p| as\f| - g!\p| + g\p| bes\f| %260 @@ -339,7 +337,7 @@ contrabasso = \notes \relative c { b,4. b'8 b2\sf| %270 - [c,8-"sempre"\ff b c d][es\ff d es c]| + [c,8-"sempre"\ff b c d][es d es c]| [b c d c][b c b g]| [c8 b c d][es d es c]| [b c d c][b c b g]| @@ -349,15 +347,15 @@ contrabasso = \notes \relative c { [c b c g][c b c g]| c1 ~| c| - f4-. r r2| + f,4-. r r2| R1| %280 - c1 ~| + c'1 ~| c| - f4-. r r2| + f,4-. r r2| R1| - c1 ~| + c'1 ~| %285 c| @@ -378,24 +376,24 @@ contrabasso = \notes \relative c { %295 R1| c4 r r2| - r2 r4 f,| - c' r r2| - r2 r4 f,| + r2 r4 g| + c r r2| + r2 r4 g| %300 - c' r r2| + c r r2| R1| - f,4 r r2| + g4 r r2| R1| - c'4 r r2| + c4 r r2| %305 R1| - f,4 r r2| + g4 r r2| R1*3| %310 - c'4\pp r r2| + c4\pp r r2| R1| c4 r r2| c4 r r2| diff --git a/mutopia/Coriolan/corni.ly b/mutopia/Coriolan/corni.ly index b4fe792cc6..d04a79cd33 100644 --- a/mutopia/Coriolan/corni.ly +++ b/mutopia/Coriolan/corni.ly @@ -7,8 +7,7 @@ corniStaff = \context Staff = corni < \property Staff.midiInstrument = #"french horn" - \property Staff.instrument = #`(lines - "2 Corni" (rows "(E" ,text-flat ")")) + \property Staff.instrument = #`(rows "Corni in E" ,text-flat) \property Staff.instr = #`(lines "Cor." (rows "(E" ,text-flat ")")) \property Staff.transposing = #3 diff --git a/mutopia/Coriolan/corno-1.ly b/mutopia/Coriolan/corno-1.ly index 4ca1482ccf..814517d871 100644 --- a/mutopia/Coriolan/corno-1.ly +++ b/mutopia/Coriolan/corno-1.ly @@ -122,11 +122,13 @@ cornoI = \notes \relative c { R1*17| r4 r8 e,8 e4. e8| r4 r8 e8 e4. e8| + \property Voice.crescendoText = #"cresc." + \property Voice.crescendoSpanner = #'dashed-line + r4 r8 e8\< e4. e8| r4 r8 e8 e4. e8| r4 r8 e8 e4. e8| r4 r8 e8 e4. e8| - r4 r8 e8 e4. e8| - f'2. e4| + \!f'2.\ff e4| d e d e| f2. e4| d e d e| diff --git a/mutopia/Coriolan/corno-2.ly b/mutopia/Coriolan/corno-2.ly index f718a3ebab..53e5f5f58b 100644 --- a/mutopia/Coriolan/corno-2.ly +++ b/mutopia/Coriolan/corno-2.ly @@ -94,7 +94,7 @@ cornoII = \notes \relative c { R1*3| d4\ff r c r| d r c r| - e, r d' r| + g r d' r| d r e r| d4 r r2| R1| diff --git a/mutopia/Coriolan/fagotti.ly b/mutopia/Coriolan/fagotti.ly index a5226850a4..f8f6e2c467 100644 --- a/mutopia/Coriolan/fagotti.ly +++ b/mutopia/Coriolan/fagotti.ly @@ -6,7 +6,7 @@ fagottiStaff = \context Staff = fagotti < \property Staff.midiInstrument = #"bassoon" - \property Staff.instrument = #"2 Fagotti" + \property Staff.instrument = #"Fagotti" \property Staff.instr = #"Fg." \clef "bass"; %\property Staff.clefGlyph = #"clefs-F" diff --git a/mutopia/Coriolan/fagotto-1.ly b/mutopia/Coriolan/fagotto-1.ly index 61d3bbf3ba..578da4ab71 100644 --- a/mutopia/Coriolan/fagotto-1.ly +++ b/mutopia/Coriolan/fagotto-1.ly @@ -37,11 +37,11 @@ fagottoI = \notes \relative c { f\sf r| f\sf r| e1\sf es\sf| - d2. es4\sf(| - )d2. es4\sf(| - )d2. es4\sf(| - )d2. es4\sf(| - )d4 r r2| + d2. es4\sf| + d2. es4\sf| + d2. es4\sf| + d2. es4\sf| + d4 r r2| R1*9| \clef "tenor"; @@ -108,7 +108,7 @@ fagottoI = \notes \relative c { %% 110| % copied from cello, copied from viola| [g8 bes d es][f, a cis d]| - [es,8:8 g: b: c!:][d,: f: a: bes:]| + [es,8:8 g: b: c:][d,: f: a: bes:]| [c,: es: g: a:][cis,: e: g: bes:]| [d,: g: bes: d:][d,: fis: a: d:]| g,2 ~ g4. g8| @@ -189,13 +189,15 @@ fagottoI = \notes \relative c { g~| g~| g| - e''2.(f4| + \property Voice.crescendoText = #"cresc." + \property Voice.crescendoSpanner = #'dashed-line + e''2.(\ c4 ~ | c8 + + GNU LilyPond 1.3.136 can not handle the old notation. When + this old notation will be supported, it should be fairly + straightforward to find and change these instances. It would + be advisable, however, to keep the current, modern printout, + and document this as a change in b. + + 2. Notes are entered by their name, no efforts were made to + force the printing of reminder accidentals to mimic the + original edition, see b.2,3. + + 3. Empty staffs are removed through the Hara-kiri-staff + mechanism. This change can be undone very easily. + + 4. Margins are changed to Mutopia dictated values. This change + can be undone very easily, however, see b.7. + + b. Automatic changes by the GNU LilyPond typesetting mechanism + + 1. Bar lines are not connected between staff groups. + + 2. Accidentals are not repeated within one bar, in + + \key es\major; b2 b + + only the first b gets an accidental. Note that not in all + cases these accidentals are consistently repeated, however, + they are printed in most cases where the two notes are + more than one note apart. + + 3. Reminder accidentals are not printed, in + + \key es\major; b1 | bes + + no flat is printed with the bes. + + 4. Stem.default-neutral-direction and + Beam.default-neutral-direction are 1 (up). + + 5. Beam-dir-algorithm is 'majority. + + 6. The part combiner prints "I.", "II." and "`a 2." strings + where appropriate. + + 7. Line breaks are calculated. + + 8. GNU LilyPond has bugs that affect the Coriolan, see test + sources in input/bugs/*.ly. + + + Other editions. + + ii. Edition Eulenburg No.626 Coriolan, Overture for Orchestra + Op. 62; Ernst Eulenburg LTD, (not dated). Edited 1936 by + dr. Max Unger from and following score autograph and original + published parts, ie, Stimmen-Drucke N.Simrock Bonn (most + probably from 1807) and Industriekontor Vienna (1807). + + iii. Beethoven's Werke -- Ouverturen fuer Orchester; Breitkopf + u. Haertel, Leipzig (not dated, but very old and worn). + + iv. Beethoven Werke II,1 -- Ouverturen und Wellingtons Sieg; + G. Henle Verlag, Muenchen (1974). Veroeffentlichung des + Beethovenhauses in Bonn. Die ausgabe wurde durch die + Unterstuetzung des Landes Nordrhein-Westfalen ermoeglicht. + + + Background. + + From Overture Coriolan is no Urtext edition available, although + there are Urtext editions of Beethoven's symphonies. Edition Eulenburg is the ``first after many years'' that tries to stay as close to the original text as possible. During the 1900s, it was customary for editors not to respect the original text and make any changes they thought necessary. Unger made corrections for - a few ``small and obvious'' inaccuracies. This is the only score - edition to abbreviate (LilyPond source notation) + a few ``small and obvious'' inaccuracies. Together with Breitkopf + and Haertel, this is the only score edition to abbreviate (LilyPond + source notation) [es16 es g g] [b b c c] @@ -35,8 +131,8 @@ [es8:16 g: b: c:] - however, editions of individual parts by Breitkopf and Haertel use - this common practice abbreviation too. + editions of individual parts by Breitkopf and Haertel use this + common practice abbreviation too. Edition Beethoven's Werke by Breitkopf and Haertel comes without any commentary, copyright mark or date. There are no significant @@ -52,20 +148,26 @@ not from the autograph itself), and that Simrock's is a bit closer to the original autograph. This edition is supposed to deviate from the autograph only in using `modernised notation' for the following - cases (LilyPond source notation). + cases (GNU LilyPond source notation), as described by the foreword. - i. Use dots instead of ties for sustaining of notes when there's no - measure break: + a. Use dots instead of ties for sustaining of notes when there's no + measure break: - c4 ~ c8 -> c4. + c4 ~ c8 -> c4. + + We very much doubt this, as the 1862 edition already has this, + but in contrast, has a different change, see i.a.1 above. - ii. Don't repeat accidentals within the same measure: + b. Don't repeat accidentals within the same measure: - \key es \major; b4 c b! c | -> \key es \major; b4 c b c + \key es \major; b4 c b! c | -> \key es \major; b4 c b c - iii. Start slurring from first tied note, not from second: + We think that also other changes may have been made, see i.b.3 + above. + + c. Start slurring from first tied note, not from second: - c4 ~ c8 ( d ) e -> c4 ( ~ c8 d ) e + c4 ~ c8 ( d ) e -> c4 ( ~ c8 d ) e From these deviations, the third is the only one unique to this edition, but these are easy to spot and mostly parenthesed; the @@ -74,18 +176,6 @@ %} - source = "i. Ed. Eulenburg, edited by dr. Max Unger 1936 from and - following score autograph and original published parts, ie, - Stimmen-Drucke N.Simrock Bonn (most probably from 1807) and - Industriekontor Vienna (1807).\\\\ - ii. Beethoven's Werke -- Ouverturen fuer Orchester; Breitkopf u. Haertel, - Leipzig (not dated, but very old and worn).\\\\ - iii. Beethoven Werke II,1 -- Ouverturen und Wellingtons Sieg; G. Henle - Verlag, Muenchen (1974). - Veroeffentlichung des Beethovenhauses in Bonn. - Die ausgabe wurde durch die Unterstuetzung des Landes Nordrhein-Westfalen - ermoeglicht."; - style = "Classical"; copyright = "Public Domain"; maintainer = "Jan Nieuwenhuizen"; @@ -96,7 +186,7 @@ \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset and placed in the public domain by " + \maintainer + ".\\\\Unrestricted modification and redistribution is permitted - and encouraged---copy this music and share it!}"; + and encouraged---copy this music and share it.}"; tagline = \mutopiapublicdomain; footer = "pre-Mutopia-200y/mm/dd-nr"; } diff --git a/mutopia/Coriolan/oboe-2.ly b/mutopia/Coriolan/oboe-2.ly index ac8e9c3bb0..ee98acea4a 100644 --- a/mutopia/Coriolan/oboe-2.ly +++ b/mutopia/Coriolan/oboe-2.ly @@ -65,15 +65,9 @@ oboeII = \notes \relative c{ bes4. bes8 bes4 r8 bes| bes4 r8 bes bes4 r8 bes| bes4\p r r2| - R1*15| - \property Voice.crescendoText = #"cresc." - \property Voice.crescendoSpanner = #'dashed-line - r4 r8 as'\< ges4 r8 des| - es4 r8 bes' as4 r8 es| - f4 r r2| - R1*3| + R1*21| %a deux; urg copied ...| - \!f4\f r r r8 es| + \!f'4\f r r r8 es| des4 r r r8 c| bes4 r8 bes bes4 r8 bes| bes4 r8 bes bes4 r8 bes| @@ -183,6 +177,6 @@ oboeII = \notes \relative c{ R1| b4 r r2| R1| - c4 r r2\pp| + c4\pp r r2| R1*18| } diff --git a/mutopia/Coriolan/oboi.ly b/mutopia/Coriolan/oboi.ly index 2db8749438..ffbb68bd86 100644 --- a/mutopia/Coriolan/oboi.ly +++ b/mutopia/Coriolan/oboi.ly @@ -6,7 +6,7 @@ oboiStaff = \context Staff = oboi < \property Staff.midiInstrument = #"oboe" - \property Staff.instrument = #"2 Oboi" + \property Staff.instrument = #"Oboi" \property Staff.instr = #"Ob." \global \context Voice=one \partcombine Voice diff --git a/mutopia/Coriolan/timpani.ly b/mutopia/Coriolan/timpani.ly index 1e91be78b4..e49ee5d5f9 100644 --- a/mutopia/Coriolan/timpani.ly +++ b/mutopia/Coriolan/timpani.ly @@ -59,6 +59,7 @@ timpani = \notes \relative c { g4 r8 g g4 r8 g| g4 r8 g g4 r8 g| R1| + % should extend over two bars tr ~~~~~~ g1\trill~| g| g4 r8 g g4 r8 g| @@ -137,8 +138,7 @@ timpani = \notes \relative c { timpaniStaff = \context Staff = timpani < \property Staff.midiInstrument = #"timpani" - \property Staff.instrument = #'(lines - "2 Timpani" "(C-G)") + \property Staff.instrument = #"Timpani in C-G " \property Staff.instr = #"Timp." \clef "bass"; \Time diff --git a/mutopia/Coriolan/trombe.ly b/mutopia/Coriolan/trombe.ly index 775dd7fe3f..cf414bb131 100644 --- a/mutopia/Coriolan/trombe.ly +++ b/mutopia/Coriolan/trombe.ly @@ -8,7 +8,7 @@ trombeStaff = \context Staff = trombe < \context Staff=trombe { \property Staff.midiInstrument = #"trumpet" - \property Staff.instrument = #`(lines "2 Trombe" (rows "(C)")) + \property Staff.instrument = #"Trombe in C" \property Staff.instr = #`(lines "Tbe." (rows "(C)")) \notes { \key c \major; } diff --git a/mutopia/Coriolan/viola-1.ly b/mutopia/Coriolan/viola-1.ly index 779e50be68..641196037c 100644 --- a/mutopia/Coriolan/viola-1.ly +++ b/mutopia/Coriolan/viola-1.ly @@ -116,14 +116,14 @@ violaI = \notes \relative c { [d8\< d-.] es4. es8-. d4 ~| [d8 d-.] es4. es8-. d4 ~| [d8 d-.] es4. es8-. d4 ~| - [d8 d-.] es4. es8-. d4 (| - \!)fis,2:\ff fis4: g:| + [d8 d-.] es4. es8-. d4| + \!fis2:\ff fis4: g:| %85 d2: d:| fis: fis4: g:| c,: d: c: d:| b2: b4: c:| - f': es: f: es:| + f: es: f: es:| %90 b2: b4: c:| d: c: d: c:| @@ -155,7 +155,7 @@ violaI = \notes \relative c { %110 % cello has eighth notes here... [g,16 g bes bes][d d es es][f, f a a][cis cis d d]| - [es,8: g: b: c!:][d,: f: a: bes:]| + [es,8: g: b: c:][d,: f: a: bes:]| [c,: es: g: a:][cis,: e: g: bes:]| [d,: g: bes: d:][d,: fis: a: d:]| d2: d: @@ -282,7 +282,7 @@ violaI = \notes \relative c { )d4 r r r8 d8(| %195 )g4 r r r8 g8| - [\!a16\ff a' a a]a4: a2:| + [\!a16\ff a' a a]a4: g2:| fis: dis:| e,4\p r r r8 e8(| @@ -316,7 +316,7 @@ violaI = \notes \relative c { bes,: c: bes: c:| e2:16\ff e4: f:| - b,: c: b: c:| + bes,: c: bes: c:| %220 r4 r8 as as2\sf| @@ -331,8 +331,8 @@ violaI = \notes \relative c { [g8 g]g4. as8 as4 ~| [as8 as]f4. f8 g4| %230 - c\p r r2| - r r4 r8 b\f| + c,\p r r2| + r r4 r8 b'\f| c4 r r2| r r4 r8 b\f| c4 r r2| @@ -402,7 +402,7 @@ violaI = \notes \relative c { R1| c,4 r r2| R1*15| - c4\pp r r2| + c4-#'((font-shape . upright) "pizz.") r r2| c4 r r2| c4 r r2| } diff --git a/mutopia/Coriolan/viola-2.ly b/mutopia/Coriolan/viola-2.ly index 7ba0e2c046..23508b874f 100644 --- a/mutopia/Coriolan/viola-2.ly +++ b/mutopia/Coriolan/viola-2.ly @@ -117,23 +117,20 @@ violaII = \notes \relative c { [d8 d-.] es4. es8-. d4 ~| [d8 d-.] es4. es8-. d4 ~| [d8 d-.] es4. es8-. d4 (| - \!)fis,2:\ff fis4: g:| + \!)fis2:\ff fis4: g:| %85 d2: d:| fis: fis4: g:| c,: d: c: d:| b2: b4: c:| - f': es: f: es:| + f: es: f: es:| %90 b2: b4: c:| d: c: d: c:| c,4 r8 c' c4\sf()des| r r8 c c4\sf()des| - r r8 c c4\sf()des| - r r8 c c4\sf()des| - [c16 es es es]es4:[es16 fis fis fis]fis4:| [b,16 d d d]d4:[bes16 e e e]e4:| [as,16 c c c ]c4:[g16 c c c]c4:| @@ -155,7 +152,7 @@ violaII = \notes \relative c { %110 % cello has eighth notes here... [g,16 g bes bes][d d es es][f, f a a][cis cis d d]| - [es,8: g: b: c!:][d,: f: a: bes:]| + [es,8: g: b: c:][d,: f: a: bes:]| [c,: es: g: a:][cis,: e: g: bes:]| [d,: g: bes: d:][d,: fis: a: d:]| g,2: g: @@ -282,9 +279,8 @@ violaII = \notes \relative c { )d4 r r r8 d8(| %195 )g4 r r r8 g8| - [\!f16\ff f' f f]f4: f2:| + [\!f16\ff f' f f]f4: e2:| dis: b:| - e,4\p r r r8 e8(| )a4\< r r r8 a8(| %200 @@ -307,17 +303,13 @@ violaII = \notes \relative c { [g8 g-.] as4. as8-. g4 (| \!)b,2:16\ff b4: c:| g'2: g:| - %214 b,2:16\ff b4: c:| g'2: g:| - bes,2:16\ff bes4: as:| g: f: g: f:| - bes2:16\ff bes4: as:| g: f: g: f:| - %220 r4 r8 f f4\sf()ges| r4 r8 f f4\sf()ges| @@ -331,8 +323,8 @@ violaII = \notes \relative c { [g8 g]g4. as8 as4 ~| [as8 as]f4. f8 g4| %230 - c\p r r2| - r r4 r8 b\f| + c,\p r r2| + r r4 r8 b'\f| c4 r r2| r r4 r8 b\f| c4 r r2| @@ -370,7 +362,7 @@ violaII = \notes \relative c { r4 r8 e g4.\sf()f8| r4 r8 f as4.\sf()g8| %270 - g2:16-"sempre" g:\ff| + g2:16-"sempre"\ff g:| g: g:| g: g:| g: g:| @@ -402,7 +394,7 @@ violaII = \notes \relative c { R1| c,4 r r2| R1*15| - c4\pp r r2| + c4-#'((font-shape . upright) "pizz.") r r2| c4 r r2| c4 r r2| } diff --git a/mutopia/Coriolan/violino-1.ly b/mutopia/Coriolan/violino-1.ly index 97ba5f5bcf..10b5a45043 100644 --- a/mutopia/Coriolan/violino-1.ly +++ b/mutopia/Coriolan/violino-1.ly @@ -26,9 +26,9 @@ violinoI = \notes \relative c { %20 [g8 fis] fis4 ~ fis \!g-.\f| R1| - [bes,,!8\p-. des-.][des()c][c-. f-.]f4-"ten."| - [bes,!8\p-. des-.][des()c][c-. f-.]f4-"ten."| - [bes,!8\p-. des-.][des()c][c-. ges'-.][ges()f]| + [bes,,8\p-. des-.][des()c][c-. f-.]f4-"ten."| + [bes,8\p-. des-.][des()c][c-. f-.]f4-"ten."| + [bes,8\p-. des-.][des()c][c-. ges'-.][ges()f]| %25 [f-. bes-.][bes()a][a-. es'-.][es()des]| \property Voice.crescendoText = #"cresc." @@ -48,25 +48,25 @@ violinoI = \notes \relative c { %35 [f16 f f f][es es es es][des des des des][c c c c]| b2:16 c:| - d!: es:| + d: es:| e: f:| g: as:| %40 a2\sf [c,,8-. es-.][es()d]| a''2\sf [c,,8-. es-.][es()d]| - as''!2\sf [b,,8-. d-.][d()c]| + as''2\sf [b,,8-. d-.][d()c]| as''2\sf [b,,8-. d-.][d()c]| g''1\sf| %45 ges\sf| - f2. ges4\sf(| - )f2. ges4\sf(| - )f2. ges4\sf(| - )f2. ges4\sf(| + f2. ges4\sf| + f2. ges4\sf| + f2. ges4\sf| + f2. ges4\sf| %50 - )f1\>~| + f1\>~| f4 d( bes)as| \!g2.\p( as4| g f d ) bes| @@ -115,8 +115,8 @@ violinoI = \notes \relative c { [a8 bes-.] bes4. bes8-. bes4~| [bes8 bes-.] bes4. bes8-. bes4~| [bes8 c-.] c4. c8-. c4~| - [c8 d-.] d4. d8-. d4(| - )es2:16\ff es4: d:| + [c8 d-.] d4. d8-. d4| + es2:16\ff es4: d:| %85 fis: g: fis: g:| es2: es4: d:| @@ -135,8 +135,8 @@ violinoI = \notes \relative c { %95 r8 es' as,4\sf~as()g| r8 es' as,4. fis8 es'4~| - [es8 d] g,4. e8 d'4~| - [d8 c] f,4. c'8 es,4 ~| + [es8 d] g,4. e8 des'4~| + [des8 c] f,4. c'8 es,4 ~| [es8 c'] a4. c8 g4 ~| %100 @@ -173,7 +173,7 @@ violinoI = \notes \relative c { %120 bes4 r8 es des4 r8 bes| - as!4 r8 es' des4 r8 as| + as4 r8 es' des4 r8 as| g4 r r2| r4 r8 es' des4 r8 as| g4 r r2| @@ -204,7 +204,7 @@ violinoI = \notes \relative c { f4\f r8 bes as4 r8 es| des4 r8 ges f4 r8 c| bes4 r8 e f4 r8 bes,| - bes4 r8 g'! e4 r8 bes'| + bes4 r8 g' e4 r8 bes'| \property Voice.crescendoText = #"cresc." \property Voice.crescendoSpanner = #'dashed-line as4\p r8 des\< c4 r8 g| @@ -228,7 +228,7 @@ violinoI = \notes \relative c { f,,1 ~| f| - [f,8-. as-.][as()g]| + [f,8-. as-.][as()g]| [f,8-. as-.][as()g]| %160 [f8-.\p as-.][as()g] [g-. c-.][c()b]| @@ -319,31 +319,21 @@ violinoI = \notes \relative c { %225 r8 g c,4. a8 f'4 ~| [f8 f] b,4. f'8 as,4 ~| - [as8 f'] d!4. f8 c4 ~| + [as8 f'] d4. f8 c4 ~| [c8 b] g,4. as8 as'4 ~| [as8 as] f4. f8 g4| %230 c,4\p r8 as' g4 r8 es| - + d4 r8 as' g4 r8 d\f| + es4 r8 as\p g4 r8 es| d4\p r8 as' g4 r8 d\f| - - es4\p r8 as\p g4 r8 es| - - d4\p r8 as' g4 r8 d\f| - es4\p r8 as'\p g4 r8 d| - %235 c4 r8 f es4 r8 bes| - as4 r8 d c4 r8 g| - f4 r8 c' b4 r8 f'| - es4\f r8 as g4 r8 d| - - c4\f r8 f es4 r8 bes| - + c4 r8 f es4 r8 bes| %240 as4-. des-. r2| R1*3| @@ -408,7 +398,7 @@ violinoI = \notes \relative c { \property Voice.decrescendoSpanner = #'dashed-line f4\> r d r| R1| - \!es!4\p r r2| + \!es4\p r r2| R1| d,4-#'((font-shape . upright) "pizz.") r r2| @@ -449,7 +439,7 @@ violinoI = \notes \relative c { violinoIStaff = \context Staff = violino1 < \property Staff.midiInstrument = #"violin" \property Staff.instrument = #"Violino I " - \property Staff.instr = #"Vl. I " + \property Staff.instr = #"Vl. I " \notes< \global \context Voice=violinoi diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly index e075b63aac..fc9e15a4eb 100644 --- a/mutopia/Coriolan/violino-2.ly +++ b/mutopia/Coriolan/violino-2.ly @@ -46,7 +46,7 @@ violinoII = \notes \relative c { %35 [f16 f f f][es es es es][des des des des][c c c c]| b2:16 c:| - d!: es:| + d: es:| e: f:| | @@ -150,7 +150,7 @@ violinoII = \notes \relative c { g4 r r r8 f| es4 r r r8 d| - c4 r8 g fis4 r8 c'| + c4 r8 g' fis4 r8 c'| % looks lot like violino-1 110-113 %110 @@ -158,7 +158,7 @@ violinoII = \notes \relative c { g4 r8 c bes4 r8 f| - es4 r8 a g4 r8 cis| + es4 r8 a g4 r8 cis,| <[d16 s> ] | | | @@ -166,28 +166,10 @@ violinoII = \notes \relative c { | r r2| - % copied... urg: *same* as violino-1(119,128) - % URG: or is this R1*10?? - % should hara-kiri like viola-1/2... - a'4 r8 es' d4 r8 a| - - %120 - bes4 r8 es des4 r8 bes| - as!4 r8 es' des4 r8 as| - g4 r r2| - r4 r8 es' des4 r8 as| - g4 r r2| - %125 - r4 r8 c bes4 r8 e,| - - as4 r8 des c4 r8 as| - - g4 r8 des' c4 r8 g| - as4 r8 es' des4 r8 as| - R1*3 + R1*13 %131 % copied from viola(131,140) - [as,8 as c es][f es c as]| + [as8 as c es][f es c as]| [a c es f][ges f c a]| [bes des f ges][as ges des bes]| @@ -195,7 +177,7 @@ violinoII = \notes \relative c { [c es g as][bes as es c]| [des\p f a bes][c, es g as]| - % urg, copied, but nog ges, f, on violino! + % urg, copied, but nog ges, f, on violino. [bes, des f ges][as, c e f]|r [bes, d es]r[as, c des]| % [es, ges bes des][as c es as,]| r[bes bes des][as c es ges]| @@ -205,7 +187,7 @@ violinoII = \notes \relative c { f4\f r8 bes as4 r8 es| des4 r8 ges f4 r8 c| bes4 r8 e f4 r8 bes,| - bes4 r8 g'! e4 r8 bes'| + bes4 r8 g' e4 r8 bes'| \property Voice.crescendoText = #"cresc." \property Voice.crescendoSpanner = #'dashed-line as4\p r8 des\< c4 r8 g| @@ -230,7 +212,7 @@ violinoII = \notes \relative c { f1 ~| f| - [f8-. as-.][as()g]| + [f8-. as-.][as()g]| [f8-. as-.][as()g]| %160 R1| @@ -353,7 +335,7 @@ violinoII = \notes \relative c { %copied violino-1(238,243) es'4\f r8 as g4 r8 d| - c4\f r8 f es4 r8 bes| + c4 r8 f es4 r8 bes| %240 as4-. des-. r2| @@ -364,18 +346,20 @@ violinoII = \notes \relative c { [g8( d' b d][g d b )g~]| [g8( e' c e][g e c )g~]| [g8( f' d f][g f d )g,~]| - [g8( es'! c es][g es c )g~]| + [g8( es' c es][g es c )g~]| [g8( d' b d][g d b )g~]| %250 [g8( es' c es][g es c )g~]| [g8( f' d f][g f d )g,~]| - [g8( es' c es][g es c )g~]| + \property Voice.crescendoText = #"cresc." + \property Voice.crescendoSpanner = #'dashed-line + [g8(\< es' c es][g es c )g~]| [g8( d' b d][g d b )g~]| [g8( es' c es][g es c )g]| %255 - | + <\!c2:16\f es:> | [as8\p( f' des f][as f des )as]| | [bes8\p( g' es g][bes g es )bes]| @@ -399,7 +383,7 @@ violinoII = \notes \relative c { r4 r8 f as4.\sf()g8| %270 - g2:16-"sempre" g:\ff| + g2:16-"sempre"\ff g:| g: g:| g: g:| g: g:| @@ -445,7 +429,7 @@ violinoIIStaff = \context Staff = violino2 < % eerste en tweede viool ;-) \property Staff.midiInstrument = #"violin" \property Staff.instrument = #"Violino II " - \property Staff.instr = #"Vl. II " + \property Staff.instr = #"Vl. II " \notes< \global \context Voice=violinoii diff --git a/mutopia/Coriolan/violoncello.ly b/mutopia/Coriolan/violoncello.ly index b7f970ab68..30db8710a2 100644 --- a/mutopia/Coriolan/violoncello.ly +++ b/mutopia/Coriolan/violoncello.ly @@ -2,15 +2,15 @@ \version "1.3.120"; violoncello = \notes \relative c { - c1\ff ~| + c1\ff~| c| f,4-. r r2| R1| - c'1\ff ~| + c'1~| c| f,4-. r r2| R1| - c'1\ff ~| + c'1~| c| fis,4-. r r2| R1| @@ -28,9 +28,9 @@ violoncello = \notes \relative c { as4. as8 \!g4\f r4| R1| % 4 bars same as violino-1... - [bes,!8\p-. des-.][des()c][c-. f-.]f4-"ten."| - [bes,!8\p-. des-.][des()c][c-. f-.]f4-"ten."| - [bes,!8\p-. des-.][des()c][c-. ges'-.][ges()f]| + [bes,8\p-. des-.][des()c][c-. f-.]f4-"ten."| + [bes,8\p-. des-.][des()c][c-. f-.]f4-"ten."| + [bes,8\p-. des-.][des()c][c-. ges'-.][ges()f]| %25 [f-. bes-.][bes()a][a-. es'-.][es()des]| @@ -56,19 +56,19 @@ violoncello = \notes \relative c { %40 fis2\sf [c'8-. es-.][es()d] fis,2\sf [c'8-. es-.][es()d] - f,!2\sf [b8-. d-.][d()c] f,2\sf [b8-. d-.][d()c] - e,2\sf [bes'!8-. des-.][des()c] + f,2\sf [b8-. d-.][d()c] + e,2\sf [bes'8-. des-.][des()c] %45 - es,!2\sf [a!8-. c-.][c()bes]| - d,4 [a'!8-. c-.][c()bes] es,4\sf(| - )d4 [a'!8-. c-.][c()bes] es,4\sf(| - )d4 [a'!8-. c-.][c()bes] es,4\sf(| - )d4 [a'!8-. c-.][c()bes] es,4\sf(| + es,2\sf [a8-. c-.][c()bes]| + d,4 [a'8-. c-.][c()bes] es,4\sf| + d4 [a'8-. c-.][c()bes] es,4\sf| + d4 [a'8-. c-.][c()bes] es,4\sf| + d4 [a'8-. c-.][c()bes] es,4\sf| %50 - )d4 r r2| + d4 r r2| R1| [bes'8\p(g'es g][bes g es)bes~]| [bes(f'd f][bes f d)bes~]| @@ -93,7 +93,7 @@ violoncello = \notes \relative c { [c(as'f as][c as f)c~]| [c(bes'g bes][c bes g)c,~]| [c(as'f as][c as f)c~]| - [c(g'e g][c g e)bes]| + [c(g'e g][bes g e)bes]| %70 as2\ff g| @@ -102,7 +102,7 @@ violoncello = \notes \relative c { \property Voice.crescendoSpanner = #'dashed-line [g8\p\<(bes' g bes][d bes g)d~]| [d8(a' fis a][d a fis)d]| - [\!f!8\sf\>(as f as][f g d)g]| + [\!f8\sf\>(as f as][f g d)g]| %75 \!c,4\p r d r| @@ -123,7 +123,7 @@ violoncello = \notes \relative c { a(g a)g| c2.()bes4| a(g a)g| - f!2.()es4| + f2.()es4| d(c d)c| %90 @@ -163,7 +163,7 @@ violoncello = \notes \relative c { % [g,16 g bes bes][d d es es][f, f a a][cis cis d d]| % see if this:8 neat trick works... [g,:8 bes d es][f, a cis d]| - [es,8: g: b: c!:][d,: f: a: bes:]| + [es,8: g: b: c:][d,: f: a: bes:]| [c,: es: g: a:][cis,: e: g: bes:]| [d,: g: bes: d:][d,: fis: a: d:]| g,,2 ~ g4. g8| @@ -196,10 +196,10 @@ violoncello = \notes \relative c { %131 [g bes d es][f es bes g]| % shared with viola until here - as1 (| + as1| a| bes| - )c| + c| \!des2\p( c| bes as| ges f| @@ -249,7 +249,7 @@ violoncello = \notes \relative c { %160 R1*3| - bes,!2\ff [e8-. g-.][g()f]| + bes,2\ff [e8-. g-.][g()f]| bes,2\sf [e8-. g-.][g()f]| %165 @@ -284,32 +284,30 @@ violoncello = \notes \relative c { [g(e' c d][g e c )g~]| [g(f' d f][g f d )g,~]| [g(e' c d][g e c )g~]| - [g(d' b d][g d b )g(]| + [g(d' b d][g d b )g]| %190 - \!)e2\ff d'| + \!e2\ff d'| cis a ~| - [a8( f' d f][a f d )a!~]| - [a( e' cis e][a e c )a!~]| - [a8( f' d f][a f d )a!~]| - [a( g' e g][a g e )a,!~]| + [a8( f' d f][a f d )a~]| + [a( e' cis e][a e cis )a~]| + [a8( f' d f][a f d )a~]| + [a( g' e g][a g e )a,~]| %195 \property Voice.crescendoText = #"cresc." \property Voice.crescendoSpanner = #'dashed-line - [a8\<( f' d f][a f d )a!~]| - [a( e' cis e][a e c )g]| -%% \!f2\ff e| -%% dis b'~| - \!f2\ff e'| - dis b~| - [b8\p( g' e g][b g e )b!~]| + [a8\<( f' d f][a f d )a~]| + [a( e' cis e][a e cis )g]| + \!f2\ff e| + dis b'~| + [b8\p( g' e g][b g e )b~]| %200 - [b8\<( fis' dis fis ][b fis dis )b!~]| + [b8\<( fis' dis fis ][b fis dis )b~]| [b8( g' e g][e g e )g]| [f(g f g][f g f)g]| - \!es!4\fp r e r| + \!es4\fp r e r| f r g r| %205 @@ -358,13 +356,13 @@ violoncello = \notes \relative c { %235 [c es g\p as][bes, d fis g]| - [as, c e f!][g, bes d es]| + [as, c e f][g, bes d es]| [f, as c d][es g b c]| [d, f as c][g, b d g]| - [c,\f e g as][bes, d fis g]| + [c,\f es g as][bes, d fis g]| %240 - [as, c e f!][g, bes d es]| + [as, c e f][g, bes d es]| f4 r r2| R1*3| c4\p r r r8 c(| @@ -389,7 +387,7 @@ violoncello = \notes \relative c { \!ges\f| f\p| as\f| - g!\p| + g\p| bes\f| %260 @@ -409,7 +407,7 @@ violoncello = \notes \relative c { b,4. b'8 b2\sf| %270 - [c,8-"sempre"\ff b c d][es\ff d es c]| + [c,8-"sempre"\ff b c d][es d es c]| [b c d c][b c b g]| [c8 b c d][es d es c]| [b c d c][b c b g]| @@ -419,15 +417,15 @@ violoncello = \notes \relative c { [c b c g][c b c g]| c1 ~| c| - f4-. r r2| + f,4-. r r2| R1| %280 - c1 ~| + c'1 ~| c| - f4-. r r2| + f,4-. r r2| R1| - c1 ~| + c'1 ~| %285 c| @@ -454,7 +452,7 @@ violoncello = \notes \relative c { % urg, "" is assumed to be hairpin... %\property Voice.decrescendoSpanner = #"" \property Voice.decrescendoSpanner = #'dashed-line - \times 2/3 { c,4\> ( es c ~ } \times 2/3 { c as' )g }| + \times 2/3 { c,4\> ( es d ~ } \times 2/3 { d as' )g }| %300 r2 r4 c,(| diff --git a/mutopia/J.S.Bach/Petites-Preludes/header.ly b/mutopia/J.S.Bach/Petites-Preludes/header.ly index 21cf4ae115..6a0f0a3518 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/header.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/header.ly @@ -34,7 +34,7 @@ instrument = "Piano" \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset and placed in the public domain by " + \maintainer + ".\\\\Unrestricted modification and redistribution is permitted - and encouraged---copy this music and share it!}"; + and encouraged---copy this music and share it.}"; tagline = \mutopiapublicdomain; footer = "pre-Mutopia-200y/mm/dd-nr"; } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile b/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile index 7671f8003b..9a412fa114 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/GNUmakefile @@ -13,6 +13,3 @@ tarball=solo-cello-suite-ii mutopia-examples=scsii-cello scsii-viola mutopia-letter=$(mutopia-examples:%=out-letter/%.ps.gz) -mutopia: - $(MAKE) examples="$(mutopia-examples)" PAPERSIZE=letter local-WWW $(mutopia-letter) - diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly index fb551846db..537082799a 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/header.ly @@ -35,7 +35,7 @@ information is taken to the extreme. \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset and placed in the public domain by " + \maintainer + ".\\\\Unrestricted modification and redistribution is permitted - and encouraged---copy this music and share it!}"; + and encouraged---copy this music and share it.}"; tagline = \mutopiapublicdomain; footer = "Mutopia-2001/01/31-2"; } diff --git a/scm/chord-name.scm b/scm/chord-name.scm index 7597413ded..bcdf7aaa1f 100644 --- a/scm/chord-name.scm +++ b/scm/chord-name.scm @@ -9,10 +9,9 @@ (use-modules (ice-9 debug) - ;; urg, these two only to guess if a '/' is needed to separate - ;; user-chord-name and additions/subtractions (ice-9 format) (ice-9 regex) + (ice-9 string-fun) ) ;; diff --git a/scm/tex.scm b/scm/tex.scm index aad55f430c..44cf91f0fa 100644 --- a/scm/tex.scm +++ b/scm/tex.scm @@ -133,15 +133,17 @@ s)) (define (lily-def key val) - (string-append - "\\def\\" - (if use-regex - ;; fixed in 1.3.4 for powerpc -- broken on Windows - (regexp-substitute/global #f "_" - (output-tex-string key) 'pre "X" 'post) - (output-tex-string key)) - "{" (output-tex-string val) "}\n")) - + (let ((tex-key + (if use-regex + ;; fixed in 1.3.4 for powerpc -- broken on Windows + (regexp-substitute/global + #f "_" (output-tex-string key) 'pre "X" 'post) + (output-tex-string key))) + (tex-val (output-tex-string val))) + (if (equal? (sans-surrounding-whitespace tex-val) "") + (string-append "\\let\\" tex-key "\\undefined\n") + (string-append "\\def\\" tex-key "{" tex-val "}\n")))) + (define (number->dim x) (string-append ;;ugh ly-* in backend needs compatibility func for standalone output diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 0536b3c333..bf471d8122 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -8,6 +8,10 @@ % TeXbook ex 7.7 \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} % +% If we must make titles, do so, before we're Skipped. +\ifx\mustmakelilypondtitle\undefined\else\makelilypondtitle\fi +\ifx\mustmakelilypondpiecetitle\undefined\else\makelilypondpiecetitle\fi +% % skip if included already \def\SkipLilydefs{\endinput} \ifundefined{EndLilyPondOutput} @@ -73,10 +77,6 @@ nolilyfooter\texsuffix\endcsname \fi -% If we must make titles, do so -\ifx\mustmakelilypondtitle\undefined\else\makelilypondtitle\fi -\ifx\mustmakelilypondpiecetitle\undefined\else\makelilypondpiecetitle\fi - % fix chord.cc::banter_str before removing these \input fetdefs diff --git a/tex/titledefs.tex b/tex/titledefs.tex index 7e33f30190..92e3747de4 100644 --- a/tex/titledefs.tex +++ b/tex/titledefs.tex @@ -1,26 +1,33 @@ -% -% LilyPond titling for LaTeX -% +%% +%% LilyPond titling for LaTeX +%% +%% Note +%% +%% Defining a value, but leaving it empty: +%% \def\lilypondfoo{} +%% makes LaTeX break on the \\ in: +%% \ifx\lilypondfoo\undefined\else{\lilypondfoo\\}\fi +%% \def\makelilypondtitle { \begin{center} \bfseries - \ifx\lilypondtitle\undefined\else{\huge\lilypondtitle}\\ \fi - \ifx\lilypondsubtitle\undefined\else{\Large\lilypondsubtitle}\\ \fi - \ifx\lilypondsubsubtitle\undefined\else{\large\lilypondsubsubtitle}\\ \fi + \ifx\lilypondtitle\undefined\else{\huge\lilypondtitle\\}\fi + \ifx\lilypondsubtitle\undefined\else{\Large\lilypondsubtitle\\}\fi + \ifx\lilypondsubsubtitle\undefined\else{\large\lilypondsubsubtitle\\}\fi \end{center} \bigskip % urg \edef\saveparskip{\parskip}\parskip-5mm \begin{minipage}[t]{0.45\textwidth} - \ifx\lilypondpoet\undefined\else{\lilypondpoet}\\ \fi - \ifx\lilypondmeter\undefined\else{\lilypondmeter}\\ \fi + \ifx\lilypondpoet\undefined\else{\lilypondpoet\\}\fi + \ifx\lilypondmeter\undefined\else{\lilypondmeter\\}\fi \end{minipage}\hspace*{\fill} \begin{minipage}[t]{0.45\textwidth} \begin{flushright} - \ifx\lilypondcomposer\undefined\else{\large\normalfont\scshape\lilypondcomposer}\\ \fi - \ifx\lilypondopus\undefined\else{\lilypondopus}\\ \fi - \ifx\lilypondarranger\undefined\else{\lilypondarranger}\\ \fi + \ifx\lilypondcomposer\undefined\else{\large\normalfont\scshape\lilypondcomposer\\}\fi + \ifx\lilypondopus\undefined\else{\lilypondopus\\}\fi + \ifx\lilypondarranger\undefined\else{\lilypondarranger\\}\fi \end{flushright}% \end{minipage}\par \parskip\saveparskip @@ -29,6 +36,7 @@ % \leavevmode \global\let\lilypondopus\relax% \global\let\lilypondpiece\relax% + \global\let\mustmakelilypondtitle\undefined% } % \def\makelilypondpiecetitle @@ -39,6 +47,7 @@ \nopagebreak% \global\let\lilypondopus\relax% \global\let\lilypondpiece\relax% + \global\let\mustmakelilypondpiecetitle\undefined% } \endinput