#!/bin/sh
# unclobber current dir.
-rm -vf *.aux *.log *.orig *~
+rm -vf *.aux *.log *.orig *~ *dvi *.dep
+
+# subdirs
rm -vf `grep -li "^% Creator: GNU LilyPond" *.out *.tex`
rm -vf `grep -li "Creator: mi2mu" *.midi.ly`
rm -vf `grep -li "%Creator: dvipsk" *.ps`
rm -vf `find -name '*.orig'`
rm -vf `find -name '*.rej'`
+
+
+
# docxx mess
-rm -vf *dvi
rm -vf *.class HIER*.html dxxgifs.tex gifs.db icon?.gif logo.gif down.gif \
aindex.html index.html
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <assert.h>
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "choleski.hh"
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "cpu-timer.hh"
source file FlowerLib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "directed-graph.hh"
source file of the Flower Library
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <fstream.h>
--- /dev/null
+/*
+ path.cc - manipulation of paths and filenames.
+*/
+#include <stdio.h>
+#include "file-path.hh"
+#include "flower-debug.hh"
+
+#ifndef DIRSEP
+#define DIRSEP '/'
+#endif
+
+#ifndef PATHSEP
+#define PATHSEP ':'
+#endif
+
+/**
+ @param path the original full filename
+ @return 4 components of the path. They can be empty
+*/
+void
+split_path (String path,
+ String &drive, String &dirs, String &filebase, String &extension)
+{
+ // peel off components, one by one.
+ int di = path.index_i (':');
+ if (di >= 0)
+ {
+ drive = path.left_str (di + 1);
+ path = path.right_str (path.length_i () - di -1);
+ }
+ else
+ drive = "";
+
+ di = path.index_last_i (DIRSEP);
+ if (di >=0)
+ {
+ dirs = path.left_str (di + 1);
+ path = path.right_str (path.length_i ()-di -1);
+ }
+ else
+ dirs = "";
+
+ di = path.index_last_i ('.');
+ if (di >= 0)
+ {
+ filebase = path.left_str (di);
+ extension =path.right_str (path.length_i ()-di);
+ }
+ else
+ {
+ extension = "";
+ filebase = path;
+ }
+}
+
+void
+File_path::parse_path (String p)
+{
+ int l;
+
+ while ( (l = p.length_i ()) )
+ {
+ int i = p.index_i(PATHSEP);
+ if (i <0)
+ i = l;
+ add (p.left_str(i));
+ p = p.right_str (l- i - 1);
+ }
+}
+
+
+
+
+/** find a file.
+ It will search in the current dir, in the construction-arg, and
+ in any other added path, in this order.
+ */
+String
+File_path::find (String nm) const
+{
+ fdebug << _("looking for ") << nm << ": ";
+ if (!nm.length_i() || (nm == "-") )
+ return nm;
+ for (int i=0; i < size(); i++)
+ {
+ String path = elem(i);
+ String sep (DIRSEP);
+ String right(path.right_str (1));
+ if (path.length_i () && right != sep)
+ path += DIRSEP;
+
+ path += nm;
+
+ fdebug << path << "? ";
+ FILE *f = fopen (path.ch_C(), "r"); // ugh!
+ if (f)
+ {
+ fdebug << _("found\n");
+ fclose (f);
+ return path;
+ }
+ }
+ fdebug << "\n";
+ return "";
+}
+
+void
+File_path::add (String s)
+{
+ push (s);
+}
source file of the Flower Library
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "full-storage.hh"
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef DSTREAM_HH
--- /dev/null
+/*
+ path.hh -- declare File_path
+
+ source file of the Flower Library
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#ifndef PATH_HH
+#define PATH_HH
+#include "string.hh"
+#include "varray.hh"
+
+
+/**
+ search in directories for a file.
+
+ Abstraction of PATH variable. An interface for searching input files.
+ Search a number of dirs for a file.
+
+ TODO: add a unix style PATH interface
+ Should use kpathsea?
+
+*/
+
+class File_path : private Array<String>
+{
+public:
+ /// locate a file in the search path
+ String find (String nm) const;
+
+ /// add to end of path.
+ Array<String>::push;
+ void add (String str);
+ void parse_path (String);
+};
+
+/** split a path into its components.
+
+ @params path
+
+ @return
+ String &drive, String &dirs, String &filebase, String &extension
+ */
+void split_path (String path, String &drive, String &dirs, String &filebase, String &extension);
+
+#endif
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/// (i64)
typedef long long I64;
+template<class T> struct Link_array;
template<class T> struct Array;
template<class T> struct sstack;
template<class T,class K> struct Assoc;
#include "real.hh"
typedef Interval_t<Real> Interval;
+typedef Interval_t<int> Slice;
struct Choleski_decomposition;
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
return a*i;
}
+// again? see fproto.hh
typedef Interval_t<Real> Interval;
-
-
+typedef Interval_t<int> Slice;
#endif // INTERVAL_HH
-
-
source file of the Flower Library
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the flowerlib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the flowerlib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1996,1997
+ (c) 1996, 1997--1998
Jan Nieuwenhuizen <jan@digicash.com>
Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef LIST_CC
#define LIST_CC
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/* -*-c++-*-
plist.icc -- part of flowerlib
- (c) 1996,1997 Han-Wen Nienhuys& Jan Nieuwenhuizen
+ (c) 1996, 1997--1998 Han-Wen Nienhuys& Jan Nieuwenhuizen
*/
#ifndef PLIST_INL
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of Flower lib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef STRINGDATA_INL
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of Flower lib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef STRINGHANDLE_INL
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "real.hh"
#include "interval.tcc"
-
-template INTERVAL__INSTANTIATE(Real);
-
-
+template INTERVAL__INSTANTIATE (Real);
Real
-Interval_t<Real>::infinity()
+Interval_t<Real>::infinity ()
{
return HUGE_VAL;
}
{
return String (r);
}
+
+template INTERVAL__INSTANTIATE (int);
+
+int
+Interval_t<int>::infinity ()
+{
+ return INT_MAX;
+}
+
+String
+Interval_t<int>::T_to_str (int i)
+{
+ return String (i);
+}
+
source file of the flowerlib
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <stdarg.h>
#include <stdio.h>
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "matrix.hh"
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <math.h>
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <stdlib.h>
#include "rational.hh"
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <assert.h>
string.cc - implement String
- (c) 1997 Han-Wen Nienhuys & Jan Nieuwenhuizen
+ (c) 1997--1998 Han-Wen Nienhuys & Jan Nieuwenhuizen
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> */
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl> */
#ifdef STRING_DEBUG
#define memmove mymemmove
source file of the LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen
+ (c) 1997--1998 Jan Nieuwenhuizen
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
*/
struct Duration_convert {
- /* Urgh. statics.
- */
- static bool const midi_as_plet_b_s = true;
- static bool no_quantify_b_s;
- static bool no_double_dots_b_s;
- static bool no_triplets_b_s;
- static int no_smaller_than_i_s;
- static Array<Duration> dur_array_s;
-
- /// Return number of ticks in (ticks, division_1) representation
- static int dur2ticks_i (Duration dur );
+ /* Urgh. statics.
+ */
+ static bool const midi_as_plet_b_s = true;
+ static bool no_quantify_b_s;
+ static bool no_double_dots_b_s;
+ static bool no_triplets_b_s;
+ static int no_smaller_than_i_s;
+ static Array<Duration> dur_array_s;
+
+ /// Return number of ticks in (ticks, division_1) representation
+ static int dur2ticks_i (Duration dur );
- /// Return the type_i representation of note length i
- static int i2_type (int i);
+ /// Return the type_i representation of note length i
+ static int i2_type (int i);
- /// Return the note length corresponding to the type_i representation
- /// Return 0 if longer than whole note.
- static int type2_i (int type);
+ /// Return the note length corresponding to the type_i representation
+ /// Return 0 if longer than whole note.
+ static int type2_i (int type);
- /// Return Moment representation (fraction of whole note).
- static Moment dur2_mom (Duration dur );
+ /// Return Moment representation (fraction of whole note).
+ static Moment dur2_mom (Duration dur );
- /// Return Mudela string representation.
- static String dur2_str (Duration dur );
+ /// Return Mudela string representation.
+ static String dur2_str (Duration dur );
- /// Return duration from Moment (fraction of whole) representation.
- static Duration mom2_dur (Moment mom );
+ /// Return duration from Moment (fraction of whole) representation.
+ static Duration mom2_dur (Moment mom );
- /// Return standardised duration, best guess if not exact.
- static Duration mom2standardised_dur (Moment mom );
+ /// Return standardised duration, best guess if not exact.
+ static Duration mom2standardised_dur (Moment mom );
- /// Return plet factor (not a Moment: should use Rational?).
- static Moment plet_factor_mom (Duration dur );
+ /// Return plet factor (not a Moment: should use Rational?).
+ static Moment plet_factor_mom (Duration dur );
- static void set_array ();
+ static void set_array ();
- /** Return synchronisation factor for mom, so that
+ /** Return synchronisation factor for mom, so that
mom2_dur (mom / sync_f ) will return the duration dur.
- */
- static Real sync_f (Duration dur, Moment mom );
+ */
+ static Real sync_f (Duration dur, Moment mom );
- /// Return exact duration, in midi-ticks if not-exact.
- static Duration ticks2_dur (int ticks_i );
+ /// Return exact duration, in midi-ticks if not-exact.
+ static Duration ticks2_dur (int ticks_i );
- /// Return standardised duration, best guess if not exact.
- static Duration ticks2standardised_dur (int ticks_i );
-};
-
-/// (iter_dur)
-struct Duration_iterator {
- /// start at shortest: 128:2/3
- Duration_iterator ();
-
- // **** what about these three here ?
- /// return forward_dur ();
- Duration operator ++(int);
-
- /// return ok ()
- operator bool ();
-
- /// return dur ()
- Duration operator ()();
- // ****
-
- /// return current dur
- Duration dur ();
-
- /// return dur (), step to next
- Duration forward_dur ();
-
- /// durations left?
- bool ok ();
-
-private:
- Duration cursor_dur_;
+ /// Return standardised duration, best guess if not exact.
+ static Duration ticks2standardised_dur (int ticks_i );
};
--- /dev/null
+/*
+ duration-iter.hh -- declare Duration_iterator
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+
+ */
+
+#ifndef DURATION_ITER_HH
+#define DURATION_ITER_HH
+
+/// (iter_dur)
+struct Duration_iterator {
+
+ /// start at shortest: 128:2/3
+ Duration_iterator ();
+
+ // **** what about these three here ?
+ /// return forward_dur ();
+ Duration operator ++(int);
+
+ /// return ok ()
+ operator bool ();
+
+ /// return dur ()
+ Duration operator ()();
+
+
+ /// return current dur
+ Duration dur ();
+
+ /// return dur (), step to next
+ Duration forward_dur ();
+
+ /// durations left?
+ bool ok ();
+
+private:
+
+ Duration cursor_dur_;
+};
+
+
+
+#endif /* DURATION_ITER_HH */
+
source file of the LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "fproto.hh"
#include "moment.hh"
#include "plet.hh"
-// ugh, to get me in lily lib
-extern bool no_triplets_bo_g;
-
/**
Class to handle "musical" durations. This means: balltype 1,2,4,etc. and dots.
bool plet_b ();
String str () const;
void set_plet (int,int );
- void set_plet (Duration );
+
static bool duration_type_b (int t);
void set_ticks (int ticks_i );
Moment length () const ; // zo naai mij
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
#include "input.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>.
Nextstep fixes by tiggr@ics.ele.tue.nl
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <iostream.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "plet.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <stdio.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
& Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "plist.hh"
#include "source-file.hh"
#include "source.hh"
-#include "path.hh"
+#include "file-path.hh"
Sources::Sources ()
{
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "source-file.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "atom.hh"
#include "tex.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "audio-column.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "audio-element.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "debug.hh"
#include "audio-item.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "audio-staff.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "interval.hh"
#include "axis-group-administration.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "axis-group-element.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "axis-group-item.hh"
#include "p-col.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "axis-group-spanner.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "bar-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "text-def.hh"
#include "command-request.hh"
#include "bar.hh"
+#include "stem.hh"
#include "time-description.hh"
Bar_number_engraver::Bar_number_engraver()
}
static Command_script_req dummy;
+static Stem support;
void
Bar_number_engraver::acknowledge_element (Score_elem_info i)
script_p_->specs_l_ = td_p;
script_p_->breakable_b_ = true;
+
+ // ugh, howto move this up?
script_p_->dir_ = UP;
-// script_p_->y_ += 2;
- script_p_->y_ = 8;
+//// script_p_->y_ += 2;
+ script_p_->y_ = 10;
+
+ support.dir_ = UP;
+ support.set_stemend (10);
+ script_p_->set_stem (&support);
announce_element (Score_elem_info (script_p_, &dummy));
}
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "duration-convert.hh"
#include "time-description.hh"
if (prop.isnum_b ())
beam_p_->damping_i_ = prop;
- prop = get_property ("beamquantisaton");
+ prop = get_property ("beamquantisation");
if (prop.isnum_b ())
- beam_p_->quantisation_ = (Beam::Quantise)(int)prop;
+ beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT]));
}
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ Jan Nieuwenhuizen <jan@digicash.com>
- TODO
+*/
- Less hairy code. knee: ([\stem 1; c8 \stem -1; c8]
-*/
+/*
+ [TODO]
+ * lowest beam of (UP) beam must never be lower than second staffline
+ * centre beam symbol
+ * less hairy code
+ * redo grouping
+ * (future) knee: ([\stem 1; c8 \stem -1; c8]
+ */
#include <math.h>
#include "lookup.hh"
#include "grouping.hh"
#include "stem-info.hh"
-//#include "main.hh" // experimental features
+#include "main.hh" // experimental features
IMPLEMENT_IS_TYPE_B1 (Beam, Spanner);
-// ugh, hardcoded
-const Real MINIMUM_STEMLEN[] = {
- 0, // just in case
- 5,
- 4,
- 3,
- 2,
- 2,
-};
-
Beam::Beam ()
{
slope_f_ = 0;
- left_y_ = 0.0;
+ left_y_ = 0;
damping_i_ = 1;
quantisation_ = NORMAL;
multiple_i_ = 0;
Beam::brew_molecule_p () const
{
Molecule *mol_p = new Molecule;
- Real inter_f = paper ()->internote_f ();
+
+ Real interline_f = paper ()->interline_f ();
+ Real internote_f = interline_f / 2;
+ Real staffline_f = paper ()->rule_thickness ();
+ Real beam_f = 0.48 * (interline_f - staffline_f);
+
Real x0 = stems_[0]->hpos_f ();
for (int j=0; j <stems_.size (); j++)
{
Molecule sb = stem_beams (i, next, prev);
Real x = i->hpos_f ()-x0;
- sb.translate (Offset (x, (x * slope_f_ + left_y_)* inter_f));
+ sb.translate (Offset (x, (x * slope_f_ + left_y_) * internote_f));
mol_p->add (sb);
}
- mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+ mol_p->translate_axis (x0
+ - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+
return mol_p;
}
}
/*
- should use minimum energy formulation (cf linespacing)
-*/
+ See Documentation/tex/fonts.doc
+ */
void
Beam::solve_slope ()
{
+ /*
+ should use minimum energy formulation (cf linespacing)
+ */
+
+ assert (multiple_i_);
Array<Stem_info> sinfo;
for (int j=0; j <stems_.size (); j++)
{
Stem *i = stems_[j];
+ i->mult_i_ = multiple_i_;
i->set_default_extents ();
if (i->invisible_b ())
continue;
else
{
- Real leftx = sinfo[0].x;
+ Real leftx = sinfo[0].x_;
Least_squares l;
for (int i=0; i < sinfo.size (); i++)
{
- sinfo[i].x -= leftx;
- l.input.push (Offset (sinfo[i].x, sinfo[i].idealy_f_));
+ sinfo[i].x_ -= leftx;
+ l.input.push (Offset (sinfo[i].x_, sinfo[i].idealy_f_));
}
l.minimise (slope_f_, left_y_);
Real dy = 0.0;
for (int i=0; i < sinfo.size (); i++)
{
- Real y = sinfo[i].x * slope_f_ + left_y_;
+ Real y = sinfo[i].x_ * slope_f_ + left_y_;
Real my = sinfo[i].miny_f_;
if (my - y > dy)
if (damping_i_)
slope_f_ = 0.6 * tanh (slope_f_) / damping_i_;
- quantise_yspan ();
+ quantise_dy ();
- // y-values traditionally use internote dimension: therefore slope = (y/in)/x
- // but mf and beam-lookup use PT dimension for y (as used for x-values)
- // ugh --- there goes our simplified but careful quantisation
Real sl = slope_f_ * paper ()->internote_f ();
paper ()->lookup_l ()->beam (sl, 20 PT, 1 PT);
slope_f_ = sl / paper ()->internote_f ();
}
void
-Beam::quantise_yspan ()
+Beam::quantise_dy ()
{
/*
[Ross] (simplification of)
Try to set slope_f_ complying with y-span of:
- zero
- - beam_thickness / 2 + staffline_thickness / 2
- - beam_thickness + staffline_thickness
+ - beam_f / 2 + staffline_f / 2
+ - beam_f + staffline_f
+ n * interline
*/
- if (!quantisation_)
+ if (quantisation_ <= NONE)
return;
Real interline_f = paper ()->interline_f ();
Real internote_f = interline_f / 2;
- Real staffline_thickness = paper ()->rule_thickness ();
- Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
-
- const int QUANTS = 3;
- Real qdy[QUANTS] = {
- 0,
- beam_thickness / 2 + staffline_thickness / 2,
- beam_thickness + staffline_thickness
- };
-
- Real xspan_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
- // y-values traditionally use internote dimension: therefore slope = (y/in)/x
- Real yspan_f = xspan_f * abs (slope_f_ * internote_f);
- int yspan_i = (int)(yspan_f / interline_f);
- Real q = (yspan_f / interline_f - yspan_i) * interline_f;
- int i = 0;
- for (; i < QUANTS - 1; i++)
- if ((q >= qdy[i]) && (q <= qdy[i + 1]))
- {
- if (q - qdy[i] < qdy[i + 1] - q)
- break;
- else
- {
- i++;
- break;
- }
- }
- q = qdy[i];
+ Real staffline_f = paper ()->rule_thickness ();
+ Real beam_f = 0.48 * (interline_f - staffline_f);
+
+ Real dx_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
+
+ // dim(y) = internote; so slope = (y/internote)/x
+ Real dy_f = dx_f * abs (slope_f_ * internote_f);
+
+ Real quanty_f = 0.0;
+
+ /* UGR. ICE in 2.8.1; bugreport filed. */
+ Array<Real> allowed_fraction (3);
+ allowed_fraction[0] = 0;
+ allowed_fraction[1] = (beam_f / 2 + staffline_f / 2);
+ allowed_fraction[2] = (beam_f + staffline_f);
- yspan_f = (Real)yspan_i * interline_f + q;
- // y-values traditionally use internote dimension: therefore slope = (y/in)/x
- slope_f_ = yspan_f / xspan_f / internote_f * sign (slope_f_);
+
+ Interval iv = quantise_iv (allowed_fraction, interline_f, dy_f);
+ quanty_f = (dy_f - iv.min () <= iv.max () - dy_f)
+ ? iv.min ()
+ : iv.max ();
+
+
+ slope_f_ = (quanty_f / dx_f) / internote_f * sign (slope_f_);
}
+static int test_pos = 0;
+
+
+/*
+
+ Prevent interference from stafflines and beams. See Documentation/tex/fonts.doc
+
+ */
void
-Beam::quantise_left_y (Beam::Pos pos, bool extend_b)
+Beam::quantise_left_y (bool extend_b)
{
- /*
- quantising left y should suffice, as slope is quantised too
- if extend then stems must not get shorter
+ /*
+ we only need to quantise the start of the beam as dy is quantised too
+ if extend_b then stems must *not* get shorter
*/
- if (!quantisation_)
+ if (quantisation_ <= NONE)
return;
+ /*
+ ----------------------------------------------------------
+ ########
+ ########
+ ########
+ --------------########------------------------------------
+ ########
+
+ hang straddle sit inter hang
+ */
+
+ Real interbeam_f = paper ()->interbeam_f ();
Real interline_f = paper ()->interline_f ();
Real internote_f = interline_f / 2;
- Real staffline_thickness = paper ()->rule_thickness ();
- Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
+ Real staffline_f = paper ()->rule_thickness ();
+ Real beam_f = 0.48 * (interline_f - staffline_f);
+ Real symbol_f = beam_f + interbeam_f * (multiple_i_ - 1);
- const int QUANTS = 7;
- Real qy[QUANTS] =
- {
- 0,
- beam_thickness / 2,
- beam_thickness,
- interline_f / 2 + beam_thickness / 2 + staffline_thickness / 2,
- interline_f,
- interline_f + beam_thickness / 2,
- interline_f + beam_thickness
- };
- /*
- ugh, using i triggers gcc 2.7.2.1 internal compiler error (far down):
- for (int i = 0; i < QUANTS; i++)
+ Real straddle = 0;
+ Real sit = beam_f / 2 - staffline_f / 2;
+ Real inter = interline_f / 2;
+ Real hang = interline_f - beam_f / 2 + staffline_f / 2;
+
+ /*
+ Put all allowed positions into an array.
+ Whether a position is allowed or not depends on
+ strictness of quantisation, multiplicity and direction.
+
+ For simplicity, we'll assume dir = UP and correct if
+ dir = DOWN afterwards.
*/
-
- // fixme!
- for (int ii = 0; ii < QUANTS; ii++)
- qy[ii] -= 0.5 *beam_thickness;
- Pos qpos[QUANTS] =
- {
- HANG,
- STRADDLE,
- SIT,
- INTER,
- HANG,
- STRADDLE,
- SIT
- };
-
- // y-values traditionally use internote dimension
- Real y = left_y_ * internote_f;
- int y_i = (int)floor(y / interline_f);
- y = (y / interline_f - y_i) * interline_f;
-
- if (y < 0)
- for (int ii = 0; ii < QUANTS; ii++)
- qy[ii] -= interline_f;
-
- int lower_i = 0;
- int i = 0;
- for (; i < QUANTS; i++)
+
+ // dim(left_y_) = internote
+ Real dy_f = dir_ * left_y_ * internote_f;
+
+ Array<Real> allowed_position;
+ if (quantisation_ != TEST)
{
- if (qy[i] > y)
- break;
- // found if lower_i is allowed, and nearer (from below) y than new pos
- if ((pos & qpos[lower_i]) && (y - qy[lower_i] < y - qy[i]))
- break;
- // if new pos is allowed or old pos isn't: assign new pos
- if ((pos & qpos[i]) || !(pos & qpos[lower_i]))
- lower_i = i;
+ if (quantisation_ <= NORMAL)
+ {
+ if ((multiple_i_ <= 2) || (abs (dy_f) >= staffline_f / 2))
+ allowed_position.push (straddle);
+ if ((multiple_i_ <= 1) || (abs (dy_f) >= staffline_f / 2))
+ allowed_position.push (sit);
+ allowed_position.push (hang);
+ }
+ else
+ // TODO: check and fix TRADITIONAL
+ {
+ if ((multiple_i_ <= 2) || (abs (dy_f) >= staffline_f / 2))
+ allowed_position.push (straddle);
+ if ((multiple_i_ <= 1) && (dy_f <= staffline_f / 2))
+ allowed_position.push (sit);
+ if (dy_f >= -staffline_f / 2)
+ allowed_position.push (hang);
+ }
}
-
- int upper_i = QUANTS - 1;
- for (i = QUANTS - 1; i >= 0; i--)
+ else
{
- if (qy[i] < y)
- break;
- // found if upper_i is allowed, and nearer (from above) y than new pos
- if ((pos & qpos[upper_i]) && (qy[upper_i] - y < qy[i] - y))
- break;
- // if new pos is allowed or old pos isn't: assign new pos
- if ((pos & qpos[i]) || !(pos & qpos[upper_i]))
- upper_i = i;
+ if (test_pos == 0)
+ {
+ allowed_position.push (hang);
+ cout << "hang" << hang << endl;
+ }
+ else if (test_pos==1)
+ {
+ allowed_position.push (straddle);
+ cout << "straddle" << straddle << endl;
+ }
+ else if (test_pos==2)
+ {
+ allowed_position.push (sit);
+ cout << "sit" << sit << endl;
+ }
+ else if (test_pos==3)
+ {
+ allowed_position.push (inter);
+ cout << "inter" << inter << endl;
+ }
}
- // y-values traditionally use internote dimension
- Real upper_y = (qy[upper_i] + interline_f * y_i) / internote_f;
- Real lower_y = (qy[lower_i] + interline_f * y_i) / internote_f;
+#if 0
+ // this currently never happens
+ Real q = (dy_f / interline_f - dy_i) * interline_f;
+ if ((quantisation_ < NORMAL) && (q < interline_f / 3 - beam_f / 2))
+ allowed_position.push (inter);
+#endif
+ Interval iv = quantise_iv (allowed_position, interline_f, dy_f);
+
+ Real quanty_f = dy_f - iv.min () <= iv.max () - dy_f ? iv.min () : iv.max ();
if (extend_b)
- left_y_ = (dir_ > 0 ? upper_y : lower_y);
- else
- left_y_ = (upper_y - y < y - lower_y ? upper_y : lower_y);
+ quanty_f = iv.max ();
+
+ // dim(left_y_) = internote
+ left_y_ = dir_ * quanty_f / internote_f;
}
void
Beam::set_stemlens ()
{
- Real x0 = stems_[0]->hpos_f ();
- Real dy = 0;
-
+ Real interbeam_f = paper ()->interbeam_f ();
Real interline_f = paper ()->interline_f ();
Real internote_f = interline_f / 2;
- Real staffline_thickness = paper ()->rule_thickness ();
- Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
- Real interbeam_f = paper ()->interbeam_f ();
- if (multiple_i_ > 3)
- interbeam_f += 2.0 * staffline_thickness / 4;
- Real xspan_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
- /*
- ugh, y values are in "internote" dimension
- */
- Real yspan_f = xspan_f * abs (slope_f_ * internote_f);
- int yspan_i = (int)(yspan_f / interline_f);
-
- Pos left_pos = NONE;
+ Real staffline_f = paper ()->rule_thickness ();
+ Real beam_f = 0.48 * (interline_f - staffline_f);
- if ((yspan_f < staffline_thickness / 2) || (quantisation_ == NORMAL))
- left_pos = (Pos)(STRADDLE | SIT | HANG);
- else
- left_pos = (Pos) (sign (slope_f_) > 0 ? STRADDLE | HANG
- : SIT | STRADDLE);
-
- /*
- ugh, slope currently mangled by availability mf chars...
- be more generous regarding beam position between stafflines
+ /*
+ if we have more than three beams they must open-up
+ in order to not collide with staff lines
*/
- Real q = (yspan_f / interline_f - yspan_i) * interline_f;
- if ((quantisation_ < NORMAL) && (q < interline_f / 3 - beam_thickness / 2))
- left_pos = (Pos) (left_pos | INTER);
-
-
- if (multiple_i_ > 1)
- left_pos = (Pos) (dir_ > 0 ? HANG : SIT);
+ if (multiple_i_ > 3)
+ interbeam_f += 2.0 * staffline_f / 4;
+ Real x0 = stems_[0]->hpos_f ();
+ Real dy = 0;
// ugh, rounding problems! (enge floots)
- const Real EPSILON = interline_f / 10;
+ Real epsilon = staffline_f / 8;
do
{
left_y_ += dy * dir_;
- quantise_left_y (left_pos, dy);
+ quantise_left_y (dy);
dy = 0;
for (int i=0; i < stems_.size (); i++)
{
Real x = s->hpos_f () - x0;
s->set_stemend (left_y_ + slope_f_ * x);
- Real y = s->stem_length_f ();
- // duh:
-// int mult_i = stems_[i]->beams_left_i_ >? stems_[i]->beams_right_i_;
- int mult_i = multiple_i_;
- if (mult_i > 1)
- // dim(y) = internote
- y -= (Real)(mult_i - 1) * interbeam_f / internote_f;
- if (y < MINIMUM_STEMLEN[mult_i])
- dy = dy >? (MINIMUM_STEMLEN[mult_i] - y);
+ Real y = s->stem_end_f () * dir_;
+ Stem_info info (s);
+ if (y < info.miny_f_)
+ dy = dy >? info.miny_f_ - y;
}
- } while (abs (dy) > EPSILON);
+ } while (abs (dy) > epsilon);
+
+ // ugh asymmetric symbol ?
+ if (dir_ == UP)
+ left_y_ -= dir_ * staffline_f / 4;
+
+ if ((multiple_i_ >= 3) && (dir_ == UP))
+ left_y_ -= dir_ * staffline_f / 4;
+
+ test_pos++;
+ test_pos %= 4;
}
+/*
+ FIXME
+ ugh. this is broken and should be rewritten.
+ - [c8. c32 c32]
+ */
void
Beam::set_grouping (Rhythmic_grouping def, Rhythmic_grouping cur)
{
assert (!next || next->hpos_f () > here->hpos_f ());
assert (!prev || prev->hpos_f () < here->hpos_f ());
- Real staffline_thickness = paper ()->rule_thickness ();
+ Real staffline_f = paper ()->rule_thickness ();
Real interbeam_f = paper ()->interbeam_f ();
Real internote_f =paper ()->internote_f ();
Real interline_f = 2 * internote_f;
- Real beamheight_f = 0.48 * (interline_f - staffline_thickness);
+ Real beamheight_f = 0.48 * (interline_f - staffline_f);
+
if (multiple_i_ > 3)
- interbeam_f += 2.0 * staffline_thickness / 4;
+ interbeam_f += 2.0 * staffline_f / 4;
Real dy = interbeam_f;
- Real stemdx = staffline_thickness;
+ Real stemdx = staffline_f;
Real sl = slope_f_* internote_f;
paper ()->lookup_l ()->beam (sl, 20 PT, 1 PT);
*/
return leftbeams;
}
+
#include <math.h>
#include "bezier.hh"
+#include "misc.hh"
#ifndef STANDALONE
#include "direction.hh"
Real
Bezier::y (Real x)
{
- for (int i = 1; i < curve_.size (); i++ )
- {
- if (x < curve_[i].x () || (i == curve_.size () - 1))
- {
- Offset z1 = curve_[i-1];
- Offset z2 = curve_[i];
- Real multiplier = (x - z2.x ()) / (z1.x () - z2.x ());
- Real y = z1.y () * multiplier + (1.0 - multiplier) *z2.y();
-
- return y;
- }
- }
- assert (false);
- // silly c++
- return 0;
+ // ugh
+ // bounds func should be templatised to take array of offsets too?
+ Array<Real> positions;
+ for (int i = 0; i < curve_.size (); i++)
+ positions.push (curve_[i].x ());
+
+ Slice slice = get_bounds_slice (positions, x);
+ // ugh
+ Offset z1 = curve_[0 >? slice.max () - 1];
+ Offset z2 = curve_[1 >? slice.max ()];
+ Real multiplier = (x - z2.x ()) / (z1.x () - z2.x ());
+ Real y = z1.y () * multiplier + (1.0 - multiplier) * z2.y();
+
+ return y;
}
return;
#ifndef STANDALONE
- Real epsilon = paper_l_->rule_thickness ();
+ Real internote_f = paper_l_->internote_f ();
#else
- Real epsilon = 1.5 * 0.4 PT;
+ Real internote_f = STAFFHEIGHT / 8;
#endif
+
+ //urg
+ Real epsilon = internote_f / 2;
if (abs (dy2 - dy1) < epsilon)
return;
This function tries to address two issues:
* the tangents of the slur should always point inwards
in the actual slur, i.e. *after rotating back*.
- * slurs shouldn't be too high ( <= 1.5 staffheight?)
+
+ * slurs shouldn't be too high
+ let's try : h <= 1.2 b && h <= 3 staffheight?
We could calculate the tangent of the bezier curve from
both ends going inward, and clip the slur at the point
Real staffsize_f = STAFFHEIGHT;
#endif
- Real clip_h = staffsize_f;
+ Real b = control_[3].x () - control_[0].x ();
+ Real clip_h = 1.2 * b <? 3.0 * staffsize_f;
Real begin_h = control_[1].y () - control_[0].y ();
Real end_h = control_[2].y () - control_[3].y ();
- Real begin_dy = begin_h - clip_h;
- Real end_dy = end_h - clip_h;
+ Real begin_dy = 0 >? begin_h - clip_h;
+ Real end_dy = 0 >? end_h - clip_h;
Real pi = M_PI;
Real begin_alpha = (control_[1] - control_[0]).arg () + alpha_;
Real end_alpha = pi - (control_[2] - control_[3]).arg () - alpha_;
- Real max_alpha = 1.1 * pi/2;
+ Real max_alpha = (100.0 / 90) * pi/2;
if ((begin_dy < 0) && (end_dy < 0)
&& (begin_alpha < max_alpha) && (end_alpha < max_alpha))
return false;
encompass_.rotate (alpha_);
- // ugh
origin_.y () *= dir_;
encompass_.translate (origin_);
bool again = true;
- //ugh
+
if ((begin_dy > 0) || (end_dy > 0))
{
Real dy = (begin_dy + end_dy) / 4;
else
{
//ugh
- Real c = -0.4;
+ Real c = 0.4;
if (begin_alpha >= max_alpha)
- begin_dy = c * begin_alpha / max_alpha * begin_h;
+ begin_dy = 0 >? c * begin_alpha / max_alpha * begin_h;
if (end_alpha >= max_alpha)
- end_dy = c * end_alpha / max_alpha * end_h;
+ end_dy = 0 >? c * end_alpha / max_alpha * end_h;
- Real dy = end_dy >? begin_dy;
+ encompass_[0].y () += begin_dy;
+ encompass_[encompass_.size () - 1].y () += end_dy;
- if (!experimental_features_global_b)
- {
- encompass_[0].y () += dy;
- encompass_[encompass_.size () - 1].y () += dy;
- }
- else
- {
- encompass_[0].y () += begin_dy;
- encompass_[encompass_.size () - 1].y () += end_dy;
-
- Offset delta = encompass_[encompass_.size () - 1] - encompass_[0];
- alpha_ = delta.arg ();
- alpha_ *= dir_;
- }
+ Offset delta = encompass_[encompass_.size () - 1] - encompass_[0];
+ alpha_ = delta.arg ();
}
origin_ = encompass_[0];
encompass_.translate (-origin_);
- // ugh
origin_.y () *= dir_;
encompass_.rotate (-alpha_);
void
Bezier_bow::calc_controls ()
{
- // try clipping twice
for (int i = 0; i < 3; i++)
{
if (i && !calc_clipping ())
Bezier_bow::check_fit_bo ()
{
for (int i = 1; i < encompass_.size () - 1; i++)
- if (encompass_[i].y () > y (encompass_[i].x ()))
- return false;
+ if ((encompass_[i].x () > encompass_[0].x ())
+ && (encompass_[i].x () < encompass_[encompass_.size () -1].x ()))
+ if (encompass_[i].y () > y (encompass_[i].x ()))
+ return false;
return true;
}
{
Real dy = 0;
for (int i = 1; i < encompass_.size () - 1; i++)
- dy = dy >? (encompass_[i].y () - y (encompass_[i].x ()));
+ if ((encompass_[i].x () > encompass_[0].x ())
+ && (encompass_[i].x () < encompass_[encompass_.size () -1].x ()))
+ dy = dy >? (encompass_[i].y () - y (encompass_[i].x ()));
return dy;
}
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
Array<Offset>
Bow::get_encompass_offset_arr () const
{
- Real dx = width (). length ();
- dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
- Real left_x = 0;
- Real interline = paper ()->interline_f ();
- if (dx < 2.0 * interline)
- {
- left_x = - 3.0 * interline;
- dx = 2.0 * interline;
- }
- Real dy = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
+ Offset d (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT],
+ dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
+ d.x() += width (). length ();
#define RESIZE_ICE
#ifndef RESIZE_ICE
Array<Offset> notes;
- notes.push (Offset (left_x, 0));
- notes.push (Offset (left_x + dx, dy));
+ notes.push (Offset 0, 0));
+ notes.push (d);
#else
Array<Offset> notes (2);
- notes[0] = Offset (left_x, 0);
- notes[1] = Offset (left_x + dx, dy);
+ notes[0] = Offset (0, 0);
+ notes[1] = Offset (d);
#endif
return notes;
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "boxes.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "break-align-item.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "score-column.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "change-iterator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "change-translator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "translator-group.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>,
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>,
Mats Bengtsson <matsb@s3.kth.se>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <ctype.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "p-col.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "colhpos.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "note-column.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
#include "collision.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "command-request.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "molecule.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dots.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dots.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
#include "crescendo.hh"
--- /dev/null
+/*
+ encompass-info.cc -- implement Encompass_info
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Jan Nieuwenhuizen <jan@digicash.com>
+
+*/
+
+#include "proto.hh"
+#include "stem.hh"
+#include "note-column.hh"
+#include "paper-def.hh"
+#include "encompass-info.hh"
+
+Encompass_info::Encompass_info ()
+{
+ assert (0);
+}
+
+Encompass_info::Encompass_info (Note_column const* note, Direction dir)
+{
+ Paper_def* paper = note->paper ();
+ Real interline = paper->interline_f ();
+ Real notewidth = paper->note_width ();
+ Real internote = interline / 2;
+
+ Stem* stem = note->stem_l_;
+ /*
+ set o_.x () to middle of notehead or on eo_.x ()act o_.x () position of stem,
+ according to slur direction
+ */
+ o_.x () = stem->hpos_f ();
+
+ if (stem->dir_ != dir)
+ {
+ o_.x () += 0.5 * notewidth;
+ // ugh
+ if (dir == DOWN)
+ o_.x () -= 0.5 * notewidth;
+ else
+ o_.x () += 0.5 * notewidth;
+ }
+ else if (stem->dir_ == UP)
+ o_.x () += 1.0 * notewidth;
+
+// o_.x () -= left_o_.x ();
+
+ o_.y () = stem->height ()[dir];
+
+ /*
+ leave a gap: slur mustn't touch head/stem
+ */
+ if (stem->dir_ != dir)
+ o_.y () += 3.0 * internote * dir;
+ else
+ o_.y () += 2.0 * internote * dir;
+
+ // ugh
+ if (dir == DOWN)
+ o_.y () += 1.5 * internote * dir;
+
+// o_.y () -= left_o_.y ();
+}
+
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
Sourcefile of GNU LilyPond musictypesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "music-list.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "global-translator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "gourlay-breaking.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "graphical-element.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
/*
head-grav.cc -- part of GNU LilyPond
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "note-head.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "string.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "horizontal-align-item.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "p-col.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "idealspacing.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <assert.h>
Identifier::~Identifier()
{
- if (!accessed_b_ && !init_b_)
- warning (_("Variable not used"));
}
+
void
Identifier::error (String expect)
{
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "includable-lexer.hh"
#include "source-file.hh"
LexerError (msg.ch_C ());
return;
}
-
+ filename_str_arr_.push (sl->name_str ());
char_count_stack_.push (0);
if (yy_current_buffer)
*/
yy_switch_to_buffer (yy_create_buffer (sl->istream_l (), YY_BUF_SIZE));
+
}
/** pop the inputstack. conceptually this is a destructor, but it
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef ATOM_HH
/*
audio-column.hh -- declare Audio_column
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef AUDIO_COLUMN_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
audio-item.hh -- declare Audio_items
- (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1996, 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef AUDIO_ITEM_HH
/*
audio-staff.hh -- declare Audio_staff
- (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1996, 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef AUDIO_STAFF_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
beam and that point in the correct direction */
class Beam: public Directional_spanner {
public:
- /** The beams (especially at small slopes) should be prevented to
- conflict with the stafflines. This necessitates some quantisation
- of start and end posititons of the beam.
+ /**
+ The beams should be prevented to conflict with the stafflines,
+ especially at small slopes.
*/
- enum Pos { NONE, SIT = 1, STRADDLE = 2, HANG = 4, INTER = 8 };
- // ugh, silly C++ (Pos::NONE vs Quantise::NONE)
- enum Quantise { NUNE, NORMAL, TRADITIONAL };
+ enum Quantisation { NONE, NORMAL, TRADITIONAL, TEST };
Link_array<Stem> stems_;
/// the slope of the beam in posns / point (dimension)
/// should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams
int damping_i_;
/// should beam pos / slope be quantised? 0: no, 1: yes, 2: traditional
- Quantise quantisation_;
+ Quantisation quantisation_;
/// maximum number of beams (for opening-up of beam-spacing)
int multiple_i_;
virtual void do_print() const;
- virtual void quantise_left_y (Beam::Pos pos, bool extend_b);
+ virtual void quantise_left_y (bool extend_b);
virtual Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const;
virtual void solve_slope ();
- virtual void quantise_yspan ();
+ virtual void quantise_dy ();
virtual Molecule*brew_molecule_p () const;
};
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
colhpos.hh -- part of GNU LilyPond
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef COLHPOS_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
--- /dev/null
+/*
+ encompass-info.hh -- declare Encompass_info
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Jan Nieuwenhuizen <jan@digicash.com>
+
+*/
+
+#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);
+
+ Offset o_;
+};
+
+#endif // ENCOMPASS_INFO_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
--- /dev/null
+/*
+ file-results.hh -- declare
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+
+ */
+
+#ifndef FILE_RESULTS_HH
+#define FILE_RESULTS_HH
+#include "fproto.hh"
+
+void do_one_file (String init_str, String file_str);
+
+extern Array<String> target_str_global_array;
+extern Array<String> inclusion_global_array;
+extern Link_array<Score> score_global_array;
+void do_scores ();
+void clear_scores ();
+
+
+#endif /* FILE_RESULTS_HH */
+
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
head-grav.hh -- part of GNU LilyPond
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "virtual-methods.hh"
#define IDACCESSOR( Input_staff, staff)\
- virtual Input_staff * staff () { error (#Input_staff); return 0; }
+virtual Input_staff * staff () { error (#Input_staff); return 0; }
/**
A declarable data structure in mudela.
*/
struct Identifier : public Input {
- bool init_b_;
- bool accessed_b_;
- int token_code_i_;
+ bool init_b_;
+ bool accessed_b_;
+ int token_code_i_;
- Identifier (int code) ;
- virtual ~Identifier() ;
+ Identifier (int code) ;
+ virtual ~Identifier() ;
- void print() const;
- DECLARE_MY_RUNTIME_TYPEINFO;
- void error (String);
- IDACCESSOR(Translator, translator)
+ void print() const;
+ DECLARE_MY_RUNTIME_TYPEINFO;
+ void error (String);
+ IDACCESSOR(Translator, translator)
IDACCESSOR(Music, music)
IDACCESSOR(General_script_def, script)
IDACCESSOR(Symtables, symtables)
IDACCESSOR(int, intid)
IDACCESSOR(Duration, duration)
-protected:
- virtual void do_print() const=0;
+ protected:
+ virtual void do_print() const=0;
private:
- Identifier (Identifier const&);
+ Identifier (Identifier const&);
};
#define DECLARE_ID_CLASS(Idclass, Class, accessor) \
struct Idclass : Identifier {\
- Class *data_p_; \
- DECLARE_MY_RUNTIME_TYPEINFO; \
- Idclass (Class*st, int code);\
- virtual Class* accessor ();\
- ~Idclass();\
- virtual void do_print() const; \
+ Class *data_p_; \
+ DECLARE_MY_RUNTIME_TYPEINFO; \
+ Idclass (Class*st, int code);\
+ virtual Class* accessor ();\
+ ~Idclass();\
+ virtual void do_print() const; \
}\
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
Array<Source_file*> include_stack_;
Array<int> char_count_stack_;
public:
+ /// store dependencies for Makefile stuff.
+ Array<String> filename_str_arr_;
Source_file* source_file_l () const;
void new_input (String s,Sources*);
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef ITEM_HH
#define ITEM_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef KEY_PERFOMER_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef LILY_PROTO_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#error
/*
local-key-grav.hh -- declare Local_key_engraver
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef LOOKUPSYMS_HH
Atom fill (Box b) const;
Atom beam_element (int,int,Real=0) const;
- /// round slope to closest TeXslope
- Atom beam (Real&,Real, Real) const;
- Atom ps_beam (Real, Real, Real)const;
+ Atom beam (Real,Real, Real) const;
+ Atom ps_beam (Real, Real, Real) const;
Atom streepje (int type) const;
Atom dots () const;
Atom slur (Array<Offset> controls) const;
- Atom plet (Real &dy, Real &dx, Direction dir) const;
+ Atom plet (Real dy, Real dx, Direction dir) const;
Atom text (String style, String text, int align = 1) const;
Atom script (String idx) const;
- Atom hairpin (Real & width, bool decresc, bool continued) const;
+ Atom hairpin (Real width, bool decresc, bool continued) const;
Atom dynamic (String) const;
};
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef MAIN_HH
#define MAIN_HH
extern bool no_timestamps_global_b;
extern int exit_status_i_;
extern bool experimental_features_global_b;
+extern bool dependency_global_b;
+extern bool version_ignore_global_b;
+
+extern Array<String> get_inclusion_names ();
+extern void set_inclusion_names (Array<String>);
extern String default_outname_base_global;
extern String default_outname_suffix_global;
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef METER_PERFOMER_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
/*
midi-item.hh -- declare Midi items
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef MIDI_ITEM_HH
/*
midi-stream.hh -- declare Midi_stream
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef MIDI_STREAM_HH
/*
midi-walker.hh -- declare Midi_walker
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef MISC_HH
#define MISC_HH
-#include "lily-proto.hh"
#include "real.hh"
-#include "moment.hh"
-#include "scalar.hh"
-#include "grouping.hh"
+#include "varray.hh"
+#include "interval.hh"
-Moment wholes (int dur, int dots);
double log_2(double x) ;
int intlog2(int d);
#if ! defined(_ABS_)
else return 0;
}
+#ifndef STANDALONE
+#include "lily-proto.hh"
Interval itemlist_width (const Array<Item*> &its);
+#endif
+
+int get_lower_bound (Array<Real> const& positions, Real x);
+Slice get_bounds_slice (Array<Real> const& positions, Real x);
+Interval get_bounds_iv (Array<Real> const& positions, Real x);
+Interval quantise_iv (Array<Real> const& positions, Real period, Real x);
#endif
+
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef MOLECULE_HH
#define MOLECULE_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
{
public:
Dictionary<Translator*> translator_p_dict_;
+ Array<String> filename_str_arr_;
+
+
Music_output_def (Music_output_def const&);
Music_output_def ();
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef LEXER_HH
bool post_quotes_b_;
char escaped_char(char) const;
public:
+ String main_input_str_;
void * lexval_l;
-
+
Notename_table *note_tab_p_;
Dictionary<Identifier*> *identifier_p_dict_p_;
Keyword_table * keytable_p_;
/* *************** */
+ void start_main_input ();
void clear_notenames();
Identifier*lookup_identifier (String s);
Melodic_req* lookup_melodic_req_l (String s);
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
void set_debug();
void set_yydebug (bool);
- void print_declarations();
bool ignore_version_b_;
public:
void do_init_file();
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
note-performer.hh -- declare Note_performer
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
performance.hh -- declare Performance
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef PERFORMANCE_HH
/*
performer-group-performer.hh -- declare Performer_group_performer
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
/*
performer.hh -- declare Performer
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef PLET_ENGRAVER_HH
/*
plet-spanner.hh -- part of GNU LilyPond
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#ifndef PLET_SPANNER_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef QLP_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef REQUEST_HH
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
score-performer.hh -- declare Score_performer
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
script-grav.hh -- part of GNU LilyPond
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
/*
slur-grav.hh -- declare Slur_engraver
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
staff-performer.hh -- declare Staff_performer
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "real.hh"
struct Stem_info {
- Real x;
+ Real x_;
int dir_;
Real idealy_f_;
Real miny_f_;
- int beams_i_;
+ int mult_i_;
- Stem_info();
+ Stem_info ();
Stem_info (Stem const *);
};
int beams_left_i_;
int beams_right_i_;
+ /// maximum number of beams
+ int mult_i_;
+
Direction dir_;
/* *************** */
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "ineq-constrained-qp.hh"
#include "qlpsolve.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "p-score.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Todo: key undo, special keys.
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
keyplacement by Mats Bengtsson
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "key-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
TODO
transposition.
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <iostream.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "staff-sym.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
*/
/*
local-key-reg.cc -- implement Local_key_engraver
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "musical-request.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dimen.hh"
#include "local-key-item.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
TODO
This doth suck. We should have PS output, and read spacing info from TFMs
}
Atom
-Lookup::hairpin (Real &wid, bool decresc, bool continued) const
+Lookup::hairpin (Real width, bool decresc, bool continued) const
{
String embed;
Atom ret;
Real height = paper_l_->get_var ("barsize") / 6;
embed = "\\embeddedps{\n" ;
- embed += String (wid) + " "
+ embed += String (width) + " "
+ String (height) + " "
+ String (continued ? height/2 : 0) +
+ " draw_" + String(decresc ? "de" : "") + "cresc}\n";
ret.tex_ = embed;
- ret.dim_.x () = Interval (0,wid);
- ret.dim_.y () = Interval (-2*height,2*height);
+ ret.dim_.x () = Interval (0, width);
+ ret.dim_.y () = Interval (-2*height, 2*height);
return ret;
}
Atom bracket = (*symtables_p_)("param")->lookup ("bracket");
Interval ydims = bracket.dim_[Y_AXIS];
-
Real min_y = ydims[LEFT];
Real max_y = ydims[RIGHT];
Real step = 1.0 PT;
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "lyric-engraver.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "lyric-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <stdlib.h>
#include "misc.hh"
#include "string.hh"
#include "main.hh"
-#include "path.hh"
+#include "file-path.hh"
#include "config.hh"
-#include "source.hh"
+#include "file-results.hh"
#include "debug.hh"
-#include "my-lily-parser.hh"
-static bool version_ignore_b = false;
-Sources* source_global_l = 0;
+
+bool version_ignore_global_b = false;
bool no_paper_global_b = false;
bool no_timestamps_global_b = false;
+String default_outname_base_global = "lelie";
+int default_count_global;
bool experimental_features_global_b = false;
+bool dependency_global_b = false;
int exit_status_i_;
{0, "warranty", 'w'},
{0, "help", 'h'},
{0, "test", 't'},
- {0, "debug", 'd'},
+ {0, "debug", 'D'},
{1, "init", 'i'},
{1, "include", 'I'},
{0, "no-paper", 'M'},
-
+ {0, "dependencies", 'd'},
{0, "no-timestamps", 'T'},
{0, "ignore-version", 'V'},
{0,0,0}
"Typeset and or produce midi output from mudela-file or stdin\n"
"\n"
"Options:\n"
- " -d, --debug enable debugging output\n"
+ " -D, --debug enable debugging output\n"
+ " -d, --dependencies write dependency files for every output\n"
" -I, --include=DIR add DIR to search path\n"
" -i, --init=FILE use FILE as init file\n"
" -h, --help this help\n"
}
-static File_path path;
+ File_path path;
-void
-do_one_file (String init_str, String file_str)
-{
- if (init_str.length_i () && path.find (init_str).empty_b ())
- {
- error (_("Can not find `") + init_str +"\'");
- return ;
- }
- if (file_str.length_i () && path.find (file_str).empty_b ())
- {
- error (_("Can not find `") + file_str + "'");
- return ;
- }
-
- Sources sources;
- source_global_l = &sources;
- source_global_l->set_path (&path);
- {
- My_lily_parser parser (source_global_l);
- parser.set_version_check (version_ignore_b);
- parser.parse_file (init_str, file_str);
-
- if (file_str.length_i () && file_str[0] != '-')
- {
- String a,b,c,d;
- split_path (file_str, a, b, c, d);
- default_outname_base_global = c;
- }
- else
- default_outname_base_global = "lelie";
-
- if (parser.error_level_i_)
- {
- exit_status_i_ = 1;
- }
- else
- do_scores ();
- clear_scores ();
- }
- source_global_l = 0;
-}
void
identify ()
exit (0);
break;
case 'V':
- version_ignore_b = true;
+ version_ignore_global_b = true;
break;
case 'd':
+ dependency_global_b = true;
+ break;
+ case 'D':
set_debug (true);
break;
case 'M':
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "meter-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "meter-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <math.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "proto.hh"
//
// source file of the GNU LilyPond music typesetter
//
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+// (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
#include <fstream.h>
#include "string.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <math.h>
-#include "item.hh"
#include "misc.hh"
-#include "moment.hh"
+
+#ifndef STANDALONE
+#include "item.hh"
+#endif
int
intlog2(int d) {
return log (x) /log (2.0);
}
-#if 1
+#ifndef STANDALONE
Interval
itemlist_width (const Array<Item*> &its)
{
}
#endif
+
+
+/*
+ TODO
+ group in some Array_*
+ make more generic / templatise
+ */
+int
+get_lower_bound (Array<Real> const& positions, Real x)
+{
+ if (x < positions[0])
+ return 0;
+ for (int i = 1; i < positions.size (); i++)
+ if (x < positions[i])
+ return i - 1;
+ return positions.size () - 1;
+}
+
+Slice
+get_bounds_slice (Array<Real> const& positions, Real x)
+{
+ int l = get_lower_bound (positions, x);
+ int u = positions.size () - 1 <? l + 1;
+ if (x < positions[l])
+ u = l;
+ return Slice (l, u);
+}
+
+Interval
+get_bounds_iv (Array<Real> const& positions, Real x)
+{
+ Slice slice = get_bounds_slice (positions, x);
+ return Interval (positions[slice.min ()], positions[slice.max ()]);
+}
+
+// silly name
+Interval
+quantise_iv (Array<Real> const& positions, Real period, Real x)
+{
+ /*
+ ugh
+ assume that
+ * positions are sorted,
+ * positions are nonnegative
+ * period starts at zero
+ */
+
+ int n = (int)(x / period);
+ Real frac = (x / period - n) * period;
+ if (frac < 0)
+ {
+ frac += period;
+ n--;
+ }
+
+ Slice slice = get_bounds_slice (positions, frac);
+ Interval iv(positions[slice.min ()], positions[slice.max ()]);
+
+ if (slice.min () == slice.max ())
+ {
+ if (slice.min () == 0)
+ iv.min () = - period + positions.top ();
+ else
+ iv.max () = period + positions[0];
+ }
+
+ iv += period * n;
+
+ return iv;
+}
+
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "interval.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
#include "music-list.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+
#include "debug.hh"
#include "music-output-def.hh"
#include "global-translator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "musical-request.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <strstream.h>
#include "debug.hh"
#include "source-file.hh"
#include "parseconstruct.hh"
+#include "main.hh"
static Keyword_ent the_key_tab[]={
{"accepts", ACCEPTS},
return (*identifier_p_dict_p_)[s];
}
+void
+My_lily_lexer::start_main_input ()
+{
+ if (!monitor->silent_b ("InitDeclarations") && check_debug)
+ print_declarations (true);
+ if (!monitor->silent_b ("InitLexer") && check_debug)
+ set_debug (1);
+
+ new_input (main_input_str_, source_global_l);
+
+ print_declarations(true);
+}
void
My_lily_lexer::set_identifier (String name_str, Identifier*i)
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "my-lily-parser.hh"
#include "command-request.hh"
#include "parser.hh"
#include "header.hh"
-
+#include "file-results.hh"
My_lily_parser::My_lily_parser (Sources * source_l)
{
{
ignore_version_b_ = ig;
}
-void
-My_lily_parser::set_debug()
-{
-#ifndef NPRINT
- String s = "";
- if (init_parse_b_)
- s = "Init";
- set_yydebug (!monitor->silent_b (s+"Parser") && check_debug);
- lexer_p_->set_debug (!monitor->silent_b (s+"Lexer") && check_debug);
-#endif
-}
-
-void
-My_lily_parser::print_declarations()
-{
-#ifndef NPRINT
- String s = "";
-
- if (init_parse_b_)
- s = "Init";
- if (!monitor->silent_b (s+"Declarations") && check_debug)
- {
- lexer_p_->print_declarations (init_parse_b_);
- }
-#endif
-}
void
My_lily_parser::parse_file (String init, String s)
{
lexer_p_ = new My_lily_lexer;
init_str_ = init;
+ lexer_p_->main_input_str_ = s;
*mlog << _("Parsing ... ");
- init_parse_b_ = true;
- set_debug();
- lexer_p_->new_input (init, source_l_);
- do_yyparse();
-
- if (error_level_i_)
- {
- error (_("Found errors in init files"));
- }
- print_declarations();
-
init_parse_b_ = false;
- set_debug();
- lexer_p_->new_input (s , source_l_);
- do_yyparse();
- print_declarations();
+ set_yydebug (!monitor->silent_b ("Parser") && check_debug);
+ lexer_p_->new_input (init, source_l_);
+ do_yyparse ();
if (!define_spot_array_.empty())
warning (_("Braces don't match."));
error_level_i_ = 1;
}
+
+ inclusion_global_array = lexer_p_->filename_str_arr_;
}
void
My_lily_parser::set_last_duration (Duration const *d)
{
if (last_duration_mode_b_)
- default_duration_ = *d;
+ {
+ default_duration_ = *d;
+ /*
+ forget plet part,
+ sticky plet factor only within plet brackets
+ */
+ default_duration_.set_plet (1, 1);
+ }
}
else if ((duration_p->plet_.type_i_ == 1) && (duration_p->plet_.iso_i_ > 1))
{
Multi_measure_rest_req* m = new Multi_measure_rest_req;
- plet_.iso_i_ = 1;
- default_duration_.plet_.iso_i_ = 1;
+ // these shouldn't be necessary anymore
+// plet_.iso_i_ = 1;
+// default_duration_.plet_.iso_i_ = 1;
m->duration_ = *duration_p;
m->set_spot (here_input());
velt_p->add (m);
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dot-column.hh"
#include "note-column.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "misc.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1996, 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "note-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "notename-table.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "outputter.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "p-col.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "main.hh"
#include "word-wrap.hh"
#include "gourlay-breaking.hh"
#include "outputter.hh"
-
+#include "file-results.hh"
// sucking Cygnus egcs - w32
#include "list.tcc"
#include "cursor.tcc"
Paper_score::tex_output ()
{
// output
- String outname = paper_l_->outfile_str_ ;
- if (outname.empty_b ())
+ String base_outname = paper_l_->outfile_str_ ;
+ if (base_outname.empty_b ())
{
- outname = default_outname_base_global;
+ base_outname = default_outname_base_global;
int def = paper_l_->get_next_default_count ();
if (def)
{
- outname += "-" + String(def);
+ base_outname += "-" + String(def);
}
- outname += ".tex";
}
+
+ String outname = base_outname + ".tex";
+ target_str_global_array.push (outname);
+
+
*mlog << _("TeX output to ") << outname << " ...\n";
Tex_stream tex_out (outname);
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <math.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <time.h>
#include "audio-staff.hh"
#include "performance.hh"
#include "score.hh"
+#include "file-results.hh"
Performance::Performance ()
{
Midi_stream midi_stream (out);
*mlog << _("MIDI output to ") << out<< " ..." << endl;
+ target_str_global_array.push (out);
output (midi_stream);
*mlog << endl;
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
plet-engraver.cc -- implement Plet_engraver
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "atom.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "musical-request.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "property-iterator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <math.h>
#include "string-convert.hh"
Atom
-Lookup::plet (Real& dy , Real& dx, Direction dir) const
+Lookup::plet (Real dy , Real dx, Direction dir) const
{
String ps = "\\embeddedps{\n";
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
TODO:
try fixed point arithmetic, to speed up lily.
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "translator-group.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "request.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "rest-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "molecule.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "rhythmic-column-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "rhythmic-head.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "score-elem-info.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "outputter.hh"
#include "p-score.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "super-elem.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1996, 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "score-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "score.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "scoreline.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
-
+#include <fstream.h>
#include "main.hh"
#include "score.hh"
#include "string.hh"
#include "header.hh"
#include "debug.hh"
#include "parray.hh"
+#include "file-path.hh"
+#include "file-results.hh"
+#include "my-lily-parser.hh"
+#include "source.hh"
+
+Sources* source_global_l = 0;
+Array<String> inclusion_global_array;
+Array<String> target_str_global_array;
+Link_array<Score> score_global_array;
+
+
+void write_dependency_file (String fn, Array<String> targets,
+ Array<String> deps)
+{
+ const int WRAPWIDTH = 65;
+
+
+ cout << "Writing dependency file " << fn << " ...\n";
+ ofstream f (fn.ch_C ());
+ if (!f)
+ warning ( _("Can't open dependency file `" + fn + "\'"));
+
+ f << "# Automatically generated by " << get_version_str () << "\n";
+ String out;
+ for (int i=0; i < targets.size (); i ++)
+ out += targets[i] + " ";
+ out += ": ";
+ for (int i=0; i < deps.size (); i ++)
+ {
+ if (out.length_i() > WRAPWIDTH)
+ {
+ f << out << "\\\n";
+ out = " ";
+ }
+ out += " " + deps[i];
+ }
+ f << out << endl;
+}
-static Link_array<Score> global_score_array;
-String default_outname_suffix_global = "";
-String default_outname_base_global = "lelie";
-int default_count_global;
+void
+do_deps()
+{
+ if (dependency_global_b)
+ {
+ write_dependency_file (default_outname_base_global + ".dep", target_str_global_array,
+ inclusion_global_array);
+ }
+}
void
do_scores()
{
- for (int i=0; i < global_score_array.size(); i++)
+ for (int i=0; i < score_global_array.size(); i++)
{
-// Score *&is_p = global_score_array[i];
- Score* is_p = global_score_array[i];
+ Score* is_p = score_global_array[i];
if (!is_p->header_p_)
is_p->header_p_ = new Header;
is_p->process();
}
}
+ do_deps ();
}
void
clear_scores ()
{
- for (int i=0; i < global_score_array.size(); i++)
+ for (int i=0; i < score_global_array.size(); i++)
{
- delete global_score_array[i];
+ delete score_global_array[i];
}
- global_score_array.clear();
+ score_global_array.clear();
+ inclusion_global_array.clear ();
}
+extern File_path path;
+
void
-add_score (Score * s)
+do_one_file (String init_str, String file_str)
{
- global_score_array.push (s);
-}
+ if (init_str.length_i () && path.find (init_str).empty_b ())
+ {
+ error (_("Can not find `") + init_str +"\'");
+ return ;
+ }
+ if (file_str.length_i () && path.find (file_str).empty_b ())
+ {
+ error (_("Can not find `") + file_str + "'");
+ return ;
+ }
+
+ Sources sources;
+ source_global_l = &sources;
+ source_global_l->set_path (&path);
+ {
+ My_lily_parser parser (source_global_l);
+ parser.set_version_check (version_ignore_global_b);
+ parser.parse_file (init_str, file_str);
+
+ if (file_str.length_i () && file_str[0] != '-')
+ {
+ String a,b,c,d;
+ split_path (file_str, a, b, c, d);
+ default_outname_base_global = c;
+ }
+ else
+ default_outname_base_global = "lelie";
+
+ if (parser.error_level_i_)
+ {
+ exit_status_i_ = 1;
+ }
+ else
+ do_scores ();
+ clear_scores ();
+ }
+ source_global_l = 0;
+}
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "script-column.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
/*
script-reg.cc -- implement Script_engraver
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "script-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "script-def.hh"
#include "musical-request.hh"
/*
slur-grav.cc -- implement Slur_engraver
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "debug.hh"
#include "boxes.hh"
#include "bezier.hh"
+#include "encompass-info.hh"
// #include "main.hh"
IMPLEMENT_IS_TYPE_B1(Slur,Bow);
encompass_arr_.sort (Note_column_compare);
if (!dir_)
set_default_dir ();
- Real interline_f = paper ()->interline_f ();
- Real inter_f = interline_f / 2;
+
+ Real interline = paper ()->interline_f ();
+ Real internote = interline / 2;
+ Real notewidth = paper ()->note_width ();
+ Real const SLUR_MIN = 2.0 * interline;
/*
[OSU]: slur and tie placement
* suggested gap = ss / 5;
*/
// jcn: 1/5 seems so small?
- Real gap_f = interline_f / 2; // 5;
+ Real gap_f = interline / 2; // 5;
Drul_array<Note_column*> extrema;
extrema[LEFT] = encompass_arr_[0];
extrema[RIGHT] = encompass_arr_.top ();
Direction d=LEFT;
- Real nw_f = paper ()->note_width ();
do
{
+ /*
+ broken slur
+ */
if (extrema[d] != spanned_drul_[d])
{
dx_f_drul_[d] = -d
- *(spanned_drul_[d]->width ().length () -0.5*nw_f);
+ *(spanned_drul_[d]->width ().length () -0.5*notewidth);
Direction u = d;
flip(&u);
if ((extrema[u] == spanned_drul_[u]) && extrema[u]->stem_l_)
dy_f_drul_[d] = extrema[u]->stem_l_->height ()[dir_];
dy_f_drul_[u] = extrema[u]->stem_l_->height ()[dir_];
}
+
+ // prebreak
+ if (d == RIGHT)
+ {
+ dx_f_drul_[LEFT] = spanned_drul_[LEFT]->width ().length ();
+// dx_f_drul_[LEFT] -= 2 * notewidth;
+
+ // urg
+ if (encompass_arr_.size () > 1)
+ dx_f_drul_[RIGHT] += notewidth;
+ }
+
+ // postbreak
+ if (d == LEFT)
+ dy_f_drul_[d] += 2.0 * dir_ * internote;
}
+ /*
+ normal slur
+ */
else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_)
{
dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height ()[dir_]);
- dx_f_drul_[d] += 0.5 * nw_f - d * gap_f;
+ dx_f_drul_[d] += 0.5 * notewidth - d * gap_f;
if (dir_ == extrema[d]->stem_l_->dir_)
{
if (dir_ == d)
- dx_f_drul_[d] += 0.5 * (dir_ * d) * d * nw_f;
+ dx_f_drul_[d] += 0.5 * (dir_ * d) * d * notewidth;
else
- dx_f_drul_[d] += 0.25 * (dir_ * d) * d * nw_f;
+ dx_f_drul_[d] += 0.25 * (dir_ * d) * d * notewidth;
}
}
else
{
dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval ()
- [dir_])* inter_f;
+ [dir_])* internote;
}
- dy_f_drul_[d] += dir_ * interline_f;
+ dy_f_drul_[d] += dir_ * interline;
}
while (flip(&d) != LEFT);
+
+ // now that both are set, do dependent
+ do
+ {
+ /*
+ broken slur
+ */
+ if (extrema[d] != spanned_drul_[d])
+ {
+ // pre and post
+ if (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT] < SLUR_MIN)
+ {
+ dx_f_drul_[d] -= d * SLUR_MIN
+ - (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+ dx_f_drul_[d] = dx_f_drul_[(Direction)-d] + d * SLUR_MIN;
+ }
+ dy_f_drul_[d] = dy_f_drul_[(Direction)-d];
+ }
+ }
+ while (flip(&d) != LEFT);
}
Array<Offset>
Slur::get_encompass_offset_arr () const
{
- Real interline = paper ()->interline_f ();
- Real notewidth = paper ()->note_width ();
- Real internote = interline / 2;
-
- Stem* left_stem = encompass_arr_[0]->stem_l_;
- Real left_x = left_stem->hpos_f ();
- left_x += dx_f_drul_[LEFT];
+ Offset left = Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT]);
+ left.x () += encompass_arr_[0]->stem_l_->hpos_f ();
- Real left_y = dy_f_drul_[LEFT];
+ Offset d = Offset (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT],
+ dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
+ d.x () += width ().length ();
- Real dx = width ().length ();
- dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
- dx = dx <? 1000;
- dx = dx >? 2.0 * interline;
-
- Real dy = (dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
- if (abs (dy) > 1000)
- dy = sign (dy) * 1000;
-
- Real start_x = 0;
- Real start_y = left_y - dy_f_drul_[LEFT];
int first = 1;
int last = encompass_arr_.size () - 1;
- // broken slur first part
+ // prebreak
if (encompass_arr_[0] != spanned_drul_[LEFT])
- {
- first = 0;
- left_x = spanned_drul_[LEFT]->width ().length ();
- left_x -= 2 * notewidth;
- // urg
- start_x = left_x - 2 * notewidth;
+ first--;
- // urg
- if (encompass_arr_.size () > 1)
- dx += notewidth;
-
- if (dx < 2.0 * interline)
- {
- left_x -= 2.0 * interline - dx;
- dx = 2.0 * interline;
- start_x = left_x;
- }
+ // postbreak
+ if (encompass_arr_.top () != spanned_drul_[RIGHT])
+ last++;
- if (dir_ == UP)
- left_y = left_y >? dy_f_drul_[LEFT];
- else
- left_y = left_y <? dy_f_drul_[LEFT];
- start_y = left_y - dy_f_drul_[LEFT];
+#define RESIZE_ICE
+#ifndef RESIZE_ICE
- dy = 0;
- }
+ Array<Offset> notes;
+ notes.push (Offset (0,0));
- // broken slur second part
- if (encompass_arr_.top () != spanned_drul_[RIGHT])
+ for (int i = first; i < last; i++)
{
- left_y += 2.0 * dir_ * internote;
- start_y = left_y - dy_f_drul_[LEFT];
- last += 1;
- dy = 0;
+ Encompass_info info (encompass_arr_[i], dir_);
+ notes.push (info.o_ - left);
}
+ notes.push (d);
-#define RESIZE_ICE
-#ifndef RESIZE_ICE
- Array<Offset> notes;
- notes.push (Offset (start_x, start_y));
#else
+
int n = last - first + 2;
Array<Offset> notes (n);
- notes[0] = Offset (start_x, start_y);
-#endif
+ notes[0] = Offset (0,0);
+
for (int i = first; i < last; i++)
{
- Stem* stem = encompass_arr_[i]->stem_l_;
- /*
- set x to middle of notehead or on exact x position of stem,
- according to slur direction
- */
- Real x = stem->hpos_f ();
-
- if (stem->dir_ != dir_)
- {
- x += 0.5 * notewidth;
- // ugh
- if (dir_ == DOWN)
- x -= 0.5 * notewidth;
- else
- x += 0.5 * notewidth;
- }
- else if (stem->dir_ == UP)
- x += 1.0 * notewidth;
-
- x -= left_x;
-
- Real y = stem->height ()[dir_];
-
- /*
- leave a gap: slur mustn't touch head/stem
- */
- y += 2.5 * internote * dir_;
-
- // ugh
- if (dir_ == DOWN)
- y += 1.5 * internote * dir_;
-
- y -= left_y;
-
-#ifndef RESIZE_ICE
- notes.push (Offset (x, y));
+ Encompass_info info (encompass_arr_[i], dir_);
+ notes[i - first + 1] = info.o_ - left;
}
- notes.push (Offset (start_x + dx, start_y + dy));
-#else
- notes[i - first + 1] = Offset (x, y);
- }
- notes[n - 1] = Offset (start_x + dx, start_y + dy);
+ notes[n - 1] = Offset (d);
+
#endif
return notes;
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "span-bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dimen.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "span-score-bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "span-score-bar.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996, 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "staff-performer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "interval.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "staff-sym-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "staff-sym.hh"
#include "lookup.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "stem-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
Stem_info::Stem_info (Stem const *s)
{
- x = s->hpos_f ();
+ x_ = s->hpos_f ();
dir_ = s->dir_;
- beams_i_ = 0 >? (abs (s->flag_i_) - 2);
+ mult_i_ = s->mult_i_;
/*
[todo]
- * get algorithm
- * runtime
+ * get algorithm runtime
Breitkopf + H\"artel:
miny_f_ = interline + #beams * interbeam
*/
Real internote_f = s->paper ()->internote_f ();
- Real interline_f = 2 * internote_f;
- Real notehead_y = interline_f;
- // huh? why do i seem to need the / 2 ?
+ Real interline_f = 2.0 * internote_f;
Real interbeam_f = s->paper ()->interbeam_f ();
- // Real interbeam_f = s->paper ()->interbeam_f () / 2;
- // perhaps bo dim (y) = internote?
+ Real staffline_f = s->paper ()->rule_thickness ();
+ Real beam_f = 0.48 * (interline_f - staffline_f);
- idealy_f_ = dir_ * s->stem_begin_f () + beams_i_ * interbeam_f;
- if (beams_i_ < 3)
- idealy_f_ += 2 * interline_f;
- else
- idealy_f_ += 1.5 * interline_f;
- idealy_f_ /= internote_f;
- miny_f_ = dir_ * s->stem_begin_f () + 2 + beams_i_ * interbeam_f / internote_f;
-
- idealy_f_ = miny_f_ >? idealy_f_;
- // assert (miny_f_ <= idealy_f_);
+ if (check_debug && !monitor->silent_b ("Stem_info"))
+ {
+ static int i = 1;
+ cout << "******" << i++ << "******" << endl;
+ cout << "begin_f: " << s->stem_begin_f () * dir_ << endl;
+ // urg urg urg
+ cout << "chord_f/i: " << s->chord_start_f () * dir_ / internote_f << endl;
+ }
+
+ /*
+ For simplicity, we'll assume dir = UP and correct if
+ dir = DOWN afterwards.
+ */
+ idealy_f_ = s->chord_start_f () * dir_ / internote_f;
+ idealy_f_ *= internote_f;
+
+ idealy_f_ += interbeam_f * mult_i_;
+
+ miny_f_ = idealy_f_;
+
+ // B"arenreiter
+ if (mult_i_ < 3)
+ idealy_f_ += 2.0 * interline_f;
+ else
+ idealy_f_ += 1.5 * interline_f;
+
+ miny_f_ += 1.0 * interline_f;
+
+ // lowest beam of (UP) beam must never be lower than second staffline
+ miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f
+ + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1));
+
+ idealy_f_ /= internote_f;
+ miny_f_ /= internote_f;
+
+ if (check_debug && !monitor->silent_b ("Stem_info"))
+ {
+ cout << "dir_: " << dir_ << endl;
+ cout << "mult_i_: " << mult_i_ << endl;
+ cout << "idealy_f_: " << idealy_f_ << endl;
+ cout << "miny_f_: " << miny_f_ << endl;
+ }
+
+ idealy_f_ = miny_f_ >? idealy_f_;
}
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
TODO: This is way too hairy
*/
beam_l_ = 0;
beams_left_i_ = 0;
beams_right_i_ = 0;
+ mult_i_ = 0;
yextent_drul_[DOWN] = yextent_drul_[UP] = 0;
flag_i_ = 2;
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "super-elem.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "swallow-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "swallow-perf.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "misc.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "line-spacer.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "atom.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef __CYGWIN32__
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <limits.h>
#include "interval.tcc"
template INTERVAL__INSTANTIATE(Rational);
-template INTERVAL__INSTANTIATE(int);
#include "compare.hh"
return a.str ();
}
-int
-Interval_t<int>::infinity()
-{
- return INT_MAX;
-}
-
-String
-Interval_t<int>::T_to_str (int i)
-{
- return String (i);
-}
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
/*
}
Atom
-Lookup::beam(Real &slope, Real width, Real y_thick) const
+Lookup::beam(Real slope, Real width, Real thick) const
{
- Atom a( ps_beam (slope, width, y_thick));
- Real slope_y =slope * width;
- Real min_y = (0 <? slope_y )- y_thick/2;
- Real max_y = (0 >? slope_y) + y_thick/2;
+ Atom a (ps_beam (slope, width, thick));
+ Real height = slope * width;
+ Real min_y = (0 <? height) - thick/2;
+ Real max_y = (0 >? height) + thick/2;
a.dim_[X_AXIS] = Interval(0, width);
a.dim_[Y_AXIS] = Interval(min_y, max_y);
}
Atom
-Lookup::ps_beam (Real slope, Real width, Real y_thickness)const
+Lookup::ps_beam (Real slope, Real width, Real thick) const
{
String ps = "\\embeddedps{\n";
- ps += String (width) + " "+ String (slope) + " " + String (y_thickness)
+ ps += String (width) + " "+ String (slope) + " " + String (thick)
+ " draw_beam}";
- /*
- beam parts are rarely wider than 100pt:
- precision of 4 yields maximum (half beam spanning half a page)
- error of: 1%% * 3*72pt === 0.2pt = 0.07mm
- */
- String width_str = String_convert::precision_str (width, 4);
- String slope_str = String_convert::precision_str (slope, 4);
- String thick_str = String_convert::precision_str (y_thickness, 3);
- String name = "feta-beum-" + width_str + "-" + slope_str + "-" + thick_str;
-
- int i;
- while ((i = name.index_i ('.')) != -1)
- name[i]= 'x';
-
-
-
Atom s;
s.tex_ = ps;
return s;
}
+
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "dimen.hh"
source file of the GNU LilyPond music typesetter
- (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "debug.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "molecule.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "tie-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "paper-def.hh"
void
Tie::do_post_processing()
{
- Real nw_f = paper ()->note_width ();
- Real interline_f = paper ()->interline_f ();
assert (head_l_drul_[LEFT] || head_l_drul_[RIGHT]);
+ Real notewidth = paper ()->note_width ();
+ Real interline_f = paper ()->interline_f ();
+ Real const TIE_MIN = 2.0 * interline_f;
+
/*
[OSU]: slur and tie placement
do
{
+ // tie attached to outer notehead
if (head_l_drul_[d] && head_l_drul_[d]->extremal_i_)
{
- /* normal tie between noteheads, with gap of space */
if (d == LEFT)
- dx_f_drul_[d] += nw_f;
+ dx_f_drul_[d] += notewidth;
dx_f_drul_[d] += -d * gap_f;
/* attach to outer 3/4 end of head */
dy_f_drul_[d] += dir_ * 0.25 * interline_f;
}
+ // tie attached to inner notehead
else if (head_l_drul_[d])
{
- dx_f_drul_[d] += d*0.5 * nw_f;
+ dx_f_drul_[d] += d*0.5 * notewidth;
}
+ // uhm? loose end of tie // tie attached to stem
else
{
- dy_f_drul_[d] = dy_f_drul_[(Direction) -d];
dx_f_drul_[d] = -d * (spanned_drul_[d]->width ().length ()
- -0.5 * nw_f);
+ -0.5 * notewidth);
+ }
+ }
+ while (flip(&d) != LEFT);
+
+ // now that both are set, do dependent
+ do
+ {
+ // tie attached to outer notehead
+ if (!head_l_drul_[d])
+ {
+ if (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT] < TIE_MIN)
+ {
+ dx_f_drul_[d] -= d * TIE_MIN
+ - (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+ dx_f_drul_[d] = dx_f_drul_[(Direction)-d] + d * TIE_MIN;
+ }
+
+ dy_f_drul_[d] = dy_f_drul_[(Direction) -d];
}
}
while (flip(&d) != LEFT);
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "time-description.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "score-grav.hh"
#include "timing-grav.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "timing-translator.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "translation-property.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "music-output-def.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "type-swallow-trans.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "vertical-align-elem.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "p-col.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "vertical-align-spanner.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "vertical-group-elem.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "vertical-group-spanner.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "translator-group.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "proto.hh"
source file of the LilyPond music typesetter
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include "word-wrap.hh"
source file of mi2mu, part of the GNU LilyPond package,
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <assert.h>
#include "string-convert.hh"
#include "lgetopt.hh"
-#include "path.hh"
+#include "file-path.hh"
#include "duration-convert.hh"
#include "source.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <assert.h>
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include "moment.hh"
source file of the GNU LilyPond music typesetter
- (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+ (c) 1997--1998 Jan Nieuwenhuizen <jan@digicash.com>
*/
#include <assert.h>
//
// source file of the LilyPond music typesetter
//
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+// (c) 1997--1998, 1998 Jan Nieuwenhuizen <jan@digicash.com>
#include <assert.h>
#include <time.h>
*os_p_ << filename_str_g;
*os_p_ << "\n\n";
// ugh
- *os_p_ << "\\version \"0.1.9\";\n";
+ *os_p_ << "\\version \"0.1.10\";\n";
}
void