PREREQUISITES
-TeX, the MusixTeX fonts, g++ > v2.7. The "flower" library, which should be
-available from the same source you got this from.
+TeX, the MusixTeX fonts, g++ > v2.7. The "flower" library, which
+should be available from the same source you got this from. The
+Makefile uses perl for trivial operation, but you could tinker with it
+to use sed or awk.
COMPILING
HOW DOES IT WORK
* Use The Source, Luke. If you don't know C++, you can try editing
-.dstreamrc for copious debugging output.
+.dstreamrc for copious debugging output. (use -d)
* the subdir Documentation/ contains some in depth matter on LilyPond
algorithms
parseconstruct.hh debug.hh globvars.hh keyword.hh\
misc.hh score.hh notename.hh lexer.hh symtable.hh\
symbol.hh main.hh dimen.hh paper.hh lookup.hh\
- sccol.hh stcol.hh scommands.hh melodicstaff.hh\
+ sccol.hh stcol.hh staffcommands.hh melodicstaff.hh\
identifier.hh simplestaff.hh spanner.hh stem.hh\
notehead.hh leastsquares.hh beam.hh rest.hh\
swalker.hh bar.hh meter.hh accidental.hh\
key.hh keyitem.hh localkeyitem.hh simplewalker.hh\
- clef.hh clefitem.hh slur.hh
+ clef.hh clefitem.hh slur.hh inputcommands.hh\
+ getcommand.hh inputmusic.hh
mycc= qlp.cc qlpsolve.cc \
break.cc linespace.cc molecule.cc staffline.cc\
warn.cc debug.cc symtable.cc boxes.cc\
pstaff.cc tstream.cc\
calcideal.cc scores.cc identifier.cc \
- dimen.cc paper.cc lookup.cc scommands.cc\
+ dimen.cc paper.cc lookup.cc staffcommands.cc\
sccol.cc stcol.cc getcommands.cc simplestaff.cc\
melodicstaff.cc simpleprint.cc stem.cc\
spanner.cc notehead.cc leastsquares.cc beam.cc\
simplewalker.cc bar.cc meter.cc accidental.cc\
key.cc keyitem.cc localkeyitem.cc\
clef.cc clefitem.cc texslur.cc slur.cc\
+ inputcommands.cc inputmusic.cc\
+ inputcursor.cc\
template1.cc template2.cc template3.cc template4.cc\
version.cc
+
+
+
--- /dev/null
+/*
+ inputcommands.hh -- part of LilyPond
+
+ (c) 1996 Han-Wen Nienhuys
+*/
+
+#ifndef INPUTCOMMANDS_HH
+#define INPUTCOMMANDS_HH
+#include "pcursor.hh"
+#include "proto.hh"
+#include "plist.hh"
+#include "real.hh"
+
+struct Input_cursor : public PCursor<Command*>
+{
+ /// current measure info
+ Real whole_per_measure;
+
+ /// where am i
+ Real whole_in_measure;
+
+ /// Real last when which was read
+ Real last;
+
+ int bars;
+
+ Input_cursor(PCursor<Command*>);
+ /// hmm. not safe. Should rethink cursor.
+ void operator++(int);
+ /** warning: no optor -- () defined.. */
+ void reset();
+ Real when()const;
+ void add(Command*);
+ void setpartial(Real);
+ void addbot(Command*);
+ void sync();
+ void print()const;
+ void last_command_here();
+};
+
+/// the list of commands in Score
+struct Input_commands : public IPointerList<Command*> {
+ Input_cursor ptr;
+
+ /****************/
+
+ void find_moment(Real);
+ void do_skip(int & bars, Real & wholes);
+ void truncate(Real);
+
+ Input_commands();
+ Input_commands(Input_commands const&);
+ void add(Command*);
+ void reset();
+ void print()const;
+ Staff_commands *parse() const;
+};
+
+
+void
+interpret_meter(Command *c, int &beats_per_meas, int& one_beat,
+ Real& whole_per_measure);
+#endif // INPUTCOMMANDS_HH
+