From: fred Date: Tue, 26 Mar 2002 22:51:02 +0000 (+0000) Subject: lilypond-1.2.15 X-Git-Tag: release/1.5.59~1747 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=afd75c9ccec39c297fb04f14ceb7ea98ac8d6ae5;p=lilypond.git lilypond-1.2.15 --- diff --git a/Documentation/BLURB.in b/Documentation/BLURB.in deleted file mode 100644 index 52e0ef5c75..0000000000 --- a/Documentation/BLURB.in +++ /dev/null @@ -1,3 +0,0 @@ -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. diff --git a/Documentation/COPYRIGHT b/Documentation/COPYRIGHT deleted file mode 100644 index 1628105c98..0000000000 --- a/Documentation/COPYRIGHT +++ /dev/null @@ -1,88 +0,0 @@ -[Note to uninitiated readers. This is a Q&A document that explains -what to watch out for when submitting scores for the Mutopia project. -The Mutopia project is an effort to accumulate an archive of sheet -music that is in the public domain. The project should be similar to -the Gutenberg project. - -We will be using music typesetting software to produce the software. -The project will only accept music for composers that have passed into -the PD. The sole remaining problem is caused by the editorial -changes. A recent edition may contain editorial amendments that are -not in the PD, so we cannot simply copy the music from recent -editions.] - - - -What is copyright? - -Copyright is a legal system that protects the expressions of ideas. -It was originally conceived to foster development of art and -knowledge. - -Copyright law gives "owners" of the expressions the right to restrict -reproductions of these expressions and collect fees. In this way they -can earn a living. For example, a poet may restrict xeroxing and -public performances of his poems, and demand a fee for print for -prints and performances. - -After some time ---for most forms of expression, this is 70 years -after the author died--- the work goes into the public domain, which -means that all restrictions are lifted. You can print, perform and -modify the works as much as you like. - -Copyright law is internationalised. In most countries the conditions -from the Berne convention have been adopted. - - - - -How does copyright work for music scores? - -Let's analyze how a printed score is produced: - -1. The composer composes music. - -2. An editor edits the music, based on the composer's manuscript and -on other editions. - -3. An engraver lays out the editor's product. - -As you can see, there are three individuals, whose expressions are -protected by copyright law. Since we are interested in the scores -that are in the PD. - -The copyright on the music itself passes into the PD 70 years after -the death of the composer. (Or XXXX years after publication if the -work is published posthumously.) - -The copyright on the editorial changes pass in to the PD 70 years -after death of the editor, or XXX years after publication. Depending on YYY - -The copyright of the engraver is of no interest to us, since we will -not reproduce any of the layout. - - - -What are editorial changes? - - - - - - -How do I find out what changes might be copyrighted? - -You cannot copyright something you did not create yourself. So if you -find the same editorial changes across different editions it is -unlikely that it is copyrighted. - - - - -Urtexts? - - - -Scores that are not marked with dates? - - diff --git a/Documentation/MANIFESTO.texi b/Documentation/MANIFESTO.texi deleted file mode 100644 index 4900adb78f..0000000000 --- a/Documentation/MANIFESTO.texi +++ /dev/null @@ -1,114 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename MANIFESTO.info -@settitle MANIFESTO - Rationale behind the GNU LilyPond project - -@node Top, , Goals for mudela, (dir) -@top -@menu -* MANIFESTO - Rationale behind the GNU LilyPond project::MANIFESTO - Rationale behind the GNU LilyPond project -@end menu - - - -@node MANIFESTO - Rationale behind the GNU LilyPond project, Goals for LilyPond, , Top -@menu -* Goals for LilyPond:: Goals for LilyPond -* Development constraints:: Development constraints -* Goals for mudela:: Goals for mudela -@end menu -@chapter MANIFESTO -- Rationale behind the GNU LilyPond project - - -@node Goals for LilyPond, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project, MANIFESTO - Rationale behind the GNU LilyPond project -@section Goals for LilyPond - -GNU LilyPond was written with some considerations in mind: - -@itemize @bullet -@item Describing a well-defined language for defining music. We call - this language (rather arrogantly) The Musical Definition Language - (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a - TeX file. -@item Providing an easy-to-use interface for typesetting music in - its broadest sense. This interface should be intuitive from a musical - point of view. By broadest sense we mean: it is designed for music - printed left to right in staffs, using notes to designate rythm and - pitch. -@item Generating high-quality output. Ideally it should be of a professional - quality. We'd like to render Herbert Chlapiks words, "Fine music - setting is not possible without a knowledgeable printer," untrue. -@item Making a system which is fully tweakable. It should be possible to - typeset a book on how not to typeset music. -@end itemize - -@node Development constraints, Goals for mudela, Goals for LilyPond, MANIFESTO - Rationale behind the GNU LilyPond project -@section Development constraints - -Further considerations while doing the programming - -@itemize @bullet -@item GNU LilyPond uses TeX for its output. This is not a key issue: in a - future version, GNU LilyPond might bypass TeX, but at the moment TeX - is convenient for producing output. -@item GNU LilyPond does not display notes directly, nor will it be rehacked - to be used interactively. GNU LilyPond writes output to a file. It - will not be extended to play music, or to recognize music. -@item GNU LilyPond is intended to run on Unix platforms, but it should - be portable to any platform which can run TeX and the GNU tools -@item GNU LilyPond is free. Commercial windows packages for setting music are - abundant. Free musicprinting software is scarce. For more thoughts on - this, please consult the @file{gnu-music} documentation. -@item GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit - broken systems. -@end itemize - -@node Goals for mudela, Top, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project -@section Goals for mudela - -The design of Mudela has been (perfect past tense, hopefully) an -ongoing process, the most important criteria being: - -@itemize @bullet -@item define the (musical) message of the composer as unambiguously as possible. - This means that, given a piece Mudela, it should be possible for a - program to play a reasonable interpretation of the piece. - - It also means that, given a piece of Mudela, it should be possible for a - program to print a score of the piece. -@item be intuitive, and easily readable (compared to, say, Musi*TeX input, - or MIDI :-), -@item be easily writable in ASCII with a simple texteditor -@end itemize - -Other considerations were (and will be): - -@itemize @bullet -@item be able to edit the layout without danger of changing the original - music (Urtext), -@item allow for adding different interpretations, again, - without danger of changing the original, -@item easy to create a conductor's score, - as well as the scores for all individual instruments, -@item provide simple musical manipulations, such as @emph{i} extracting a - slice of music from a previously defined piece, @emph{ii} extracting - only the rhythm from a piece of music, @emph{iii} transposing, etc., -@item easy to comprehend to both programmers and others. -@end itemize - -One of the things that (might) be here would be: feasible to use in a -graphic editor. We don't have experience with these beasts, so we -don't know how to do this. Comments appreciated. - -Musical pieces could be - -@itemize @bullet -@item Orchestral scores, (eg Mahler) -@item piano pieces (eg. Schubert, Rachmaninov), -@item pop songs (lyrics and chords), -@item Gregorian chants, -@item Bach multivoice organ pieces, -@item Short excerpts to be used in musicological publications. -@end itemize - - -@bye diff --git a/input/test/repeat-semifold.ly b/input/test/repeat-semifold.ly deleted file mode 100644 index d05959555b..0000000000 --- a/input/test/repeat-semifold.ly +++ /dev/null @@ -1,12 +0,0 @@ - -% no alts. -\score { \notes - \relative c'' { -\repeat volta 3 { c^"3$\\times$ 0alt" d } -% less alts than body -\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f } - -% more alts than body -\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } -}} - diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc deleted file mode 100644 index aebad06539..0000000000 --- a/lily/encompass-info.cc +++ /dev/null @@ -1,92 +0,0 @@ -/* - encompass-info.cc -- implement Encompass_info - - source file of the GNU LilyPond music typesetter - - (c) 1998--1999 Jan Nieuwenhuizen - -*/ -#include "dimension-cache.hh" -#include "proto.hh" -#include "stem.hh" -#include "note-column.hh" -#include "paper-def.hh" -#include "encompass-info.hh" -#include "slur.hh" -#include "staff-symbol.hh" -#include "note-head.hh" -#include "debug.hh" -#include "align-element.hh" - -Encompass_info::Encompass_info () -{ -} - -Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, Slur const* slur_l) -{ - interstaff_f_ = 0; - - Stem* stem_l = note_column->stem_l_; - if (!stem_l) - { - warning (_ ("Slur over rest?")); - o_[X_AXIS] = note_column->hpos_f (); - o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir]; - return; - } - - o_[X_AXIS] = stem_l->hpos_f (); - - /* - Simply set x to middle of notehead - */ - - o_[X_AXIS] -= 0.5 * stem_l->dir_ * note_column->extent (X_AXIS).length (); - - if ((stem_l->dir_ == dir) - && !stem_l->extent (Y_AXIS).empty_b ()) - { - o_[Y_AXIS] = stem_l->extent (Y_AXIS)[dir]; - } - else - { - o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir]; - } - - /* - leave a gap: slur mustn't touch head/stem - */ - o_[Y_AXIS] += dir * slur_l->paper_l ()->get_var ("slur_y_free"); - - Graphical_element *common = stem_l->common_refpoint (slur_l, Y_AXIS); - Align_element * align = dynamic_cast (common); - if (align && align->axis() == Y_AXIS) - { - if (align->threshold_interval_[MIN] != - align->threshold_interval_[MAX]) - warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken")); - - interstaff_f_ = align->threshold_interval_[MIN]; - - Graphical_element const * slur_refpoint = slur_l; - while (slur_refpoint->parent_l (Y_AXIS) != common) - slur_refpoint = slur_refpoint->parent_l (Y_AXIS); - - Graphical_element const * note_refpoint = note_column; - while (note_refpoint->parent_l (Y_AXIS) != common) - note_refpoint = note_refpoint->parent_l (Y_AXIS); - - int slur_prio = - align->get_priority ((Score_element*) dynamic_cast (slur_refpoint)); - int stem_prio = - align->get_priority ((Score_element*) dynamic_cast (note_refpoint)); - - /* - our staff is lower -> interstaff_f_ *= -1 - */ - - if (slur_prio < stem_prio) - interstaff_f_ *= -1; - o_[Y_AXIS] += interstaff_f_; - } -} diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh deleted file mode 100644 index 04caf77102..0000000000 --- a/lily/include/encompass-info.hh +++ /dev/null @@ -1,27 +0,0 @@ -/* - encompass-info.hh -- declare Encompass_info - - source file of the GNU LilyPond music typesetter - - (c) 1998--1999 Jan Nieuwenhuizen - -*/ - -#ifndef ENCOMPASS_INFO_HH -#define ENCOMPASS_INFO_HH - -#include "lily-proto.hh" -#include "direction.hh" -#include "offset.hh" - -struct Encompass_info -{ - Encompass_info (); - Encompass_info (Note_column const*, Direction, Slur const *); - - Offset o_; - // junkme - Real interstaff_f_; -}; - -#endif // ENCOMPASS_INFO_HH diff --git a/test/GNUmakefile b/test/GNUmakefile deleted file mode 100644 index f4392fb708..0000000000 --- a/test/GNUmakefile +++ /dev/null @@ -1,17 +0,0 @@ -# title makefile for test -# test/Makefile - -depth = .. - -NAME = lily-test -MODULE_NAME = lily-test - -MODULE_CXXFLAGS = -I$(depth)/flower/include -I$(depth)/flower -I$(depth)/lily/include -I$(depth)/lily -STEPMAKE_TEMPLATES=c++ - -include $(depth)/make/stepmake.make - -# default: $(EXECUTABLE) - -# include $(stepdir)/Executable.make - diff --git a/test/bow.cc b/test/bow.cc deleted file mode 100644 index 418538880e..0000000000 --- a/test/bow.cc +++ /dev/null @@ -1,165 +0,0 @@ -// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow -#include -#define PT -// #define STAFFHEIGHT 16.0 -#define STAFFHEIGHT 20.0 - -#define UP 1 -#define DOWN (-1) - -// mmm -#define STANDALONE - -#include - -typedef void *Paper_def; - -bool experimental_features_global_b = true; -//bool experimental_features_global_b = false; - -#include "bezier.hh" - -#if 0 -#include "offset.cc" -#include "interval.cc" -#endif - -#include "misc.cc" -#include "bezier.cc" - -struct Point -{ - Real x, y; -}; - -void -out (Bezier_bow& b) -{ - cout << "save dx,dy,x,y;\n"; - for (int i = 0; i < 4; i++) - cout << "z" << i + 1 << " = (" << b.control_[i].x () - << ", " << b.control_[i].y () << ");\n"; - for (int i = 1; i < 3; i++) - cout << "z" << i + 4 << " = (" << b.return_[i].x () - << ", " << b.return_[i].y () << ");\n"; -#if 0 - cout << "pickup pencircle scaled 0.5pt#;\n"; - cout << "draw z2--z3; draw (50,0)-- 0.5[z2,z3];\n"; -#endif - cout << "pickup pencircle scaled 4pt#;\n"; - for (int i = 0; i < 4; i++) - cout << "drawdot z" << i + 1 << ";\n"; - cout << "path boogje;\n"; -#if 0 - cout << "pickup pencircle scaled 0.4pt#;\n"; - cout << "boogje=z1..controls z2 and z3..z4..controls z5 and z6..cycle;\n"; - cout << "filldraw boogje;\n"; -#else - cout << "pickup pencircle scaled 1.6pt#;\n"; - cout << "boogje=z1..controls z2 and z3..z4;\n"; - cout << "draw boogje;\n"; - cout << "pickup pencircle scaled 0.4pt#;\n"; - cout << "boogje:=z4..controls z5 and z6..z1;\n"; - cout << "draw boogje;\n"; -#endif - cout << "showit; shipit;clearit;" << endl; -} - -void -bow (Point* points, int n, int d) -{ - Array notes; - for (int i = 0; i < n; i++) - notes.push (Offset (points[i].x, points[i].y)); -#if 1 - cout << "pickup pencircle scaled 8pt#;\n"; -#else - cout << "pickup pencircle scaled 2pt#;\n"; -#endif - for (int i = 0; i < n; i++) - cout << "drawdot (" << notes[i].x () << ", " << notes[i].y () << ");\n"; - Bezier_bow b (0); - b.set (notes, d); - b.calc (); - out (b); - return; -} - -int -main () -{ - //cout.unsetf(ios::scientific); - cout.setf(ios::fixed); -#if 1 - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,30, 60,30, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,10, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,40, 100,1 }, 6, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,40, 80,0, 100,1 }, 6, 1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1); - bow ((Point[9]){ 0,0, 20,0, 40,-80, 60,0, 80,0, 100,0, 120,0, 140,0, 160,-1 }, 9, -1); - bow ((Point[9]){ 0,0, 40,0, 80,180, 120,0, 160,0, 200,0, 240,0, 280,0, 320,1 }, 9, 1); - bow ((Point[9]){ - {0, 0}, - {19.10645980317711, 1}, - {29.402919606354207, 28}, - {55.389379409531308, 1}, - {73.530839212708514, 1}, - {91.672299015885727, 1}, - {111.35901367452229, 1}, - {131.04572833315891, 1}, - {145.76744299179552, 0} - }, - 9, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,40 }, 6, 1); - bow ((Point[2]){ 0,0, 20,0 }, 2, 1); - bow ((Point[2]){ 0,0, 20,-10 }, 2, 1); - bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,100 }, 6, 1); - - bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1); - - bow ((Point[6]){ 0,-10, 20,-20, 40,0, 60,-40, 80,-20, 100,-50 }, 6, 1); - - bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1); -#endif - -#if 1 - //clipping - - bow ((Point[6]){ 0,0, 20,60, 40,0, 60,0, 80,0, 100,1 }, 6, 1); - - bow ((Point[6]){ 0,1, 20,0, 40,0, 60,0, 80,60, 100,0 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,20, 100,100 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-20, 100,-100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); - bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1); - bow ((Point[7]){ 0,0, 20,-40, 100,0, 150,0, 200,0, 280,-40, 300,0 }, 7, -1); - bow ((Point[7]){ 0,20, 20,40, 100,0, 150,0, 200,0, 280,40, 300,20 }, 7, 1); - bow ((Point[3]){ 0,0, 10,10, 20,-20 }, 3, 1); - - bow ((Point[4]){ 0,0, 33,100, 75,0, 100,100 }, 4, -1); - bow ((Point[4]){ 0,0, 33,-100, 75,0, 100,-100 }, 4, 1); -#endif - -#if 1 - // infeasible - - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,20, 80,20, 100,40 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-20, 60,-20, 80,-80, 100,-40 }, 6, -1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); -#endif - - cout << "\\end" << endl; - - return 0; -} - diff --git a/test/hash.cc b/test/hash.cc deleted file mode 100644 index ee67572b76..0000000000 --- a/test/hash.cc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include "dictionary-iter.hh" - - - -main () -{ - Dictionary *dict = new Dictionary; - - char s[1000]; - - dict->elem("foo") = "bar"; - dict->elem("bla") = "ba"; - dict->elem("blo") = "bar"; - - while (gets (s)) - { - String str (s); - - int l = str.length_i (); - - dict->elem (str.left_str (l/2)) = str.right_str (l/2); - } - - int i=1000; - while (i--) - { - Dictionary *dict2=new Dictionary (*dict); - delete dict; - dict = dict2; - } - - for (Dictionary_iter i (*dict); i.ok (); i++) - { - cout << i.key () << " == " << i.val () << endl; - cout << "elem_b: " << dict->elem_b (i.key ()) << ", key " << i.key () << " val " << dict->elem (i.key ()) < -#define PT -// #define STAFFHEIGHT 16.0 -#define STAFFHEIGHT 20.0 - -#define UP 1 -#define DOWN (-1) - -// mmm -#define STANDALONE - -#include - -typedef void *Paper_def; - -bool experimental_features_global_b = true; - -#include "misc.cc" - -int -main () -{ - //cout.unsetf(ios::scientific); - cout.setf(ios::fixed); - - Array a; - a.push (3.4); - a.push (3.9); - Interval iv; - - iv = quantise_iv (a, 4, 3.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, -1.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, -7.5); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, 3.4); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - iv = quantise_iv (a, 4, 3.9); - cout << "iv: " << iv.min () << ", " << iv.max () << endl; - - cout << "\\end" << endl; - - return 0; -} -