From 74a1c93ce94fede85db7441df4b49b5a34a5e1d3 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 20:08:52 +0000 Subject: [PATCH] lilypond-0.1.51 --- Documentation/Makefile.am.wild | 4 + Makefile.am.wild | 2 - acconfig.h | 23 ++ bin/flower.py | 151 +++++++++++++ bin/lilypython.py | 394 +++++++++++++++++++++++++++++++++ config.hh.in | 22 ++ flower/Makefile.am.wild | 2 +- flower/acconfig.h | 21 ++ flower/config.hh.in | 27 ++- flower/configure.in | 54 +++-- init/norsk.ly | 183 +++++++++++++++ lib/Makefile.am.wild | 2 +- lily/GNUmakefile | 31 +++ ltconfig | 34 ++- ltmain.sh | 51 +++-- mf/feta-slag.mf | 19 +- mi2mu/GNUmakefile | 29 +++ mutopia/los-toros-oboe.ly | 78 +++++++ 18 files changed, 1054 insertions(+), 73 deletions(-) create mode 100644 acconfig.h create mode 100644 bin/flower.py create mode 100644 bin/lilypython.py create mode 100644 config.hh.in create mode 100644 flower/acconfig.h create mode 100644 init/norsk.ly create mode 100644 lily/GNUmakefile create mode 100644 mi2mu/GNUmakefile create mode 100644 mutopia/los-toros-oboe.ly diff --git a/Documentation/Makefile.am.wild b/Documentation/Makefile.am.wild index c7549e1c49..aa2476c53b 100644 --- a/Documentation/Makefile.am.wild +++ b/Documentation/Makefile.am.wild @@ -18,6 +18,9 @@ MAN1GROFF = $(addsuffix .1,$(MAN1FILES)) default: all $(TEXTFILES) +%.1: %.pod + $(POD2MAN) --section=1 $*.pod > $@ + outdir = . install-data-hook: $(MAN1GROFF) @@ -32,3 +35,4 @@ html: $(HTMLFILES) clean-hook: rm $(TEXTFILES) $(MAN1GROFF) +include $(top_srcdir)/Documentation/Rules.make diff --git a/Makefile.am.wild b/Makefile.am.wild index 3013ee87f6..885dcb8c12 100644 --- a/Makefile.am.wild +++ b/Makefile.am.wild @@ -23,5 +23,3 @@ PATCHES: rm -f PATCHES ln `$(FIND) ./ -name PATCHES.txt -print | head -1` $@ - - diff --git a/acconfig.h b/acconfig.h new file mode 100644 index 0000000000..2991969007 --- /dev/null +++ b/acconfig.h @@ -0,0 +1,23 @@ +/* @configure_input@ */ +#ifndef CONFIG_HH +#define CONFIG_HH + +/* autoheader really wants this */ +#define PACKAGE + +/* undef to get lots of debugging stuff (see .dstream) */ +#define NPRINT + +/* undef to do checking */ +#undef NDEBUG + +/* define to inline string funcs */ +#undef STRINGS_UTILS_INLINED + +/* default lilypond init and input dir */ +#define DIR_DATADIR "/home/fred/lelie/current" + +/* the toplevel version string */ +#define TOPLEVEL_VERSION "0" + +#endif diff --git a/bin/flower.py b/bin/flower.py new file mode 100644 index 0000000000..e88631d1a2 --- /dev/null +++ b/bin/flower.py @@ -0,0 +1,151 @@ +#!@PYTHON@ + +# +# flower.py -- python flower lib +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997 Han-Wen Nienhuys +# + +class File: + """silly wrapper for Python file object.""" + def __init__ (self,nm, mode='r'): + if nm: + self.file_ = open (nm, mode); + elif mode == 'w': + self.file_ = sys.stdout + else: + self.file_ = sys.stdin + + self.eof_ = 0; + def readline (self): + l= self.file_.readline (); + if not l: + self.eof_ = 1; + return l; + def write (self, str): + self.file_.write (str) + def eof (self): + return self.eof_ + def close (self): + self.file_.close () + def __del__ (self): + self.close (); + + + +import fnmatch +import os + +_debug = 0 + +_prune = ['(*)'] + + +def my_find(patterns, dir = os.curdir): + list = [] + names = os.listdir(dir) + names.sort() + for name in names: + if name in (os.curdir, os.pardir): + continue + fullname = os.path.join(dir, name) + for pat in patterns: + if fnmatch.fnmatch(name, pat): + list.append(fullname) + if os.path.isdir(fullname) and not os.path.islink(fullname): + for p in _prune: + if fnmatch.fnmatch(name, p): + if _debug: print "skip", `fullname` + break + else: + if _debug: print "descend into", `fullname` + found = my_find(patterns, fullname) + if found: + list = list + found + return list + +def multiple_find(pats, dirnames): + from find import find + l = [] + for d in dirnames: + l = l + my_find(pats, d) + return l +#!@PYTHON@ + +# +# flower.py -- python flower lib +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997 Han-Wen Nienhuys +# + +class File: + """silly wrapper for Python file object.""" + def __init__ (self,nm, mode='r'): + if nm: + self.file_ = open (nm, mode); + elif mode == 'w': + self.file_ = sys.stdout + else: + self.file_ = sys.stdin + + self.eof_ = 0; + def readline (self): + l= self.file_.readline (); + if not l: + self.eof_ = 1; + return l; + def write (self, str): + self.file_.write (str) + def eof (self): + return self.eof_ + def close (self): + self.file_.close () + def __del__ (self): + self.close (); + + + +import fnmatch +import os + +_debug = 0 + +_prune = ['(*)'] + + +def my_find(patterns, dir = os.curdir): + list = [] + try: + names = os.listdir(dir) + except os.error: + names = [] + names.sort() + for name in names: + if name in (os.curdir, os.pardir): + continue + fullname = os.path.join(dir, name) + for pat in patterns: + if fnmatch.fnmatch(name, pat): + list.append(fullname) + if os.path.isdir(fullname) and not os.path.islink(fullname): + for p in _prune: + if fnmatch.fnmatch(name, p): + if _debug: print "skip", `fullname` + break + else: + if _debug: print "descend into", `fullname` + found = my_find(patterns, fullname) + if found: + list = list + found + return list + +def multiple_find(pats, dirnames): + from find import find + l = [] + for d in dirnames: + l = l + my_find(pats, d) + return l diff --git a/bin/lilypython.py b/bin/lilypython.py new file mode 100644 index 0000000000..19b8c26db2 --- /dev/null +++ b/bin/lilypython.py @@ -0,0 +1,394 @@ +#!/usr/bin/python + +# +# lily-python.py -- implement general LilyPond-wide python stuff +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997 Han-Wen Nienhuys +# + +import posix +import pwd +import regex +import regsub +from string import * +from flower import * +import sys +import os +import getopt + + + + +version_re = regex.compile('\\version *\"\(.*\)\"') +# now used as shell script in configure too! +# make_assign_re = regex.compile('^\([A-Z_]*\) *= *\(.*\)$') +make_assign_re = regex.compile('^\([A-Z_]*\)=\(.*\)$') + +def version_tuple(file): + lines = file.readlines() + + mi = pa = mj = 0 + mp = '' + + for l in lines: + if make_assign_re.search(l) <> -1: + nm = make_assign_re.group(1) + val = make_assign_re.group(2) +# if nm == 'TOPLEVEL_MAJOR_VERSION': + if nm == 'MAJOR_VERSION': + mj = atoi(val) +# elif nm == 'TOPLEVEL_MINOR_VERSION': + elif nm == 'MINOR_VERSION': + mi = atoi(val) +# elif nm == 'TOPLEVEL_PATCH_LEVEL': + elif nm == 'PATCH_LEVEL': + pa = atoi(val) +# elif nm == 'TOPLEVEL_MY_PATCH_LEVEL': + elif nm == 'MY_PATCH_LEVEL': + mp = val + return (mj,mi,pa,mp) + +def next_version(tup): + return (tup[0], tup[1], tup[2] + 1, tup[3]); + +def prev_version(tup): + t = tup + if t[3]: + return (tup[0], tup[1], tup[2], ''); + elif t[2] == 0 : + return (tup[0], tup[1] -1, tup[2], ''); + else: + return (tup[0], tup[1], tup[2] - 1, ''); + + +def dirname(v): + return 'lilypond-' + version_tuple_to_str(v) + +def tarball(v): + return dirname(v) + '.tar.gz' + +def released_tarball(v): + return lilydirs.release_dir + tarball(v) + + +def tuple_to_list(tup): + l=[] + for x in tup: + l.append[x] + return l + +def version_str_to_tuple(str): + t = split(str, '.') + try: + mypatch = t[3] + except IndexError: + mypatch = '' + + return (atoi(t[0]), atoi(t[1]), atoi(t[2]), mypatch) + + + +def guess_mudela_version(filename): + f = open (filename) + lines = f.readlines() + f.close() + for l in lines: + if version_re.search(l) <> -1: + return version_re.group(1) + + return '' + +def version_tuple_to_str(tup): + mypatch ='' + if tup[3]: + mypatch = '.' + tup[3] + + return ('%d.%d.%d' % tup[0:3]) + mypatch + +class Lilydirs: + def __init__(self): + try: + self.topdir = os.environ['LILYPOND_SOURCEDIR'] + '/' + + except KeyError: + print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/' + sys.exit(1) + + try: + self.groupdir = os.environ['LILYPOND_GROUPDIR'] + '/' + except KeyError: + self.groupdir = self.topdir + '../' + + self.release_dir = self.groupdir + '/releases/' + self.patch_dir = self.groupdir + '/patches/' + + def version_tuple(self): + f = open (self.topdir + 'VERSION') + v = version_tuple(f) + f.close () + return v + + + +lilydirs = Lilydirs() + +if __name__ == '__main__': + v= lilydirs.version_tuple() + print v, prev_version(v), next_version(v) + mv = guess_mudela_version(lilydirs.topdir + 'init/symbol.ly') + pv=(0,1,1,'jcn4') + print version_tuple_to_str(pv), prev_version(pv), next_version(pv) + print version_tuple_to_str((0,1,1,'')) + print mv, version_str_to_tuple(mv) + + + +def dump_file(f, s): + i = open(f, 'w') + i.write(s) + i.close () + +def gulp_file(f): + i = open(f) + i.seek (0, 2) + len = i.tell () + i.seek (0,0) + return i.read (len) + + +header_regex = regex.compile('\\header[ \t\n]*{\([^}]*\)}') +header_entry_regex = regex.compile('[\n\t ]*\([^\n\t ]+\)[\n\t ]*=[\n \t]*\([^;]+\)[\n \t]*;') + +# +# FIXME breaks on multiple strings. +# +def read_mudela_header (fn): + s = gulp_file(fn) + s = regsub.gsub('%.*$', '', s) + s = regsub.gsub('\n', ' ', s) + + dict = {} + if header_regex.search(s) <> -1: + h = header_regex.group(1) + else: + return dict + + while regex.search('=', h) <> -1: + + if header_entry_regex.search (h) == -1: + + raise 'format error' + + h = regsub.sub(header_entry_regex, '', h) + left = header_entry_regex.group(1) + right = header_entry_regex.group(2) + + right = regsub.gsub('\([^\\]\)\"', '\\1', right) + right = regsub.gsub('^"', '', right) + left = regsub.gsub('\([^\\]\)\"', '', left) + left = regsub.gsub('^"', '', left) + + dict[left] = right + + return dict + + +#!/usr/bin/python + +# +# lily-python.py -- implement general LilyPond-wide python stuff +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997 Han-Wen Nienhuys +# + +import posix +import pwd +import regex +import regsub +from string import * +from flower import * +import sys +import os +import getopt + + + + +version_re = regex.compile('\\version *\"\(.*\)\"') +# now used as shell script in configure too! +# make_assign_re = regex.compile('^\([A-Z_]*\) *= *\(.*\)$') +make_assign_re = regex.compile('^\([A-Z_]*\)=\(.*\)$') + +def version_tuple(file): + lines = file.readlines() + + mi = pa = mj = 0 + mp = '' + + for l in lines: + if make_assign_re.search(l) <> -1: + nm = make_assign_re.group(1) + val = make_assign_re.group(2) +# if nm == 'TOPLEVEL_MAJOR_VERSION': + if nm == 'MAJOR_VERSION': + mj = atoi(val) +# elif nm == 'TOPLEVEL_MINOR_VERSION': + elif nm == 'MINOR_VERSION': + mi = atoi(val) +# elif nm == 'TOPLEVEL_PATCH_LEVEL': + elif nm == 'PATCH_LEVEL': + pa = atoi(val) +# elif nm == 'TOPLEVEL_MY_PATCH_LEVEL': + elif nm == 'MY_PATCH_LEVEL': + mp = val + return (mj,mi,pa,mp) + +def next_version(tup): + return (tup[0], tup[1], tup[2] + 1, tup[3]); + +def prev_version(tup): + t = tup + if t[3]: + return (tup[0], tup[1], tup[2], ''); + elif t[2] == 0 : + return (tup[0], tup[1] -1, tup[2], ''); + else: + return (tup[0], tup[1], tup[2] - 1, ''); + + +def dirname(v): + return 'lilypond-' + version_tuple_to_str(v) + +def tarball(v): + return dirname(v) + '.tar.gz' + +def released_tarball(v): + return lilydirs.release_dir + tarball(v) + + +def tuple_to_list(tup): + l=[] + for x in tup: + l.append[x] + return l + +def version_str_to_tuple(str): + t = split(str, '.') + try: + mypatch = t[3] + except IndexError: + mypatch = '' + + return (atoi(t[0]), atoi(t[1]), atoi(t[2]), mypatch) + + + +def guess_mudela_version(filename): + f = open (filename) + lines = f.readlines() + f.close() + for l in lines: + if version_re.search(l) <> -1: + return version_re.group(1) + + return '' + +def version_tuple_to_str(tup): + mypatch ='' + if tup[3]: + mypatch = '.' + tup[3] + + return ('%d.%d.%d' % tup[0:3]) + mypatch + +class Lilydirs: + def __init__(self): + try: + self.topdir = os.environ['LILYPOND_SOURCEDIR'] + '/' + + except KeyError: + print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/' + sys.exit(1) + + try: + self.groupdir = os.environ['LILYPOND_GROUPDIR'] + '/' + except KeyError: + self.groupdir = self.topdir + '../' + + self.release_dir = self.groupdir + '/releases/' + self.patch_dir = self.groupdir + '/patches/' + + def version_tuple(self): + f = open (self.topdir + 'VERSION') + v = version_tuple(f) + f.close () + return v + + + +lilydirs = Lilydirs() + +if __name__ == '__main__': + v= lilydirs.version_tuple() + print v, prev_version(v), next_version(v) + mv = guess_mudela_version(lilydirs.topdir + 'init/symbol.ly') + pv=(0,1,1,'jcn4') + print version_tuple_to_str(pv), prev_version(pv), next_version(pv) + print version_tuple_to_str((0,1,1,'')) + print mv, version_str_to_tuple(mv) + + + +def dump_file(f, s): + i = open(f, 'w') + i.write(s) + i.close () + +def gulp_file(f): + i = open(f) + i.seek (0, 2) + len = i.tell () + i.seek (0,0) + return i.read (len) + + +header_regex = regex.compile('\\header[ \t\n]*{\([^}]*\)}') +header_entry_regex = regex.compile('[\n\t ]*\([^\n\t ]+\)[\n\t ]*=[\n \t]*\([^;]+\)[\n \t]*;') + +# +# FIXME breaks on multiple strings. +# +def read_mudela_header (fn): + s = gulp_file(fn) + s = regsub.gsub('%.*$', '', s) + s = regsub.gsub('\n', ' ', s) + + dict = {} + if header_regex.search(s) <> -1: + h = header_regex.group(1) + else: + return dict + + while regex.search('=', h) <> -1: + + if header_entry_regex.search (h) == -1: + + raise 'format error' + + h = regsub.sub(header_entry_regex, '', h) + left = header_entry_regex.group(1) + right = header_entry_regex.group(2) + + right = regsub.gsub('\([^\\]\)\"', '\\1', right) + right = regsub.gsub('^"', '', right) + left = regsub.gsub('\([^\\]\)\"', '', left) + left = regsub.gsub('^"', '', left) + + dict[left] = right + + return dict + + diff --git a/config.hh.in b/config.hh.in new file mode 100644 index 0000000000..ba57f5ead2 --- /dev/null +++ b/config.hh.in @@ -0,0 +1,22 @@ +/* config.hh.in. Generated automatically from configure.in by autoheader. */ + +/* Define if lex declares yytext as a char * by default, not a char[]. */ +#undef YYTEXT_POINTER + +/* autoheader really wants this */ +#define PACKAGE + +/* undef to get lots of debugging stuff (see .dstream) */ +#define NPRINT + +/* undef to do checking */ +#undef NDEBUG + +/* define to inline string funcs */ +#undef STRINGS_UTILS_INLINED + +/* default lilypond init and input dir */ +#define DIR_DATADIR "/home/fred/lelie/current" + +/* the toplevel version string */ +#define TOPLEVEL_VERSION "0" diff --git a/flower/Makefile.am.wild b/flower/Makefile.am.wild index 8a4af49009..87639fc1d0 100644 --- a/flower/Makefile.am.wild +++ b/flower/Makefile.am.wild @@ -12,7 +12,7 @@ SUBDIRS = include test lib_LTLIBRARIES = libflower.la README_FILES = ONEWS NEWS README TODO VERSION -EXTRA_DIST = Makefile.am.wild aclocal.m4 configure config.hh.in configure.in $(README_FILES) +EXTRA_DIST = Makefile.am.wild aclocal.m4 configure configure.in $(README_FILES) libflower_la_SOURCES = $(wildcard *.cc) diff --git a/flower/acconfig.h b/flower/acconfig.h new file mode 100644 index 0000000000..444f2a1e56 --- /dev/null +++ b/flower/acconfig.h @@ -0,0 +1,21 @@ +/* autoheader really wants this */ +#define PACKAGE + +/* define if you have memmem */ +#define HAVE_MEMMEM 0 + +/* define if you have snprintf */ +#define HAVE_SNPRINTF 0 + +/* the version string of the flower lib */ +#define MODULE_VERSION "0.0.0" + +/* undef to get lots of debugging stuff (see .dstream) */ +#define NPRINT + +/* undef to do checking */ +#undef NDEBUG + +/* define to inline string funcs */ +#undef STRINGS_UTILS_INLINED + diff --git a/flower/config.hh.in b/flower/config.hh.in index 80c688b06b..ddd891dcad 100644 --- a/flower/config.hh.in +++ b/flower/config.hh.in @@ -1,9 +1,28 @@ -/* define if you have memmem */ -#define HAVE_MEMMEM 0 +/* config.hh.in. Generated automatically from configure.in by autoheader. */ -/* define if you have snprintf */ -#define HAVE_SNPRINTF 0 +/* Define if you don't have vprintf but do have _doprnt. */ +#undef HAVE_DOPRNT + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF + +/* autoheader really wants this */ +#define PACKAGE /* the version string of the flower lib */ #define MODULE_VERSION "0.0.0" +/* undef to get lots of debugging stuff (see .dstream) */ +#define NPRINT + +/* undef to do checking */ +#undef NDEBUG + +/* define to inline string funcs */ +#undef STRINGS_UTILS_INLINED + +/* Define if you have the memmem function. */ +#undef HAVE_MEMMEM + +/* Define if you have the snprintf function. */ +#undef HAVE_SNPRINTF diff --git a/flower/configure.in b/flower/configure.in index 6680ebd9f0..25bb9392bc 100644 --- a/flower/configure.in +++ b/flower/configure.in @@ -13,32 +13,56 @@ AM_INIT_AUTOMAKE(flower, $FULL_VERSION) AC_PROG_CC AC_PROG_CXX + # turn off shared libraries by default (may be enabled using --enable-shared) AM_DISABLE_SHARED AM_PROG_LIBTOOL +printing_b=no +checking_b=yes +optimise_b=no +profile_b=no + +AC_ARG_ENABLE(printing, + [ enable-printing turn on debug printing. Default: off], + [printing_b=$enableval]) + +AC_ARG_ENABLE(checking, + [ enable-checking set runtime checks (assert calls). Default: on], + [checking_b=$enableval] ) + +AC_ARG_ENABLE(optimise, + [ enable-optimise use maximal speed optimisations. Default: off], + [optimise_b=$enableval]) + +AC_ARG_ENABLE(profiling, + [ enable-profiling compile with gprof support. Default: off], + [profile_b=$enableval]) + +if test $printing_b = no; then + AC_DEFINE(NPRINT) +fi + +if test $checking_b = no; then + AC_DEFINE(NDEBUG) +fi -missing_dir=`cd $ac_aux_dir && pwd` - -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -# AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_PATH_PROG(PERL, perl, error) +if test $optimise_b = yes; then +# DEFINES="$DEFINES -finline-functions -O2 -DSTRING_UTILS_INLINED" + AC_DEFINE(STRINGS_UTILS_INLINED) +fi +# oeps, broken for now +if test $profile_b = yes; then + EXTRA_LIBES="-pg" + DEFINES="$DEFINES -pg" +fi AC_LANG_CPLUSPLUS -# optimise_b=yes -# shared_b=no LIB_SUFFIX=.a MODULE_CXXFLAGS="$MODULE_CXXFLAGS -D_REENTRANT" -if test $optimise_b = yes; then - MODULE_CXXFLAGS="$MODULE_CXXFLAGS -O2 -DSTRING_UTILS_INLINED" -fi - AC_SUBST(MODULE_CXXFLAGS) AC_SUBST(MODULE_LDFLAGS) AC_SUBST(LIB_SUFFIX) @@ -56,7 +80,7 @@ AC_SUBST(LIB_SUFFIX) REVISION=$PATCH_LEVEL # CURRENT=$MINOR_VERSION -CURRENT=$(expr $MINOR_VERSION + 1) +CURRENT=`expr $MINOR_VERSION + 1` # AGE=$(expr $MAJOR_VERSION + 1) AGE=$MAJOR_VERSION AC_SUBST(CURRENT) diff --git a/init/norsk.ly b/init/norsk.ly new file mode 100644 index 0000000000..8c1da6f5e4 --- /dev/null +++ b/init/norsk.ly @@ -0,0 +1,183 @@ + +% $Id: norsk.ly,v 1.3 1998/03/26 11:07:44 fred Exp $ + +%{ + + Common norwegian names for notes, including versions without the + double s-es to save typing, as well as the traditional names with + them not to confuse musicians. "es" or "ess" means flat, "is" or + "iss" means sharp. + + Otherwise, the main difference from the dutch names is the that the + "b" is called "h" in norwegian, while the dutch "bes" is a norwegian + "b". + + Staying within the (proud?) naming convention for norwegian language + setup used in LaTeX, this file is called "norsk.ly" instead of + "norwegian.ly", even if all other languages' files use the english + name. + + This file is based on "dutch.ly". Basically, I copied "dutch.ly", + duplicated all lines containing at least one "is" or "es", changed + every other "is" into an "iss" and every other "es" into an "ess", + added "ass" et al, and made some b->h-related changes. There may be + bugs in here; please tell me (or send patches) if you find any. + + Arvid Gr=F8tting + +%} + +\notenames { + ceses = \melodic_request { -1 0 -2 } + cessess = \melodic_request { -1 0 -2 } + ces = \melodic_request { -1 0 -1 } + cess = \melodic_request { -1 0 -1 } + c = \melodic_request { -1 0 0 } + cis = \melodic_request { -1 0 1 } + ciss = \melodic_request { -1 0 1 } + cisis = \melodic_request { -1 0 2 } + cississ = \melodic_request { -1 0 2 } + deses = \melodic_request { -1 1 -2 } + dessess = \melodic_request { -1 1 -2 } + des = \melodic_request { -1 1 -1 } + dess = \melodic_request { -1 1 -1 } + d = \melodic_request { -1 1 0 } + dis = \melodic_request { -1 1 1 } + diss = \melodic_request { -1 1 1 } + disis = \melodic_request { -1 1 2 } + dississ = \melodic_request { -1 1 2 } + eeses = \melodic_request { -1 2 -2 } + eessess = \melodic_request { -1 2 -2 } + eses = \melodic_request { -1 2 -2 } + essess = \melodic_request { -1 2 -2 } + ees = \melodic_request { -1 2 -1 } + eess = \melodic_request { -1 2 -1 } + es = \melodic_request { -1 2 -1 } + ess = \melodic_request { -1 2 -1 } + e = \melodic_request { -1 2 0 } + eis = \melodic_request { -1 2 1 } + eiss = \melodic_request { -1 2 1 } + eisis = \melodic_request { -1 2 2 } + eississ = \melodic_request { -1 2 2 } + feses = \melodic_request { -1 3 -2 } + fessess = \melodic_request { -1 3 -2 } + fes = \melodic_request { -1 3 -1 } + fess = \melodic_request { -1 3 -1 } + f = \melodic_request { -1 3 0 } + fis = \melodic_request { -1 3 1 } + fiss = \melodic_request { -1 3 1 } + fisis = \melodic_request { -1 3 2 } + fississ = \melodic_request { -1 3 2 } + geses = \melodic_request { -1 4 -2 } + gessess = \melodic_request { -1 4 -2 } + ges = \melodic_request { -1 4 -1 } + gess = \melodic_request { -1 4 -1 } + g = \melodic_request { -1 4 0 } + g = \melodic_request { -1 4 0 } + gis = \melodic_request { -1 4 1 } + giss = \melodic_request { -1 4 1 } + gisis = \melodic_request { -1 4 2 } + gississ = \melodic_request { -1 4 2 } + aeses = \melodic_request { -1 5 -2 } + aessess = \melodic_request { -1 5 -2 } + ases = \melodic_request { -1 5 -2 } + assess = \melodic_request { -1 5 -2 } + aes = \melodic_request { -1 5 -1 } + aess = \melodic_request { -1 5 -1 } + as = \melodic_request { -1 5 -1 } + ass = \melodic_request { -1 5 -1 } + a = \melodic_request { -1 5 0 } + ais = \melodic_request { -1 5 1 } + aiss = \melodic_request { -1 5 1 } + aisis = \melodic_request { -1 5 2 } + aississ = \melodic_request { -1 5 2 } + bes = \melodic_request { -1 6 -2 } + bess = \melodic_request { -1 6 -2 } + b = \melodic_request { -1 6 -1 } + b = \melodic_request { -1 6 -1 } + h = \melodic_request { -1 6 0 } + his = \melodic_request { -1 6 1 } + hiss = \melodic_request { -1 6 1 } + hisis = \melodic_request { -1 6 2 } + hississ = \melodic_request { -1 6 2 } + + + % + % upper case: 1 octave lower, as usual. + % + + + Ceses = \melodic_request { -2 0 -2 } + Cessess = \melodic_request { -2 0 -2 } + Ces = \melodic_request { -2 0 -1 } + Cess = \melodic_request { -2 0 -1 } + C = \melodic_request { -2 0 0 } + Cis = \melodic_request { -2 0 1 } + Ciss = \melodic_request { -2 0 1 } + Cisis = \melodic_request { -2 0 2 } + Cississ = \melodic_request { -2 0 2 } + Deses = \melodic_request { -2 1 -2 } + Dessess = \melodic_request { -2 1 -2 } + Des = \melodic_request { -2 1 -1 } + Dess = \melodic_request { -2 1 -1 } + D = \melodic_request { -2 1 0 } + D = \melodic_request { -2 1 0 } + Dis = \melodic_request { -2 1 1 } + Diss = \melodic_request { -2 1 1 } + Disis = \melodic_request { -2 1 2 } + Dississ = \melodic_request { -2 1 2 } + Eses = \melodic_request { -2 2 -2 } + Essess = \melodic_request { -2 2 -2 } + Es = \melodic_request { -2 2 -1 } + Ess = \melodic_request { -2 2 -1 } + E = \melodic_request { -2 2 0 } + E = \melodic_request { -2 2 0 } + Eis = \melodic_request { -2 2 1 } + Eiss = \melodic_request { -2 2 1 } + Eisis = \melodic_request { -2 2 2 } + Eississ = \melodic_request { -2 2 2 } + Feses = \melodic_request { -2 3 -2 } + Fessess = \melodic_request { -2 3 -2 } + Fes = \melodic_request { -2 3 -1 } + Fess = \melodic_request { -2 3 -1 } + F = \melodic_request { -2 3 0 } + Fis = \melodic_request { -2 3 1 } + Fiss = \melodic_request { -2 3 1 } + Fisis = \melodic_request { -2 3 2 } + Fississ = \melodic_request { -2 3 2 } + Geses = \melodic_request { -2 4 -2 } + Gessess = \melodic_request { -2 4 -2 } + Ges = \melodic_request { -2 4 -1 } + Gess = \melodic_request { -2 4 -1 } + G = \melodic_request { -2 4 0 } + Gis = \melodic_request { -2 4 1 } + Giss = \melodic_request { -2 4 1 } + Gisis = \melodic_request { -2 4 2 } + Gississ = \melodic_request { -2 4 2 } + Aeses = \melodic_request { -2 5 -2 } + Aessess = \melodic_request { -2 5 -2 } + Ases = \melodic_request { -2 5 -2 } + Assess = \melodic_request { -2 5 -2 } + Aes = \melodic_request { -2 5 -1 } + Aess = \melodic_request { -2 5 -1 } + As = \melodic_request { -2 5 -1 } + Ass = \melodic_request { -2 5 -1 } + A = \melodic_request { -2 5 0 } + A = \melodic_request { -2 5 0 } + Ais = \melodic_request { -2 5 1 } + Aiss = \melodic_request { -2 5 1 } + Aisis = \melodic_request { -2 5 2 } + Aississ = \melodic_request { -2 5 2 } + Bes = \melodic_request { -2 6 -2 } + Bess = \melodic_request { -2 6 -2 } + B = \melodic_request { -2 6 -1 } + H = \melodic_request { -2 6 0 } + His = \melodic_request { -2 6 1 } + Hiss = \melodic_request { -2 6 1 } + Hisis = \melodic_request { -2 6 2 } + Hississ = \melodic_request { -2 6 2 } + +} + + + diff --git a/lib/Makefile.am.wild b/lib/Makefile.am.wild index 90e461ccb1..1bd40b765f 100644 --- a/lib/Makefile.am.wild +++ b/lib/Makefile.am.wild @@ -16,5 +16,5 @@ liblily_la_SOURCES = $(wildcard *.cc) INCLUDES = -Iinclude -I../flower/include MODULE_CXXFLAGS += -D_REENTRANT -EXTRA_DIST = Makefile.am.wild config.hh.in +EXTRA_DIST = Makefile.am.wild diff --git a/lily/GNUmakefile b/lily/GNUmakefile new file mode 100644 index 0000000000..0fe59e0fe1 --- /dev/null +++ b/lily/GNUmakefile @@ -0,0 +1,31 @@ +# lilypond/GNUmakefile +# +# This file helps maintainers to keep their Makefile.am automatically +# up to date using GNU make features. +# If you don't have (or run) GNU make, Makefile.am will not be updated +# automatically when source files are added/removed. + +# automake/wild-make should generate this file from Makefile.am.wild + +include Makefile + +# Makefile.am.wild: lilypond_SOURCES = $(wildcard *.cc) +CURRENT_lilypond_SOURCES = $(wildcard *.cc) + +# ugh: there is a dummy file 'wild-check' to satisfy the wild-check target +# for non-GNU makes in Makefile(.test) +# but we'll ignore that +# .PHONY: wild-check + +# ugh: stupid lexer.cc/parser.cc cluttering sourcedir! +# but it works fine in other dirs (see ../mi2mu) +# wild-check: check-lilypond-sources + +check-lilypond-sources: +ifneq ($(lilypond_SOURCES),$(CURRENT_mi2mu_SOURCES)) + @echo \"$(lilypond_SOURCES)\" + @echo \"$(CURRENT_lilypond_SOURCES)\" + @echo lilypond_SOURCES changed: NOT yet rerunning make-wild. Please type: + @echo "$(PERL) $(top_srcdir)/bin/wild-perl < Makefile.am.wild > Makefile.am" +endif + diff --git a/ltconfig b/ltconfig index 3c1b8d42ff..2347e69439 100644 --- a/ltconfig +++ b/ltconfig @@ -66,7 +66,7 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.1.1 +VERSION=1.2 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -466,15 +466,7 @@ if test "$with_gcc" = yes; then pic_flag='-m68020 -resident32 -malways-restore-a4' ;; *) - case $host_cpu in - m68*) - # This generates more efficient code. - pic_flag=-fpic - ;; - *) - pic_flag='-fPIC' - ;; - esac + pic_flag='-fPIC' ;; esac else @@ -552,8 +544,8 @@ if test -n "$pic_flag"; then echo > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:555: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:547: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # Append any warnings to the config.log. cat conftest.err 1>&5 @@ -596,8 +588,8 @@ $rm conftest* echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:599: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +echo "$progname:591: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 @@ -629,7 +621,7 @@ if test -z "$LD"; then if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:632: checking for ld used by GCC" >&5 + echo "$progname:624: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -647,10 +639,10 @@ if test -z "$LD"; then esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:650: checking for GNU ld" >&5 + echo "$progname:642: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:653: checking for non-GNU ld" >&5 + echo "$progname:645: checking for non-GNU ld" >&5 fi if test -z "$LD"; then @@ -976,11 +968,11 @@ void nm_test_func(){} main(){nm_test_var='a';nm_test_func();return(0);} EOF -echo "$progname:979: checking if global_symbol_pipe works" >&5 -if { (eval echo $progname:980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then +echo "$progname:971: checking if global_symbol_pipe works" >&5 +if { (eval echo $progname:972: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:983: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:975: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -1038,7 +1030,7 @@ EOF save_CFLAGS="$CFLAGS" LIBS='conftestm.o' CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 diff --git a/ltmain.sh b/ltmain.sh index 707d87c0d6..e9350b3fab 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -30,7 +30,7 @@ modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.1.1 +VERSION=1.2 default_mode= help="Try \`$progname --help' for more information." @@ -1254,8 +1254,8 @@ if test -z "$show_help"; then case "$dlsyms" in "") ;; *.c) - $echo > "$objdir/$dlsyms" \ -"/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ + $echo > "$objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$output' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ #ifdef __cplusplus @@ -1266,7 +1266,8 @@ extern \"C\" { #define dld_preloaded_symbol_count some_other_symbol #define dld_preloaded_symbols some_other_symbol -/* External symbol declarations for the compiler. */" +/* External symbol declarations for the compiler. */\ +" if test -f "$nlist"; then sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" @@ -1274,8 +1275,8 @@ extern \"C\" { echo '/* NONE */' >> "$objdir/$dlsyms" fi - $echo >> "$objdir/$dlsyms" \ -" + $echo >> "$objdir/$dlsyms" "\ + #undef dld_preloaded_symbol_count #undef dld_preloaded_symbols @@ -1294,19 +1295,21 @@ struct { __ptr_t address; } dld_preloaded_symbols[] = -{" +{\ +" if test -f "$nlist"; then sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" fi - $echo >> "$objdir/$dlsyms" \ -" {0, (__ptr_t) 0} + $echo >> "$objdir/$dlsyms" "\ + {0, (__ptr_t) 0} }; #ifdef __cplusplus } -#endif" +#endif\ +" ;; *) @@ -1426,8 +1429,8 @@ dld_preloaded_symbols[] = $rm $output trap "$rm $output; exit 1" 1 2 15 - $echo > $output \ -"#! /bin/sh + $echo > $output "\ +#! /bin/sh # $output - temporary wrapper script for $objdir/$output # Generated by ltmain.sh - GNU $PACKAGE $VERSION @@ -1458,7 +1461,9 @@ else else echo=\"$qecho\" file=\"\$0\" - fi + fi\ +" + $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` @@ -1492,8 +1497,8 @@ else # Export our shlibpath_var if we have one. if test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output \ -" # Add our own library path to $shlibpath_var + $echo >> $output "\ + # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var @@ -1503,8 +1508,8 @@ else " fi - echo >> $output \ -" if test \"\$libtool_execute_magic\" != \"$magic\"; then + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. # Export the path to the program. @@ -1513,7 +1518,7 @@ else exec \$program \${1+\"\$@\"} - \$echo \"\$0: cannot exec \$program \$@\" + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else @@ -1523,7 +1528,8 @@ else echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi -fi" +fi\ +" chmod +x $output fi exit 0 @@ -1560,8 +1566,8 @@ fi" # Only create the output if not a dry run. if test -z "$run"; then - echo > $output \ -"# $output - a libtool library file + $echo > $output "\ +# $output - a libtool library file # Generated by ltmain.sh - GNU $PACKAGE $VERSION # The name that we can dlopen(3). @@ -1582,7 +1588,8 @@ age=$age revision=$revision # Directory that this library needs to be installed in: -libdir='$install_libdir'" +libdir='$install_libdir'\ +" fi # Do a symbolic link so that the libtool archive can be found in diff --git a/mf/feta-slag.mf b/mf/feta-slag.mf index 7f0dae4fbe..7d9ea0b295 100644 --- a/mf/feta-slag.mf +++ b/mf/feta-slag.mf @@ -9,11 +9,16 @@ % this file is included by feta-scripts.mf -tfat := 0.3; +% tfat := 0.3; +tfat := 1/3; twidth# := 0.5interline#; theight# := 0.55interline#; -tthin# := stafflinethickness#; -toverlap# := tfat*twidth#+tthin#; +% tthin# := stafflinethickness#; +tthin# := 1.6stafflinethickness#; + +% uhg/ uhuh? +% toverlap# := tfat*twidth#+tthin#; +toverlap# := tfat*twidth#+0.45tthin#; define_pixels(twidth,theight,tthin,toverlap); def draw_trillelement = @@ -100,14 +105,14 @@ fet_beginchar("prallprall", "prallprall", "prallprall") trills := 3; set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#); draw_trill_three; - draw_mordent(twidth); + draw_mordent(twidth-0.5toverlap); fet_endchar; fet_beginchar("prallmordent", "prallmordent", "prallmordent") trills := 3; set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#); draw_trill_three; - draw_mordent(twidth-toverlap); + draw_mordent(twidth-0.5toverlap); fet_endchar; input feta-sleur; @@ -117,7 +122,7 @@ fet_beginchar("upprall", "upprall", "upprall") trills := 3; set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#); draw_slur(-2twidth#,-2theight#,-1); - currentpicture := currentpicture shifted (-0.5w+1.5tthin,-tfat*theight); + currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.5tthin); % draw_trill_four; draw_trill_three; fet_endchar; @@ -126,7 +131,7 @@ fet_beginchar("downprall", "downprall", "downprall") trills := 3; set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#); draw_slur(-2twidth#,2theight#,1); - currentpicture := currentpicture shifted (-0.5w+1.5tthin,-tfat*theight); + currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.5tthin); draw_trill_three; fet_endchar; diff --git a/mi2mu/GNUmakefile b/mi2mu/GNUmakefile new file mode 100644 index 0000000000..de251bbe42 --- /dev/null +++ b/mi2mu/GNUmakefile @@ -0,0 +1,29 @@ +# mi2mu/GNUmakefile +# +# This file helps maintainers to keep their Makefile.am automatically +# up to date using GNU make features. +# If you don't have (or run) GNU make, Makefile.am will not be updated +# automatically when source files are added/removed. + +# automake/wild-make should generate this file from Makefile.am.wild + +include Makefile + +# Makefile.am.wild: mi2mu_SOURCES = $(wildcard *.cc) +CURRENT_mi2mu_SOURCES = $(wildcard *.cc) + +# ugh: there is a dummy file 'wild-check' to satisfy the wild-check target +# for non-GNU makes in Makefile(.test) +# but we'll ignore that +# .PHONY: wild-check + +wild-check: check-mi2mu-sources + +check-mi2mu-sources: +ifneq ($(mi2mu_SOURCES),$(CURRENT_mi2mu_SOURCES)) + @echo \"$(mi2mu_SOURCES)\" + @echo \"$(CURRENT_mi2mu_SOURCES)\" + @echo mi2mu_SOURCES changed: NOT yet rerunning make-wild. Please type: + @echo "$(PERL) $(top_srcdir)/bin/wild-perl < Makefile.am.wild > Makefile.am" +endif + diff --git a/mutopia/los-toros-oboe.ly b/mutopia/los-toros-oboe.ly new file mode 100644 index 0000000000..04c6d9b80d --- /dev/null +++ b/mutopia/los-toros-oboe.ly @@ -0,0 +1,78 @@ +\header{ +filename = "los-toros-oboe.ly"; +title = "Los Toros"; +opus = ""; +composer = "Paul Lac\^ome d'Estalenx (1838-1920)"; +enteredby = "jcn"; +copyright = "public domain"; +} + + +hobo1 = \melodic{ + \octave c'; + [es'16-. es'-. es'-. es'-.] [es'8-. d'-.] | + [f'8.-> es'16(] [)d'8 c'-.] | + [bes16( c' d' es'] [)d'8 c'-.] | + [bes-. as->~] [as16( g f g] | + [as bes c' d'] [)es'8 c'-.] | + [d'8-. c'16( bes] )a4 ~ | + [as16 g f g] [as c' bes as] | +% [)g8 as16(] [)f8 g16( f] | + [)g8. as16(] [)f8 g16( f] | + [)es8 f16-. g-.] [as-. bes-. c'-. d'-.] | + [es'-. es'-. es'-. es'-.] [es'8-. d'-.] | + [f'8.-> es'16(] [)d'8 c'-.] | + [bes16( c' d' es'] [)d'8 c'-.] | + [bes8 a->~] [a16 g( fis g] | + [a bes c' d'] [)es'8 d'16()c'] | + [bes-. g-. bes-. d'-.] g'4-> ~ | + [g'16 f'( es' d'] [c' es' d' c'] | + [)bes8 c'16( bes] [)a8 bes16( a] | + [)g8 r d'] r | + [g16-. g-. g-. g-.] [g8-. f-.] | + as2-> | + [as16-. as-. as-. as-.] [as8-. g-.] | + bes2-> | + [bes16-. bes-. bes-. bes-.] [bes8-. c'] | + r-"cresc." [d'8-. r c'-.] | + r\f [d'-. es'-. f'-.] | + [g'8.-> es'16] [bes8 g] | + [g16-.\p g-. g-. g-.] [g8-. f-.] | + as2-> | + [as16-. as-. as-. as-.] [as8-. g-.] | + bes2-> | + [b16-. b-. b-. b-.] [b8-. c'-.] | + [b16-. b-. b-. b-.] [b8-. c'-.] | + [b8-.-"cresc." c'-. b-. c'-.] | + [d'-. es'-. d'-. es'-.] | + [f'\f-. g'-. f'-. g'-.] | + [as'-.\< g'-. as'-. bes'-.] | + [\!g'16\ff-. g'-. g'-. g'-.] [g'8-. g'-.] | + [g'8.-> g'16] [g'8 g'] | + [g'8.-> g'16] [g'8 g'] | + [f'8.-> f'16] [f'8 f'] | + [f'8.-> f'16] [f'8 f'] | + [bes'8-. as'16( g'] )f'4 ~ | + [f'16 es'( d' es'] [f' as' g' )f'] | + [es'( g' f' es'] [d' g' es' d'] | + [c' es' d' c'] [b d' c' b] | + [a c' bes a] [g bes a g] | + [fis a g fis] [e g fis )e] | + % a 2 +} + +global = \melodic{ + \key bes es as; + \meter 2/4; +} + +$staff_hobo1 = \type Staff = hobo1 < + \global + \hobo1 +> + +\score{ + \$staff_hobo1 + \paper{} + \midi{} +} -- 2.39.5