+++ /dev/null
-\score{
- \notes\relative c'' {
- <
- \property Voice.textstyle = "large" s4^"Moderato"
- r4
- >
- }
-}
+++ /dev/null
-/*
- direction.hh -- declare Direction
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef DIRECTION_HH
-#define DIRECTION_HH
-
-#include "axes.hh"
-
-enum Direction
-{
- UP=1,
- DOWN=-1,
- LEFT=-1,
- RIGHT=1,
- MIN=-1,
- MAX=1,
- CENTER=0,
- SMALLER=-1,
- BIGGER=1,
- START = -1,
- STOP = 1
-};
-
-inline Direction
-other_dir (Direction const d)
-{
- return (Direction)(-d);
-}
-
-inline Direction
-operator - (Direction const d)
-{
- return other_dir (d);
-}
-
-// huh?
-inline Direction
-flip (Direction *i) {
- if (*i == (Direction)1)
- *i = (Direction)-1;
- else if (*i == (Direction)-1)
- *i = (Direction)1;
- return *i;
-}
-
-/**
- if d > 0: the max operator
- if d < 0: the min operator
- */
-template<class T> T minmax (Direction d, T, T);
-
-String direction_str (Direction, Axis);
-
-#endif // DIRECTION_HH
+++ /dev/null
-/*
- drul-array.hh -- declare Drul_array
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef DRUL_ARRAY_HH
-#define DRUL_ARRAY_HH
-
-#include "direction.hh"
-
-#include <assert.h>
-
-/**
- Left/right or Up/down arrays. Drul is nicer sounding than udlr
- */
-template<class T>
-struct Drul_array
-{
- T array_[2];
- T &operator[] (Direction d)
- {
- assert (d==1 || d== -1);
- return array_[(d+1)/2];
- }
- T operator[] (Direction d) const
- {
- assert (d==1 || d== -1);
- return array_[(d+1)/2];
- }
-};
-
-#endif // DRUL_ARRAY_HH
+++ /dev/null
-/*
- simple-spacer.hh -- declare
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef SIMPLE_SPACER_HH
-#define SIMPLE_SPACER_HH
-
-#include "real.hh"
-#include "array.hh"
-#include "lily-proto.hh"
-#include "list.hh"
-#include "drul-array.hh"
-
-struct Rod_info {
- Real distance_f_;
- Drul_array<int> cols_;
-};
-
-struct Spring_info {
- /// the ideal distance
- Real space_f_;
-
- /// Hooke's constant: how strong are the "springs" attached to columns
- Real hooke_f_;
-
- Real blocking_stretch_f_;
- Rod_info * blocking_rod_l_;
- void set (Idealspacing *);
- Spring_info();
-};
-
-
-class Simple_spring_spacer {
- Array<Spring_info> springs_;
- Pointer_list<Rod_info*> rods_;
-
- void init ();
- Array<Real> solve ();
-
-};
-
-#endif /* SIMPLE_SPACER_HH */
-
+++ /dev/null
-/*
- lexerinit.cc -- implement some stuff
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include <iostream.h>
-#include <strstream.h>
-#include "proto.hh"
-#include "plist.hh"
-#include "my-lily-lexer.hh"
-#include "debug.hh"
-#include "main.hh"
-#include "source-file.hh"
-#include "source.hh"
-
-My_lily_lexer *lexer=0;
-
-int
-yylex() {
- return lexer->yylex();
-}
-
-bool
-busy_parsing()
-{
- return lexer;
-}
+++ /dev/null
-/*
- could use cleanup
- */
-#include <ctype.h>
-
-#include "my-lily-lexer.hh"
-#include "string.hh"
-#include "real.hh"
-#include "debug.hh"
-#include "musical-request.hh"
-#include "command-request.hh"
-#include "music-list.hh"
-#include "identifier.hh"
-#include "array.hh"
-#include "text-def.hh"
-#include "parseconstruct.hh"
-
-
-
-/*
- SHOULD JUNK THIS.
- */
-String *
-get_scriptdef (char c)
-{
- String s;
- switch (c)
- {
- case '^' : s = "marcato";
- break;
- case '+' : s = "stopped";
- break;
- case '-' : s = "tenuto";
- break;
- case '|': s = "staccatissimo";
- break;
- case 'o' : s = "";
- break;
- case '>' : s = "accent";
- break;
- case 'v' : s = "";
- break;
- case '.' : s = "staccato";
- break;
- default:
- assert (false);
- }
- return new String (s);
-}
-
-Request*
-get_script_req (int d , General_script_def*def)
-{
- Musical_script_req* script_req_p = new Musical_script_req;
- script_req_p->dir_ =(Direction)d;
- script_req_p->scriptdef_p_=def;
- return script_req_p;
-}
-
-
-
-
-
-Request*
-get_grouping_req (Array<int> i_arr)
-{
- Measure_grouping_req * mr_p = new Measure_grouping_req;
- for (int i=0; i <i_arr.size();)
- {
- mr_p->elt_length_arr_.push (Moment (1, i_arr[i++]));
- mr_p->beat_i_arr_.push (i_arr[i++]);
- }
- return mr_p;
-}
+++ /dev/null
-#include "simple-spacer.hh"
-#include "idealspacing.hh"
-// #include ""
-
-
-void
-Spring_info::set(Idealspacing *i)
-{
- space_f_ = i->space_f_;
- hooke_f_ = i->hooke_f_;
-}
-
-Spring_info::Spring_info()
-{
- space_f_ = 0.0;
- hooke_f_ = 1.0;
- blocking_stretch_f_ = infinity_f;
- blocking_rod_l_ = 0;
-}
-
-
-
-void
-Simple_spring_spacer::init ()
-{
- for (PCursor<Rod_info*> i(rods_.top()); i.ok (); i++)
- {
- Real hooke=0.0;
- Real dist= i->distance_f_;
-
- hooke =0.0;
-
- for (int j = i->cols_[LEFT]; j < i->cols_[RIGHT]; j++)
- {
- hooke += 1/springs_[j].hooke_f_;
- dist -= springs_[j].space_f_;
- }
-
- hooke = 1/hooke;
-
- for (int j = i->cols_[LEFT]; j < i->cols_[RIGHT]; j++)
- {
- Real block_stretch = hooke * dist / (springs_[j].space_f_ *
- springs_[j].hooke_f_ );
-
- if (block_stretch < springs_[j].blocking_stretch_f_)
- {
- springs_[j].blocking_stretch_f_ = block_stretch;
- springs_[j].blocking_rod_l_ = i.ptr ();
- }
- }
- }
-}
-
-Array<Real>
-Simple_spring_spacer::solve ()
-{
- Real start_force = 0.0;
-
- for (int i=0; i< springs_.size (); i++)
- {
- start_force = start_force >?
- springs_[i].blocking_stretch_f_ * springs_[i].hooke_f_;
- }
-
- Array<Real> stretch_factors;
- Array<bool> blocked;
- int blocked_count=0;
- Real current_len =0.0;
- for (int i=0; i < springs_.size (); i++)
- {
- Real stretch = start_force / (springs_[i].hooke_f_ * springs_[i].space_f_);
- stretch_factors.push (stretch);
- current_len += (1 + stretch) * springs_[i].space_f_;
- blocked.push(false);
- }
-
-
- while (blocked_count < blocked.size ())
- {
- Real next_stretch = -1.0;
- int block_index;
- for (int i=0; i< stretch_factors.size (); i++)
- {
- if (!blocked[i])
- {
- next_stretch = next_stretch >? springs_[i].blocking_stretch_f_;
-
- if (next_stretch < springs_[i].blocking_stretch_f_)
- {
- next_stretch = springs_[i].blocking_stretch_f_;
- block_index = i;
- }
- }
- }
- current_len = 0.0;
-
- Real force = next_stretch * (springs_[block_index].space_f_* springs_[block_index].hooke_f_);
- for (int i=0; i< stretch_factors.size (); i++)
- {
- if (!blocked[i])
- {
- stretch_factors[i] = force / (springs_[i].space_f_ * springs_[i].hooke_f_);
- }
- current_len += (1.0 + stretch_factors[i]) * springs_[i].space_f_;
- }
-
- Rod_info *blockrod = springs_[block_index].blocking_rod_l_;
- for (int j = blockrod->cols_ [LEFT]; j < blockrod->cols_ [RIGHT]; j++)
- {
- blocked[j] = true;
- blocked_count ++;
- }
- }
-
-
- Array<Real> distances;
- for (int i=0; i < stretch_factors.size (); i++)
- {
- distances.push (stretch_factors[i] * springs_[i].space_f_);
- }
- return distances;
-}
-
+++ /dev/null
-/*
- template1.cc -- instantiate some List classes
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1996, 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "proto.hh"
-#include "idealspacing.hh"
-#include "plist.hh"
-#include "p-col.hh"
-#include "item.hh"
-#include "musical-request.hh"
-#include "spanner.hh"
-#include "cursor.tcc"
-#include "pcursor.tcc"
-#include "plist.tcc"
-
-
-#define IPLC_INSTANTIATE(a) POINTERLIST_INSTANTIATE(a)
-
-IPLC_INSTANTIATE(Score_element);
-IPLC_INSTANTIATE(Spanner);
-IPLC_INSTANTIATE(Idealspacing);
+++ /dev/null
-/*
- template2.cc -- Instantiate some list templates.
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "line-spacer.hh"
-#include "cursor.tcc"
-#include "pcursor.tcc"
-#include "plist.tcc"
-
-POINTERLIST_INSTANTIATE(Line_spacer);
+++ /dev/null
-#include "proto.hh"
-#include "cursor.tcc"
-#include "pcursor.tcc"
-#include "plist.tcc"
-#include "translator.hh"
-
-POINTERLIST_INSTANTIATE(Translator);
-