+pl 67
+ - sketch of Music classes
+ - General_script_def as baseclass for Text_def and Script_def
+ - bf: clean lib/out/liblily.a
+ - bf: rests shorter than 1/4
+
+pl 66.jcn3
+ - bf: make uninstall
+ - conflily
+ - f: some pedaling
+ - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1
+
+pl 66.jcn2
+ - bf: bar, Hilfslinie
+ - bf: configure for mingw32
+
+pl 66.jcn1
+ - WIN32 -> WINDOWS32, more win32->windows32
+ - some GNU/Linux changes
+ - cygnus b18 / mingw update
+ - doze compile; bf: p-score.cc compares
+ - reincluded toccata fixes
+ - small stuff: vi tags, typos, bibl
+
+******
+may 27
pl 66
- make_website --jpeg, --png and --gif
- win32 -> windows32
******
may 26
+
pl 65
- bf pathfind /root/file
- massive Score_elem rewrite:
IMPORTANT
- * add mi2mu example output (.midi.ly and .gif) to website
* piano staff
* decent TeX page layout
- * per staff item-widths [JCN]
-
* script priority
* a Hands on tutorial [HKN]
PARSER
* Duration -> Musical_duration, typedef Rational Duration?
-**********************
HKN buglist:
-noten staan vaak te dicht aan de rechterkant van de maatstreep.
-
tekst staat erg ver van notenbalken af
waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
verplichte regels
-****************
-
BUGS
- * RPM permissions -> redhat!
-
* spurious Weird stem size warnings
* staccato dot positions.
* lilypond - -> crash
* standchen triool beam up/down
-
+
+ * (where are the) gcc compile warnings on linux
+
SEVERELY LACKING:
* SPEED!
* abbreviations c4=16
- * doublebar "||", finishbar "|||" (or "||." ?)
-
INPUTLANGUAGE
* should have \require{package.ly} to read req'd packages.
SMALLISH PROJECTS
+ * A range for context errors (eg. mark both { and }. )
+
+ * text in staff (sharpsharp in staff, text below)
+
* replace Score_elem member access by get()/set() methods, to enable
future embedded code.
MAJOR_VERSION = 0
MINOR_VERSION = 0
-PATCH_LEVEL = 66
-
+PATCH_LEVEL = 67
# use to send patches, always empty for released version:
# include separator: ".postfix", "-pl" makes rpm barf
-MY_PATCH_LEVEL =
+MY_PATCH_LEVEL =
--- /dev/null
+/*
+ music.hh -- declare Music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+
+#ifndef MUSIC_HH
+#define MUSIC_HH
+
+#include "plist.hh"
+#include "virtual-methods.hh"
+#include "input.hh"
+#include "minterval.hh"
+#include "lily-proto.hh"
+
+class Music:public Input {
+public:
+ virtual MInterval time_int()const;
+ virtual ~Music(){}
+ void print() const;
+ virtual void transpose(Melodic_req const *);
+ virtual void translate(Moment dt);
+ VIRTUAL_COPY_CONS(Music,Music)
+ NAME_MEMBERS();
+ Music();
+protected:
+ virtual void do_print() const;
+
+};
+
+class Music_list : public Music {
+public:
+ Music_list(Music_list const&);
+ Music_list();
+ NAME_MEMBERS();
+ VIRTUAL_COPY_CONS(Music_list,Music)
+ virtual void add(Music*);
+ virtual void transpose(Melodic_req const *);
+protected:
+ Pointer_list<Music*> music_p_list_;
+
+ virtual void do_print() const;
+};
+
+
+class Chord : public Music_list {
+public:
+ NAME_MEMBERS();
+ VIRTUAL_COPY_CONS(Chord,Music)
+ virtual void translate(Moment dt);
+ virtual MInterval time_int()const;
+};
+
+
+class MVoice : public Music_list {
+public:
+ NAME_MEMBERS();
+ VIRTUAL_COPY_CONS(MVoice, Music)
+ virtual void translate(Moment dt);
+ virtual MInterval time_int()const;
+};
+
+#endif // MUSIC_HH
+
+
+
class Note_head : public Item {
public:
- NAME_MEMBERS(Note_head);
+ NAME_MEMBERS();
bool rest_b_;
int position_i_;
static int compare(Note_head * const &a, Note_head *const &b) ;
protected:
virtual void do_print()const;
+ virtual void do_pre_processing();
virtual Molecule* brew_molecule_p()const;
};
#endif // NOTEHEAD_HH
--- /dev/null
+/*
+ music-list.cc -- implement Music_list,
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#include "music.hh"
+#include "debug.hh"
+
+Music_list::Music_list(Music_list const&s)
+{
+ for (iter(s.music_p_list_.top(), i); i.ok(); i++)
+ add(i->clone());
+}
+
+
+IMPLEMENT_STATIC_NAME(Music_list);
+
+void
+Music_list::add(Music*mus_p)
+{
+ music_p_list_.bottom().add(mus_p);
+}
+
+void
+Music_list::transpose(Melodic_req const*m)
+{
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ i->transpose(m);
+}
+
+void
+Music_list::do_print() const
+{
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ i->print();
+}
+
+IMPLEMENT_STATIC_NAME(Chord);
+
+void
+Chord::translate(Moment dt)
+{
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ i->translate(dt);
+}
+
+MInterval
+Chord::time_int()const
+{
+ MInterval m;
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ m.unite(i->time_int());
+ return m;
+}
+
+MInterval
+MVoice::time_int() const
+{
+ Moment last=0;
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ last += i->time_int().length();
+ return MInterval (0,last);
+}
+
+void
+MVoice::translate(Moment dt)
+{
+ for (iter(music_p_list_.top(), i); i.ok(); i++)
+ i->translate(dt);
+}
+
+IMPLEMENT_STATIC_NAME(MVoice);
--- /dev/null
+/*
+ music.cc -- implement Music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#include "music.hh"
+#include "debug.hh"
+
+MInterval
+Music::time_int() const
+{
+ return MInterval(0,0);
+}
+void
+Music::print()const
+{
+ #ifndef NPRINT
+ mtor << name() << "{" ;
+ do_print();
+ mtor << "}\n";
+ #endif
+}
+void
+Music::transpose(Melodic_req const*)
+{
+
+}
+
+void
+Music::translate(Moment )
+{
+}
+
+void
+Music::do_print()const
+{
+}
+
+IMPLEMENT_STATIC_NAME(Music);
+
+
+
+Music::Music(){}
+/*
+ notehead.cc -- implement Note_head
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
#include "misc.hh"
#include "note-head.hh"
#include "dimen.hh"
rest_b_ = false;
}
+void
+Note_head::do_pre_processing()
+{
+ // 8 ball looks the same as 4 ball:
+ if (balltype_i_ > 4 && !rest_b_)
+ balltype_i_ = 4;
+}
+
void
Note_head::set_rhythmic(Rhythmic_req*r_req_l)
{
balltype_i_ = r_req_l->duration_.type_i_;
- if (balltype_i_ > 4)
- balltype_i_ = 4;
dots_i_ = r_req_l->duration_.dots_i_;
}
IMPORTANT
+ * remove silly #warning using midi_voice list
+
+ * add mi2mu example output (.midi.ly and .gif) to website
+
* important? lily is important, go work on lily!
* faq about mi2mu midi t1. ?