testing
@item @email{pinard@@iro.umontreal.ca, Franc@,ois Pinard},
parts of Documentation/Vocab*, started internationalization stuff
-@item @email{portnoy@ai.mit.edu,Stephen Peters} pdfTeX support
+@item @email{portnoy@@ai.mit.edu,Stephen Peters}, pdfTeX support
@item @email{glenprideaux@@iname.com, Glen Prideaux},
minor bug fix to script used to generate doc++ documentation
@item @email{Roy.Rankin@@alcatel.com.au, Roy R. Rankin},
denneboom_shape = \paper{
\paper_twenty
indent = 20. \mm;
- \shape 70. \mm, 20. \mm,
- 65. \mm, 30. \mm,
- 57.5 \mm, 45. \mm,
- 50. \mm, 60. \mm,
- 42.5 \mm, 75. \mm,
- 35. \mm, 90. \mm,
- 27.5 \mm, 105. \mm,
- 20. \mm, 120. \mm,
- 10. \mm, 140. \mm,
- 65. \mm, 30. \mm
- ;
+
+ % UGH -- THIS IS HAIRY
+ #'margin-shape = #(map
+ (lambda (x) (cons-map mm-to-pt x))
+ '((70.0 . 20.)
+ (65.0 . 30.0)
+ (57.5 . 45.0)
+ (50.0 . 60.0)
+ (42.5 . 75.)
+ (35.0 . 90.)
+ (27.5 . 105.)
+ (20.0 . 120.0)
+ (10.0 . 140.0)
+ (65.0 . 30.0))
+ )
+
gourlay_maxmeasures = 30.;
arithmetic_basicspace = 3.8;
arithmetic_multiplier = 8.\pt;
/*
first guess: end beam at end of beat
*/
- Moment end_mom = timer_l_->one_beat_;
+ SCM one (get_property ("beatLength", 0));
+
+ Moment end_mom;
+ if (SMOB_IS_TYPE_B(Moment, one))
+ end_mom = *SMOB_TO_TYPE (Moment, one);
/*
second guess: property generic time exception
*/
class Time_signature: public Item {
-
-
-
protected:
virtual Molecule*do_brew_molecule_p() const;
public:
virtual void do_post_move_processing();
public:
- /// how long is one beat?
- Moment one_beat_;
-
/// JUNKME
int bars_i () const;
%union {
- Array<Real>* realarr;
Array<Musical_pitch> *pitch_arr;
Link_array<Request> *reqvec;
Array<int> *intvec;
%token SCM_T
%token SCORE
%token SCRIPT
-%token SHAPE
%token SKIP
%token SPANREQUEST
%token TEMPO
%type <request> hyphen_req
%type <scm> string
%type <score> score_block score_body
-%type <realarr> real_array
%type <scm> script_abbreviation
%type <trans> translator_spec_block translator_spec_body
| paper_def_body translator_spec_block {
$$->assign_translator ($2);
}
- | paper_def_body SHAPE real_array semicolon {
- /*
- URG URG.
- */
- if ($3->size () % 2)
- warning (_ ("Need even number of args for shape array"));
-
- for (int i=0; i < $3->size (); i+=2)
- {
- Real l = $3->elem (i);
- $$->shape_int_a_.push (Interval (l,
- l + $3->elem (i+1)));
- }
- delete $3;
- }
| paper_def_body error {
}
}
;
-
-real_array:
- real {
- $$ = new Array<Real>;
- $$->push ($1);
- }
- | /* empty */ {
- $$ = new Array<Real>;
- }
- | real_array ',' real {
- $$->push($3);
- }
- ;
-
/*
MIDI
*/
daddy_trans_l_->set_property("measurePosition",
(new Moment)->smobify_self ());
-
}
}
}
-
-
}
// urg: multi bar rests: should always process whole of first bar?
SCM tim = get_property ("timing", 0);
- bool timb = gh_boolean_p (tim) && gh_scm2bool ( tim);
-
-
+ bool timb = gh_boolean_p (tim) && gh_scm2bool (tim);
if (timb && allbars)
{
Moment barleft = (measure_length () - measure_position ());
daddy_trans_l_->set_property ("currentBarNumber" , gh_int2scm (1));
daddy_trans_l_->set_property("measurePosition",
(new Moment)->smobify_self());
+ daddy_trans_l_->set_property ("oneBeat",
+ (new Moment (1,4))->smobify_self ());
daddy_trans_l_->set_property("measureLength",
(new Moment (1))->smobify_self());
-
}
Moment
void
Timing_translator::get_time_signature (int *n, int *d) const
{
- *n = measure_length () / one_beat_;
- *d = one_beat_.den_i ();
+ Moment one_beat (1,4);
+ SCM one = get_property ("beatLength",0);
+ if (SMOB_IS_TYPE_B (Moment, one))
+ one_beat = *SMOB_TO_TYPE (Moment, one);
+ *n = measure_length () / one_beat;
+ *d = one_beat.den_i ();
}
void
Timing_translator::set_time_signature (int l, int o)
{
- one_beat_ = Moment (1)/Moment (o);
- Moment len = Moment (l) * one_beat_;
+ Moment one_beat = Moment (1)/Moment (o);
+ Moment len = Moment (l) * one_beat;
daddy_trans_l_->set_property ("measureLength",
(new Moment (len))->smobify_self ());
+ daddy_trans_l_->set_property ("beatength",
+ (new Moment (one_beat))->smobify_self ());
}
Timing_translator::Timing_translator()
{
- one_beat_ = Moment( 1,4);
}
tr->set_property ("currentBarNumber", gh_int2scm (b));
}
-
-
int
Timing_translator::bars_i () const
{
if 1:
def conv(str):
- str = re.sub ('dynamicDir', 'dynamicDirection', str)
+ str = re.sub ('dynamicDir\\b', 'dynamicDirection', str)
return str