+pl 20:
+ - Rational for time measurement
+ - updated doco to .pod
+ - directionalspanner/textspanner
+ - include files
+
pl 19:
- struct Moment
- grouping code: LilyPond can set advanced multibeams.
#PROFILEFLAG=-pg
OPTIFLAG=-DNDEBUG -DNPRINT -O2
DEBUGFLAG=-g
+
# turn off -pipe if linker doesn't support it
EXTRACXXFLAGS=-pipe -Wall -W -Wmissing-prototypes
-# -Woverloaded-virtual
#
# -lefence = ElectricFence.
#
-# ElectricFence is memory debugger which uses the
+# ElectricFence is a memory debugger which uses the
# VM hardware to trap malloc/free errors.
#
#EXTRALIB+=-lefence
# version info
MAJVER=0
MINVER=0
-PATCHLEVEL=19
+PATCHLEVEL=20
VERSION=$(MAJVER).$(MINVER).$(PATCHLEVEL)
CXXVER=`$(CXX) --version`
OBJECTDIR=objects
HEADERDIR=hdr
CCDIR=src
-
+INITDIR=init
vpath %.cc $(CCDIR)
vpath %.hh $(HEADERDIR)
vpath %.y $(CCDIR)
othersrc=lexer.l parser.y
SCRIPTS=make_version make_patch genheader
IFILES=dimen.tex symbol.ini kortjakje.ly pavane.ly maartje.ly\
- lilyponddefs.tex test.tex .dstreamrc
+ lilyponddefs.tex test.tex .dstreamrc cadenza.ly
OFILES=Makefile Variables.make Sources.make COPYING README NEWS
DFILES=$(OFILES) $(IFILES) $(SCRIPTS)
exe=$(PACKAGENAME)
OUTPUT_OPTION=$< -o $@
DDIR=$(TOPDIR)/$(DNAME)
-SUBDIRS=Documentation $(OBJECTDIR) $(CCDIR) $(HEADERDIR)
+SUBDIRS=Documentation $(OBJECTDIR) $(CCDIR) $(HEADERDIR) $(INITDIR)
--- /dev/null
+DFILES=dutch.ini table_sixteen.ini table_twenty.ini\
+ english.ini
+
+dist:
+ ln Makefile $(DFILES) $(DDIR)/$(INITDIR)
\font\hslurdfont=xslhd20
\font\hslurhfont=xslhz20
\font\musicfnt=musix20
+ \font\italicfont=cmti10
\balkhoog=20pt
\notewidth=6pt
\staffrulethickness=0.4pt
}
\def\musixsixteendefs{
\font\textfont=cmr8
+ \font\italicfont=cmti8
\font\slurufont=xslu16
\font\slurdfont=xsld16
\font\slurhfont=xslz20 % sigh
\vskip 10pt
}
\def\ugly{\nointerlineskip\par
-\vskip 40pt\par\vbox{\hbox to 0pt{\vrule width30pt height1pt\hss}}\par\vskip 40pt
+\vskip 40pt\par\vbox{\leftalign{\vrule width30pt height1pt}}\par\vskip 40pt
}
\def\interscoreline{\beauty}
%
% a staffsymbol with #1 lines, width #2
% bottom at baseline
-\def\linestafsym#1#2{\hbox to 0pt{\vbox to 0pt{\vss\lines{#1}{#2}}\hss}}
+\def\linestafsym#1#2{\leftalign{\vbox to 0pt{\vss\lines{#1}{#2}}}}
\def\vcenter#1{\vbox to 0pt{\vss #1\vss}}
\def\topalign#1{\vbox to 0pt{#1\vss}}
\def\stem#1#2{\vrule height#2 depth-#1}
\def\placebox#1#2#3{%
- \vbox to 0pt{\vss\hbox{\raise #1\hbox to 0pt{\kern #2{}#3\hss}}}%
+ \vbox to 0pt{\vss\hbox{\raise #1\leftalign{\kern #2{}#3}}}%
}
\def\beamslope#1#2{{\count0=#2\advance\count0 by#1\musicfnt\char\count0}}
-\def\rulesym#1#2{\vrule height #1 width #2}
\ No newline at end of file
+\def\rulesym#1#2{\vrule height #1 width #2}
+
+\def\settext#1{\textfont #1}
+\def\setitalic#1{\italicfont #1}
+
+\def\centeralign#1{\hbox to 0pt{\hss#1\hss}}
+\def\leftalign#1{\hbox to 0pt{#1\hss}}
ritme = staff {rhythmic
music {$
c8
- [a8 a8. a8 a16 a16 a16] c4.
+ [a8() a8. a8 a16 a16 a16] c4.
- %[c8( )'a8 c8 c8]
+ %[c8( )'a8() c8 c8]% BUG!
c2 c2
[fis16 'dis16( fis16 'dis16 ][fis16) 'dis16 fis16 'dis16]
paper {
geometric 1.4
unitspace 3.0 cm
-% symboltables { table_sixteen}
}
staff { ritme }
staff { melody }
-% staff { melody }
commands {
meter 4 4
partial 8
#include "localkeyitem.hh"
Rhythmic_grouping
-parse_grouping(svec<Scalar> a)
+parse_grouping(svec<Scalar> a, Moment one_beat)
{
- Real one_beat =a[0];
- a.del(0);
+
svec<int> r;
for (int i= 0 ; i < a.sz(); i++)
r.add(a[i]);
- Real here =0.0;
+ Moment here =0.0;
svec<Rhythmic_grouping*> children;
for (int i=0; i < r.sz(); i++) {
- Real last = here;
+ Moment last = here;
here += one_beat * r[i];
children.add(
- new Rhythmic_grouping(Interval(last, here), r[i] )
+ new Rhythmic_grouping(MInterval(last, here), r[i] )
);
}
return Rhythmic_grouping(children);
svec<Scalar> args(com->args);
args.del(0);
if (com->args[0] == "GROUPING") {
- default_grouping = parse_grouping(args);
+ default_grouping = parse_grouping(args, col()->tdescription_->one_beat);
}else if (com->args[0] == "BAR") {
local_key_.reset(key_);
stem_->add(n);
if (current_grouping) {
current_grouping->add_child(
- c->moment_->whole_in_measure, rq->duration());
+ c->tdescription_->whole_in_measure, rq->duration());
}
noteheads.add(n);
int sidx =find_slur(v);
if (sl->spantype == Span_req::START) {
if (find_slur(sl->elt->voice_ )>=0)
- error("Too many slurs in voice");
+ error_t("Too many slurs in voice", col()->when());
pending_slur_reqs.add(sl);
pending_slurs.add(new Slur);
}